Страница 1 из 1

заикания разговоров между серверами Asterisk

СообщениеДобавлено: 03 дек 2022, 01:03
mattic
Добрый день!
Помогите, пожалуйста, по проблеме звонков между пользователями разных серверов Asterisk.
Имеются 5 серверов Asterisk разных версий. Все они между собой связаны VPN-каналами. При звонках с самого нового сервера(16.2.1) на самый старый Asterisk(11.11.0) бывает, что происходит заикание, квакание и т.д. Между тем когда звонки осуществляются между любыми другими серверами, то проблем нет.
Каналы VPN между площадками, где находятся сервера Asterisk составляют 100 Мбит/с, на 100% они не заняты. В целом каналы работают без потерь и просадок.
SIP-каналы при звонках между площадками поднимаются на самих серверах, т.е. между площадками трафик разговора идёт с телефонов на сервера, а потом уже между серверами. Сервера соединены по SIP-транку. Старый сервер(11.11.0) физический, а новый(16.2.1) виртуальный.
Ещё заметил, что при звонке через софтфон Zoiper между этими серверами разговор заикается, когда в разделе Statistics появляется Packets Lost в процентах.
Каналы отслеживаю по портам в Mikrotik - есть запас, также на корневых маршрутизаторах выставлен максимальный приоритет для пакетов с серверов Asterisk. Sip show channelstats на серверах выдаёт Lost 0.
Помогите прежде всего инструментами для отслеживания проблемы, т.к. меня больше всего удивляет, что при прочих одинаковых условиях из пяти серверов глючат только эти два между собой. Получается пять серверов могут позвонить между собой в девять разных вариантов, и восемь из них работают идеально. Само собой готов ответить на вопросы.

Re: заикания разговоров между серверами Asterisk

СообщениеДобавлено: 03 дек 2022, 03:18
ded
Соедините проблемный сервер по IAX2 (он для этого и придуман, IAX = Inter Asterisk eXchange).
Исследовать новый(16.2.1) виртуальный конечно можно на предмет проблем с SIP, но там много где надо рассматривать, зависит от гипервизора, от его нагрузки, от его виртуального свича. Например, смотрите на этой виртуалке общую нагрузку Load average командой
# htop
Нормальная текущая нагрузка не должна быть больше 1.0. Если больше - плохо, смотрите процессы в ядре гипервизора. Например в Hyper-V процесс __do_softirq загружает родительское ядро на 30%, при этом дочерние виртуальные машины Load average = свыше значений 7.0

hyperv и сихронизация времение hv_tools
[Mon Nov 28 18:00:41 2022] hv_utils: TimeSync IC version 4.0
[Mon Nov 28 18:03:30 2022] hv_utils: VSS: failed to communicate to the daemon: -22
[Mon Nov 28 18:12:56 2022] hv_utils: VSS: failed to communicate to the daemon: -22
[Mon Nov 28 18:12:57 2022] hv_utils: VSS: failed to communicate to the daemon: -22
Необходимо отключить данный механизм установки времени, и разрешить
атс самой синхронизировать время через ntp

Re: заикания разговоров между серверами Asterisk

СообщениеДобавлено: 03 дек 2022, 23:02
mattic
Спасибо за ответ!
Соедините проблемный сервер по IAX2 (он для этого и придуман, IAX = Inter Asterisk eXchange).

Раньше коллега до меня так делал, то IAX2 каналы подвисали и переключил на SIP.
Нормальная текущая нагрузка не должна быть больше 1.0.

В будни понаблюдаю, но раньше ядра виртуальной машины не были заняты больше чем на 3-4%. Хост виртуальных машин тоже был свободен, но актуальное состояние проверю.
hyperv и сихронизация времение hv_tools

У нас VMWare, есть синхронизация с ntp на сервере.

Re: заикания разговоров между серверами Asterisk

СообщениеДобавлено: 04 дек 2022, 00:44
Zavr2008
а новый(16.2.1) виртуальный

если виртуализатор в вашем ведении:
Включить режим максимальной производительности, в BIOS отключить всякие C1 режимы процессора и режимы сохранения энергии.

Записать wireshark RTP, выложить сюда Rtp Statistics, там важны clock drift, jitter, losses, skew и другие параметры.

Re: заикания разговоров между серверами Asterisk

СообщениеДобавлено: 11 янв 2023, 12:17
bsuiir
1) проверьте присутствует ли заикание на записи разговоров, как правило этот вопрос указывает на проблему в районе софтфона.
2) я бы запустил на двух проблемных серверах tcpdump и снял трейсы проблемного звонка. Что-нибудь вроде:
tcpdump -B 4096 -i any net -nn -s 0 -w /root/logsBackup/tcpdump/sip.pcap
Далее в wireshark есть хороший инструмент анализа RTP, он покажет джиттер и потерю пакетов. На основе этого вы определитесь с участком где точно есть потери.