2012-01-13 2 views
0

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

ответ

0

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

+0

Я бы предпочел не повесить трубку на входящие звонки - я найду другой путь. Благодарю вас. – SomeGuy

0

Для тех, кто находит это через поиск, я нашел лучший способ.

Вы начинаете с вызова локального канала, используя ваш .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. 

Это собирается направить свой вызываемый в контексте расширения и перечисленных в контексте и EXTENSION переменных в файле вызова.

Смежные вопросы