Если у вас где-то в углу неприкаянно грустит телефон компании Polycom – не спешите от него избавляться! Он еще сможет вам послужить. По крайней мере ковыряние с ним может доставить массу удовольствия. Все нижеописанное тестировалось на устаревшей модели Polycom SoundPoint IP 450(от 1500 рублей за БУ на ebay), но также подходит и для большинства более современных моделей т.к. все они работают под управлением одной и той-же операционной системы – UC.
Да, именно так и вы не ослышались – даже древний офисный телефон работает под управлением проприетарной ОС.
Итак, что-же полезного и интересного можно сделать с телефоном Polycom в домашних условиях:
Вывод полезной информации на экран телефона и использование внутреннего браузера
SIP телефония & Lync integration(Skype for Business) – для SIP моделей
Интеграция с Google Chrome – набор номера через расширение для google chrome
Кастомизация UI телефона
Интеграция с LDAP и AD и использование телефонных книг
Итак, обо все по прядку.
Встроенный браузер
Большинство моделей телефонов polycom оснащены тем или иным экранчиком, а прошивка поддерживает xhtml-браузер. У браузера есть 2 режима работы: idle – отображается контент во время ожидания и active – отображается контент во время использования телефона.
Телефон поддерживает только самые базовые html-теги, а также несколько собственных тегов для управления навигацией:
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/></head>
<body>
<softkey index="1" label="Back" action="SoftKey:Back" />
<softkey index="2" label="Weather" action="SoftKey:Fetch;http://raspberrypi:88" />
<softkey index="3" label="Refresh" action="SoftKey:Refresh" />
<a href="Tel://89264341830">Taxi</a>|
<a href="Tel://89652991881">Суши</a>|
<a href="Tel://84965246699">Пицца</a>|
<br/>
<a href="Key:DoNotDisturb">DNDSettings</a>
</body>
</html>
Современные модели телефонов имеют расширенную поддержку HTML и даже умеют работать с Javascript. Используя встроенный браузер телефона довольно легко каcтомизировать UI/UX под свои предпочтения. В моем случае - это отображение прогноза погоды на основе Yandex Weather API и несколько статических страниц с наиболее часто используемыми телефонами.
Вместо погоды можно выводить последние новости, курсы валют, биржевые индексы и т.д. В моем случае страницы размещены на raspberry PI в домашней сети, но никто не мешает их разместить на любом бесплатном сервисе.
Самый простой способ настроить работу внутреннего браузера – это зайти на внутренний сайт телефона (просто введите IP телефона и дефолтный пароль 456) и на вкладке Settings/Microbrowser вы найдете все необходимые настройки:
SIP
Если ваша модель поддерживает SIP протокол – вам открывается масса интересных возможностей.
Большинство телефонов может поддерживает несколько линий. Если у вас мегафон, то на одну линию можно завести номер мобильного телефона, предварительно подключив бесплатную услугу мультифон и переадресацию звонков на телефон и SIP как описано здесь.
Используя тариф без абонентской связи – вы получаете условно-бесплатный домашний телефон.
На второй линии у меня заведен мой личный номер мобильного телефона, который используется для исходящих звонков или для приема входящих звонков в случае проблем с сотовым покрытием. Ну а на третью линию можно подключить международного SIP провайдера и иметь за доллар или два номер в США или любой другой стране. Это позволит сэкономить колоссальные деньги на международных звонках. Настройку можно осуществить как через упоминаемый ранее внутренний сайт телефона, так и через прямое редактирование файла конфигурации телефона.
Чтобы выгрузить файл конфигурации зайдите в Utilities/Import-Export configuration в раздел Export.
Выгруженный файл конфигурации содержит все настройки телефона кроме паролей!
Информацию о содержимом файла конфигурации можно найти здесь.
В качестве альтернативы можно использовать свободную линию для подключение к Microsoft Lync серверу для интеграции со Skype For Business.
Интеграция с браузером Chrome
Пожалуй основной причиной по которой стационарные телефоны стоят без дела является их крайне неудобная интеграция с телефонными книгами, браузером и поисковиками. В рамках офиса есть возможность подключить к телефон к AD, но искать нужный контакт в телефоне – это та еще боль.
Конечно для домашнего использования можно организовать LDAP интеграцию с Google contacts или же загрузить список контактов используя provisioning, но основную проблему с ужасным UX это не исправляет.
Для решения этой проблемы я сделал небольшое расширение для Google chrome, которое позволяет выделить номер на любой страничке и стартовать звонок со стационарного телефона.
Телефоны Polycom поддерживают, так называемые, интеграционные вызовы, когда отправив POST запрос извне на телефон можно заставить его выполнить то или иное действие: Позвонить на указанный номер, перейти в режим «Не беспокоить», включить переадресацию, вывести сообщения на экран и т.д. и т.п.
К примеру такой запрос эмулирует нажатие кнопки Status на телефоне:
curl --digest -u Push:Push -d "<PolycomIPPhone><Data priority=\"All\">Key:Status</Data></PolycomIPPhone>" --header "Content-Type: application/x-com-polycom-spipx" -v http://192.168.0.226/push
А такой стартует звонок по указанному номеру на линии 1.:
curl --digest -u Push:Push -d "<PolycomIPPhone><Data priority=\"All\">tel:\\2222222;Line1 </Data></PolycomIPPhone>" --header "Content-Type: application/x-com-polycom-spipx" -v http://192.168.0.226/push
Соответственно – все что требуется реализовать в расширении – решить нетривиальный вопрос Digest аутентификации в JS, прочитать выделенный текст по вызову из контекстного меню и отправить Post запрос в телефон.
Предварительно необходимо разрешить интеграционные вызовы в телефоне. Зайдите в раздел Settings/Applications/Push и выберите All в разделе Allow Push Message и не забудьте указать логин и пароль для авторизации вызовов. Без этого работать не будет.
В работе это примерно так:
Исходники расширения здесь а само раширение ищите в Google Chrome Extension Store.
Настройка UI телефона
UI Телефона поддается некоторой кастомизации. Кроме замены фона(на ЧБ экране это все равно выглядит ужасно) и отображения web- страниц во встроенном браузере -можно переназначать действие кнопок навигации, предварительно разрешив их переопределение с помощью этих ключей в конфигурации телефона.
feature.enhancedFeatureKeys.enabled="1"
feature.EFKLineKey.enabled="1"
Несколько примеров подобного переопределения:
Открытие странички с погодой во внутреннем браузере телефона:
softkey.1.action="http://192.168.0.228:88"
softkey.1.enable="1"
softkey.1.label="Инфо"
softkey.1.use.idle="1"
Переход в режим DoNotDesturb
softkey.1.action="Key:DoNotDisturb"
softkey.1.enable="1"
softkey.1.label="DnD"
softkey.1.use.idle="1"
Вызов 1-го контакта из списка быстрого набора
softkey.3.action="$S1$"
softkey.3.enable="1"
softkey.3.label="Такси"
softkey.3.use.idle="1"
Более подробную информацию о переназначении софтверных кнопок можно подчерпнуть здесь.
Телефон также поддерживает т.н. push сообщения, когда он сбрасывает на указанный адрес сообщения для выбранных событий, но практического применения данной функциональности в домашних условиях я не нашёл.