Может ли файл вызова искать доступные каналы? - PullRequest
0 голосов
/ 13 января 2012

Я пишу robocaller для компании на сервере, который также имеет входящие звонки.У меня настроен опрос AMI, который будет проверять наличие определенного количества доступных каналов, прежде чем он пропустит файл вызова, но я не знаю, какие конкретные каналы будут открыты.Поскольку во время генерации моих файлов .call я не могу быть уверен, какие каналы будут открыты, есть ли способ автоматически назначать бесплатные каналы для вызова так, как автоматически назначаются входящие / переданные / соединенные каналы, или это тольковозможно в рамках абонентской группы?Если это возможно вне абонентской группы, что бы вы порекомендовали?

Ответы [ 2 ]

0 голосов
/ 20 января 2012

Для тех, кто находит это с помощью поиска, я нашел лучший способ.

Вы начинаете с вызова местного канала, используя ваш файл .call. Обязательно установите переменную PHONENUMBER в файле вызовов на номер, который вы в конечном итоге хотите вызвать. Затем мы находим доступный канал и называем его так:

exten => 1,1,ChanIsAvail(Appropriate channels here); Checks if those channels are available and assigns ${AVAILORIGCHAN} an available channel
exten => 1,2,Dial(${AVAILORIGCHAN}${PHONENUMBER}/n); Dials the phone number on the available channel. The /n is very important if you plan on changing CDR variables after the call goes through. Otherwise, leave it out.
exten => 1,3,Hangup(); Clean up the local channel when we're done with it.

Это перенаправит вашего вызываемого абонента в контекст и расширение, указанные в переменных CONTEXT и EXTENSION в файле вызовов.

0 голосов
/ 14 января 2012

Это возможно только с диалпланом, вам необходимо в случае любого инициированного вызова проверить, зарезервирован ли канал src / dst robocaller. Есть и другой способ: прослушать события AMI, проверить наличие новых каналов, в случае использования зарезервированного канала - отправить Hangup для этого канала.

...