CommuniGate Pro. Ваша лаборатория объединенных коммуникаций::Журнал СА 7-8.2014
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

Принципы проектирования  

Dependency Inversion Principle. Принцип инверсии зависимостей в разработке

Мы подошли к последнему принципу проектирования приложений из серии SOLID – Dependency

 Читать далее...

Рынок труда  

Вакансия: Администратор 1С

Администратор 1С – это специалист, который необходим любой организации, где установлены программы

 Читать далее...

Книжная полка  

Книги для профессионалов, студентов и пользователей

Книги издательства «БХВ» вышли книги для тех, кто хочет овладеть самыми востребованными

 Читать далее...

Принципы проектирования  

Interface Segregation Principle. Принцип разделения интерфейсов в проектировании приложений

Эта статья из серии «SOLID» посвящена четвертому принципу проектирования приложений – Interface

 Читать далее...

Книжная полка  

Секрет успешных людей

Книги издательства «БХВ» по ИТ рассчитаны на разные категории читателей: от новичков

 Читать далее...

Учебные центры  

Карьерные мечты нужно воплощать! А мы поможем

Школа Bell Integrator открывает свои двери для всех, кто хочет освоить перспективную

 Читать далее...

Гость номера  

Дмитрий Галов: «Нельзя сказать, что люди становятся доверчивее, скорее эволюционирует ландшафт киберугроз»

Использование мобильных устройств растет. А вместе с ними быстро растет количество мобильных

 Читать далее...

Прошу слова  

Твердая рука в бархатной перчатке: принципы soft skills

Лауреат Нобелевской премии, специалист по рынку труда, профессор Лондонской школы экономики Кристофер

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 11252
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 9505
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 9554
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5975
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6684
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 3978
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2903
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3704
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3714
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6204
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3055
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3359
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7171
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10552
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12264
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13901
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9033
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 6996
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5304
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4532
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3345
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

Друзья сайта  

 CommuniGate Pro. Ваша лаборатория объединенных коммуникаций

Архив номеров / 2014 / Выпуск №7-8 (140-141) / CommuniGate Pro. Ваша лаборатория объединенных коммуникаций

Рубрика: Разработка /  Продукты и решения

Дмитрий Акиндинов ДМИТРИЙ АКИНДИНОВ, технический директор компании «СталкерСофт»

CommuniGate Pro
Ваша лаборатория объединенных коммуникаций

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

Сегодня электронная почта, пожалуй, является основным способом передачи сообщений в бизнес-среде. Именно бизнес – главный потребитель информации и готов за нее платить, а ценность информации определяется ее полнотой и новизной, то есть в конечном счете объемом и скоростью передачи. Соответственно разнообразные методы коммуникации, используемые человеком, можно оценить по двум важнейшим параметрам: степени интерактивности и насыщенности. Очень часто интерактивные методы (прямое общение, телефонные и видеоконференции, срочные сообщения) выигрывают в скорости, но часто в ущерб возможностям архивирования и протоколирования, а также полноте передаваемой информации.

Развитие вычислительных средств и сетевых технологий позволило оцифровать и компьютеризировать старые аналоговые технологии, в частности, телефонии и дать вторую жизнь телеграфу и телетайпу в виде протоколов передачи мгновенных сообщений. Мы научились использовать метаданные, вроде состояния «занят/свободен», и дополнили телефонию живыми картинками, но так и не придумали средства сообщения, способного заменить все остальные. Старая добрая электронная почта все еще нужна для регистрации в очередной социальной сети, «решать вопросы» все еще проще по телефону, от вроде бы удобных систем «мгновенных сообщений» все чаще хочется спрятаться за статусом «улетел, но обещал вернуться». И, пока не придумано новое универсальное средство общения вроде передачи мысли на расстоянии (было бы что передавать, а то и на 140 символов наскрести не получается), выход только в объединении уже известных средств коммуникации и изобретении новых способов их совместного использования на стационарных и мобильных платформах.

Unified Communications

Системы объединенных коммуникаций традиционно строятся вокруг своих наиболее технологичных/сложных компонент. Обычно ядром становится подсистема обработки сигналов реального времени и IP-телефонии. К ним можно отнести Cisco Unified Communications, Avaya Aura, продукты других известных компаний, чьи интересы изначально лежали в области телефонии. Компания Microsoft, очевидно, имеет сильные позиции в вопросе интеграции своих UC-решений с операционной системой и ее приложениями. Кто-то идет путем добавления возможностей VoIP-телефонии в системы совместной работы (groupware). В общем, на рынке существует множество готовых решений для построения систем объединенных коммуникаций, но, как любые готовые решения, они имеют определенные границы функционала и области применения. Очень сложно использовать такие системы способами, не предусмотренными производителем. Оттого часто собираются серверы объединенных коммуникаций из отдельных компонент, в том числе из программного обеспечения с открытым исходным кодом. Но строительство такого комплекса само по себе является серьезным проектом. Только для экспериментов по управлению маршрутизацией VoIP-звонков с помощью SMS или оповещения о новой почте через IM подобную систему строить накладно. Но выход есть: CommuniGate Pro.

CommuniGate Pro

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

Рисунок 1. CommuniGate Pro – сервер объединенных коммуникаций

Рисунок 1. CommuniGate Pro – сервер объединенных коммуникаций

В последнее время продукт довольно часто используется и в качестве SIP-регистратора, прокси и даже телефонного софтсвитча. Помимо почты и телефонии сервер поддерживает много дополнительных протоколов, и работают они не сами по себе, а в цельной инфраструктуре, которая включает в себя хранилище данных для аккаунтов (как структурированных, в виде почтовых ящиков, так и для файлов вообще), с разграничением прав доступа и безопасной аутентификацией. Для всех сетевых протоколов в сервере поддерживается шифрование средствами SSL/TLS.

CommuniGate Pro – уникальное высокопроизводительное решение с большим количеством стандартных протоколов, реализованных
на передовом уровне

Достаточно сказать, что платформа умеет передавать и принимать сообщения e-mail, предоставлять доступ к хранимым данным по стандартным протоколам (от IMAP и FTP до ActiveSync и CalDAV), имеет встроенный веб-клиент для работы с почтой, календарями и контактами, встроенные тонкие клиенты для объединенных коммуникаций на технологиях Adobe Flash, Adove Air и HTML5 c WebRTC.

Доступны протоколы сигнализации SIP, XMPP, SMPP, поддерживается терминирование аудиопотоков по протоколам RTP и SRTP, при этом ядро сигнальных протоколов способно управлять проксированием медиаданных, что позволяет использовать CommuniGate Pro в качестве TURN-сервера.

В дополнение ко всему этому богатству есть еще STUN, LDAP, RADIUS, SNMP и другое. И, наконец, унифицированный клиентский протокол XIMSS (о нем чуть позже).

Но не это обилие протоколов делает CommuniGate Pro удобным средством поиска и отработки идей в области объединенных коммуникаций. Именно возможность совместного использования различных способов обмена данными позволяет достичь максимального синергического эффекта.

Средства выполнения сценариев на стороне сервера

Говоря о совместном использовании протоколов в CommuniGate Pro, важно упомянуть особенность обработки запросов в протоколах реального времени: вне зависимости от протокола (SIP, XMPP, SMPP, XIMSS) внутри сервера запрос представляется в виде унифицированного объекта Signal. Он построен по образу разобранного запроса по протоколу SIP и обладает фиксированным набором стандартных атрибутов: метод, URI запроса, URI To/From и прочее. Метод – тип запроса в протоколе SIP, но мгновенные сообщения, принятые по протоколу XMPP, будут тоже представлены в виде объекта Signal с методом MESSAGE. Такая унификация уже позволяет прозрачно «шлюзовать», например, мгновенные сообщения от одного клиента по протоколу SIP другому по протоколу SMPP (то есть в виде SMS) или перенаправлять по определенным правилам (весьма похожим на простые почтовые) звонки VoIP и мгновенные сообщения на другие адреса.

А дальше – еще интереснее: в качестве получателей объектов Signal в CommuniGate Pro могут выступать другие специальные объекты: узлы обработки объектов Signal – PBX-задачи.

Задача PBX представляет собой миниатюрный VoIP или IM-клиент, в котором есть механизмы приема входящих (UAS в терминологии SIP) и создания исходящих (UAC) объектов Signal, медиаканал для приема и генерации медиаданных и, самое интересное, орган управления этим хозяйством в виде интерпретатора сценариев на специальном языке CG/PL.

Рисунок 2. Задача PBX

Рисунок 2. Задача PBX

Вполне ожидаемо, что язык CG/PL предоставляет методы для перенаправления входящих VoIP-звонков (RedirectCall, ForkCall), приема (AcceptCall), запуска исходящих звонков (StartCall), генерации медиаданных (Play, PlayFile) и сохранения входящих медиаданных (Record).

Задача PBX может запускать другие задачи (Spawn), посылать им сообщения-события (SendEvent) и принимать их от других задач и самого сервера (ReadInput). Кстати, DTMF-сигналы и мгновенные сообщения приходят в задачи PBX именно в виде таких событий. События позволяют нескольким сценариям работать совместно и обслуживать при этом несколько VoIP-диалогов в рамках одного логического звонка. Например, стандартным способом обработки звонков является использование Back-to-back User Agents (B2BUA), и в CommuniGate Pro такие структуры реализуются именно в виде CG/PL-скриптов: один занимается приемом входящего звонка, второй – созданием исходящего. Механизм событий используется ими для передачи параметров и переключения работы медиаканалов в режим проксирования медиаданных удаленных клиентов.

