artem
10.04.2017
2793

Синхронизация сервиса DND телефонного аппарата Yealink серии SIP-T2X. Отключение сервиса DND по расписанию.

Как известно, при выставлении абонентом статуса DND средствами телефонного аппарата со стороны Asterisk, не всегда однозначно можно распознать что на телефоне выставлен статус DND, так как в 99% случаев телефон возвращает ответ «Busy Here» – занято. Как вариант можно отключить сервис DND на аппаратах и научить абонентов использовать сервисные коды Asterisk, но в данном подходе несколько существенный минус: на телефонном аппарате не отображается статус DND, в следствии чего пользователь может забыть, что у него выставлен данный статус. Но при использовании телефонных аппаратов Yealink серии SIP-T2X, возможно синхронно выставлять DND как на телефонном аппарате, так и на сервере Asterisk.

При использовании FreePBX сервисные коды для включения службы DND – *78, для отключения – *79.

Настроить синхронный вызов данных сервисных кодов при включении DND на телефонном аппарате можно как через веб-интерфейс, так и через файл провиженинга.

Настройка синхронизации DND через веб-интерфейс:
Перейти в раздел Функции > Переадресация и режим DND, подраздел DND, выставить параметр «Режим» в значение «На все вызовы», «Статус DND» – «Включено», «Код вкл. DND» – «*78», «Код выкл. DND» – «*79».

Переадресация и режим DND

!Не рекомендуется использовать сервисный код-переключатель режима DND (*76)!

За данную настройку через файл автопровиженинга отвечают параметры:

features.dnd.on_code = *78
features.dnd.off_code = *79

Таким образом при включении DND на телефонном аппарате — с него будет параллельно вызван сервисный код *78 на Астериске и при отключении DND, также будет вызван сервисный код – *79. Теперь можно мониторить состояние DND через Asterisk, команда database show DND:

localhost*CLI> database show DND
/DND/9999                                         : YES        

Только следует учитывать, что если снимать DND из консоли Астериска, то на телефонном аппарате статус DND останется неизменным.

Для отключения статуса DND одновременно у телефонного аппарата и у сервера Астериск, удаленными средствами, можно обратиться к API телефонов Yealink, который носит название Action URI.
Например, есть задача массовое отключение DND, у «забывчивых» сотрудников, которые выставляют DND и потом неотключают его и на следующий день. Для решения данного вопроса, можно использовать скрипт, который будет отрабатываться в нерабочее время, проходить по всем телефонам, которые находятся в статусе DND () и через API отключать его.

Первым делом необходимо разобраться как работать с API Yeaink. Для включения API в веб-интерфейсе телефона в разделе Функции > Контроль подключений выставить параметр IP-адреса для отправки Action URI в значение равное ip сервера откуда будут посылаться команды, либо список адресов через запятую или при необходимости принимать команды с любого ip то необходимо указать значение any.

Контроль подключений

Но при включении разрешений через веб-интерфейс есть один довольно существенный минус — при первичном запросе к API требуется подтверждение действия через меню — единичный раз, но при перезагрузке телефона снова требуется подтверждение. Чтобы обойти данный функционал необходимо через файл провиженинга отключить запрос подтверждения. Делается это через параметр features.show_action_uri_option = 0

Также список ip-адресов для для подключения к API можно указать в файле в параметре: features.action_uri_limit_ip = any

Обращение к API телефона имеет вид стандартного GET-http запроса. Пример вызова включения функции DND на телефоне с помощью запроса из BASH — можно использовать стандартный curl:

curl -v –user login:password http://phone_ip/servlet?key=DNDOn

При выполнении данной команды (при условии включенных выше кодов синхронизации), если параллельно наблюдать за CLI Asterisk`а, то можно увидеть, что выполнится так же и код *78. Таким образом данная команда полностью эмулирует аппаратное нажатие кнопки DND на телефоне.

Команда отключения DND выглядит следующим образом:

curl -v –user login:password http://phone_ip/servlet?key=DNDOff

Обратите внимание, что API чувствителен к регистру команд!

 

Листинг скрипта на принудительное отключение DND, который в цикле запрашивает через astdb статус DND, определяет ip аппаратов на которых выставлен DND и подключается к ним через API:
 

#!/bin/sh
while read -r line; do
        if [[ $line =~ ^/DND/([0-9]+) ]];
                then ext=${BASH_REMATCH[1]}; reg_c=”$(asterisk -rx “sip show peer $ext” | fgrep ‘Reg. Contact’)”;
        if [[ $reg_c =~ ([0-9]+.[0-9]+.[0-9]+.[0-9]+) ]];
                then ip=${BASH_REMATCH[1]}; curl –user user:password http://$ip/servlet?key=DNDOff &disown -h;
        fi;
        fi;
done

 
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