Web call (uri2dec) open source project home page

Welcome

August 19, 2007

Приложение для обмена голосовыми сообщениями для сетей IP телефонии

Filed under: Technical notes — admin @ 7:04 pm

Разработка программного обеспечения

Приложение для обмена голосовыми сообщениями для сетей IP телефонии

(SIP софтфон)

Пояснительная записка к техническому заданию

Суть

На рисунке показаны ключевые элементы по интеграции sip клиента с браузером Microsoft IE:
1.Pluggable protocol. В строке Адрес встроенный протокол виден по имени ap: ap://isapi. Компонент, реализующий встроенный протокол, также перехватывает скачиваемые страницы Интернет (по протоколу http) и поэтому может собирать ссылки с посещаемых страниц с адресами вида sip:me@commandus.com. В браузер могут подключаться кнопки. На рисунке показана кнопка CALL! Перехват ссылок со страницы позволяет произвести звонок. Преимущества для пользователя – он не связывает инициацию звонка с SIP адресами, с его точки зрения он осуществляет «звонок на сайт». Реализация для Vista требует изучения, так как есть вероятность того, что новые версии IE не позволят загружать COM объекты из за усиления борьбы (возможно, потребуется приобретение сертификата от MS для подписывания COM объектов). В Windows XP, 2000, 2003 все работает. (Пока).
2.Из других (офисных) приложений адреса sip:me@commandus.com могут вызваться, но Office, например, выводит предупреждение об опасности таких ссылок. Вообще из любого места (например, из меню Пуск->Выполнить, из строки Проводника) Есть баг в обработчике (протокол обрабатывается, но не может подгрузить некоторые библиотеки. Это исправимо.
3.Кнопка CALL! в панели инструментов “Обычные кнопки” для быстрого вызова sip клиента (с передачей списка обнаруженных ссылок). Должна бы загораться, если найдет JPEG или sip- адрес. Но из за внутренней архитектуры браузер не передает в потоки COM объектов подключаемых кнопок нужную информацию. В принципе, поток кнопки может самостоятельно анализировать ВСЕ открытые браузеры IE, но это плохо, так как неоправданно нагрузит компьютер. Такой анализ можно сделать, ПОСЛЕ нажатия через посредство COM объекта, анализирующего контент страницы.
4.В веб мастер какого то узла Интернет может разместить банеры с JPEG изображеними с внедренными тегами (/sip.jpg), содержащими sip адреса. Для оператора SIP телефонии это реклама. Чтобы заставить размещать такие веб кнопки, в клиенте реализуется функция «звонок на сайт/домен». С точки зрения пользователя, ему более привлекательно осуществлять звонок не на адрес SIP оператора, а на свой собственный домен (сайт). Большинство пользователей вряд ли пожелают или смогут модифицировать DNS записи для переадресации со своего домена на домен оператора SIP (то есть, осуществить переадресацию средствами записей DNS с MyCorporate.com на ACMESipOperator.com) и без получения «глобальных» E.164 номеров. Нужен для того, чтобы пользователь мог легко добавить ссылку на телефон, без обрамления <a href=”sip: и софттелефон мог взять так же, как берет иконки для адресной строки (favicon.ico) без загрузки главной страницы (которая может и не содержать логотип)

5.В окне браузера показывается отчет о звонках (нарисовано немного не то, но это тоже отчет, из другого приложения (прокси сервер для RSS/ATOM/Blog). В показанном случае данные берутся из РСУБД FireBird 2.0)
6.Так как HTML страница сканируется на наличие <a href=”sip: .., и имеется возможность замены текста, то их можно подменить на более красивые или видимые; например, заменять ссылки конкурентов на свои ;), но это может вызвать опасения со стороны пользователей, что контент подменяется. Но замену части баннеров стандартных размеров на свои можно делать, как опцию банерорезки очень осторожно, так как легко можно потерять доверие, если подмена обнаружится.
7.Так как интерфейс очевидно простой (строка для ввода номера и большая красная кнопка), софтфоны обычно имеют скины, не повышающие удобство пользования, но подсказывающие пользователю назначение программы. Это, видимо, то, что ожидает пользователь. В противном случае получаем IM. Грань между ними очень тонкая, а IM забит монстрами. Поэтому, это фактически единственное отличие, и то чисто внешнее. Можно экран нарисовать в HTML редакторе с javascript, передающим сообщениями Windows нажатия кнопок. На рисунке вверху иконки PDF это как раз делают – и загруженная программа с нужным окном генерирует PDF, Word или Excel. В случае с SIP клиентом- набирает номер, поднимает и кладет трубку.
8.Рисование топовых моделей телефонов – это реклама (телефонов). Не забыть поставить линки на «Купить такой телефон» ;)

