PhpAgi Dial: как вызвать обратный вызов, когда вызываемый абонент отвечает на вызов

Я использую Asterisk для маршрутизации звонков. Логика моего приложения довольно сложная, поэтому я использую PHPAGI.

Я хотел бы выполнить команду Dial и отслеживать несколько вещей:

  1. На звонок ответили?
  2. Сколько времени потребовалось вызываемому, чтобы ответить на звонок?
  3. Сколько времени занял разговор?

Все, что у меня есть, это функция $agi->exec('Dial', ...). Команда Dial позволяет мне указать макрос, который вызывается, когда вызываемый абонент отвечает на вызов. Но как я могу указать любой обратный вызов php вместо этого? Как я могу отследить момент ответа в моем скрипте phpagi?

Спасибо!


person Pavel L    schedule 06.08.2014    source источник


Ответы (1)


можно сделать такой макрос

[macro-dial]
exten => s,1,System(/full/path/php_callback_on_answer.php ${ID})

Для обратного вызова при зависании используйте h-расширение или просто разберите cdrs в mysql.

Вы можете записывать переменное время, когда начался вызов, и рассчитать время до ответа.

person arheops    schedule 07.08.2014