Телефоны Yealink могут получать и обрабатывать запросы HTTP GET. Функция обработки запросов получила название Action URI. Action URI можно использовать в заголовках сообщений SIP NOTIFY (Event: ACTION‑URI) или в прямых запросах HTTP GET. При получении URI IP‑телефон выполнит указанное действие и ответит сообщением 200OK. Запрос HTTP GET может содержать переменную с именем «key» и значение переменной, разделенные символом «=». Этот функционал открывает широкие возможности для интеграции корпоративных систем управления и мониторинга с телефонами Yealink, а также используется для управления телефоном с помощью функции CTI.

Настройка Action URI

Откройте веб-интерфейс телефона.

Веб-интерфейс: Функции –> Контроль подключений
Автопровижининг: features.action_uri_limit_ip = значение,
где значение — список IP-адресов.

В поле IP-адреса для отправки Action URI необходимо ввести IP-адрес (или адреса, разделив их запятой), запросы с которых будет разрешено обрабатывать телефону. Также в этом поле можно указать значение Any, и тогда телефон будет принимать все GET-запросы с любых IP-адресов. Если же оставить это поле пустым, телефону будет запрещено принимать запросы HTTP GET.

Примечание: значение Any параметра IP-адреса для отправки Action URI может негативно сказаться на безопасности телефонных аппаратов, поэтому мы не можем рекомендовать использовать его в иных целях, кроме как при тестировании.

После того, как IP-адрес устройства, с которого планируется отправлять HTTP GET, будет добавлен в список разрешенных IP-адресов, с этого устройства можно будет отправлять запросы.

Также можно полностью отключить функцию Action URI — это может быть полезно в том случае, если пользователи имеют доступ в веб-интерфейс и требуется оградить их от данного функционала. В случае полного отключения функции Action URI даже указание IP-адресов в поле IP-адреса для отправки Action URI не позволит устройству обрабатывать запросы.

Автопровижининг: features.action_uri.enable = значение,
где значение — цифра 0 (отключено) или 1 (включено).

Разрешить удаленный контроль (старый веб-интерфейс)
Разрешить удаленный контроль (старый веб-интерфейс)

Разрешить удаленный контроль (новый веб-интерфейс)
Разрешить удаленный контроль (новый веб-интерфейс)

Запросы Action URI могут генерироваться сервером или отправляться пользователем из браузера. В этой статье мы подробнее рассмотрим второй вариант.

Для отправки команды через браузер необходимо ввести ее в адресной строке браузера.

Формат команды: http(s)://IP-адрес телефона/команда

После ввода команды и нажатия клавиши Enter отобразится окно, запрашивающее данные для авторизации. Для авторизации необходимо использовать логин и пароль администратора (по умолчанию admin/admin).

Важно: при первом запросе с любого уникального разрешенного IP-адреса на экране телефона появится сообщение "Разрешить удаленный контроль?". Необходимо предоставить разрешение, нажав клавишу ОК.

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

Автопровижининг: features.show_action_uri_option = значение,
где значение — цифра 0 (отключено) или 1 (включено).

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

Также можно отправить авторизационные данные прямо в запросе:

http(s)://логин:пароль@/команда

Пример:
http://admin:admin@192.168.5.150/servlet?key=reboot

Это удобно в рамках экономии времени или при отправке запросов, сгенерированных сервером.

Формат запроса и наиболее полезные команды

Введите команду в адресную строку браузера:

http://IP-адрес телефона/screencapture

Выполните захват трафика с помощью Wireshark.

Как понятно из скриншота ниже, телефон обрабатывает запросы так же, как и обычный http-сервер (которым он, собственно, и является в данном примере):

На скриншоте первый запрос GET от браузера не содержит авторизационных данных. Ответ телефона на этот запрос: Unauthorized (требуется авторизация). Пользователь предоставляет нужные данные, вводя их вручную в окне браузера. Браузер посылает второй запрос GET, но уже с авторизационными данными. Ответ сервера: 200OK (запрос обработан успешно).

Примеры полезных команд и сценарии их применения

Команда: http://192.168.5.150/servlet?key=Reboot
Действие: перезагрузка устройства. С помощью сервера можно настроить перезагрузку по расписанию.

Команда: http://192.168.5.150/screencapture
Действие: снимок экрана. Позволяет администратору просматривать состояние экрана телефона сотрудника.

Команда: http://192.168.5.150/servlet?key=DNDOff
Действие: отключение функции "Не беспокоить".

