Отладка SIP-сигнализации: как читать логи Asterisk и Kamailio без гадания
Логи полезны только когда вы сначала фиксируете точку разрыва: INVITE ушёл, 100 Trying пришёл, а дальше тишина; или 401/407 есть, но повторного INVITE нет; или диалог поднялся, а BYE не доехал. В Asterisk смотрите chan_sip/pjsip debug, в Kamailio — siptrace, xlog и маршрутизацию в request_route, иначе вы будете лечить не тот узел.
Правило чтения простое: один вызов — один Call-ID — одна цепочка. Сопоставляйте Via, From/To tag, CSeq и branch, чтобы понять, где SIP-стек изменил состояние. Если в логах есть retransmissions, ищите потерю ответа или блокировку NAT; если ответы прыгают по кодам, проверьте auth, routing и rewrite контактных заголовков.
В дампе Wireshark важны не красивые графики, а порядок транзакций: INVITE → provisional → 200 OK → ACK. ACK на 200 OK не должен повторяться как ответ, а 200 OK без ACK почти всегда указывает на проблему маршрута назад, firewall или неправильный Contact. Для RTP отдельно проверяйте c=, m=, symmetric RTP и порты, иначе сигнализация выглядит исправной, а медиа не идёт.
Если Asterisk и Kamailio стоят в цепочке, сравнивайте не только SIP-пакеты, но и решения маршрутизации: куда Kamailio отправил запрос, какой Contact он отдал, и что Asterisk записал в session log. Разбираем дамп трафика в Wireshark, и вот что мы там видим... Отказоустойчивость — это не роскошь, а базовое требование к SIP-платформе.
Работа с API телефонии
@phone_api_gateway_arb
Отладка SIP-сигнализации: как читать логи Asterisk и Kamailio без гадания
Этот пост опубликован в Telegram-канале Работа с API телефонии. Подписаться можно по ссылке: @phone_api_gateway_arb.