Как определить с какой стороны произошел обрыв канала?
Архитектура системы в общих чертах выглядит так:
Софтсвитч на FreePBX, на который построены SIP-транки от телеком провайдеров; за ним -- астериск, на котором регистрируются трубки абонентов (разных виртуальных АТС). Т.е. софтсвитч выступает в качестве транзитного узла.
Клиент жалуется, что прорываются разговоры. Другие теннанты на том же астериске работают нормально.
Завершение разговора в логе выглядит так:
pbx.c: Spawn extension (ext-trunk, tdial, 10) exited non-zero on 'SIP/3101198-00010d46'
Контекста ext-trunk я нигде не могу найти. Подскажите, пожалуйста, как определить, с какой стороны происходит разрыв? Со стороны астериска, где живут все клиенты, или со стороны телеком-провайдера?
Дебажить транк очень сложно из-зо большого количества звонков, проходящи по нему.
И все-таки дебажить придется.
Не обязательно включать дебаг в астериске. Используйте tcpdump, а еще лучше sngrep.
Сохраните дамп за период, скажем 2-3 часа, в файл. Потом откроете sngrepом, отфильтруете по нужному номеру и будет видно, кто прислал BYE.