Skip to content

Видео-конференции

Долгое время мне казалось, что нет бесплатного решения для SIP видео-концеренций. Об mcuWeb известно давно, но попытки протестировать натыкались на недостаток информации. И вот сегодня, проведя очередное исследование состояния дел, обнаружил действующий сайт medooze.com, где теперь размещаются видео-проекты mcuWeb  и h324m для Астериска. Следуя инструкциям, поставил MCU Video Multiconference Server и Media Mixer Server. На несколько грабель наступить пришлось, но в итоге все заработало.

to be continued…

Распознавание DTMF в Freeswitch

Поделюсь настройками, с помощью которых решается задача точного распознавания тонового набора. Кусок диалплана для единого корпоративного номера:

<action application="spandsp_start_dtmf"/>
<action application="set" data="min_dup_digit_spacing_ms=100"/>
<action application="play_and_get_digits" data="3 4 1 1000 # hello.wav silence_stream://250 dtmf_number .* 3000"/>
<action application="transfer" data="${dtmf_number}"/>
<action application="transfer" data="reception XML mycontext"/>

Ключевой момент – использование spandsp для распознавания DTMF, и канальной переменной min_dup_digit_spacing_ms. Подробнее см. Mod_spandsp#DTMF

Grandstream GXV3140 PHP reboot script

Для массовой перезагрузки видео-телефонов Grandstream удобно воспользоваться следующим скриптом.

$ip = $_REQUEST['ip'];
$user = '';
$password = '';
exec("curl --cookie-jar /tmp/gxvcookie http://$ip/manager?action=login\&Username=$user\&Secret=$password");
exec("curl --cookie /tmp/gxvcookie http://$ip/manager?action=reboot");
echo "OK $ip";

Вызывать его, соотвественно, примерно так http://yourserver/gs/reboot.php?ip=10.192.162.10

FreeSWITCH и Мультифон

В настоящее время услуга Мегафона “Мультифон” позволяет подключиться к сети оператора по SIP и получить телефонный номер, работающий на входящую и исходящую связь. Сидите ли вы в подвале, где не ловится GSM сеть, или находитесь заграницей, вы можете принять звонок на свой сотовый номер на SIP оборудование (софтфон на компьютере, IP АТС, IP телефон, коммуникатор, iphone – ограничений нет), или же звонить со своего сотового номера, причем по привлекательным тарифам. Не нужны никакие VoIP-GSM шлюзы, нет привязки телефона к адресу. Удобно!

Для корректной работы Мультифона необходимо соблюсти пару правил:

  1. В SIP профиле убрать лишние кодеки, особено видео, иначе при исходящем звонке получите 403 Forbidden
  2. Убедиться, что включена маршрутизация входящих вызовов на Мультифон:
    curl https://sm.megafon.ru/sm/client/routing/set?login=NUMBER@multifon.ru\&password=PASSWORD\&routing=2
    Это состояние иногда сбрасывается на “только GSM”, например при выходе из официального клиента Мальтифона.

В FreeSWITCH при описании конфигурации gateway достаточно указать 4 параметра: username, password, realm (multifon.ru), register (true).

Много полезных вещей про Мультифон можно узнать на Хабрахабре.

SPA303 vs SPA921

