Столкнулся с необходимостью внедрить sip-телефон в браузер. На просторах
Интернета больше всего рассказывают о решении на базе red5 и red5phone,
но оно мне показался слегка монструозным и недостаточно надежным. Скажем так,
меня не устроило соотношение времени развертывания и требуемых аппаратных
ресурсов к уровню качества, беспроблемности поддерживания и масштабируемости. К
тому же наблюдались проблемы при интеграции в веб-проект.
Еще немного поискав в Интернете нашел проект siprtmp. Делает по сути то же
что и red5, но написан на python и имеет гибкий веб-интерфейс.
По сути веб-интерфейс siprtmp - это небольшое приложение на флеш, управляемое с
помощью JavaScript или другого языка программирования, посредством вызова
встроенных функций приложения и обработки событий. Имеет возможность
встраиваться в другие флеш-приложения.
Запуск сервера производится такими манипуляциями:
svn checkout http://p2p-sip.googlecode.com/svn/trunk/ p2p-sip-read-only
svn checkout http://rtmplite.googlecode.com/svn/trunk/ rtmplite-read-only
cd ./rtmplite-read-only
PYTHONPATH=../p2p-sip-read-only/src:.
export PYTHONPATH
python ./siprtmp.py
Может понадобиться указать IP-адрес, который будет указываться при общении с
вашей ip-pbx, это можно сделать при помощи ключа "-е ip". Для отладки есть ключ -d.
В данной версии велика вероятность проявления ошибки, при которой будет
невозможно совершать исходящие звонки. Лечится при помощи добавления
комментария на строку 217 в файле p2p-sip-read-only/src/std/rfc3261.py. Данная
ошибка скоро со слов разработчика скоро будет устранена.
При настройке sip-сервера для работы с siprtmp, пользователям, которые будут
звонить через веб, необходимо разрешить использовать только кодек speex,
например в Asterisk это делается так:
disallow = all
allow = speex
На сайте разработчика можно найти пример телефона и подробное описание.
Думаю значение полей понятно и без описания. Также данное решение может
использоваться для видео-звонков и конференций. Главное не забудьте разрешить
флеш-приложению использовать аудио устройства вашего компьютера.
Официальная страница сервера: http://code.google.com/p/siprtmp/
Официальная страница флеш-клиента: http://code.google.com/p/flash-videoio/
Еще одна страница флеш-клиента: http://myprojectguide.org/p/flash-videoio/
В данный момент совместно с разработчиком проекта осуществляются попытки
создать полноценный демон из siprtmp.py и побороть необходимость выполнения
"export PYTHONPATH=../p2p-sip-read-only/src:.".
|