Проблемы
1.Если PC подключен к сети через аппаратный SIP телефон, пакеты останутся на телефоне и не пойдут на PC. Прозрачен ли аппаратный SIP телефон? Часть может быть прозрачной, навороченные могут не пропускать (и ни снаружи, и не изнутри). Но остается вероятность что для большинства аппаратных телефонов инициирование с PC произойдет успешно, а зазвонит аппаратный телефон. Это уже фича ;) позволяющая набирать номер на PC а получать звонок на аппаратный телефон.
2.Встроенные протоколы каскадируются, поэтому чтобы заблокировать других клиентов, можно после нахождения <a href=”sip: изменять на <a href=”shut-up:, чтобы вырубить «не своих» клиентов. Порядок вызова обработчиков, скорее всего определяется положением в реестре Windows, потому надо загенерить GUID «помладше».
3.Другие браузеры. Их слишком много… Из трея можно быстро звонить (просто выполнив ShellExecute тем самым передав все это обработчику MSIE и далее в клиент SIP)
4.Большая часть компаний, имеющих веб сайты и SIP аккаунты имеют несовпадающие домены, и часть из них хотела бы иметь SIP адреса в том же домене, что и сайт компании. Однако, хостинг чаще не предоставляет возможность развернуть SIP сервер и, более того, часто не позволяет управлять DNS записями в полном объеме, с тем, чтобы связать какой то из поддоменов (например, sip) на другом IP, чтобы направить звонки на SIP провайдера. Частично эта проблема может разрешаться предлагаемой схемой получения реального SIP адреса с веб сайта (JPEG файлы), что софтфон может легко сделать (попробовать соединиться с sip:alice@atlanta.com, не обнаружив там SIP сервера, запросить по http с http://atlanta.com/sip.jpg и извлечь из тегов alice=sip:12234@siphoster.com). SIP адрес может, конечно, содержать адрес SIP прокси и регистратора, но Инициатор звонка об них не догадывается.
5.В меморандуме перечисляются некоторые существующие другие проблемы, как приземление в зонах, ENUM И DUNDI, связанные, в частности, с проблемами нумерации и ввода sip адресов на sip телефонах, возникающие при передаче звонков от одного SIP сервера другому. Подготовлен черновик RFC для “прямого” преобразования вводимых номеров в SIP адреса с тем, чтобы передавать звонки. Однако эти номера очень длинные- в два раза длиннее sip адреса. В черновике RFC описывается получение обратных адресов, более удобных для запоминания, что немного упрощает задачу запоминания адресов. Идея обсуждалась в IETF, в целом идея не получила поддержки и статус документа не получен. Тем не менее, алгоритм декодирования может быть реализован как модуль к SIP серверу и клиенту, обеспечивая возможность получения звонков для передачи в другие SIP сети с устройств с цифровой клавиатурой без необходимости прописывания маршрутов. Для оператора IP телефонии это может быть привлекательно в случае, если помимо своей нумерации он позволяет и поощряет пользователей адресовать звонки через пользовательские домены (через DNS или как описано выше). Но через шаговую АТС все одно не набрать и не перекинуть… Надо также учитывать, что такие звонки всегда являются эпизодическими, а именно, проблема возникает тогда, когда Пользователь инициирует первый звонок и ему нужно ввести адрес на номеронабирателе, так как не существует другого иного способа. Поскольку sip адреса берутся, скорее всего из веба на PC, эту проблему лучше разрешить путем инициации сессии с PC, где будет указан получатель – аппаратный телефон. Тема совместного использования аппаратного и софтфона требует последующего изучения.
6.Проблема контекста звонков. Более подробно проблемы контекста рассматриваются в документе cFrame Inc. Executive Summary Introducing “Context Messaging”. Там же рассматриваются существующие примеры, как ZapLet. Частично эта проблема может разрешена с использованием журнала звонков, где отмечается тема голосового сообщения. Тема голосового сообщения может быть извлечена из инициирующей программы (почтовой программы, например), но это сопряжено с трудностями реализации. Скорее, лучше реализовывать специализированные клиенты под конкретные предметные области, что и рекомендовано Microsoft. Примерами могут быть – прайс листы, каталоги товаров, аксессуаров, услуг и запчастей, системы заказов, аукционы, голосования, службы поддержки, в том числе – пользователей программ, call центры, где покупка отличается нечеткой формализацией (например, требуется много переговоров) для взаимодействия с клиентами или смежными предприятиями. Проблема контекста, скорее всего, преждевременна.
7.Microsoft RTC Client API предлагает дополнительные функции, как совместно используемые приложения. Похоже, они могут быть реализованы только с SIP сервером от Microsoft Live Communications Server 2003 или Microsoft Office Live 2005 Standard Edition (поставляется с клиентами).
8.Выход на сети стационарной и мобильной голосовой связи. На самом деле, так как современные АТС поддерживают SIP, это становится больше проблемой нумерации и владения зонами и пулами в них, нежели определяется высокой стоимостью аппаратных средств для стыковки с ним по модемам, линиям T1 или IDSN. Это область мини-АТС (имея в виду приземление внутри зон). Некоторые мини-АТС имеют порты для SIP и аналоговых телефонных линий, а также WiFi точки доступа. Многие компании продолжают использовать факсимильную связь, и этим аппаратам не хватает функции fax->email. Для мини-АТС с SIP можно считать характерным сложность инициации сессий в случае, если он расположен за файрволом Интернет провайдера, что дает преимущество ISP и SIP серверам на выделенных серверах. Такие функции могут оказаться востребованными и в клиентах через серверы провайдера IP телефонии (как факс шлюзы).
Заключение
С точки зрения пользователя, на мой взгляд, в Windows клиенте должны быть реализованы утилитарные функции:
1.Большие красные кнопки “Позвонить в офис”, где только возможно (опять же, это всего лишь .lnk файлы – но ими всеми нужно управлять: исправлять адреса, рассыпать в меню и на рабочем столе)
2.Исследовать возможность функции “коротких” звонков, переносящая концепции IM. Например, нажав кнопку абонента, говорим, пока удерживаем ее. Отпускаем кнопку – разрыв соединения. Удобна, например, для внутриофисных переговоров. Но при первом опыте, такая концепция пользователем не воспринимается с ходу.
3.История звонков
4.Интеграция с Active Directory и LDAP
5.Взаимодействие с указанными аппаратными телефонами
6.Проталкивание контента. Например, в момент разговора можно открыть IM сессию и передать абоненту прайс-лист.

Продвинутая или наоборот “облегченная” версия может иметь функции для контроля за звонками сотрудников со стороны менеджмента.
Больше внимания должно быть уделено “красивости” в смысле брэндовости SIP оператора.
Имеется макет приложения, использующего Microsoft RTC Client API через wrapper для Delphi, макеты для интеграции с MSIE.

No Comments

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

About Us | Site Map | Privacy Policy | Contact Us | Copyright © 2007-2011 Commandus software development group . All rights reserved. Powered by WordPress