Отладка SMPP протокола в Asterisk¶
Предположим, вы хотите увидеть какие SMPP сообщения приходят от пользователя user001 и какие ему отсылаются ответные сообщения.
Для этого выполните следующую инструкцию:
1. Проверьте, что IP адрес пользователя не заблокирован fail2ban.
Узнать IP адрес пользователя можно, попросив его зайти по ссылке https://www.whatismyip.com/ и передать вам отображаемое значение.
Список заблокированных IP адресов находится в меню Сеть -> Таблицы файервола -> SMPP deny -> Хосты.
2. Получите доступ к консоли сервера. Описано в разделе Как зайти на сервер под root
3. Включите отладку SMPP для пользователя user001:
sudo asterisk -rx "smpp set debug peer user001"
Для снятия дампа таким способом нужно, чтоб Asterisk был известен IP адрес пользователя.
То есть, либо пользователь должен быть зарегистрирован, либо IP адрес пользователя должен быть сконфигурирован в настройках пользователя.
Если пользователь не зарегистрирован и IP адрес не сконфигурирован, то нужно узнать, с какого IP адреса приходят пакеты.
Узнать IP адрес пользователя можно, попросив его зайти по ссылке https://www.whatismyip.com/ и передать вам отображаемое значение.
Зная IP адрес, можно включить отладку следующим образом:
sudo asterisk -rx "smpp set debug ip 192.168.1.1"
Если вы хотите сделать отладку всех SMPP сообщений (а не с определенного пира/IP адреса), выполните следующее:
sudo asterisk -rx "smpp set debug on"
Однако в этом случае, если через сервер идет много сообщений, то поток сообщений будет большой.
И нужно довольно скоро отключить отладку, иначе на жестком диске закончится место.
4. Результаты можно просматривать на консоли Asterisk либо в файле.
Консоль Asterisk удобнее использовать, если вы хотите быстро посмотреть, приходит ли от клиента какие-то сообщения.
Однако консоль не позволяет производить поиск.
Файл удобнее использовать, если вы хотите выполнять поиск чего-либо в большом потоке сообщений.
Также файл удобнее использовать, если совместно с отладкой SMPP выполняется отладка Asterisk (описано в разделе Отладка Asterisk)
- консоль Asterisk
Зайдите в режим консоли:
sudo asterisk -r
После этого на экран будет выводить расшифровку SMPP сообщений.
Внимание! Поток сообщений в этом случае может быть большим и может привести к зависанию вашей программы-терминала.
- файл
Выполните поиск IP адреса клиента, или типа сообщения, например, SUBMIT_SM, в файле /var/log/asterisk/messages.
Затем проверьте не было ли ошибки после принятия сообщения и было ли отправлено ответное сообщение.
Принцип работы с лог файлами описан в разделе Как работать с лог файлом
5. Для предупреждения завершения места на жестком диске отключите отладку, когда закончили:
sudo asterisk -rx "smpp set debug off"