Как проверить 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
на прокси покажет всех клиентов зарегистрированных на прокси.