Hola buenas tardes,
Dispongo de 2 centralitas Asterisk conectadas entre sí mediante un trunk SIP y estoy haciendo unas pruebas generando llamadas mediante envíos de .call files.
.call file ----> Centralita A <------ Trunk SIP ----> Centralita B
Desde la centralita A se generan los .call files y se realizan llamadas hacia la centralita B.
Me planteo la detección de 2 casuísticas:
- Casuística 1)
El .call file genera una llamada hacia una extensión que existe en la centralita B. Dicho call file tiene un Waittime de 30 segundos.
Si pasan 30 segundos y nadie descuelga por el CLI aparece algo del estilo:
Got SIP response 603 "Declined" reason (3) Remote end Ringing
- Casuística 2)
El .call file trata de generar una llamada hacia una extensión , pero dicha extensión no existe en la centralita B.En tal caso por el CLI aparece algo de este estilo:
Got SIP response 503 "Service unavailable" reason (8) Congestion (circuits busy)
En ambos casos defino en el contexto la extensión h, pero la llamada nunca llega a dicha extensión, puesto que realmente no llega a entrar al contexto. Por el CLI aparece algo del estilo:
"Attempting call on SIP/trunk_to_ericsson/1100 for 1100@creacion-buzon:1 (Retry 1)"
Pero no llega a ejecutar :
[creacion-buzon]
exten => _1XXX,1,NoOp(Creacion de buzon de voz para la extension:${EXTEN})
...
Ni tampoco:
[creacion-buzon]
....
exten => h,1,NoOp(Extensión especial de colgado h)
same => n,NoOp(CAUSA COLGADO: ${HANGUPCAUSE} )
same => n,Gosub(ast_hangup_causes,hc-${HANGUPCAUSE},1)
¿Alguna idea de como poder detectar estas causas y además poder almacenarlas en una variable o algo por el estilo?
un saludo y gracias por vuestra ayuda
Miguel Sanz