Asterisk: No espere a que el script agi (bash) termine antes de continuar en dialplan

StackOverflow https://stackoverflow.com/questions/19840520

  •  29-07-2022
  •  | 
  •  

Pregunta

Tengo un dialplan de asterisco que ejecuta un script bash que coincide con el llamado con una base de datos para geolocar a la persona que llama (al igualar los códigos de país y de área). Dado que la base de datos es bastante grande (escala global), tarda hasta 15 segundos en terminar.

Necesito ejecutar este script inmediatamente después de responder la llamada (en caso de que el usuario cuelgue antes de que la llamada esté finalizada), pero no quiero que el usuario espere la ejecución de la script. Los valores de retorno se deben procesar idealmente al final del Dialplan justo antes del colgar.

P1: encontré http://www.voip-info.org/wiki/view/asterisk+agi#forkandcontinuedialplan que se ocupa de mi problema con respecto a los scripts de Perl. ¿Cómo logro lo mismo en Bash? Sé que puedo enviar cualquier script bash al fondo agregando un "&" al final, pero no tengo idea de cómo hacerlo en el DialPlan / cuando se usa scripts AGI.

P2: ¿Cómo puedo procesar los valores incluso si el usuario colgó antes / el Dialplan "salió no cero"?

¡Gracias por tu ayuda!

¿Fue útil?

Solución

Use la interfaz Fastagi. O disparar userevent con el oyente de AMI.

AGI no está diseñado para funcionar como desea, por lo que no funcionará.

Seguro que puede usar el comando nohup para obtener un script de Bash inmortal, pero así no es.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top