вторник, 28 апреля 2020 г.

kamailio get versions

curl -sS 'https://registry.hub.docker.com/v2/repositories/kamailio/kamailio/tags/' | jq '."results"[]["name"]' | sort

"5.1.10-buster"
"5.1.10-precise"
"5.1.10-stretch"
"5.1.10-xenial"
"5.3.3-buster"
"5.3.3-jessie"
"5.3.3-precise"
"5.3.3-stretch"
"5.3.3-trusty"
"5.3.3-xenial"

вторник, 13 августа 2019 г.

pjproject, pjsip, pjsua

Всё в заголовке - это библиотека и консольный клиент для всяких тестов, типа sipp, но возможностей поболее. Куплено командой астериска Digium, поэтому свежий код есть именно там.
Первое что гуглится - это на code.google.com, но оно давно мертво.

На данный момент актуальная версия 2.9
https://www.pjsip.org/download.htm

И там же видим такую штуку
Development SVN URLs
The 2.x series:
http://svn.pjsip.org/repos/pjproject/trunk

Да, у них до сих пор svn. Не модно, не стильно, не молодёжно, но до сих пор работает.

Впрочем, для хипстеров есть и копия в git
https://github.com/pjsip/pjproject (фирменная)
https://github.com/asterisk/pjproject (астериска, похоже отстаёт)

Доки
https://trac.pjsip.org/repos
(скорее всего, уже устарели)

Про интеграцию с астером
https://wiki.asterisk.org/wiki/display/AST/PJSIP-pjproject

Описание структуры папок
https://trac.pjsip.org/repos/wiki/Getting-Started/Download-Source

Если хочется использовать либу из скриптов, есть такое
https://www.pjsip.org/docs/book-latest/html/intro_pjsua2.html
Оба языка требуют формирование либы pjsua2 через swig

Golang
https://www.min.at/prinz/?entry=entry180924-185225
https://github.com/rprinz08/pjgo
https://github.com/yslim/go_pjproject
Переходим в рабочую папку и запускаем
swig -c++ -go -cgo -intgosize 64 \
    -outcurrentdir \
    -I/usr/local/include \
    /path/to/pjsip/pjproject-2.8/pjsip-apps/src/swig/pjsua2.i
появится несколько файлов, включая pjsua2.go

Python
https://www.pjsip.org/docs/book-latest/html/intro_pjsua2.html#building-python-and-java-swig-modules
Сама либа лежит в pjsip-apps/src/swig - ставим swig, python-devel, java (openjdk-11-jdk) и прочее по зависимостям, потом make

Ощибки
/usr/bin/ld: /home/user/pjproject.git/pjsip/lib/libpjsua-x86_64-unknown-linux-gnu.a(pjsua_media.o): relocation R_X86_64_PC32 against symbol `pjsua_var' can not be used when making a shared object; recompile with -fPIC
Пересобираем pjproject
./configure --enable-shared
make dep & make
sudo make install
и в python/ будут нужные файлы
make install поставит файлы в /home/USER/.local/lib/python3.6/site-packages/

C go
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
Полный список примерно такой
apt install libssl-dev uuid-dev libasound-dev

вторник, 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