Jump to content
Калькуляторы

обработка sip-i isup

Добрый день,

 

Стоит задача - интегрировать имеющуюся Kamailio+Asterisk инфраструктуру с провайдером, требующим поддержку SIP-I. Проблема заключается в том, что после того, как звонок приходит на Asterisk вместе с isup-данными (Kamailio их пропускает успешно) необходимо перенаправить звонок дальше на другой номер, сохраняя исходные isup-данные. Asterisk же при звонке на переадресованный номер при помощи Dial(SIP/..) создаёт новый CHANNEL, в котором уже нет isup.

Я вижу два решения:

1. модуль для Asterisk, который прозрачно сохраняет isup в данной конфигурации,

2. научить Kamailio сохранять isup, и присоединять снова при звонке на конечный номер.

К сожалению, модуля для asterisk такового я не нашёл. pjsip вроде умеет работать с multipart, но настроить не получилось.

проблема с Kamailio заключается в том, что невозможно декодировать isup-данные. Их можно присоединить к новому INVITE-пакету, используя append_body_part(). Только непонятно как получить исходные isup-данные.

 

Кто-нибудь сталкивался с похожей проблемой? Возможно, есть более простое решение?

 

Спасибо!

Edited by andreika

Share this post


Link to post
Share on other sites

Вроде бы есть модуль камаилио http://kamailio.org/docs/modules/devel/modules/sipt.html, который декодирует sip-i/sip-t ISUP и даже умеет немного модифицировать. SEMS в режиме sbc умеет пропускать ISUP прозрачно, но декодировать/модифицировать не умеет. Мы похожую задачу сейчас планируем на SEMS решать, путем написания парсера ISUP.

Share this post


Link to post
Share on other sites

Хотя, если вам нужно прозрачно - SEMS sbc подойдет, если конечно ваша схема позволит роутить через SEMS, без asterisk.

Share this post


Link to post
Share on other sites

если прозрачно, то и Kamailio справляется - пропускает данные. но мне нужно проводить операции с ними - сохранить, прикрепить.

а модуль sipt умеет только читать некоторые переменные.

Share this post


Link to post
Share on other sites

On 7/16/2015 at 4:15 PM, andreika said:

Добрый день,

 

Стоит задача - интегрировать имеющуюся Kamailio+Asterisk инфраструктуру с провайдером, требующим поддержку SIP-I. о

 

Кто-нибудь сталкивался с похожей проблемой? Возможно, есть более простое решение?

 

Спасибо!

 

Немного некропост, но. Удалось ли автору решить вопрос с поддержкой SIP-I на стороне Астериска? Если есть готовое решение - куплю.  

Edited by mr.deus

Share this post


Link to post
Share on other sites

Единственный софт (который я видел), умеет реально работать с SIP-T/SIP-I - YATE. Можно поставить YATE между астериском и Kamailio, либо исходящий YATE подавать сразу на провайдера.

Share this post


Link to post
Share on other sites

В 16.09.2021 в 13:38, MATPOC сказал:

Единственный софт (который я видел), умеет реально работать с SIP-T/SIP-I - YATE. Можно поставить YATE между астериском и Kamailio, либо исходящий YATE подавать сразу на провайдера.

Описанного тут  https://habr.com/ru/articles/156469/ достаточно для работы SIP-T на Yate?
В asterisk или freeswitch так и не появилось поддержки sip-t?

Share this post


Link to post
Share on other sites

В 16.09.2021 в 13:38, MATPOC сказал:

Единственный софт (который я видел), умеет реально работать с SIP-T/SIP-I - YATE. Можно поставить YATE между астериском и Kamailio, либо исходящий YATE подавать сразу на провайдера.

Где нынче можно скачать Yate? Во всех статьях, где рассказывается об установке из сорцов, ссылка для скачивания сорцов мертвая.

Лучше конечно deb-пакет. Нашел только вот тут http://tardis.tiny-vps.com/aarm/packages/y/yate/

но не понятно, оно это или нет?

 

Share this post


Link to post
Share on other sites

В 16.07.2015 в 21:50, andreika сказал:

Kamailio

ставлю к нему gui - siremis инструкция - https://kb.asipto.com/siremis:install53x:main

Но беда: на  Step 2 нет выбора типа базы
image.thumb.png.4038a89b928cab1534f53b819636d05f.png

 

в /etc/kamailio/kamctlrc настройки присутствуют

## database type: MYSQL, PGSQL, ORACLE, DB_BERKELEY, DBTEXT, or SQLITE
## by default none is loaded
##
## If you want to setup a database with kamdbctl, you must at least specify
## this parameter.
DBENGINE=MYSQL

## database host
DBHOST=localhost

## database port
DBPORT=3306

## database name (for ORACLE this is TNS name)
DBNAME=kamailio

