artem
14.11.2018
236

Нестандартные оповещение в Asterisk-FreePBX

1.Оповещения при Follow me

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

Как настроить Follow me, вы можете посмотреть по следующей ссылке.

Но тут возникает другая проблема. Клиент находится на линии уже около 30 секунд, но никто не берет трубку, а переадресация только начала отрабатываться и тут клиент устал ждать и кладет трубку. Это ситуация весьма неприятна и если такие случаи повторяются, то это может сказаться на репутации компании. Чтобы не потерять клиента, можно сделать звуковое оповещение о том, что звонок переадресован, после какого-то определенного промежутка времени.

Все настройки проводились на FreePBX версии 13 и Asterisk 13

Для этого нам необходимо:

    1.Любым текстовым редактором открыть файл /etc/asterisk/extensions_override_freepbx.conf 2. Добавить туда следующий контекст

[findmefollow-ringallv2]

include => findmefollow-ringallv2-custom

exten => _FMPR-.,1,NoCDR()

exten => _FMPR-.,n,Set(RingGroupMethod=)

exten => _FMPR-.,n,Set(USE_CONFIRMATION=)

exten => _FMPR-.,n,Set(RINGGROUP_INDEX=)

exten => _FMPR-.,n,Macro(simple-dial,${EXTEN:5},${FMREALPRERING})

exten => _FMPR-.,n,ExecIf($[“${DIALSTATUS}” = “BUSY”]?Set(SHARED(FM_DND,${FMUNIQUE})=DND))

exten => _FMPR-.,n,Hangup

 

exten => _FMGL-.,1,NoCDR()

exten => _FMGL-.,n,Set(ENDLOOP=$[${EPOCH} + ${FMPRERING} + 2])

exten => _FMGL-.,n(start),GotoIf($[“${SHARED(FM_DND,${FMUNIQUE})}” = “DND”]?dodnd)

exten => _FMGL-.,n,Wait(1)

exten => _FMGL-.,n,GotoIf($[${EPOCH} < ${ENDLOOP}]?start)

exten => _FMGL-.,n,Set(SHARED(FM_DND,${FMUNIQUE})=)

exten => _FMGL-.,n(dodial),Playback(custom/perevod)

exten => _FMGL-.,n,Macro(dial,${FMGRPTIME},${DIAL_OPTIONS},${EXTEN:5})

 

exten => _FMGL-.,n,Hangup

exten => _FMGL-.,n+10(dodnd),Set(SHARED(FM_DND,${FMUNIQUE})=)

exten => _FMGL-.,n,GotoIf($[“${FMPRIME}” = “FALSE”]?dodial)

exten => _FMGL-.,n,Hangup

 

Внесение правок в файл конфигурации

Обязательно, чтобы в директории /var/lib/asterisk/sounds/custom – находился ваш файл звукового оповещения, в нашем примере это файл perevod.wav.

Далее идем в FreePBX. Меню Aplication –> Extensions. Выбираем внутренний номер, для которого будет реализован данный функционал. Нажимаем на Add follow me settings.

Включение Follow me

Снимаем галочку с поля disable, в поле Initial Ring Time выставляем время, через которое будет происходит переадресация, в поле Ring Time выставляем максимальное время звонка, в поле follow-me list указываем ваш мобильный или другой внутренний номер. В конце мобильного номера обязательно поставить значек # (решетка).

Теперь при отрабатывании Follow Me, будет воспроизводится оповещение с уведомлением о переадресации.

 

2.Оповещение о том, что оператор занят, для внутренних разговоров

Бывают случаи в компании, когда хочется знать, что сотрудник, которому сейчас вы звоните, разговаривает по телефону и при этом у данного сотрудника на второй линии должен отобразиться ваш звонок. Это вполне реализуемо.
Любым текстовым редактором открываем файл /etc/asterisk/extensions_additional.conf

Ищем в нем контекст macro-dial-one и копируем его в буфер до строк

exten => s,n,Noop(Returned from dial-one with nothing to call and DIALSTATUS: ${DIALSTATUS})

exten => s,n,MacroExit() (эти строки включительно)

Далее открываем файл /etc/asterisk/extensions_override_freepbx.conf и в него вставляем то, что мы скопировали.

Ищем строку

exten => s,n(godial),Dial(${DSTRING},${ARG1},${D_OPTIONS})

 

Закомментируем ее. Вместо нее вставляем следующие строки

exten => s,n(godial),Set(DIALED_EXT_STATE=${EXTENSION_STATE(${DEXTEN}@ext-local)})

exten => s,n,ExecIf($[“${DIALED_EXT_STATE}”=”BUSY” | “${DIALED_EXT_STATE}”=”INUSE”]?Set(D_OPTIONS=${D_OPTIONS}m(abonent-isonphone)))

exten => s,n,Dial(${DSTRING},${ARG1},${D_OPTIONS})

 

Теперь при звонке на занятого человека, мы будем слышать оповещение, что абонент занят, а также будет играть музыка в ожидании.

 

Обратите внимание, что в директории /var/lib/asterisk/moh обязательно должна находится папка, (в данном примере abonent-isonphone) в которой находится файл в формате .wav который будет проигрываться.

Данный функционал очень удобен, но бывают случаи, когда такая функция необходима не для всех абонентов, т.е. некоторых нужно исключить. Снова заменим строки, которые мы вставляли, на следующие:

exten => s,n(godial),GotoIf(${DB_EXISTS(MOH_BUSY_SKIP/${DEXTEN})}?moh_busy_skip)

exten => s,n,Set(DIALED_EXT_STATE=${EXTENSION_STATE(${DEXTEN}@ext-local)})

exten => s,n,ExecIf($[“${DIALED_EXT_STATE}”=”BUSY” | “${DIALED_EXT_STATE}”=”INUSE”]?Set(D_OPTIONS=${D_OPTIONS}m(abonent-isonphone)))

exten => s,n(moh_busy_skip),Dial(${DSTRING},${ARG1},${D_OPTIONS})

 

Теперь у нас происходит проверка, есть ли номер в базе. Но необходимые номера в базу нам еще надо ввести. Идем в консоль и там прописываем:

asterisk -rx “database put MOH_BUSY_SKIP 101 1” – так мы добавим номер 101 в базу и теперь при звонке на него будут идти просто гудки.

Если же нужно удалить номер из базы, то пишем следующее.

asterisk -rx “database del MOH_BUSY_SKIP 101”

 

 
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