andreika Posted July 16, 2015 (edited) · Report post Добрый день, Стоит задача - интегрировать имеющуюся 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 July 16, 2015 by andreika Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
2c2i Posted July 16, 2015 · Report post Вроде бы есть модуль камаилио http://kamailio.org/docs/modules/devel/modules/sipt.html, который декодирует sip-i/sip-t ISUP и даже умеет немного модифицировать. SEMS в режиме sbc умеет пропускать ISUP прозрачно, но декодировать/модифицировать не умеет. Мы похожую задачу сейчас планируем на SEMS решать, путем написания парсера ISUP. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
2c2i Posted July 16, 2015 · Report post Хотя, если вам нужно прозрачно - SEMS sbc подойдет, если конечно ваша схема позволит роутить через SEMS, без asterisk. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
andreika Posted July 16, 2015 · Report post если прозрачно, то и Kamailio справляется - пропускает данные. но мне нужно проводить операции с ними - сохранить, прикрепить. а модуль sipt умеет только читать некоторые переменные. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
mr.deus Posted September 14, 2021 (edited) · Report post On 7/16/2015 at 4:15 PM, andreika said: Добрый день, Стоит задача - интегрировать имеющуюся Kamailio+Asterisk инфраструктуру с провайдером, требующим поддержку SIP-I. о Кто-нибудь сталкивался с похожей проблемой? Возможно, есть более простое решение? Спасибо! Немного некропост, но. Удалось ли автору решить вопрос с поддержкой SIP-I на стороне Астериска? Если есть готовое решение - куплю. Edited September 14, 2021 by mr.deus Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
MATPOC Posted September 16, 2021 · Report post Единственный софт (который я видел), умеет реально работать с SIP-T/SIP-I - YATE. Можно поставить YATE между астериском и Kamailio, либо исходящий YATE подавать сразу на провайдера. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Andrei Posted March 19 · Report post В 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? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Andrei Posted April 24 · Report post В 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/ но не понятно, оно это или нет? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Andrei Posted May 14 · Report post В 24.04.2024 в 11:28, Andrei сказал: Где нынче можно скачать Yate? вобщем вот https://github.com/yatevoip/yate Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Andrei Posted July 6 · Report post В 16.07.2015 в 21:50, andreika сказал: Kamailio ставлю к нему gui - siremis инструкция - https://kb.asipto.com/siremis:install53x:main Но беда: на Step 2 нет выбора типа базы в /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 Только копаться в исходниках в поисках баги? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
murano Posted July 6 · Report post 7 часов назад, Andrei сказал: ставлю к нему gui - siremis инструкция - https://kb.asipto.com/siremis:install53x:main Но беда: на Step 2 нет выбора типа базы в /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 не соответствует версии кода Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Andrei Posted July 6 · Report post 2 часа назад, murano сказал: Версия php не соответствует версии кода Сделал по инструкции apt-get install php php-mysql php-gd php-curl php-xml libapache2-mod-php php-pear и 12й дебиан поставил 8й php. Обязательно надо 7й? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
murano Posted July 6 · Report post 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Andrei Posted July 7 · Report post Попробовал поставить 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. Короче, шляпа. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
murano Posted July 9 (edited) · Report post В 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 July 9 by murano Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Andrei Posted July 9 · Report post 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? Гугление не дало результатов. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Andrei Posted July 9 · Report post 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
murano Posted July 10 · Report post 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 поставьте Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Andrei Posted July 10 · Report post Поставил. Там дальше грабли щедро разложены, на каждом этапе. То get_magic_quotes_gpc() устаревшая (хотя git брал последний), то " Table 'siremis.user' doesn't exist " Какой-то закат солнца вручную 😞 Выяснилось, что базу siremis инсталляха создала, но база пустая, ни одной таблицы. Казалось бы - дропнуть базу и заново запустить инсталяху, но нет: Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Andrei Posted July 10 · Report post Пришлось дропнуть базу, удалить файлик install.lock и тогда инсталяха запустилась. Галки в инструкции на этапе создания базы расставлены неправильно, экспериментально выявил как правильно и наконец-то вэб siremis заработал Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...