Todo en el CDR, o te falta algun dato ahi?
--
/Saúl
http://saghul.net | http://sipdoc.net
'dst' debería contener el dato que buscas. Sino, puedes guardarlo
desde el dialplan en el campo userfield.
Saludos,
La pregunta es válida, aunque no conozco la respuesta.
lo más cercano sería ver las causas de Hangup en la variable HANGUPCAUSE.
Aunque suele ser esclarecedor para casos especiales.
Entiendo que en el caso que dices en ambas situaciones te devolverá
"16" - normal clearing.
Pruebalo. Evalúa esa variable en la extensión h.
Saludos.
El 10/06/10, Saúl Ibarra Corretgé <sag...@gmail.com> escribió:
> --
> Este email pertenece a la lista de Asterisk-ES (http://www.asterisk-es.org)
>
> Entra ahora en el canal de irc de Asterisk-ES para charlar en directo sobre
> VoIP y
> Asterisk: http://www.asterisk-es.org/
>
> ~~~~~ Normas de la lista Asterisk-ES: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> http://comunidad.asterisk-es.org/index.php?title=Lista:normas-asterisk-es
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> - Para anular la suscripción: asterisk-es...@googlegroups.com
>
Para terminar con este hilo ... que ya marea un poco ...
Respuesta corta: NO, con el CDR de Asterisk, ni con el Dialplan puedes saber
quien terminó primero la llamada.
Para saber lo que quieres, te toca tirar de los eventos del AMI, para pillar
el release del canal.
Saludos
--
Raúl Alexis Betancor Santana
Dimensión Virtual
--
Sabes que nada de ese dialplan funciona en el caso de transferencias
�verdad? ... adem�s el GoTo que tienes despu�s del Dial est� mal.
Saludos
--
Ra�l Alexis Betancor Santana
Dimensi�n Virtual S.L.
On Thu, Jun 17, 2010 at 01:03:58PM -0500, José Ferney Franco Baquero wrote:
> Hola Raúl.
>
> La respuesta que das no es cierta. Ya que mediante el plan de marcación si
> es posible determinar quien cortó la llamada (por lo general), para ello es
> necesario usar la opción "g" del Dial:
> g - Proceed with dialplan execution at the current extension if the
> destination channel hangs up.
>
> De esta manera, si se tiene el siguiente contexto:
>
> [Interno]
> exten => _XXX,1,NoOp()
> exten => _XXX,n,Set(DIALEDEXTEN=${EXTEN})
> exten => _XXX,n,Dial(SIP/${EXTEN},45,gtT)
> exten => _XXX,n,Goto(${DIALSTATUS})
>
> exten => h,1,Goto(${DIALEDEXTEN},h-${DIALSTATUS})
>
> exten => _XXX,n(BUSY),NoOp(Estaba ocupada la liena)
> ....
> exten => _XXX,n(ANSWER),NoOp(Colgó el llamado)
> .....
> exten => _XXX,n(h-ANSWER),NoOp(Colgó el llamante)
>
> Si se manejan correctamente los diferentes que puede tomar la variable
> DIALSTATUS es posible determinar quien colgó la llamada sin mayores
> problemas.
> Por último, si se valida bien el flujo del plan de marcación no te pasará
> que se ejecute la prioridad ANSWER y luego h-ANSWER.
>
> Seguro que funciona. De hecho así me toca hacer reportes porque el CDR de
> Asterisk no sirve para nada.
>
> Ahora para llamadas que ingresan a una cola no es necesario hacer tantas
> "chapuzas". El Asterisk solito lo informa.
Sabes que nada de ese dialplan funciona en el caso de transferencias
¿verdad? ... además el GoTo que tienes después del Dial está mal.
Saludos
--
Raúl Alexis Betancor Santana
Dimensión Virtual S.L.
Si valiese solo con eso ... pero Asterisk maneja igual de mal el
peer-matching, que las transferencias, que la negociación de codecs ...
que .... mejor lo dejo.
> b) No veo porque el Goto está mal:
Porque la opción g de Dial lo que hace es que se SIGA ejecutando la EXTENSION
actual, en vez de saltar a la h, por lo que ese GoTo después del dial, hará
que se traten todas las llamadas como si hubiese colgado EL ORIGINADOR de
llamada.
> Además, el tema del hilo es sobre cómo saber quién termina la llamada y
> creo que el ejemplo resuelve la inquietud. O por lo menos aclaro que es
> posible hacerlo (Tal como dije anteriormente, así lo hago y me funciona)
Enhorabuena si te funciona ... pero el ejemplo no era correcto .. ;-)
> a) Para manejar las transferencias basta con tener en cuenta la variable
> TRANSFER_CONTEXT.
Si valiese solo con eso ... pero Asterisk maneja igual de mal el
peer-matching, que las transferencias, que la negociación de codecs ...
que .... mejor lo dejo.
> b) No veo porque el Goto está mal:Porque la opción g de Dial lo que hace es que se SIGA ejecutando la EXTENSION
actual, en vez de saltar a la h, por lo que ese GoTo después del dial, hará
que se traten todas las llamadas como si hubiese colgado EL ORIGINADOR de
llamada.
> Además, el tema del hilo es sobre cómo saber quién termina la llamada yEnhorabuena si te funciona ... pero el ejemplo no era correcto .. ;-)
> creo que el ejemplo resuelve la inquietud. O por lo menos aclaro que es
> posible hacerlo (Tal como dije anteriormente, así lo hago y me funciona)