Рисунок 3. Механизм событий

Рисунок 3. Механизм событий

Вариантом работы медиаканалов и задач PBX является подключение к медиаканалу одной задачи нескольких медиаканалов других задач и клиентов, что используется для построения аудиоконференций, записи звонков и реализации функций типа «шепот» (когда только один из участников конференции слышит другого особого участника).

Рисунок 4. Вариантом работы медиаканалов и задач PBX

Рисунок 4. Вариантом работы медиаканалов и задач PBX

Во время работы сценарии сами определяют, какое время необходимо дожидаться следующего события, и могут периодически использовать другие функции языка CG/PL, доступные в среде выполнения задач PBX. А их довольно много: посылка запросов по протоколу RADIUS (метод RADIUSCall) и по протоколу HTTP (HTTPCall), поиск в локальной и внешних LDAP-директориях – в любой момент в начале, в конце и во время обслуживания звонка VoIP. Набор доступных методов включает в себя также функции работы с данными аккаунтов, чтения почтовых ящиков, календарей и контактов, отправки сообщений e mail и мгновенных сообщений, записи и чтения файлов и даже управления настройками аккаунтов и всего сервера.

Например, достаточно очевидным образом реализуется следующий сценарий обработки входящего звонка: запрос во внешнюю систему CRM (по HTTP), создание B2BUA c локальным пользователем и передача ему данных из CRM в виде мгновенного сообщения. При этом не требуется использование специальных клиентов на стороне пользователя: звонок принимается обычным SIP-телефоном, IM принимается в XMPP-клиенте. По окончании звонка можно сформировать e mail с данными клиента, записать факт звонка в CRM и в локальный текстовый лог. Все – с помощью сценариев на языке CG/PL.

Этот же язык, но с несколько другим набором функций, может использоваться в сценариях обработки сервером запросов по протоколу HTTP, этакий облегченный CGI («настоящие» CGI-скрипты, выполняемые в среде операционной системы, сервером тоже поддерживаются). Это позволяет, например, по HTTP-запросу извне послать мгновенное сообщение или начать со стороны сервера исходящий звонок, запустив задачу PBX.

Универсальный протокол доступа XIMSS

Рассказ о возможностях CommuniGate Pro в качестве платформы для построения систем объединенных коммуникаций не был бы полным без хотя бы краткого описания многоцелевого протокола XIMSS просто потому, что именно этот протокол используется во встроенных в продукт клиентах семейства «Pronto!». Протокол несимметричный и предназначен для клиент-серверных решений, когда обработка данных выполняется полностью на сервере (например, разбор календарей и писем), а клиент получает только запрошенные данные (только название и время календарных событий за запрошенный период или только заголовки писем по определенному фильтру) и не предполагает их кэширования. Для команд, данных и результатов используется XML-представление, что упрощает реализацию протокола во многих средах программирования, где есть готовые библиотеки для разбора и создания XML. Протокол может работать как поверх соединения TCP/IP, так и инкапсулированным в протокол HTTP. Доступны библиотеки, реализующие протокол XIMSS в JavaScript, Java (для Android) и Objective C (для iOS), но не должно быть проблемой создавать и использовать сессии XIMSS и из других сред программирования.

Кроме функций доступа к данным аккаунта, протокол позволяет отправлять и принимать мгновенные сообщения, публиковать и подписываться на данные о доступности других абонентов (presence), начинать и принимать голосовые и видеозвонки. В протоколе определены методы для всех необходимых функций телефонии: прием звонка, перенаправление звонка, перевод звонка и так далее.

Надо отметить, что медиаданные не передаются через протокол XIMSS, и для организации таких звонков необходимо дополнительное обеспечение для взаимодействия с оборудованием (микрофон, камера и т.д.) и реализацией кодеков и протоколов передачи медиаданных (RTP/SRTP/DTLS). В качестве такого дополнительного обеспечения можно использовать подсистему WebRTC современных браузеров, чему примером может служить Pronto HTML5 – один из вариантов встроенного в CommuniGate Pro клиента объединенных коммуникаций.

Рисунок 5. Передача данных

Рисунок 5. Передача данных

Протокол XIMSS интересен сам по себе, поскольку в рамках единственной сессии способен предоставить пользователю доступ к данным и функциям, работа с которыми на других платформах объединенных коммуникаций потребовала бы разнообразных и довольно сложных клиентских приложений. Отдельной важной особенностью сессий по протоколу XIMSS является тот факт, что на стороне сервера с ними можно работать, как с задачами PBX, для обмена с ними событиями. С этой стороны протокол XIMSS выступает идеальным средством построения пользовательских интерфейсов для задач PBX на стороне сервера. Простейшим примером может быть мобильный клиент для управления функциями офисной PBX: клиент может быть оповещен о входящем в аккаунт звонке и даст команду на его перевод на GSM-номер; по запросу с клиента сервер может инициировать звонки на указанный номер и на GSM-номер пользователя, а потом соединить звонки (функция call-back). То есть XIMSS-клиент не обязательно должен быть полноценным VoIP-клиентом, а может просто управлять PBX-функциями на стороне сервера.

