Продвинутый callback для Asterisk

Цена договорная • электронные деньги
03 октября 2014, 14:47 • 5 откликов • 36 просмотров
Имеется:
- список номеров операторов (мобильные)
- номер (один) клиента
- id задачи
- call-файлы создаются внешним приложением (его писать не надо)

Необходимо дозвониться хотя бы на один из номеров оператора. Перебираем их по кругу. Делаем 2 круга, после этого отбой. Сообщаем внешнему скрипту о не удаче (передаем id)
Если прошел дозвон (взяли трубку), то:
- включаем проигрывание файла
- сообщаем внешнему скрипту о дозвоне до оператора (передаем id + код)
- начинаем совершать звонок клиенту

Если клиент не взял трубку:
- проигрывание файла оператору
- сообщаем внешнему скрипту о ситуации (id + код)
- кладем трубку

Если клиент взял трубку:
- соединяем оператора и клиента
- сообщаем внешнему скрипту о соединении и об окончании разговора (id + код)


Сейчас все работает просто:

Channel: SIP/myprovider/79510000000
MaxRetries: 5
RetryTime: 300
WaitTime: 45
Context: myprovider-out
Extension: 79020000000
Priority: 1

т.е. с помощью call-файлов просто звонит на один номер, после соединения дозванивается до второго.


Требуется:
- написать extensions (если я не ошибаюсь)