artem
09.03.2017
2195

Вызов оператора очереди во время проигрывания приветствия

Настройка

Ниже приведён диалплан, реализующий описанный функционал:

 

[globals]
INBOUND_ANNOUNCE_LEN=12

[sub-answer-wait] exten => s,1,GotoIf($[«${ARG1}» = «» | «${ARG2}» = «»]?end)
same  => n,NoOp(arg1: ${ARG1}, arg2: ${ARG2})
same  => n,Set(MOH_PLAYED=$[${EPOCH} — ${ARG2}])
same  => n,Set(MOH_LEFT=$[${ARG1} — ${MOH_PLAYED}])
same  => n,ExecIf($[${MOH_LEFT} > 0]?Wait(${MOH_LEFT}))
same  => n,Playback(beep)
same  => n,Wait(0.5)
same  => n(end),Return

[inbound-calls]
exten => _X.,1,Answer
same  => n,Dial(Local/900@ext-queues/n,60,m(inbound_announce_moh)tgU(sub-answer-wait^${INBOUND_ANNOUNCE_LEN}^${EPOCH}))
same  => n,Hangup

[ext-queues]
exten => 900,1,Queue(900,t,,,180)
same  => n,Hangup

Пояснения

sub-answer-wait — контекст, реализующий задержку до соединения с оператором, выполняется в момент ответа оператора через Gosub. Контекст принимает два параметра: 1-й параметр — длительность приветствия (т.е. минимальное время, которое должно пройти от начала проигрывания приветствия до соединения с оператором); 2-й параметр — время начала проигрывания приветствия. После завершения ожидания, оператору очереди проигрывается гудок и происходит соединение со звонящим.

 

INBOUND_ANNOUNCE_LEN — глобальная переменная, содержащая длительность проигрываемого приветствия (длительность приветствия измеряется вручную).

 

inbound-calls — контекст для обработки входящих вызовов, в этом контексте происходит ответ и вызов очереди 900 через канал Local. Во время вызова в очередь проигрывается музыка в ожидании класса inbound_announce_moh. В момент ответа на вызов выполняется Gosub в контекст sub-answer-wait, если вместо вызова очереди через канал Local воспользоваться параметром gosub приложения Queue, очередь будет переходить к вызову следующего оператора, если во время ожидания завершения проигрывания сообщения звонящему истечёт время ожидания ответа оператора (при этом связь с ответившим оператором будет разорвана).

 

— В класс музыки в ожидании inbound_announce_moh первой должна входить запись приветствия, которую необходимо проиграть звонящему до соединения с оператором, затем должны идти файлы музыки в ожидании, которые используются в очереди. Сам класс должен быть описан в файле /etc/asterisk/musiconhold.conf, например, так:

 

[inbound_announce_moh]
mode=files
sort=alpha
directory=/var/lib/asterisk/moh/inbound_announce_moh
 

  • ext-queues — контекст для вызова очереди через канал Local. До вызова приложения Queue не должно происходить ответа на вызов, иначе музыка/гудки из очереди заменят проигрываемое сообщение.

 

Ограничения

При использовании описанной логики нельзя использовать донабор внутренних номеров, можно только использовать донабор одной цифры с помощью опции d приложения Dial.

 

 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices