https://www.voip-info.org/sippy/
Это ещё не полноценная АТС, но уже умеет быть b2bua. Совсем грубо - это как SIPS + модуль b2bua + rtpengine
вторник, 23 апреля 2019 г.
пятница, 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
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
Плюс нужно чистить presence
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
среда, 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-devel-1.18.1-1.el7.x86_64.rpm
Для сборки
Суть в том, что штатно не собрать mod_shout, так как не хватает библиотек. При сборке скажет что нет libshout, но даже после установки и configure всё-равно модуль не соберётся. Потому что в зависимостях:
libshout
mpg123
lame
И всё печально. В freeswitch.spec видим
Requires: libshout >= 2.3.1
Requires: libmpg123 >= 1.20.1
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.rpmwget 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. Итак: ищем блок 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>
/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...
От @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
Хорошая новость: есть скрипт scripts/perl/timezone-gen.pl
Плохая новость: он лежит в сорцах и в штатных пакетах его нет, надо качать сорцы и забирать оттуда.
Для запуска требуется наличие актуального /usr/share/zoneinfo
Подписаться на:
Сообщения (Atom)