Все вокруг обсуждают Asterisk и его форки, для крупных компаний предлагают использовать Cisco или Avaya, но почему-то практически нигде нет информации о Yate — простом и удобном, но, в то же время, очень функциональном решении для IP-телефонии.
В этой статье я хотел бы кратко рассказать о сборке Yate под Linux, а также его первоначальной настройке для работы с SIP.
Прошел почти год после публикации первой вводной статьи о TalkPad. В процессе эксплуатации и развития сервиса мы столкнулись со многими технологическими проблемами, часть из которых успешно преодолели. Сегодня мы хотим рассказать вам о том, как устроена серверная сторона TalkPad.
Напомню что TalkPad — это сервис, который предоставляет возможность позвонить на городские и мобильные телефоны прямо из браузера, установив плагин.
Итак, как же все-таки может быть устроен бэкенд высоконагруженного сервиса телефонии?
Обзор свободно доступных и бесплатных IP АТС: Asterisk, FreeSWITCH, SipXecs, Yate. Приводятся преимущества и недостатки, сравнительный анализ функциональности и сфер применения. Делается вывод о том, что все продукты можно сочетать друг с другом.
Некоторое время назад ко мне обратился товарищ из «Открытых Систем» и попросил сделать обзор открытых IP АТС. Так как он обратился не только ко мне, а еще и к другим экспертам IP телефонии, то в результате в журнал попала компиляция, в которой мало осталось от моего оригинального обзора. Публикую его целиком на Хабре.
Вначале будет теоретическая вставка, для тех, кто не совсем в теме. Если будет скучно — просто пропустите ее! Приятного чтения! А чтобы лучше читалось, главы сопровождаются музыкальными подарками (настоятельно рекомендую наушники :-)
Поехали!
Теория
PBX (Private Branch Exhange) — английский термин, обозначающий офисную телефонную станцию, которая обеспечивает установление, поддержание и разрыв соединений между аппаратами, то есть коммутацию. PBX позволяет разделять ограниченные ресурсы (городские линии и номера) между неограниченным числом внутренних пользователей, при помощи таких телефонных функций, как внутренний номерной план, перевод звонков, постановка на удержание, и других.
Именно поэтому PBX система необходима любой организации — она позволяет эффективно организовать телефонную связь на предприятии (ну, пока еще нужна ;-)
Некоторое время назад мы писали, что в Яндекс.Почте появился новый интерфейс, в котором используется шаблонизация данных в браузере. Немногие крупные сервисы отваживались на это, но мы и сейчас считаем такое решение наиболее удачным. Оно не только ускорило работу интерфейса, но и позволяет экономить трафик пользователя и эффективнее расходовать процессорное время серверов.
Тогда в качестве шаблонизатора мы использовали XSL, а данные передавали в формате XML. Переведя проект на новый интерфейс, мы начали искать другие способы ускорения работы интерфейса Яндекс.Почты.
Недавно мы перевели всю Почту на JS-шаблонизатор и JSON-данные.
Не так давно мне довелось побывать в гостях у Null Team, разработчиков YATE, софтсвича операторского класса. Для тех, кто не знаком с данным продуктом, могу вкратце пояснить, что Yate (произносить можно по-разному: Йейт, Яте, или даже Ят) — программная АТС с открытым кодом. Аналоги: Asterisk, FreeSwitch. Материал про Yate на Хабре.
Null Team — румынская компания, находится в Бухаресте, занимается разработкой и поддержкой Yate и коммерческих решений, построенных на его основе. Штат компании невелик. Практически все сотрудники представлены на фотографиях.
Нас встречает скромная входная дверь на 5-м этаже офисного здания.
У меня плохо получается излагать свои мысли в письменном виде (да и не родной для меня русский язык), но постараюсь описать свой метод настройки данного типа транка.
Так получилось, что наш местный телеком начал давать доступ в PSTN другим VoIP провайдерам лишь посредством протокола SIP-I. Тем кто успел подключится по E1/SS7 повезло (а может и нет), а новым приходится как-то выкручиваться: одни покупают дорогие софтсвичи, другие ищут варианты подешевле, а то и бесплатно. Мы пошли вторым путем. Если интересно чем это все закончилось, добро пожаловать под кат.
YATE является во многих отношениях уникальным телефонным сервером. Он понимает SIP-T, считается лучшим H323-SIP конвертером, а также поддерживает большую часть семейства протоколов ОКС-7 (SS7). И все это доступно под GPL. С другой стороны, проблемой является недостаточная документированность проекта.
Но я хочу рассказать не о телефонии. Кролики — это не только ценный мех, но и Yate может служить также jabber сервером. Забавно, что Yate не указан в списке xmpp.org/xmpp-software/servers, хотя поддержка jabber сервера появилась в нем еще в 2010 году.
Трудно сказать, зачем может понадобиться использовать Yate для джаббера, если есть ejabberd, Openfire, Prosody и Tigase. Этот вопрос — за рамками статьи. Я хочу лишь познакомить вас с еще одним вариантом.
Итак, добро пожаловать под cut. (Осторожно, много букв!) Заодно расскажу, как прикрутить авторизацию в Active Directory.
Поздравляю всех, кто у себя использует YATE в качестве IP-телефонии!
21 Октября получил письмо с рассылки о том, что вышла обновленная версия YATE.
Пока нет списка изменений, но в письме говорится, что была добавлена поддержка IPv6 для sip (чем они очень порадовали) и улучшена поддержка JavaScript'а. В корпоративную (она же приватная) версию добавлена поддержка протокола Diameter для дальнейшего развития поддержки VoLTE (Voice over LTE).
Оригинальный текст письма:
Hello,
Yate 5 is here :)
We've added IPv6 in SIP and way more support for JavaScript. All this is available in the public version of Yate.
In the private version of the Yate along with CAMEL and MAP we've added Diameter since we are getting ready to add more support for VoLTE.
Thank you all for your continuous support,
Yate Team
Когда-нибудь я напишу что-то в духе "Как я стал программистом в 40 лет". Но точно не сегодня, к тому же мне давно уже не 40 и программистом я себя не считаю. А рассказать я хотел бы о своём опыте разработки PBX для собственных нужд. В качестве VoIP движка используется Yate, фронт- и бэкенд будет на Perl.
Часто встречаю в комментариях к статьям вопросы: "Почему не (далее идут любимые варианты комментаторов)?". Итак, по порядку.