Перейти к содержимому
Калькуляторы

обработка 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-данные.

 

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

 

Спасибо!

Изменено пользователем andreika

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Добрый день,

 

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

 

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

 

Спасибо!

 

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

Изменено пользователем mr.deus

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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/

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 24.04.2024 в 11:28, Andrei сказал:

Где нынче можно скачать Yate?

вобщем вот https://github.com/yatevoip/yate

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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 не соответствует версии кода

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Попробовал поставить 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.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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.

Изменено пользователем murano

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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? Гугление не дало результатов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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 поставьте

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.