chan_local es tu amigo :-)
--
/Saúl
http://saghul.net | http://sipdoc.net
Qué es este /1 ??
> Context: interno
> Extension: 221
>
> sin embargo aun asi no puedo obtener el DIALSTATUS,
> en mi dialplan tengo:
>
> exten => 200,1,Dial(SIP/200,,T)
> exten => 200,2,Goto(s-${DIALSTATUS},1)
>
> exten => 221,1,Dial(SIP/200,,T)
> exten => 221,2,Goto(s-${DIALSTATUS},1)
>
> exten => s-NOANSWER,1,NoOP(NO-RESPONDE)
> exten => s-CHANUNAVAIL,1,NoOp(NO-DISPONIBLE)
> exten => s-BUSY,1,NoOp(OCUPADO)
> exten => _s-.,1,NoOp(PLOP)
>
> solo funciona cuando lanzo la llamada directa de una extensión a
> otra... pero no desde el .call
>
> Se podrá con .call ? o como puedo lograrlo ?
>
Debería funcionar tal y como lo tienes, no se si ese /1 puede afectar
o hacer algo raro...
Ves que se ejecuta el dialplan cuando la llamada sale a la extensión 221?
Por ahí lo ví en un ejemplo .. supuestamente era la prioridad .. pero
ya lo quité ..
>
>> solo funciona cuando lanzo la llamada directa de una extensión a
>> otra... pero no desde el .call
>>
>> Se podrá con .call ? o como puedo lograrlo ?
>>
>
> Debería funcionar tal y como lo tienes, no se si ese /1 puede afectar
> o hacer algo raro...
ya quité el /1 porsiacaso.
>
> Ves que se ejecuta el dialplan cuando la llamada sale a la extensión 221?
Si, por ejemplo cuando el 200 no contesta me deberia salir el
s-NOANSWER .. pero no sale nada :
*CLI>
-- Attempting call on LOCAL/200@interno for 221@interno:1 (Retry 1)
-- Executing [200@interno:1] Dial("Local/200@interno-7390,2",
"SIP/200||T") in new stack
-- Called 200
-- SIP/200-00000067 is ringing
*CLI>
[Sep 5 20:38:53] NOTICE[24403]: pbx_spool.c:356 attempt_thread: Call
failed to go through, reason (3) Remote end Ringing
== Spawn extension (interno, 200, 1) exited non-zero on
'Local/200@interno-7390,2'
como veran no sale el el DIALSTATUS ...
que mas podria revisar ?
Gracias
Ronald -
Para que la llmada funcione, tienes que descolgar en 200, y entonces
es cuando se genera la llama al 221. Asterisk llamará al 200, y cuando
conteste lanzará la llamada al 221 y las puenteará.
Lo que esperaba obtener es justamente el estado de NOANSWER ... en
este caso al llamar al 200 que es el primer numero que marca el .call
..... entonces habrá otra forma de obtener esto .. ?
Gracias
Ronald -
Como diría Germán: "a mi me funka" ;-)
Dialplan:
[tmp]
exten => 1234,1,NoOp
exten => 1234,n,Dial(SIP/saghul)
exten => 1234,n,NoOp(${DIALSTATUS})
Fichero Call:
Channel: Local/1234@tmp
Application: Playback
Data: demo-congrats
Log del CLI:
*CLI> -- Attempting call on Local/1234@tmp for application
Playback(demo-congrats) (Retry 1)
-- Executing [1234@tmp:1] NoOp("Local/1234@tmp-842f;2", "") in new stack
-- Executing [1234@tmp:2] Dial("Local/1234@tmp-842f;2",
"SIP/saghul") in new stack
[Sep 6 18:15:47] WARNING[9147]: app_dial.c:1946 dial_exec_full:
Unable to create channel of type 'SIP' (cause 20 - Unknown)
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [1234@tmp:3] NoOp("Local/1234@tmp-842f;2",
"CHANUNAVAIL") in new stack
-- Auto fallthrough, channel 'Local/1234@tmp-842f;2' status is 'CHANUNAVAIL'
> Channel Local/1234@tmp-842f;1 was never answered.
[Sep 6 18:15:47] NOTICE[9146]: pbx_spool.c:342 attempt_thread: Call
failed to go through, reason (8) Congestion (circuits busy)
[Sep 6 18:15:47] NOTICE[9146]: pbx_spool.c:345 attempt_thread: Queued
call to Local/1234@tmp expired without completion after 0 attempts
Como ves, si salta a la siguiente prioridad y puedo ver el DIALSTATUS
aunque SIP/saghul no esté disponible.
La prueba la he hecho con un Asterisk trunk (no recuerdo la versión)
pero debería ser como la 1.8 alpha0 :-) Aunque en la 1.4 esto debería
funcionar igual...