## database path used by dbtext, db_berkeley or sqlite
# DB_PATH="/usr/local/etc/kamailio/dbtext"

## database read/write user
DBRWUSER="kamailio"

## password for database read/write user
DBRWPW="kamailiorw"

## database read only user
DBROUSER="kamailioro"

в /etc/kamailio/kamailio.cfg так же присуствует

#!define WITH_MYSQL
....

####### Modules Section ########

/* set paths to location of modules */
# mpath="/usr/lib/x86_64-linux-gnu/kamailio/modules/"

# -- for siremis CDRs --------------
loadmodule "rtimer.so"
loadmodule "sqlops.so"

#!ifdef WITH_MYSQL
loadmodule "db_mysql.so"
#!endif

OS - Debian12, mysql в виде MariaDB  присутствует, база kamailio и пользователи к ней созданы.

 

В апачевских ошибках при открытии страницы этого этапа настройки:
 

[Sat Jul 06 12:18:30.374348 2024] [php:error] [pid 35308] [client xxx.xxx.xxx.67:6336] PHP Fatal error:  Uncaught ArgumentCountError: 
Too few arguments to function userErrorHandler(), 4 passed in /var/www/siremis-5.3.x/openbiz/bin/ErrorHandler.php on line 132 and exactly 
5 expected in /var/www/siremis-5.3.x/openbiz/bin/sysheader.inc:126\nStack trace:\n#0 /var/www/siremis-5.3.x/openbiz/bin/ErrorHandler.php(132): 
userErrorHandler()\n#1 /var/www/siremis-5.3.x/openbiz/bin/ErrorHandler.php(75): OB_ErrorHandler::_errorBacktrace()\n
#2 /var/www/siremis-5.3.x/openbiz/bin/sysheader.inc(140): OB_ErrorHandler::exceptionHandler()\n#3 [internal function]: 
userExceptionHandler()\n#4 {main}\n  thrown in /var/www/siremis-5.3.x/openbiz/bin/sysheader.inc on line 126, referer: 
http://xxx.xxx.xxx.7/siremis/install/index.php?step=1

Только копаться  в исходниках в поисках баги?

 

 

Share this post


Link to post
Share on other sites

7 часов назад, Andrei сказал:

ставлю к нему gui - siremis инструкция - https://kb.asipto.com/siremis:install53x:main

Но беда: на  Step 2 нет выбора типа базы
image.thumb.png.4038a89b928cab1534f53b819636d05f.png

 

в /etc/kamailio/kamctlrc настройки присутствуют

## database type: MYSQL, PGSQL, ORACLE, DB_BERKELEY, DBTEXT, or SQLITE
## by default none is loaded
##
## If you want to setup a database with kamdbctl, you must at least specify
## this parameter.
DBENGINE=MYSQL

## database host
DBHOST=localhost

## database port
DBPORT=3306

## database name (for ORACLE this is TNS name)
DBNAME=kamailio

## database path used by dbtext, db_berkeley or sqlite
# DB_PATH="/usr/local/etc/kamailio/dbtext"

## database read/write user
DBRWUSER="kamailio"

## password for database read/write user
DBRWPW="kamailiorw"

## database read only user
DBROUSER="kamailioro"

в /etc/kamailio/kamailio.cfg так же присуствует

#!define WITH_MYSQL
....

####### Modules Section ########

/* set paths to location of modules */
# mpath="/usr/lib/x86_64-linux-gnu/kamailio/modules/"

# -- for siremis CDRs --------------
loadmodule "rtimer.so"
loadmodule "sqlops.so"

#!ifdef WITH_MYSQL
loadmodule "db_mysql.so"
#!endif

OS - Debian12, mysql в виде MariaDB  присутствует, база kamailio и пользователи к ней созданы.

 

В апачевских ошибках при открытии страницы этого этапа настройки:
 

[Sat Jul 06 12:18:30.374348 2024] [php:error] [pid 35308] [client xxx.xxx.xxx.67:6336] PHP Fatal error:  Uncaught ArgumentCountError: 
Too few arguments to function userErrorHandler(), 4 passed in /var/www/siremis-5.3.x/openbiz/bin/ErrorHandler.php on line 132 and exactly 
5 expected in /var/www/siremis-5.3.x/openbiz/bin/sysheader.inc:126\nStack trace:\n#0 /var/www/siremis-5.3.x/openbiz/bin/ErrorHandler.php(132): 
userErrorHandler()\n#1 /var/www/siremis-5.3.x/openbiz/bin/ErrorHandler.php(75): OB_ErrorHandler::_errorBacktrace()\n
#2 /var/www/siremis-5.3.x/openbiz/bin/sysheader.inc(140): OB_ErrorHandler::exceptionHandler()\n#3 [internal function]: 
userExceptionHandler()\n#4 {main}\n  thrown in /var/www/siremis-5.3.x/openbiz/bin/sysheader.inc on line 126, referer: 
http://xxx.xxx.xxx.7/siremis/install/index.php?step=1