Команда: http://192.168.5.150/servlet?key=number=1006
Действие: совершение исходящего вызова с телефона. Аналогично вызову из веб-интерфейса телефона.

Команда: http://192.168.5.150/servlet?key=AutoP
Действие: форсированный запуск процедуры автопровижининга.

Команда: http://192.168.5.150/servlet?phonecfg=set[&features.usb_call_recording.enable=1][& features.auto_recording.enable=1]
Действие: внесение изменений в конфигурацию телефона. Позволяет администратору менять параметры настройки телефона.

Команда: http://192.168.5.150/servlet?key=AlwaysFwdOn=79123456789
Действие: установка переадресации по неответу на указанный номер.

Дополнительно: таблица команд

Команда

Значение

Действие

key=

OK

Нажатие клавиши "ОК"

ENTER

Нажатие softkey-клавиши "Enter/Вход"

SPEAKER

Переключиться на громкую связь

F_TRANSFER

Трансфер вызова

VOLUME_UP

Увеличить громкость

VOLUME_DOWN

Уменьшить громкость

MUTE

Отключить микрофон

F_HOLD

Удержание вызова

HOLD

Удержание вызова

F_CONFERENCE

Конференц-вызов

Cancel/CANCEL

Отменить действие, завершить вызов

X

Отменить действие, завершить вызов

0-9/*/#

Нажатие клавиши номеронабирателя

L1-LX

Активация DSS-клавиши X

LX_LONGPRESS

Длительное нажатие DSS-клавиши X

F1-F4

Нажатие softkey-клавиши 1-4

MSG

Вызов меню электронной почты

HEADSET

Переключиться на гарнитуру

RD

Повторный набор

UP/DOWN/LEFT/RIGHT

Клавиши навигации "Вверх/Вниз/Влево/Вправо"

BACK_IDLE

Возврат на экран ожидания

Reboot

Перезагрузка устройства

AutoP

Запуск автопровижининга

DNDOn

Активация DND

DNDOff

Отключение DND

number=xxx&outgoing_uri=y

Набор номера xxx

OFFHOOK

Поднять трубку

ONHOOK

Положить трубку

ANSWER/ASW/Asw

Ответить на вызов

Reset

Сбросить настройки телефона

ATrans=xxx

Сопроводительный трансфер на номер xxx

BTrans=xxx

Слепой трансфер на номер xxx

ATrans=callid_A@callid_B

Соединить 2 активных вызова и покинуть оба разговора

CallWaitingOn

Включить функцию ожидания вызова

CallWaitingOff

Отключить функцию ожидания вызова

CALLEND/CallEnd

Завершить вызов

SPLIT

Разбить конференц-вызов на отдельные вызовы

SWAP

Переключить активный вызов (предыдущий активный вызов будет поставлен на удержание)

ASW/CANCEL/HOLD/UNHOLD:xxx

Ответить/Завершить/Удержать/Вернуть вызов (xxx - Call ID вызова)

AlwaysFwdOn/BusyFwdOn/NoAnswFwdOn=xxx=n

Активация переадресации на номер xxx

AlwaysFwdOff/BusyFwdOff/NoAnswFwdOff

Деактивация переадресации на номер xxx

n/a

screencapture

Сделать скриншот экрана

screencapture/download

Сделать скриншот экрана и скачать его

phonecfg=get[&accounts=x][&dnd=x][&fw=x]

Получить информацию об аккаунтах, статусе DND, получить конфиг, где x - цифра 0 (не получать) или цифра 1 (получить)

phonecfg=set[&параметр конфигурации=значение]

Установить параметр конфигурации (можно указать несколько параметров)

phonecfg=get[&параметр конфигурации]

Получить значение параметра конфигурации (можно указать несколько параметров)

Комментарии (2)


  1. eskimomuffin
    00.00.0000 00:00

    Добрый день! Спасибо, очень полезная статья.
    Подскажите, а можно ли настраивать кнопки через веб запросы на модуле расширения EXP43, подключенные к T46U?


    1. Catherine_Romanova Автор
      00.00.0000 00:00

      Добрый день!

      Можно, через phonecfg=set
      Пример: http://servlet?phonecfg=set[&expansion_module.1.key.1.type=16][&expansion_module.1.key.1.value=108][&expansion_module.1.key.1.label=Василий]

      Выполнение этого запроса добавит клавишу 1 на модуле расширения 1. Тип клавиши: BLF, значение клавиши: 108, отображаемое имя: Василий.