Телефоны Yealink могут получать и обрабатывать запросы HTTP GET. Функция обработки запросов получила название Action URI. Action URI можно использовать в заголовках сообщений SIP NOTIFY (Event: ACTION‑URI) или в прямых запросах HTTP GET. При получении URI IP‑телефон выполнит указанное действие и ответит сообщением 200OK. Запрос HTTP GET может содержать переменную с именем «key» и значение переменной, разделенные символом «=». Этот функционал открывает широкие возможности для интеграции корпоративных систем управления и мониторинга с телефонами Yealink, а также используется для управления телефоном с помощью функции CTI.  Откройте веб-интерфейс телефона.  Веб-интерфейс: Функции –> Контроль подключенийАвтопровижининг: 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[&параметр конфигурации] 	  		 Получить значение параметра конфигурации (можно указать несколько параметров)