Связка WebRTC и Asterisk
WebRTC — относительно новая технология, позволяющая, в том числе, реализовать функцию звонка с сайта. WebRTC реализована в Asterisk 11, но не работает с распространёнными браузерами без патчей, поэтому для связки Asterisk и WebRTC лучше использовать программу webrtc2sip. webrtc2sip можно использовать с более старыми версиями Asterisk, к тому же донастройка Asterisk практически не требуется.
Сборка WebRTC
Приведенные шаги сборки верны для CentOS 5.8 x86_64. Более подробная инструкция по сборке Doubango IMS Framework и webrtc2sip приведена на странице http://code.google.com/p/webrtc2sip/wiki/Building_Source_v2_0#Building_Doubango_IMS_Framework_and_3rd-party_libraries.
Установка инструментов и библиотек для сборки
yum install autoconf libtool make gcc gcc-c++ subversion cvs openssl-devel speex-devel libxml2-devel
Для получения некоторых исходниках понадобится git, собираем его:
(для сборки git понадобится еще несколько зависимостей)
yum install gettext-devel perl-ExtUtils-MakeMaker
wget http://git-core.googlecode.com/files/git-1.7.10.rc0.tar.gz
tar xzf git-*.gz
cd git-*
./configure
make && make install
Установка libsrtp (Если Вы используете FreePBX, достаточно выполнить yum install libsrtp-devel)
git clone https://github.com/cisco/libsrtp/
cd libsrtp
CFLAGS=»-fPIC» ./configure —enable-pic
make && make install
Установка libgsm (Для поддержки кодека GSM)
wget http://www.quut.com/gsm/gsm-1.0.13.tar.gz
tar -xvzf gsm-1.0.13.tar.gz
cd gsm-1.0-pl13 && make && make install
#cp -rf ./inc/* /usr/local/include
#cp -rf ./lib/* /usr/local/lib
Установка g729
(может понадобится вручную создать поддиректорию m4 в директории с исходным кодом для успешного выполнения скрипта autogen.sh)
svn co http://g729.googlecode.com/svn/trunk/ g729b
cd g729b
./autogen.sh
./configure —enable-static —disable-shared
make && make install
Установка iLBC
svn co http://doubango.googlecode.com/svn/branches/2.0/doubango/thirdparties/scripts/ilbc
cd ilbc
wget http://www.ietf.org/rfc/rfc3951.txt
awk -f extract.awk rfc3951.txt
./autogen.sh
./configure
make && make install
Установка Doubango IMS Framework (может понадобится вручную создать поддиректорию m4 в директории с исходным кодом для успешного выполнения скрипта autogen.sh)
svn checkout http://doubango.googlecode.com/svn/branches/2.0/doubango doubango
cd doubango
./autogen.sh
./configure —with-ssl —with-srtp
make && make install
Установка webrtc2sip
(может понадобится вручную создать поддиректорию m4 в директории с исходным кодом для успешного выполнения скрипта autogen.sh)
svn co http://webrtc2sip.googlecode.com/svn/trunk/ webrtc2sip
cd webrtc2sip
./autogen.sh
./configure —prefix=/opt/webrtc2sip
make && make install
cp -f ./config.xml /opt/webrtc2sip/sbin/config.xml
При сборке могут возникнуть ошибки
src/trtp_srtp.c:71: error: ‘srtp_policy_t’ has no member named ‘window_size’
src/trtp_srtp.c:72: error: ‘srtp_policy_t’ has no member named ‘allow_repeat_tx’
В этом случае нужно в файле ./tinyRTP/src/trtp_srtp.c закментировать строки
ctx->policy.window_size = 2048;
ctx->policy.allow_repeat_tx = 1;
srtp_ctx->rtp.policy.window_size = 2048;
srtp_ctx->rtp.policy.allow_repeat_tx = 1;
Создаем пользователя для запуска webrtc2sip
useradd webrtc2sip
chown -R webrtc2sip /opt/webrtc2sip
Запускаем webrtc2sip
sudo -u webrtc2sip /opt/webrtc2sip/sbin/webrtc2sip
У webrtc2sip отсутствует функция запуска в режиме демона, поэтому webrtc2sip следует запускать в screen
Лог сообщений программы можно писать, например, так
sudo -u webrtc2sip /opt/webrtc2sip/sbin/webrtc2sip > >(tee /opt/webrtc2sip/sbin/log) 2> >(tee /opt/webrtc2sip/sbin/log >&2)
Создаем SIP-пир на Asterisk, подойдут стандартные настройки.
Протестировать работу WebRTC можно на странице http://www.sipml5.org/call.htm
Заполняем поля следующим образом (Здесь 1.1.1.1 — IP-адрес хоста Asterisk, 101 — SIP-пир, настроенный на Asterisk):
Display Name: что-угодно
Private Identity: 101
Public Identity: [email protected]
Password: пароль
Realm: 1.1.1.1
В «Expert mode»:
Disable Video: <отмечаем>
Enable RTCWeb Breaker: <отмечаем> (для перекодирования медиа в приемлемый для Asterisk формат)
WebSocket Server URL: ws://1.1.1.1:10062
На основной странице жмем «Login». Если всё сделано правильно и sipML5 удасться подключиться, то над настройками появится слово «Connected». После этого sipML5 может принимать и совершать вызовы.

Остались вопросы?
Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
VoIP оборудование
ближайшие курсы
Новые статьи
10 доводов в пользу Asterisk
Распространяется бесплатно.
Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.
Безопасен в использовании.
Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.
Надежен в эксплуатации.
Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.
Гибкий в настройке.
Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.
Имеет огромный функционал.
Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.
Интегрируется с любыми системами.
То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.
Позволяет телефонизировать офис за считанные часы.
В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.
Отличная масштабируемость.
Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.
Повышает управляемость бизнеса.
Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.
Снижает расходы на связь.
Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.