Asterisk: Не ждите сценария AGI (Bash), прежде чем продолжить в Dialplan

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

  •  29-07-2022
  •  | 
  •  

Вопрос

У меня есть Asterisk Dialplan, который выполняет сценарий Bash, который соответствует Callerid с базой данных для геолокации вызывающего абонента (подходящими страной и кодами областей). Поскольку база данных довольно большая (глобальная масштаба), для завершения требуется до 15 секунд.

Мне нужно запустить этот скрипт сразу после ответа на вызов (если пользователь повесит трубку до завершения вызова), но не хочу, чтобы пользователь ждал выполнения скрипта. Возвратные значения в идеале должны быть обработаны в конце диалера непосредственно перед прилежением.

Q1: я нашел http://www.voip-info.org/wiki/view/asterisk+agi#forkandcontinuedialplan Что касается моей проблемы в отношении сценариев Perl. Как мне сделать то же самое в Bash? Я знаю, что могу отправить какой -либо сценарий Bash на фону, добавив «&» в конце, но я не знаю, как это сделать в диаллейн / при использовании сценариев AGI.

Q2: Как я могу обработать значения, даже если пользователь повесил трубку до / диалере "выйдет из Nonero"?

Спасибо за вашу помощь!

Это было полезно?

Решение

Используйте интерфейс Fastagi. Или выстрелить в Userevent с AMI слушателя.

AGI не предназначен для работы, как вы хотите, поэтому он не будет работать.

Конечно, вы можете использовать команду NOHUP, чтобы получить бессмертный сценарий BASH, но это не так, как это было.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top