Большая часть взаимодействия происходит через связку протоколов и стандартов, условно называемых “SIP-телефония”. SIP — это один из протоколов, с которого все обычно начинается. Он очень похож на HTTP — тот же plain text, заголовки, тела запросов, ответы. Но вместо запроса web-страничек, SIP-протокол контролирует голосовые и видео звонки. При этом сам протокол, несмотря на 200-страничный RFC, очень лаконичный: он позволяет участникам регистрировать “телефоны”, инициировать звонок и отвечать на него, завершать звонок, плюс немного сервисных функций. Все остальное делается через другие протоколы. Например, параметры звонка передаются в теле SIP сообщений, но кодированы они по протоколу SDP. А сам звонок осуществляется по протоколу RTP или в шифрованном виде по SRTP.
Самый простой вариант взаимодействия, широко применяемый самими телекомами, это “транк”. Вообще “SIP trunking” — это подключение абонентов не по телефонному кабелю, а через интернет по протоколу SIP. Но и для телеком-телеком или телеком-облако коммуникаций термин прижился. Транк делается с двух сторон. В начале со стороны облака voximplant IP адреса телекома добавляются в белый список: это позволит телекому совершать к нашему облаку SIP-звонки без авторизации. После чего клиент связывается с телекомом и информирует его, чтобы тот “приземлял” входящие звонки в наше облако. При этом используется SIP url, соответствующее аккаунту и приложению пользователя, которое с помощью javascript будет информировать облако что с этими звонками делать дальше.
username@appname.accountname.voximplant.com
Важным моментом является то, что такой транк по сути “односторонний”: наше облако будет принимать входящие звонки с зарегистрированных номеров, но у него нет возможности “позвонить” с такого номера. То есть на самом деле есть, но про подстановку номеров и раутинг траффика я напишу отдельно — и так уже wall of text получилось.
Если транк — это подключение от телекома в облако, то SIP-регистрация работает в обратном направлении. У SIP потокола есть сообщение REGISTER (откуда и название), которое информирует сервер о том, что некое абонентское устройство готово принимать звонки. Чтобы облако могло выступать в роли абонентского устройства, клиенту необходимо получить у телекома SIP-адреса, логины и пароли от своих номеров и добавить эту информацию у нас в админке.
В отличие от транка, SIP-регистрация работает в обе стороны: имея логины и пароли, облако как принимает, так и совершает звонки по указанным номерам. Еще одним отличием является то, что SIP-регистрация — это часть протокола SIP (регулярно отправляемое сообщение REGISTER), в товремя как транки — это просто практика использования SIP решений.
Голая теория без практики не очень интересна, поэтому в качестве примера я покажу как подключить к voximplant номера телефонов популярного облачного решения mango-office. Первое что нужно сделать — это получить SIP-информацию о номерах, которая доступна в разделе название раздела личного кабинета mango office, как описано в этой инструкции.
Затем эту информацию необходимо добавить в админке voximplant, как уже было показано выше. После выполнения этих несложных действий звонки на телефоны mango-office будут автоматически попадать в облако voximplant, где с помощью javascript с ними можно сделать все что угодно.
Более сложный пример — это настройка транка от asterisk к облаку voximplant. Со стороны нашего облака нужно всего лишь добавить ip-адреса asterisk в белый список как это показано выше. А вот со стороны asterisk конфигурация транка выгладит следующим образом:
[voximplant]
type=friend
host=testapp.testuser.voximplant.com
secret=asterisk-pass-for-vox
fromdomain=testapp.testuser.voximplant.com
fromuser=asterisk
remotesecret=vox-pass-for-asterisk
Учитывая возможность подстановки номера, с точки зрения клиента SIP регистрация ничем не отличается от транка. Зачем тогда два способа? Причина проста — не все телекомы готовы настраивать транк. А для многих облачных АТС это технически не предусмотрено. В то время как SIP регистрация позволяет интегрироваться с любым SIP-совместимым сервисом, будь то крупный телеком провайдер, инсталляция asterisk или закрытый облачный сервис.
В рамках нашего блога я стараюсь не только рекламировать voximplant, но и рассказывать полезные и интересные вещи про облачную телефонию. Если ваш зоркий глаз углядел в изложенном материале откровенную лажу или спорную неточность — не стесняйтесь писать мне в личку, все оперативно исправляется и приносит пользу тем, кто приходит на Хабр из поиска. И да, с прошедшим днем сисадмина всех :).
This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий