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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.