The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

VoIP-звонки из web-браузера с использованием siprtmp
Столкнулся с необходимостью внедрить 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:.".
 
14.05.2011 , Автор: Александр
Ключи: sip, red5, browser, voip / Лицензия: CC-BY
Раздел:    Корень / Маршрутизаторы Cisco, VoIP / VoIP

Обсуждение [ RSS ]
  • 1.1, fetisheer (ok), 15:08, 17/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вышеуказанная ошибка не единственная. Когда у себя его ставил, пришлось несколько похожих исправлять еще на этапе тестирования. Наблюдается утечка udp дескрипторов.
    У меня большие надежды на erlyvideo для sip-rtmp.
     
     
  • 2.2, Александр (??), 18:33, 17/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Автор не против что-бы ему помогли. Сейчас пробую допилить нормальную демонизацию к siprtmp.py. На данный момент данное решение меня привлекает больше чем red5.
     
     
  • 3.3, Crazy Alex (??), 23:00, 17/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А почему вы считаете, что питоновское решение будет менее ресурсоёмким, чем red5? Джава в этом плане всё же поэкономнее... проблемы в red5phone есть, но ничего нерешаемого там нет и близко - так, пара мелких доработок.
     
     
  • 4.4, Александр (??), 00:20, 18/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Это решение завелось можно сказать с пол пинка. Правда ред5й разворачивал другой админ, но довольно продолжительное время. К тому же у ред5го много жестких зависимостей. А относительно экономности еще надо смотреть. В общем имхо на развертывание и поддержку данного решение уйдет меньше ресурсов.
     

  • 1.5, Аноним (-), 22:52, 19/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кошмар. На выбор поделка на яве или на питоне и обе глючные. Это такой тонкий стеб?
     
     
  • 2.6, Vitaly_loki (ok), 11:35, 20/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    xterm + vim тебе в руки и вперед писать свой на Си
     

  • 1.8, Ramzes III (?), 11:38, 09/07/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Здравствуйте.
    Подскажите пожалуйста как свзять этот gateway с астериском 1.6? Установил, rtmp сервер запустился, flash-клиент который в комплекте идет может соединиться с сервером... и все. Как слить звонок на астериск?
    Задача у меня простая - click-to-call кнопка на сайте. Звонок должен уходить на заранее определенный сервер. Asterisk и siprtmp стоят на одной машине физически. ОС - FreeBSD 8.1
    Опыта в данном направлении у меня мало, так что не пинайте, а подскажите что я не доделал.

    Заранее спасибо :)

     
     
  • 2.9, Павел (??), 14:57, 14/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Добрый день

    Предлагаю посмотреть www.flashphoner.com
    Это тоже RTMP-SIP сервер на Java+C, только
    полностью завершенный, стабильный (никаких
    утечек памяти и т.д.) и с официальной
    поддержкой

    Функции
    - Audio - Speex, g.711, g.729
    - Video - h.263, h.264
    - SIP - calls, transfer, hold, DTMF
    - API - ActionScript, JavaScript
    - Open source client
    - Open source server java app

    --
    Павел


     
     
  • 3.10, Olorin (?), 16:58, 25/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Какие отзывы? Это на нарисовано на сях.
     

  • 1.11, Марсель Мухаметзянов (?), 14:48, 09/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А почему именно siprtmp? Вот тоже вполне себе нормальный вариант на платформе Oktell http://oktell.ru/support/articles/20/
     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру