Как проверить SIP-регистрацию Asterisk в реальном времени?

Я использую Asterisk 11 и использую MySQL в реальном времени. Я использовал FreePBX ранее, и он показывает все детали, сколько пользователей зарегистрировано в реальном времени. Я могу проверить регистрацию пользователя, если наберу команду show peer username в Asterisk CLI. Однако я хотел бы знать, зарегистрировал ли конкретный пользователь SIP-сервер или нет в режиме реального времени.

пример

UserA - registered
UserB - unregistered
UserC - registered

Я проверил таблицу sip_buddies в MySQL, и она показывает только regseconds, Я не мог понять, зарегистрирован ли пользователь с этой информацией. Кто-нибудь как проверить регистрацию пользователя в реальном времени?

2 ответа

Решение

У вас есть 3 варианта

1) (плохая) команда do "sip show peers" (rtcachefriends должен быть установлен в yes)

2) (лучше) создать прослушиватель событий, который будет прослушивать событие через AMI и сохранять эту информацию.

3) (вариант БД)

rtupdate=yes
rtautoclear=yes

и проверьте в БД время регистрации. Недостаток - много дб пишет.

Это не конкретный ответ, а актуальное решение для различных настроек Asterisk. В некоторых развертываниях openSIPS используется в качестве прокси-сервера регистрации клиентов (это лучше, чем встроенные в SIP возможности Asterisk, даже с новым стеком pjsip). В этом случае "peers sip show" будет пустым. В этом случае вы можете использовать интерфейс управления через приложение opensipsctl. opensipsctl ul show на прокси покажет всех клиентов зарегистрированных на прокси.

Другие вопросы по тегам