h DeadAgi deja pegada la llamada

288 views
Skip to first unread message

wardialing

unread,
Nov 24, 2009, 9:39:43 AM11/24/09
to asterisk-es

Estimados, buen dia

Estuve probando con la extensión h y DeadAgi, con endbeforehexten=yes
Ya hace lo que necesito, consigo el answered y lo ingreso a mysql,
Pero, por algún motivo el called party ( la persona llamada) tiene
que colgar para que finalize la llamada(es llamado via DAHDI); Si el
que cuelga primero es la persona que origino la llamada, no termina de
contar los minutos y al hacer un 'core show channels' aun veo la
llamada pegada, siempre es necesario que la persona a quien se llamó
cuelgue para terminar esa llamada.

Este efecto no se dá si quito la extensión h, alguna sugerencia ??

Gracias.

Atte.

Ronald Urbano -

Saúl Ibarra

unread,
Nov 24, 2009, 9:44:55 AM11/24/09
to aster...@googlegroups.com
2009/11/24 wardialing <wardi...@gmail.com>:

El agi termina correctamente? Tienes habilitado el authofallthrough?


--
/Saúl
http://www.saghul.net | http://www.sipdoc.net

Ronald Urbano

unread,
Nov 24, 2009, 11:26:14 AM11/24/09
to aster...@googlegroups.com
Si, el DeadAGI termina correctamente, al final tengo un
"$agi->hangup();" tambien le puse debug y en algunos casos me sale:

WARNING[16986]: res_agi.c:2203 deadagi_exec: Running DeadAGI on a
live channel will cause problems, please use AGI

y ciertamente yo estoy ejecutando DeadAgi, no se porque me advierte eso...


No tenia el autofallthrough activado, entonces lo activé y lo mismo,
lo desactivé nuevamente y ahora me sucede al reves que tiene que
colgar el que origina la llamada,


Alguna sugerencia o ayuda al respecto...

Gracias...

Atte.

Ronald Urbano -

Saúl Ibarra

unread,
Nov 24, 2009, 1:24:32 PM11/24/09
to aster...@googlegroups.com
Pega tu contexto a ver... Y ten en cuenta que la h se ejecuta despues
de colgar...

Ronald Urbano

unread,
Nov 24, 2009, 3:14:08 PM11/24/09
to aster...@googlegroups.com
2009/11/24 Saúl Ibarra <sag...@gmail.com>:


Fijarse en "; Actualiza bolsa de Minutos" ahi esta la h, que
efectivamente se me ejecuta al colgar - ahora cuando cuelga el que
llama - ->

---

[autentica-fijolocal]

; Discrimino lo digitado por el usuario:
exten => _#*XXXX9[2-7]XXXXXX,1,Set(NUMERO_MARCADO=${EXTEN:7})
exten => _#*XXXX9[2-7]XXXXXX,2,Set(CLAVE_MARCADA=${EXTEN:2:4})

; Mi conexión a la db para datos del usuario
exten => _#*XXXX9[2-7]XXXXXX,n,MYSQL(Connect connid localhost asterisk
asterisk dbasterisk)
exten => _#*XXXX9[2-7]XXXXXX,n,MYSQL(Query resultid ${connid} SELECT\
clave\,saldo_min\,context\,minutos_cons\ FROM\ sip\ WHERE\
clave=${CLAVE_MARCADA})
exten => _#*XXXX9[2-7]XXXXXX,n,MYSQL(Fetch fetchid ${resultid}
var_clave\ var_saldo_min\ var_contexto\ var_minutos_cons)
exten => _#*XXXX9[2-7]XXXXXX,n,MYSQL(Clear ${resultid})
exten => _#*XXXX9[2-7]XXXXXX,n,MYSQL(Disconnect ${connid})

; Decision ->
exten => _#*XXXX9[2-7]XXXXXX,n,GotoIf($[${CLAVE_MARCADA} =
${var_clave}]?vpanasonicin:dialno)

; Comprando privelegios de usuario ->
exten => _#*XXXX9[2-7]XXXXXX,n(vpanasonicin),GotoIf($[${var_contexto}=gerente]?bolsa_minutos:dialno)

; Comprobar bolsa de Minutos ->
exten => _#*XXXX9[2-7]XXXXXX,n(bolsa_minutos),GotoIf($[${var_saldo_min}
> 0]?llama-fijolocal:dialno2)

; Llamar ...
exten => _#*XXXX9[2-7]XXXXXX,n(llama-fijolocal),Dial(DAHDI/g0/${NUMERO_MARCADO},30,Ttr)
exten => _#*XXXX9[2-7]XXXXXX,n,(llama-fijolocal),Hangup()

