24.12.2019

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. сейчас видимо не баг.

6.12.2018

firewalld asterisk fail2ban

На centos 7 по умолчанию используется firewalld и возникла проблема с тем что fail2ban не банит после неуспешных попыток авторизации и звонков

проблемы тут 2:

Первая это сами правила которыми пользуется  fail2ban чтобы банить, я их заменил на 

actionban = firewall-cmd –direct –add-rule ipv4 raw PREROUTING 0 -s -j DROP && firewall-cmd –change-source= –zone=block && firewall-cmd –change-source= –zone=block –permanent

actionunban = firewall-cmd –direct –remove-rule ipv4 raw PREROUTING 0 -s -j DROP && firewall-cmd –change-source= –zone=block && firewall-cmd –change-source= –zone=block –permanent && firewall-cmd –remove-source= –zone=block && firewall-cmd –remove-source= –zone=block –permanent 

Вторая это то, что firewalld разрешает все соединения которые были установлены и остались в таблицах, посмотреть их можно командой iptstate

решается первым правилом 
firewall-cmd –direct –add-rule ipv4 raw PREROUTING 0 -s -j DROP 

Которое добавляет блокировку пакетов до проверки ESTABLESHED,RELATED

А третья проблема была в фильтре fail2ban который смотрит для регистраций accountID, и по мнению fail2ban он может быть только числовым или <unknown> 

решается изменением регулярного выражения accountID = “(.+)” в фильтрах fail2ban. 

18.09.2018

asterisk freepbx wss webrtc issue

Команда для проверки установления TLS соединения, показывает информацию о сертификате и ошибки. 

openssl s_client -connect xxx.xxx.xxx.xxx:8089 -bugs

ошибка на астериске выдавала:

TLS non-recoverable I/O error occurred: error:00000005:lib(0):func(0):DH lib, System call EOF

Также в

Оказалось, просто истёк сертификат:

verify error:num=10:certificate has expired

но в через ssldump Этого не увидеть, там будет просто “S>C Alert” хотя абсолютно точно можно было посмотреть информацию о сертификате и понять это:

openssl x509 -in certificate.crt -text -noout

11.09.2018

load data local infile не работает

При попытке добавить данные из файла в Mysql 5.5 выдаёт следующее: ERROR 1148 (42000): The used command is not allowed with this MySQL version

Чтобы не вносить изменения в конфигурацию mysql достаточно выполнить команду:

set global local_infile = ‘ON’;

Детали можно почитать в статье.

11.09.2018

Как Астериск распределяет входящие звонки:

link to original

link to original answer

Incoming SIP Connections When Asterisk receives an incoming SIP call, the SIP Channel Module

  • first tries to find a [user] section matching the caller name (From: username),
  • then tries to find a [peer] section matching the caller’s IP address.

If no matching user or peer is found, the call is sent to the context defined in the [general] section of sip.conf.sip.conf.

6.07.2018

Mysql. Оптимизация. SHM. Error permission denied

Столкнулся с тем что Mysql пишет очень много на диск, работает в связке с Django.
Решил подключить /run/shm в качестве временного каталога, а он не подключается – “permission denied error 13”.

Оказалось всё просто, оказалось я использую apparmor(вероятно шел с дистрибутивом) вот тут инструкция.

12.07.2017

Неплохо бомбилo с ubuntu и boot разделом

Сначала не работал nginx как я хотел, а именно, он не отличал виртуальные хосты. Всё уходило вероятно в дефолтный.

Оказалось что версия nginx старая 1.4 решил обновить и понеслось.

1. /boot оказался слишком маленьким и образы системы не загружались
Потратил часа два чтобы понять как увеличить partition на живой системе, оказалось, что достаточно было выполнить команду apt-get autoremove и старые образы удалились, а новые загрузились

а дальше всё просто, обновляем nginx добавляем в nginx.cong “include …/sites-enabled/*”

и всё зажурчало прекрасно.

hints: no space left on device

22.06.2017

Настройка voip телефона Polycom 331 для работа с TLS и DNS SRV

Странная логика у этого аппарата, ну понятно, что в виду нехватка документации объяснить какие-то пункты я не смогу, например, мне не понятно, как взаимодействует раздел SIP и line1. Но моя задача была настроить телефон так, чтобы он работал с TLS и DNS SRV, т.к. в текущем проекте, мы использовали DNS failover. Сразу скажу, что все получилось и сама схема DNS SRV failover прекрасна.

Общая схема такая: Polycom 331tlsKamailio —udp— Asterisk

Итак, вот скрины настроек.

Остальные настройки вне line1 нужно сделать дефолтными, и всё пойдет.

7.04.2015

Проблемы с виртуальной машиной. Opensips. KVM.

http://opensips-open-sip-server.1449251.n2.nabble.com/fr-timer-not-working-properly-td7588092.html

Вот здесь описывается случай с процессором AMD Opteron(tm) Processor 6344 (on KVM).

 

1.04.2015

Opensips. NAT. Port. Asterisk.

Почти день потратил на то чтобы понять почему при исходящем звонке нет звука.

Система такая:

Client A ( local IP) —> Router(TP-Link) —-> Opensips (NAT_HELPER) —-> Asterisk (1.8) (A2Billing) —–> Carrier

По SIP trace все гладко, порты, IP адреса, все подменяется просто отлично но аудио нет. Не слышно абонента.

Оказывается при выходе с TP-link media отправлялось не с 8000 порта, а с 1024. Чертов роутер меняет его по свему усмотрению, при это в SIP сообщение он не залезает, потому, что я отключил все “умные” функции связанные с SIP сообщениями на роутере, для чего? Для того, чтобы быть уверенным в том, что SIP сообщение отправленное мной, не претерпевает изменений.

Так вот, а Астериск получая медиа-трафик с порта 1024 слал его на 8000, т.к. в сообщении указан именно он. TP-Link разводил руками, че это мне на 8000 порт приходит трафик, я шлю только с 1024.  В общем, в астериске есть настройка nat в sip.conf значение comedia означает, что астериск будет слать трафик на фактический адрес, с которого приходит медиа. Это решает такие проблемы.