SIP-телефоны.
Компьютеры с телефонной трубкой.
Теоретически с ними можно многое сделать, но используются они только для звонков :-) Я недавно был на конференции AsterConf, и там производители рассказывали о своих телефонах, не будем никого выделять, они все хорошие, кто-то лучше, кто-то дешевле, по сути они делают одно и то же.
Некоторые производители улучшают качество звука, некоторые добавляют Android-планшет, некоторые пытаются добавить какие-то приложения.
И все для того, чтобы мы установили эти телефоны на свои рабочие столы.
И, возможно, телефоны — хорошие кандидаты на роль пульта дистанционного управления в мире IoT: нажмите кнопку и получите результат. И, по моему скромному мнению, не хватает простого способа подключения телефонов к вашему менеджеру.
В рамках этой статьи я хочу показать, как это может выглядеть в простом виде, с помощью схемы и видео-демонстрации.
Поделитесь, пожалуйста, в комментариях, что нечто подобное, возможно, где-то уже реализовано, или добавьте свои предложения и мысли.
Телефоны имеют интерфейсы Action URL и Action URI. URL-адрес действия позволяет нам отправлять различные события на любой URL. В URL мы можем указать предустановленные переменные, которые при вызове будут заполняться реальными данными.
Вот как выглядит, например, настройка моего телефона.
онлайн-конструктор URL-адресов действий для Yealink URI действия позволяет нам получать команды на IP-адрес телефона и телефон может совершать звонки, отвечать на звонки по команде, увеличивать громкость, перезагружаться и т. д. На видео ниже вы можете увидеть, как все это происходит. Мы должны указать адрес, с которого будут приходить команды.
Все настроено, в чем проблема, бро?
Это вполне функциональные интерфейсы, но.
их достаточно сложно интегрировать.
Те.
нам нужно выполнить 100 500 действий, чтобы это сработало.
Либо заполняйте 100 полей в настройках устройства (сами можете убедиться на скриншоте), либо заморачивайтесь с инициализацией и прописывайте какие-то шаблоны конфигурации.
В результате происходит довольно много действий, в которых легко ошибиться и не получить желаемого, а потом потратить массу времени, пытаясь разобраться в причинах неадекватного поведения устройства.
И ничего страшного, если вы справитесь с одним, но у вас их пять, десять или сотня, причем пара производителей и тоже модели разных поколений.
Фу-пуф-пуф.
Это проблема? Нужно ли кому-то управлять телефоном абонента? Самому абоненту? Со своего компьютера, ноутбука или смартфона? Техническая поддержка? И внутренний, и внешний, например провайдер виртуальной АТС? Нужен ли мне доступ к телефону, кроме SIP? Интегрируйте свой телефон с приложениями, минуя IP-АТС? Не могу ответить однозначно, есть плюсы и минусы.
И чтобы реализовать преимущества, мне бы хотелось иметь возможность быстро подключать Action URL и Action URI к моему «Менеджеру».
Под менеджером я подразумеваю сервер, с которого я могу централизованно увидеть список телефонов, их статус и выполнить какое-то доступное действие с любого из них.
Давайте посмотрим на схему.
Представьте, что у нас на телефоне есть клиент веб-сокетов.
Дальше нам нужно лишь указать сетевой адрес «Менеджера» в нашем телефоне и наш телефон подключится к нему.
При подключении телефон отправит свой идентификатор, имя и Mac. Это позволит нам сравнить его, например, с нашим списком абонентов АТС.
Тогда мы будем подписываться на события, которые происходят на телефоне.
Их довольно много, это перерегистрации, ответ на звонки, нажатие кнопок и т.д. Далее мы можем набрать номер у нашего Менеджера, отправив команду.
Либо установите DND, либо удалите DND. Затем я отправляю уведомление или напоминание на телефон и устанавливаю новый логотип.
А как насчет безопасности? В целом SIP-телефоны могут работать за NAT и не требуют внешнего адреса.
А вот если вы выставите порт веб-сервера телефона в сеть Action URI (где, кстати, тоже работает админка), ждите неприятных сюрпризов.
А вот если телефон подключается к «Менеджеру» через вебсокеты, то это его инициатива и его право, он может отключиться, а если подключиться к удаленному серверу за счет NAT, то это будет похоже на подключение через браузер.
Хватит слов, перейдем к делу.
Я написал небольшой телефонный клиент (по моей задумке он должен быть в телефоне), который подключается к серверу через вебсокет. К этому серверу также подключен браузер, который может принимать сообщения с телефона и отправлять туда команды.
Клиент — это просто оболочка для URL-адреса действия и URI действия, который работает с телефоном, используя его обычные интерфейсы, и упаковывает все данные в веб-сокет. Мы используем веб-сокеты для отправки обычных сообщений JSON, с которыми может работать любой веб-разработчик.
Посмотрите видео, это довольно просто.
Весь код довольно минимален, просто чтобы продемонстрировать концепцию.
Что происходит на видео?
- запускаем сервер, принимающий соединения через вебсокеты,
- запустить клиент (который работает через URL-адрес действия и URI с телефоном)
- клиент подключается к серверу
- запускаем веб-сервер (со страницей с кодом для подключения из браузера через вебсокеты)
- откройте страницу в браузере, страница подключается к серверу
- Отправляем запрос информации со страницы
- запрос проходит всю цепочку к телефону и возвращается информация о телефонных линиях
- мы также можем отправлять разные команды
- включая команду позвонить
- а затем команда повесить трубку
- все данные видны в логе на странице, а также в консоли работающего сервера и клиента телефона
- тогда вы сможете увидеть, как телефон реагирует на команды со страницы
И любой разработчик может общаться из вебсокетов в другое представление и обратно.
В моем случае к Менеджеру подключена просто страница.
В целом это может быть более сложная система, которая будет обрабатывать команды и отправлять сообщения на телефон.
Простой способ подключения может быть удобным и, следовательно, более простым в освоении.
Через этот интерфейс теоретически можно отправлять новые конфигурации и дополнительные сообщения, что позволяет легко интегрировать телефон в любую инфраструктуру.
В общем, это всего лишь мои мысли после просмотра новинок на Asterconf. Буду рад увидеть плюсы и минусы в комментариях.
И возможно кто-то из производителей увидит в этом рациональное зерно и внедрит особенность :-) Проект на GitHub Теги: #Интернет вещей #мессенджеры #Разработка систем связи #node.js #websockets #asterisk #sip #voip phone
-
Как Мобильные Веб-Блоги Приносят Вам Трафик?
19 Oct, 24 -
Яндекс Против Шокирующей Рекламы
19 Oct, 24 -
Microsoft Выпустила P2P-Клиент Для Windows 7
19 Oct, 24 -
Google Требует Отдать Тв-Частоты Под Трафик
19 Oct, 24 -
Краткая Инструкция: Github Через I2P
19 Oct, 24