четверг, 19 мая 2011 г.

VoIP звонки из браузера

Столкнулся с необходимостью внедрить sip телефон в браузер. На просторах Интернета информация в основном о решении на базе red5 + red5phone, но оно мне показался слегка громоздким и недостаточно надежным. Скажем так, меня не устроило соотношение времени развертывания плюс требуемых аппаратных ресурсов к уровню качества плюс беспроблемности поддержки и масштабирования, к тому же проблематичное для интеграции в веб-проект.
Еще немного поискав в Интернете нашел вот этот проект. Делает по сути то же что и red5 но написан на python и имеет гибкий веб-интерфейс.
По сути, веб-интерфейс это небольшое приложение на флеш, управляемое с помощью JavaScript или другого языка программирования посредством вызова встроенных функций приложения и обработки событий. Имеет возможность встраиваться в другие флеш-приложения.
Запуск сервера производится вот такими нехитрыми манипуляциями:

svn checkout p2p-sip.googlecode.com/svn/trunk/ p2p-sip-read-only
svn checkout rtmplite.googlecode.com/svn/trunk/ rtmplite-read-only
cd ./rtmplite-read-only
PYTHONPATH=../p2p-sip-read-only/src:.
export PYTHONPATH
python ./siprtmp.py


Может понадобиться указать ір адрес который будет указываться при общении с вашей ip-pbx, это можно сделать при помощи ключа -е <ip адрес>. Для дебага есть ключ -d.
В данной версии велика вероятность проявления ошибки, при которой будет невозможно совершать исходящие звонки, лечится при помощи наложения комментария на строку 217 в файле p2p-sip-read-only/src/std/rfc3261.py. Данный баг скоро поправится(со слов разработчика).
При настройке sip сервера для работы с siprtmp, пользователям которые будут звонить через веб необходимо разрешить использовать только кодек speex, например в астериске это делается так:


disallow = all
allow = speex


На сайте разработчика лежит пример телефона и подробное описание.



Думаю значение полей понятно и без описания. Также данное решение может использоваться для видео-звонков и конференций.

Главное не забудьте разрешить флеш-приложению использовать аудио устройства вашего компьютера.

Официальная страница сервера
Официальная страница флеш приложения
Еще одна страница флеш приложения

P.S.
В данный момент разработчик по моей инициативе и при моем вмешательстве пробует сделать (ну как минимум похоже на то) полноценный демон из siprtmp.py и побороть необходимость export PYTHONPATH=../p2p-sip-read-only/src:.
Думаю автор не отказался бы от помощи.


Источник: Хабрахабр - Веб-разработка
Оригинальная страница: VoIP звонки из браузера

Комментариев нет:

Отправить комментарий