Kamailio. uac_auth. cseq. t_relay fail.
чтобы увеличивать cseq нужно использовать модуль диалог.
modparam(“dialog”, “track_cseq_updates”, 1)
если вы используете в failure_route uac_auth, то учите что при несовпадении realm в запросе на авторизацию и в функции uac_auth вы получите ошибку
ERROR: {1 62503 INVITE } tm [t_fwd.c:1717]: t_forward_nonack(): no branches for forwarding
ERROR: {1 62503 INVITE } tm [tm.c:1679]: _w_t_relay_to(): t_forward_noack failed
А в 2016 был баг на эту тему в kamailio. сейчас видимо не баг.
16.06.2017TLS. Kamailio. Asterisk. Настройка
Схема которую планировали реализовать:
Client1 —<TLS>— Kamailio —<UDP>— Asterisk —<UDP>— Kamailio —<TLS>— <Client2>
Что почитать перед тем как настраивать, это сразу несколько позиций, они обязательно вам пригодятся, ибо быстро сделать даже такую простую схему без понимания принципа не получится. А может и получится, но останутся дыры.
- Документация TLS модуля для Камалио 4.4 – прекрасно описывается как создать сертификат без получения и т.д.
- ssldump -Nn покажет обмен внутри протокола ssl кто кому какие сертификаты посылает
- howto kamailio and tls
Теперь непосредственно, то как работает TLS в двух словах.
- создать центра сертификации – CA
- подписать им сертификат для Камалио
- скопировать в подписанный сертификат приватный ключь, этот на всякий случай
- создать сертификат для sip-клиента
- скопировать приватный ключ в сертификат т.к. некоторые сип клиенты не имеют возможность для указания отдельно приватного ключа в настройках
- вынести конфигурацию tls в отдельный файл
- далее прописать в calist.pem сертификат CA. Это нужно чтобы камалио получив сертификат от клиента проверил его CA в своем списке и если СА в доверенных, то одобрить сертификат (при этом неважно откуда звонит клиент и какой домен (CN) указан в сертификате
- Повесить камалио на lts : listen:tls:ip_address:5061
- подключить к своему клиенту сертификат.
- клиент будет проверять сертификат поэтому, в виндоус нужно добавить в доверенные центры сертификации ваш сертификат CA, который вы создавали в самом начале.
- в сертификате Камалио обязательно должен быть указан CN соответствующий домену Камалио, либо его IP адресу если домена как такогово нет.
- В настройках камалио нужно оставить только verify_certificate = yes, require_certificate = no. Если поставить оба значения, то у меня ситуация выглядела так: Во время звонка при передаче ACK сообщения sip-клиент создавал новое соединение TLS и оно было отказывалось работать, потому, что не совпадали CN ожидаемые sip-клиентом и указанные в сертификате. Не стал разбираться дальше почему так происходит.
Настройка на данном этапе завершена, сертификат проверяется, т.е. использовать левый сертификат не получится.
8.11.2014freeradius. cdrtool. patch
*** Warning: Linking the shared library rlm_sqlcounter.la against the loadable module
*** rlm_sql.so is not portable!
gcc -shared .libs/rlm_sqlcounter.o -L/usr/local/lib -lfreeradius-radius -lrlm_sql -lnsl -lresolv -lpthread -Wl,-soname -Wl,rlm_sqlcounte counter-2.1.12.so
/usr/bin/ld: cannot find -lrlm_sql
collect2: error: ld returned 1 exit status
libtool: install: error: relink `rlm_sqlcounter.la’ with the above command before installing it
Решение найдено в интеренет, как работает хуй знает – от этого тошно, но все же выглядит оно так:
надо конфигурить с параметром:
./configure --disable-cxx Эх, где ж вы спецы линуксовые хорошие. PS: помогло то, что скачал пакет из репозитория вместо того чтобы скачивать командой apt-get source freeradius.
| Posted in kamailio, Проблемы в коде, Проблемы при настройке | No Comments »