Только копаться  в исходниках в поисках баги?

 

 

Версия php не соответствует версии кода

Share this post


Link to post
Share on other sites

2 часа назад, murano сказал:

Версия php не соответствует версии кода

Сделал по инструкции

apt-get install php php-mysql php-gd php-curl php-xml libapache2-mod-php php-pear

и 12й дебиан поставил 8й php. Обязательно надо 7й?

Share this post


Link to post
Share on other sites

17 минут назад, Andrei сказал:

Сделал по инструкции

apt-get install php php-mysql php-gd php-curl php-xml libapache2-mod-php php-pear

и 12й дебиан поставил 8й php. Обязательно надо 7й?

Скорей всего да. В рекомендациях написана версия 7 максимум. Скорей всего в коде есть какие-то deprecated-функции, которые в 8 версии выпилены. Ищите в инете php-7 sury debian

Share this post


Link to post
Share on other sites

Попробовал поставить php 7.4.
How to - https://tecadmin.net/how-to-install-php-on-debian-12/

 

Но wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
выдает ошибку:
Resolving packages.sury.org (packages.sury.org)... 93.189.63.149
Connecting to packages.sury.org (packages.sury.org)|93.189.63.149|:443... connected.
HTTP request sent, awaiting response... 451
2024-07-07 21:41:34 ERROR 451: (no description).

 

Но можно просто зайти на https://packages.sury.org/php/ и скачать этот файл.
Однако если его положить в /etc/apt/trusted.gpg.d и переименовать в php.gpg, то

apt update

...

E: Failed to fetch https://packages.sury.org/php/dists/bookworm/InRelease 451   [IP: 93.189.63.149 443]
E: The repository 'https://packages.sury.org/php bookworm InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.

Короче, шляпа.

Share this post


Link to post
Share on other sites

В 07.07.2024 в 23:55, Andrei сказал:

Попробовал поставить php 7.4.
How to - https://tecadmin.net/how-to-install-php-on-debian-12/

 

Но wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
выдает ошибку:
Resolving packages.sury.org (packages.sury.org)... 93.189.63.149
Connecting to packages.sury.org (packages.sury.org)|93.189.63.149|:443... connected.
HTTP request sent, awaiting response... 451
2024-07-07 21:41:34 ERROR 451: (no description).

 

Но можно просто зайти на https://packages.sury.org/php/ и скачать этот файл.
Однако если его положить в /etc/apt/trusted.gpg.d и переименовать в php.gpg, то

apt update

...

E: Failed to fetch https://packages.sury.org/php/dists/bookworm/InRelease 451   [IP: 93.189.63.149 443]
E: The repository 'https://packages.sury.org/php bookworm InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.

Короче, шляпа.

Если wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add - не работает, то чере впн скачайте файлик, закиньте на сервер и выполните apt-key add apt.gpg.

Edited by murano

Share this post


Link to post
Share on other sites

2 часа назад, murano сказал:

чере впн скачайте файлик, закиньте на сервер и выполните apt-key add apt.gpg.

Файлик-то я скачал и положил в /etc/apt/trusted.gpg.d/

Но:

 apt-key add apt.gpg
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK


 apt update
Hit:1 http://security.debian.org/debian-security bookworm-security InRelease
Hit:2 http://deb.debian.org/debian bookworm InRelease
Get:3 http://deb.kamailio.org/kamailio55 buster InRelease [4,223 B]
Hit:4 http://deb.debian.org/debian bookworm-updates InRelease
Err:5 https://packages.sury.org/php bookworm InRelease
  451   [IP: 93.189.63.149 443]
Reading package lists... Done
E: Failed to fetch https://packages.sury.org/php/dists/bookworm/InRelease  451   [IP: 93.189.63.149 443]
E: The repository 'https://packages.sury.org/php bookworm InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: http://deb.kamailio.org/kamailio55/dists/buster/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

Может есть какие-то другие репозитории с 7м php? Гугление не дало результатов.

Share this post


Link to post
Share on other sites

16 часов назад, murano сказал:

Если wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add - не работает, то чере впн скачайте файлик, закиньте на сервер и выполните apt-key add apt.gpg.

Оказывается - https://qna.habr.com/q/1359584
sury.org заблокировал Россию
Пруф: https://github.com/oerdnj/deb.sury.org/issues/2155

 

Таблэтка: https://blog.altuninvv.ru/linux/debian/установка-php-83-на-debian-12-bookworm-после-блокировки-репозитория-debsuryorg

php7.4 ставится так же с того же зеркала.

 

Но проблему установка php7 не решила
 

