вторник, 23 апреля 2019 г.

sippy sip server

https://www.voip-info.org/sippy/

Это ещё не полноценная АТС, но уже умеет быть b2bua. Совсем грубо - это как SIPS + модуль b2bua + rtpengine

пятница, 19 апреля 2019 г.

RTCP

https://ru.bmstu.wiki/RTCP_(Real-time_Transport_Control_Protocol)
RTCP (Real-Time Control Protocol)(от англ. Real-Time Transport Control Protocol — протокол управления передачей в реальном времени) — протокол управления передачей данных в реальном масштабе времени. Он выполняет функцию подсчета переданных пакетов, учета задержек при передаче, учета потерянных пакетов, jitter (значения флуктуации задержек).

В случае применения с rtpengine - читать тут
https://github.com/sipwise/rtpengine#offer-message
плюс раздел rtcp-mux

воскресенье, 7 апреля 2019 г.

Upgrade Kamailio from v5.1.x to v5.2.0

https://www.kamailio.org/wiki/install/upgrade/5.1.x-to-5.2.0

dispatcher

UPG: Several parameters that were used to specify AVP names were removed, you have to remove the appropriate config modparams:
modparam("dispatcher", "dst_avp", "$avp(AVP_DST)")
modparam("dispatcher", "grp_avp", "$avp(AVP_GRP)")
modparam("dispatcher", "cnt_avp", "$avp(AVP_CNT)")
modparam("dispatcher", "sock_avp", "$avp(AVP_SOCK)")
modparam("dispatcher", "attrs_avp", "$avp(AVP_ATTRS)")
Starting with v5.2.0, the module is using XAVPs instead of those AVPs, the related parameters are:
  • xavp_dst
  • xavp_dst_mode
  • xavp_ctx
  • xavp_ctx_mode
Плюс нужно чистить presence

среда, 1 февраля 2017 г.

centos 7: собираем mod_shout

Обращаю внимание, что сборку крайне желательно выполнять на отдельном сервере, а бездумное подключение сторонних реп на рабочих серверах чревато.

Суть в том, что штатно не собрать mod_shout, так как не хватает библиотек. При сборке скажет что нет libshout, но даже после установки и configure всё-равно модуль не соберётся. Потому что в зависимостях:
libshout
mpg123
lame

И всё печально. В freeswitch.spec видим
Requires:       libshout >= 2.3.1
Requires:       libmpg123 >= 1.20.1

Первая есть в base, вторую и третью надо ставить отдельно.
lame можно взять тут
yum -y install http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
или просто скачать либы с
http://li.nux.ro/download/nux/dextop/el7/x86_64/
можно так
yumdownloader lame-\*
(нужно всё кроме lame-mp3x)

mpg123 там тоже слишком стар, ибо там 1.15, а configure смотрит
checking for libmpg123 >= 1.16.0... no

Качаем отсюда
wget ftp://fr2.rpmfind.net/linux/atrpms/el7-x86_64/atrpms/stable/mpg123-1.18.1-1.el7.x86_64.rpm
wget ftp://fr2.rpmfind.net/linux/atrpms/el7-x86_64/atrpms/stable/mpg123-devel-1.18.1-1.el7.x86_64.rpm

Для сборки
yum install -y libshout-devel
rpm -Uvh *.rpm

Теперь переходим в сорцы и заново делаем bootstrap, configure итд.

пятница, 18 ноября 2016 г.

FreeSWITCH: меняем правила voicemail

Пробема с voicemail в том, что диалог вписан в код. Если требуется чуть изменить текст - можно менять фразы, штатно это файлы
/etc/freeswitch/lang/%lang%/vm/sounds.xml
Но структура там - оставили сообщение, а потом "нажмите ... чтобы прослушать, нажмите ... чтобы пометить важным" итд. А нужно скинуть звонок сразу после сохранения.
Второй момент - даже если убирать "лишние" play-file, тишину в 10-15с (ожидание ввода) штатно не убрать.
Но есть хитрость: открываем доку https://freeswitch.org/confluence/display/FREESWITCH/Speech+Phrase+Management и ближе к концу видим  Action functions. Список там конечно небольшой...

  • execute - calls the FreeSWITCH execute API (you can execute any other API's)
  • play-file - play a specific audio file or play a macro using phrase:macro_name
  • say - Call the specific "type" say api as below. The method is used to modify the way the data is annunciated (counted, iterated, or pronounced).
  • speak-text - Speak some text using the TTS engine
  • break - Stop parsing any more input patterns.

Но на помощь нам приходит execute. Итак: ищем блок voicemail_record_file_check, и приводим к виду
      <match>
        <action function="play-file" data="voicemail/vm-message.wav"/>
        <action function="play-file" data="voicemail/vm-saved.wav"/>
        <action function="play-file" data="voicemail/vm-goodbye.wav"/>
        <action function="execute" data="hangup()"/>
      </match>

Всё, теперь скажет "сообщение сохранено, до свидания" и сбросит звонок.

вторник, 18 октября 2016 г.

FreeSWITCH: начало

Что можно прочитать для старта

От @Deepwalker (потом его обидели разрабы и он ушел от FS)
https://habrahabr.ru/post/50091/
https://habrahabr.ru/post/50140/
https://habrahabr.ru/post/50240/

https://voipnotes.ru/instrukcii.html

Перевод доки (уже несколько устаревший, но для знакомства норм)
http://garantum.ru/content/category/8-freeswitch

Ну и разумеется офдока
https://freeswitch.org/confluence/display/FREESWITCH/FreeSWITCH+Explained

Есть старая дока, но части данных там просто нет, и есть шанс что могут просто удалить её. Хотя и там есть крупицы полезного
https://wiki.freeswitch.org/wiki/Main_Page

Каналы @ru_voip, @ru_freeswitch в telegram
канал #freeswitch в IRC, сервера freenode

Далее, ставить лучше всего уже собранные официальные пакеты, начиная с freeswitch-meta-vanilla
запускать
service freeswitch start
Консоль отладки
fs_cli

Показывать сип-пакеты:
sofia global siptrace on
Изменение уровня в консоли и логах (если в логе info, в консоли ниже чем info также не будет):
fsctl loglevel debug
Системная отладка, полезно при проблемах со свичом (в консоль пишется всегда, при любом уровне):
sofia loglevel all 9
Отключить вывод в консоль, но писать в лог как обычно:
/log 0
Также вместо 0-9 можно писать уровень, info, debug, err...

понедельник, 5 сентября 2016 г.

обновление таймзон

Штатный timezones.conf.xml весьма стар.
Хорошая новость: есть скрипт scripts/perl/timezone-gen.pl
Плохая новость: он лежит в сорцах и в штатных пакетах его нет, надо качать сорцы и забирать оттуда.
Для запуска требуется наличие актуального /usr/share/zoneinfo