Логи SIP в Asterisk и Kamailio: как не утонуть в транзакциях и диалогах
Разбираем дамп трафика в Wireshark, и вот что мы там видим: сначала ищем не ошибку, а цепочку вызова. Для SIP важны Call-ID, From-tag, To-tag, branch в Via и CSeq — без них лог превращается в шум. Если INVITE ушёл, а 100 Trying нет, проблема часто не в медиа, а в маршрутизации, NAT или фильтрации на пути.
В Asterisk смотри три слоя: full для общей картины, pjsip set logger on для SIP и rtp set debug on только если уже подтвердил, что сигнализация живая. В логах полезно ловить моменты: ответ на INVITE, смену статуса диалплана, появление 401/407, повторные REGISTER и разрыв CSeq. Если видишь retransmit — ищи потери ответа, а не сразу “проблему кодека”.
В Kamailio отладка начинается с sl, tm, rr и собственных xlog(). Сравни входящий и исходящий SIP, проверь, не меняются ли Record-Route, Contact и топология заголовков. Частая ошибка — смотреть только message body и игнорировать ветвление транзакции: один INVITE может породить несколько ответов, и без branch-идентификатора картина ломается.
Рабочий порядок такой: сначала SIP-диалог, потом транзакция, потом RTP. Если в логах нет согласованности между Asterisk, Kamailio и захватом пакетов, ищи расхождение по Call-ID и таймингам. Отказоустойчивость — это не роскошь, а базовое требование к SIP-платформе: один неверно прочитанный заголовок легко маскирует реальную причину сбоя.
Работа с API телефонии
@phone_api_gateway_arb
Логи SIP в Asterisk и Kamailio: как не утонуть в транзакциях и диалогах
Этот пост опубликован в Telegram-канале Работа с API телефонии. Подписаться можно по ссылке: @phone_api_gateway_arb.