[Tue Jul 09 22:39:34.383936 2024] [php7:error] [pid 71550] [client xxx.xxx.xxx.67:16717] PHP Fatal error:  Uncaught Error: 
Call to undefined function xml_parser_create() in /var/www/siremis-5.3.x/openbiz/bin/util/xmltoarray.php:80\nStack trace:\n#0 
/var/www/siremis-5.3.x/openbiz/bin/Resource.php(395): XMLParser->getTree()\n#1 /var/www/siremis-5.3.x/openbiz/bin/BizSystem.php(5
98): Resource::getXmlArray()\n#2 /var/www/siremis-5.3.x/openbiz/bin/ObjectFactory.php(112): BizSystem::getXmlArray()\n#3 
/var/www/siremis-5.3.x/openbiz/bin/ObjectFactory.php(56): ObjectFactory->constructObject()\n#
4 /var/www/siremis-5.3.x/openbiz/bin/BizSystem.php(252): ObjectFactory->getObject()\n#5 /var/www/siremis-5.3.x/openbiz/bin/BizSystem.php(241): 
BizSystem::getObject()\n#6 /var/www/siremis-5.3.x/openbiz/bin/BizSystem.php(533): BizSystem::getService()\n
#7 /var/www/siremis-5.3.x/openbiz/bin/ErrorHandler.php(78): BizSystem::logError()\n#8 /var/www/siremis-5.3.x/openbiz/bin/sysheader.inc(140):
 OB_ErrorHandler::exceptionHandler()\n#9 [internal function]: userExceptionHandler()\n#10 {main}\n  thrown in 
/var/www/siremis-5.3.x/openbiz/bin/util/xmltoarray.php on line 80, referer: http://xxx.xxx.xxx.7/siremis/install/index.php?step=2

 

Share this post


Link to post
Share on other sites

23 часа назад, Andrei сказал:

Оказывается - https://qna.habr.com/q/1359584
sury.org заблокировал Россию
Пруф: https://github.com/oerdnj/deb.sury.org/issues/2155

 

Таблэтка: https://blog.altuninvv.ru/linux/debian/установка-php-83-на-debian-12-bookworm-после-блокировки-репозитория-debsuryorg

php7.4 ставится так же с того же зеркала.

 

Но проблему установка php7 не решила
 

[Tue Jul 09 22:39:34.383936 2024] [php7:error] [pid 71550] [client xxx.xxx.xxx.67:16717] PHP Fatal error:  Uncaught Error: 
Call to undefined function xml_parser_create() in /var/www/siremis-5.3.x/openbiz/bin/util/xmltoarray.php:80\nStack trace:\n#0 
/var/www/siremis-5.3.x/openbiz/bin/Resource.php(395): XMLParser->getTree()\n#1 /var/www/siremis-5.3.x/openbiz/bin/BizSystem.php(5
98): Resource::getXmlArray()\n#2 /var/www/siremis-5.3.x/openbiz/bin/ObjectFactory.php(112): BizSystem::getXmlArray()\n#3 
/var/www/siremis-5.3.x/openbiz/bin/ObjectFactory.php(56): ObjectFactory->constructObject()\n#
4 /var/www/siremis-5.3.x/openbiz/bin/BizSystem.php(252): ObjectFactory->getObject()\n#5 /var/www/siremis-5.3.x/openbiz/bin/BizSystem.php(241): 
BizSystem::getObject()\n#6 /var/www/siremis-5.3.x/openbiz/bin/BizSystem.php(533): BizSystem::getService()\n
#7 /var/www/siremis-5.3.x/openbiz/bin/ErrorHandler.php(78): BizSystem::logError()\n#8 /var/www/siremis-5.3.x/openbiz/bin/sysheader.inc(140):
 OB_ErrorHandler::exceptionHandler()\n#9 [internal function]: userExceptionHandler()\n#10 {main}\n  thrown in 
/var/www/siremis-5.3.x/openbiz/bin/util/xmltoarray.php on line 80, referer: http://xxx.xxx.xxx.7/siremis/install/index.php?step=2

 

так модуль php7.4-xml поставьте

Share this post


Link to post
Share on other sites

Поставил. Там дальше грабли щедро разложены, на каждом этапе.

То get_magic_quotes_gpc() устаревшая (хотя git брал последний), то " Table 'siremis.user' doesn't exist "

Какой-то закат солнца вручную 😞

 

Выяснилось, что базу siremis инсталляха создала, но база пустая, ни одной таблицы.

Казалось бы - дропнуть базу и заново запустить инсталяху, но нет:
siremis.thumb.png.faf60b183e78d009e75b11fa44bc6e23.png

Share this post


Link to post
Share on other sites

Пришлось дропнуть базу, удалить файлик install.lock и тогда инсталяха запустилась.

Галки в инструкции на этапе создания базы расставлены неправильно, экспериментально выявил как правильно и наконец-то вэб siremis заработал

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now