; Actualiza bolsa de Minutos ->
exten => h,1,DeadAGI(actualiza_bolsa.php,${var_saldo_min},${var_clave},${var_minutos_cons})

; Mensajillos de error ->
exten => _#*XXXX9[2-7]XXXXXX,n(dialno),Playback(clave-incorrecta)
exten => _#*XXXX9[2-7]XXXXXX,n(dialno),Hangup()

----


He probado también invocando a una Macro y ahi hacia el Dial y la h
llamando a mi DeadAgi, pero igual, ahora por algún motivo el que llama
tiene que colgar para que se ejecute la h, el que llama es un interno
con SIP y al que llama es un DAHDI E1.


A sus comentarios ... gracias..


Ronald -

Saúl Ibarra

unread,
Nov 24, 2009, 4:12:46 PM11/24/09
to aster...@googlegroups.com
Pon un NoOp(algo) antes del DeadAGI y un hangup despues, a ver si se ejecutan.

Ronald Urbano

unread,
Nov 25, 2009, 4:23:45 PM11/25/09
to aster...@googlegroups.com
2009/11/24 Saúl Ibarra <sag...@gmail.com>:
-------

+ En la extensión h le puse el NoOp antes de ejecutar el DeadAgi, y
pues si se ejecuta...

-- Executing [h@empleado:1] NoOp("SIP/996-b5e1d658", "ALGOOO - -
- - SALDO_MIN -> 7702| CLAVE -> 1234| MINUTOS_CONSUMIDOS-> 11") in new
stack


++ Luego ya procede el DeadAgi, pero con esa advertencia de que
utilize AGI en vez de DeadAGI:

--
-- Executing [h@empleado:2] DeadAGI("SIP/996-b5e1d658",
"actualiza_bolsa.php|7702|1234|11") in new stack
[Nov 25 13:09:35] WARNING[21827]: res_agi.c:2203 deadagi_exec: Running


DeadAGI on a live channel will cause problems, please use AGI

-- Launched AGI Script /var/lib/asterisk/agi-bin/actualiza_bolsa.php
AGI Tx >> agi_request: actualiza_bolsa.php
AGI Tx >> agi_channel: SIP/996-b5e1d658
AGI Tx >> agi_language: es
AGI Tx >> agi_type: SIP
AGI Tx >> agi_uniqueid: 1259172499.3423
AGI Tx >> agi_callerid: 996
AGI Tx >> agi_calleridname: 996
AGI Tx >> agi_callingpres: 0
AGI Tx >> agi_callingani2: 0
AGI Tx >> agi_callington: 0
AGI Tx >> agi_callingtns: 0
AGI Tx >> agi_dnid: #*123491234567
AGI Tx >> agi_rdnis: unknown
AGI Tx >> agi_context: empleado
AGI Tx >> agi_extension: h
AGI Tx >> agi_priority: 2
AGI Tx >> agi_enhanced: 0.0
AGI Tx >> agi_accountcode:
AGI Tx >>
AGI Rx << GET VARIABLE ANSWEREDTIME
AGI Tx >> 200 result=1 (70)
AGI Rx << HANGUP
AGI Tx >> 200 result=1
-- AGI Script actualiza_bolsa.php completed, returning 0
--

+++ Luego mando el hangup como última prioridad de la extensión h:

--
-- Executing [h@empleado:3] Hangup("SIP/996-b5e1d658", "") in new stack
== Spawn h extension (empleado, h, 3) exited non-zero on 'SIP/996-b5e1d658'
-- Hungup 'DAHDI/1-1'
--


++++ Ahi terminó la secuencia, sin embargo para que suceda todo lo
anterior pasa 1 minuto despues que el destino llamado ha colgado.

Si el que cuelga primero es el que llamo(origen ), entonces el DeadAgi
se ejecuta inmediatamente

Acabo de sacar la extensión h .. y AHORA SUCEDE LO MISMO :-S - ahora
si que se me complicó - :-(

Solo pasa con las llamadas desde SIP hacia Dahdi que maneja el E1-PRI,
... quiza algo para cambiar en el chan_dahdi.conf ?
alguna sugerencia ?

chan_dahdi.conf:
[channels]
context=default
usecallerid=yes
hidecallerid=no
callwaiting=yes
;usecallingpres=yes
usecallingpres=no
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
facilityenable=yes
cancallforward=yes
canpark=yes
relaxdtmf=yes
callgroup=1
pickupgroup=1
immediate=no
echocancel=no
language=es
callerid=asreceived
echocancel=no
echocancelwhenbridged=no
pridialplan=unknown
prilocaldialplan=unknown
..
..
..


Ronald -

Saúl Ibarra

unread,
Nov 25, 2009, 4:32:02 PM11/25/09
to aster...@googlegroups.com
> --
>    -- Executing [h@empleado:2] DeadAGI("SIP/996-b5e1d658",
> "actualiza_bolsa.php|7702|1234|11") in new stack
> [Nov 25 13:09:35] WARNING[21827]: res_agi.c:2203 deadagi_exec: Running
> DeadAGI on a live channel will cause problems, please use AGI
>    -- Launched AGI Script /var/lib/asterisk/agi-bin/actualiza_bolsa.php

Hmm, raro... el canal ya deberia estar colgado! Puedes probar otra
version de Asterisk?

Ronald Urbano

unread,
Nov 25, 2009, 7:16:01 PM11/25/09
to aster...@googlegroups.com
2009/11/25 Saúl Ibarra <sag...@gmail.com>:
> --~--~---------~--~----~------------~-------~--~----~
> Este email pertenece a la lista de Asterisk-ES (http://www.asterisk-es.org)
>


Resumo para quedar claros:

- Tengo Asterisk 1.4.26.3 ( intentaré con otra también )
- cdr.conf : endbeforehexten=yes
- El DeadAgi se ejecuta luego de 1 minuto de que colgó la persona
llamada (destino PSTN)
- Si el que cuelga primero el llamante ( origen SIP ) todo va bien...


Ya omitiendo el DeadAGI y su invocación a travez de la extensión h...
me esta sucediendo lo mismo ..
Algun parametro como para detectar ese "¿cambio de polaridad .. ? "
lo raro es que suce al minuto exacto :-S


Gracias


Ronald -

Saúl Ibarra

unread,
Nov 26, 2009, 3:03:54 AM11/26/09
to aster...@googlegroups.com
> Resumo para quedar claros:
>
> -  Tengo Asterisk 1.4.26.3   ( intentaré con otra también )
> -  cdr.conf :  endbeforehexten=yes
> -  El DeadAgi se ejecuta luego de 1 minuto de que colgó la persona
> llamada (destino PSTN)
> - Si el que cuelga primero el llamante ( origen SIP ) todo va bien...
>
>
> Ya omitiendo el DeadAGI y su invocación a travez de la extensión h...
> me esta sucediendo lo mismo ..
> Algun parametro como para detectar ese "¿cambio de polaridad .. ? "
> lo raro es que suce al minuto exacto :-S
>

Vale, lo que pasa es que tienes 2 problemas:
- La deteccion de colgado
- Algo del DeadAGI

Solucionalos de uno en uno o te vas a liar... lo de los 60 segundos
fijo que es porque tienes el rtptimeout a 60 y la cuelga Asterisk
porque no has detectado el colgado. Busca en el archivo de la lista,
que de el colgado hemos hablado largo y tendido :)

Ramses II

unread,
Nov 26, 2009, 3:24:38 AM11/26/09
to aster...@googlegroups.com, ja...@multico.es
Saúl, buenos días,

Está hablando de un primario "E1-PRI"... ¿puede ser que el "call progress",
la inversión, o algo de eso dando la lata?


Saludos,

Ramses

-----Mensaje original-----
De: aster...@googlegroups.com [mailto:aster...@googlegroups.com] En
nombre de Saúl Ibarra
Enviado el: jueves, 26 de noviembre de 2009 9:04
Para: aster...@googlegroups.com
Asunto: [Asterisk-ES] Re: h DeadAgi deja pegada la llamada

Saúl Ibarra

unread,
Nov 26, 2009, 4:16:00 AM11/26/09
to aster...@googlegroups.com, ja...@multico.es
2009/11/26 Ramses II <ramses....@gmail.com>:

>
> Saúl, buenos días,
>
> Está hablando de un primario "E1-PRI"... ¿puede ser que el "call progress",
> la inversión, o algo de eso dando la lata?
>

Siendo un PRI no hay inversion... el caso es que no le esta detectando
el colgado, y lo de un minuto excato fijo que es rtptimeout=60...


--
/Saúl
http://saghul.net | http://sipdoc.net

Ramses II

unread,
Nov 26, 2009, 5:52:31 AM11/26/09
to aster...@googlegroups.com, ja...@multico.es
Claro, por eso te comentaba...

Lo mismo si manda el "chan_dahdi.conf" completo, y aledaños, se pueda ver
alguna opción "pendenciera" que esté dando la lata... ;-]


Saludos,

Ramses

-----Mensaje original-----
De: aster...@googlegroups.com [mailto:aster...@googlegroups.com] En
nombre de Saúl Ibarra
Enviado el: jueves, 26 de noviembre de 2009 10:16
Para: aster...@googlegroups.com
CC: ja...@multico.es
Asunto: [Asterisk-ES] Re: h DeadAgi deja pegada la llamada


Iñaki Baz Castillo

unread,
Nov 26, 2009, 9:40:39 AM11/26/09
to aster...@googlegroups.com
El día 26 de noviembre de 2009 10:16, Saúl Ibarra <sag...@gmail.com> escribió:
>
> 2009/11/26 Ramses II <ramses....@gmail.com>:
>>
>> Saúl, buenos días,
>>
>> Está hablando de un primario "E1-PRI"... ¿puede ser que el "call progress",
>> la inversión, o algo de eso dando la lata?
>>
>
> Siendo un PRI no hay inversion... el caso es que no le esta detectando
> el colgado, y lo de un minuto excato fijo que es rtptimeout=60...

Algunos operadores envían la señalización de ocupado/congestión por
inband (medainte primario digo) lo cuál es patético (¿leéis esto
Telefónica y Jazztel?).
Un ejemplo claro es:

- Configuras un primario en Asterisk con "priindication=outofband"
; PRI Out of band indications.
; Enable this to report Busy and Congestion on a PRI using out-of-band
; notification. Inband indication, as used by Asterisk doesn't seem to work
; with all telcos.
;
; outofband: Signal Busy/Congestion out of band with RELEASE/DISCONNECT
; inband: Signal Busy/Congestion using in-band tones
;
priindication=outofband

- Haces que Asterisk llame a un móvil por ese primario.

- El móvil suena pera rechaza la llamada. El operador del móvil
enviará notificación de "ocupado", "no disponible" o algo así (a gusto
del operador).

- Pero Asterisk no se enterará de que la llamada ha sido rechazada.
Eso sí, se escucha "pii pii pii", pero sigue siendo audio.

¿Y por qué? Porque la señalización de "ocupado" que el operador del
primario nos envía no es "outofband" sino "inband" (¡¡ los jodidos
pitidos !!) así que Asterisk tiene que interpretar esos dichosos
pitiditos para deducir que el extremo está ocupado. Igualito igualito
que con las líneas analógicas, sólo que sin excusa ya que por supuesto
el protocolo RDSI/ISUP sí dispone de códigos de señalización
correspondientes a "ocupado".

De cualquier forma no me queda claro si en este hilo sehabla de si el
móvil llamado cualga la llamada o la rechaza. Si la contesta y luego
cuelga entonces lo que he dicho no procede.

Ronald Urbano

unread,
Nov 26, 2009, 10:39:25 AM11/26/09
to aster...@googlegroups.com
El día 26 de noviembre de 2009 09:40, Iñaki Baz Castillo
<ib...@xtratelecom.es> escribió:
> --~--~---------~--~----~------------~-------~--~----~
> Este email pertenece a la lista de Asterisk-ES (http://www.asterisk-es.org)
>


Llamo desde el primario a un analógico de la pstn... para moviles no
salgo por ahi...

Ya probé bajando el tiempo de rtptimeout en el sip.conf, pero el
problema persiste ... la llamada se corta a los 60 segundos exactos
luego que el destino ha colgado.
Ademas no solo ocurre cuando llamo desde sip, también tengo una
troncal que cuando llama a la pstn ( en el medio esta asterisk) sucede
lo mismo ...
Ya voy aterrizando en que el problema sea con el proveedor; Iñaki,
según lo que comentas, con lo del 'priindication' también pasa
similar al llamar a operadores no moviles?

Si bien lo del rtptimeout se da en sip .. no habrá algo similar para
controlar ese colgado con dahdi?


Ronald -

Ramses II

unread,
Nov 26, 2009, 1:12:51 PM11/26/09
to aster...@googlegroups.com
Iñaki, buenas tardes,

Has abierto la Caja de Pandora... ;-)

En el fondo va de señalización, creo...

Mira, yo tengo un primario con TELE2 que:

- Si llamas a un móvil Vodafone, que tiene llamada en espera activo, y te
cuelga el móvil antes de descolgar, en vez de darte comunicando u ocupado,
te da como si el canal de salida estuviese ocupado, algo como "congestion".

- Si haces la misma operación de antes, pero al móvil le tienes
deshabilitada la llamada en espera, te da el tono de comunicando/ocupado.

- Si haces las mismas operaciones anteriores, pero a un móvil MoviStar,
ambas se comportan como el segundo caso, es decir, dando tono de
comunicando/ocupado.

El "priindication" está por default, es decir, "inband". ¿Podría ser la
causa de esos comportamientos?


Saludos,

Ramses

-----Mensaje original-----
De: aster...@googlegroups.com [mailto:aster...@googlegroups.com] En
nombre de Iñaki Baz Castillo
Enviado el: jueves, 26 de noviembre de 2009 15:41
Para: aster...@googlegroups.com
Asunto: [Asterisk-ES] Re: h DeadAgi deja pegada la llamada


Reply all
Reply to author
Forward
0 new messages