Столкнулся с необходимостью внедрить sip-телефон в браузер. На просторах Интернета больше всего рассказывают о решении на базе [[http://www.red5.org/ red5]] и [[http://code.google.com/p/red5phone red5phone]], но оно мне показался слегка монструозным и недостаточно надежным. Скажем так, меня не устроило соотношение времени развертывания и требуемых аппаратных ресурсов к уровню качества, беспроблемности поддерживания и масштабируемости. К тому же наблюдались проблемы при интеграции в веб-проект.Еще немного поискав в Интернете нашел проект [[http://code.google.com/p/siprtmp 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.
В данной версии велика вероятность проявления [[http://code.google.com/p/siprtmp/issues/detail?id=1 ошибки]], при которой будет невозможно совершать исходящие звонки. Лечится при помощи добавления комментария на строку 217 в файле p2p-sip-read-only/src/std/rfc3261.py. Данная ошибка скоро со слов разработчика скоро будет устранена.
При настройке sip-сервера для работы с siprtmp, пользователям, которые будут звонить через веб, необходимо разрешить использовать только кодек speex, например в Asterisk это делается так:
disallow = all
allow = speex
На [[http://myprojectguide.org/p/flash-videoio/11.html сайте разработчика]] можно найти пример телефона и подробное описание. Думаю значение полей понятно и без описания. Также данное решение может использоваться для видео-звонков и конференций. Главное не забудьте разрешить флеш-приложению использовать аудио устройства вашего компьютера.
Официальная страница сервера: 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:.".
URL:
Обсуждается: http://www.opennet.dev/tips/info/2573.shtml