Пощупав недавно появившийся на рынке Cisco IP Phone SPA303, пришел к выводу, что отныне покупать Linksys SPA921 просто глупо. У новинки нет никаких слабых сторон, зато масса бонусов:

  • три SIP линии
  • три кнопки с индикацией (линия/BLF/function)
  • дополнительный ethernet порт (switched) для сквозного подключения компьютера
  • TCP/TLS
  • SRTP
  • поддержка XML сервисов
  • громкий спикерфон
  • обновленный стильный web-интерфейс
  • В остальном внешне и внутренне телефон настолько похож на своего предшественника, что его с полным правом можно считать апгрейдом модели. Следоватлельно, он идеально впишется в сеть, заточенную под SPA921.

    Новая модель на Яндекс маркете дороже старой всего на 300 рублей. Из бюджетных телефонов, на мой взгляд, это лучшая модель на данный момент. Отличная рабочая лошадка для офисной телефонии.

    Пользовательский звонок для Linksys SPA921

    Аппарат поддерживает загрузку 6-секундных мелодий в собственном формате. Утилиту для Windows можно скачать отсюда: http://www.vcommassist.co.uk/lin-tech02.html либо отсюда.
    Но вручную заливать и устанавливать мелодии можно на двух-трех телефонах. А как настроить нужный звонок у десятков или сотен аппаратов?
    Используя механизм provisioning, можно прописать мелодию на одну их 10 “ячеек”, примерно так:
    <Ring8>n=call;w=192.168.0.1/call.srt</Ring8>
    Это означает, что если на аппарате выбрать звонок номер 8, мелодия call.srt скачается с tftp сервера, и будет использована для звонков.
    Принудительно назначить эту мелодию на звонок можно командой диалплана Астериска:
    SIPAddHeader(Alert-Info: call)
    В freeswitch – http://wiki.freeswitch.org/wiki/Variable_alert_info
    Остается запустить утилиту ringtone.exe, в начальном экране выбрать Skip (сразу и не догадаешься, что именно сюда надо жать, чтобы сконвертировать мелодию), выбрать wav файл, сохранить в srt формат, и загрузить его на tftp сервер.

    Русификация Zoiper Communicator

    Небольшой оффтопик.
    Хочу поделиться переводом хорошего коммуникатора на русский язык. Саму программу можно скачать отсюда. Скин скомпилирован командой Zoiper на основе XML файла с моим переводом. Это еще не окончательная версия.
    Zoiper Communicator нравится мне тем, что поддерживает SIP SIMPLE, а также TLS/SRTP и видео в платной версии Biz (к сожалению, видео пока только H263+).
    Скачать
    P.S. на днях вышла новая версия 2.05, в которую уже включен данный перевод. Теперь смысла качать скин нет.

    FreeSWITCH

    Когда я начинал осваивать open-source телефонию, еще был жив Definity, а Asterisk представлялся безоговорочным выбором в качестве современной офисной АТС. Его возможности казались поистине безграничными. Теоретически они и являются таковыми. Но со временем выяснилось, что для ряда практических задач офисной телефонии может оказаться лучше приспособлен другой открытый телефонный проект, FreeSWITCH. По-русски “Бесплатный КОММУТАТОР” :) Если кто не знаком, прочитайте статью на Хабре: FreeSWITCH. Быть может будущее телефонии уже с нами?

    На протяжении уже немалого времени Asterisk и Freeswitch успешно соседствуют, выполняя задачи, находящиеся в моем ведении. (Под ногами у них мешается еще и гибридная АТС LDK-300). И вот, наконец, я сегодня осознал, что пришла пора решать, какому серверу отдать роль центрального узла системы. От фрисвича я уже отказаться не могу, а от астериска – вполне. Поэтому извините, астерисководы, теперь это блог про Freeswitch. =)

    В следующих записях планирую описать те задачи, которые побудили меня к переходу на Freeswitch. И, по традиции, будут краткие, но емкие HOWTO. Не собираюсь открывать Америку и вдаваться в сравнительный анализ всех существующих на рынке программных АТС, таких как YATE, SER и др. Те, кто их используют, знают зачем они им нужны. (Например, вы захотели разобраться, что же это за таинственная вкладка с названием XCAP в настройках SIP аккаунта. Тогда вам скорее всего пригодится Kamailio, настроив который, вы сможете хранить адресную книгу централизовано.) Но, по большому счету, если вы не провайдер телефонии, вам не нужно ничего кроме Freeswitch, который с полным правом может носить гордый титул “Power PBX”!

    Видео IVR на Астериске. HOWTO. Часть 2: возможности проекта asteriskvideo

    Какие возможности предоставляет проект asteriskvideo?

    Он дает поддержку следующих команд диалплана: h324m_call, h324m_gw, h324m_loopback, h324m_gw_answer, mp4save, mp4play, video_loopback, rtsp, transcode. Справку по ним можно получить из консоли.

    Астериск получает возможность осуществлять видеовызовы в сеть 3G по цифровым каналам dahdi (E1), проигрывать и записывать видео (по DAHDI, SIP), подключаться к потокам rtsp:// для вещания, например, ТВ или камер наблюдения. Работает DTMF – можно передвигаться по диалплану или обрабатывать полученный DTMF сигнал в назначенной переменной. Можно включать различные уровни отладки и изучать логи (h324m debug).

    При работе с сетью 3G видео автоматически (об этом не надо заботиться в диалплане) упаковывается в кодек h263, при необходимости перекодируется, уменьшается его битрейт, чтобы вместе со звуком, который конвертируется в узкополосный кодек AMR, влезло в 62(?) кбит/с.

    В данной записи захотелось также уточнить первоначальную инструкцию по установке. В частности, оказалось, что нет необходимости самостоятельно компилировать ffmpeg и ptlib, а можно поставить их из пакетов. Итак, что нужно сделать, чтобы добавить поддержку видео в Астериск:

    Продолжение ‘Видео IVR на Астериске. HOWTO. Часть 2: возможности проекта asteriskvideo’ »

    Asterisk 1.8 release

    Вышел подлежащий долгосрочной поддержке (LTS) релиз Астериска 1.8. Нужно переезжать.

    Для компиляции из исходников – памятка о библиотеках (названия для CentOS), которые включают поддержку разных функций в Астериске (настраиваемых в make menuselect):
    iksemel-devel (chan_gtalk)
    radiusclient-ng-devel (cdr_radius)
    spandsp-devel (res_fax_spandsp)
    curl-devel (res_curl)
    gmime-devel (res_http_post)
    libtool-ltdl-devel unixODBC-devel (res_odbc)
    net-snmp-devel (res_snmp)

    Скрипты для поддержки ilbc и mp3
    contrib/scripts/get_ilbc_source.sh
    contrib/scripts/get_mp3_source.sh

    Для поддержки SRTP требуется библиотека http://srtp.sourceforge.net/srtp-1.4.2.tgz

    (to be updated…)