Отладка выполнения обработчика вызовов

1. Получите root доступ. Описано в разделе Как зайти на сервер под root

2. Установите уровень логирования, достаточный для логирования обработчика вызовов:

# asterisk -rx "core set verbose 3" 

3. Инициируйте звонок, например, на номер 0442404040

4. Откройте лог выполнения /var/log/asterisk/messages.
Выполните поиск по набранному номеру.
Инструкция по работе с лог файлами описана в разделе Как работать с лог файлом.

6. Вы найдете строку вида

Executing [0442404040@softswitch:1] MSet("SIP/small_customer_gw1-0000da42", "CALLEE_ID=0442404040") in new stack

Здесь:
MSet - приложение из обработчика вызовов. В данном случае соответствует элементу Установить.
softswitch - название обработчика вызовов, в контексте которого происходит обработка
SIP/small_customer_gw1-0000da42 - название входящего канала.

7. Для дальнейшего поиска по пути выполнения выполняйте поиск не по 2404040, поскольку дальше этот номер может меняться, а по названию канала.
В нашем случае SIP/small_customer_gw1-0000da42.
Нажмите F7 и скопируйте SIP/small_customer_gw1-0000da42 туда.

8. Выполняйте поиск пока не дойдете до последней инструкции.
Таким образом, вы проследите весь путь выполнения обработчика вызовов и сможете узнать, на каком приложении обработка остановилась.
Далее, вы можете использовать раздел Приложения, для проверки аргументов, переданных приложению.

9. Логирование в файл может быстро забить место на жестком диске, потому после завершения отладки желательно отключить логирование:

# asterisk -rx "core set verbose off" 

English translation