Расширение функциональности на стороне сервера

И без того богатый функциональный набор платформы CommuniGate Pro может быть еще расширен через механизм внешних плагинов. Интерфейс с сервером предельно простой: программа-плагин получает текстовые команды от сервера через свой стандартный ввод, а отвечает через стандартный вывод. Поэтому такие плагины вполне возможно реализовывать даже в виде скриптов Perl или shell. Плагины применяются для фильтрации содержимого сообщений электронной почты, обеспечения дополнительных способов аутентификации аккаунтов и контроля за изменением их настроек, обработки записей CDR и других функций.

Примеры

В дистрибутив CommuniGate Pro входят и встроенные клиенты семейства «Pronto!» и набор PBX-приложений: голосовая почта, автосекретарь, сервер конференций и управление аккаунтом через голосовые меню. Все эти CG/PL-скрипты хранятся на сервере в исходном виде, доступны для изучения и модификации. Часть скриптов предназначена именно для использования в качестве примеров, часть реализует «стандартные» функции VoIP-телефонии. Но, как показывает наш опыт, часто некоторая функция бывает более востребованной, чем сама платформа. Несколько таких решений (которые пока не входят в стандартный дистрибутив CommuniGate Pro) мы предлагаем в качестве примеров возможностей платформы.

Chat Center

Задачу общения посетителей сайта с сотрудниками отдела продаж или технической поддержки компании решают по-разному. Понятно, что для такого сервиса как минимум необходимо реализовать клиент для передачи/приема мгновенных сообщений, поддерживать с ним на стороне сервера сессии. Отдельная задача – распределить входящие запросы между сотрудниками.

На сайте CommuniGate Systems эта задача решается, понятное дело, целиком на платформе CommuniGate Pro. По ссылке с сайта запускается легкое JavaScript- приложение, которое реализует XIMSS-сессию с сервером и позволяет отправлять и принимать мгновенные сообщения. Первое сообщение отправляется в групповой чат, к которому уже подсоединены сотрудники (с помощью произвольных клиентов по протоколам XMPP, SIP или XIMSS), и в рамках этого группового чата гость получает частную сессию с одним из сотрудников. Поскольку чат обслуживается PBX-задачей, возможно реализовать разнообразные сценарии распределения входящих запросов, механизмы передачи гостей между сотрудниками, централизованное протоколирование переговоров, их архивирование и рассылку по почте.

Call Center

Одной из самых востребованных функций VoIP-телефонии является распределение и мониторинг входящих звонков. Платформа CommuniGate Pro позволяет довольно просто принимать входящие звонки с помощью задач PBX, которые в ожидании готового принять звонок сотрудника могут проигрывать абоненту музыку, рекламные сообщения и тому подобное. Пример такого простого приложения для обслуживания очереди вызовов входит в состав дистрибутива CommuniGate Pro.

Но платформа позволяет гораздо больше, и в настоящий момент по техническому заданию клиента разрабатывается комплексное решение для автоматического распределения звонков через задачи PBX с возможностью наблюдения за активными звонками в реальном времени с помощью клиентского веб-приложения по протоколу XIMSS. Комплекс позволяет администратору подсоединяться к активным звонкам для прослушивания, в том числе и в режиме подсказки оператору («whisper»), или преобразовать звонок в конференцию. Задачи PBX попутно собирают статистику по времени дозвона до оператора, средней длине очереди ожидания. Возможна интеграция с системой CRM: по приходу звонка система может получить дополнительную информацию о звонящем и передать ее оператору в виде мгновенного сообщения.

***

Сегодня мы попытались дать краткое описание возможностей платформы CommuniGate Pro с точки зрения разработки нестандартных решений для объединенных коммуникаций.

Более близко с продуктом, описанием его протоколов и функций можно ознакомиться на сайте http://www.communigate.com/CommuniGatePro/.

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

  • Распаковать дистрибутив.
  • Открыть окно консоли и перейти в директорию с CGServer.exe.
  • Запустить, указав параметр с путем до базовой директории (там будут храниться данные сервера).
  • Использовать браузер для подсоединения к http://localhost:8010.
  • Задать пароль для административного аккаунта по умолчанию postmaster.
  • Для остановки сервера в консольном окне достаточно нажать <Ctrl> + <C>, базовую директорию можно удалить.

В короткой статье невозможно подробно описать все богатство такой платформы, как CommuniGate Pro. Если у вас появились вопросы, пожалуйста, присылайте их на ящик support@communigate.com.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru