是否可以发送 Out Of Dialog NOTIFY 消息?我正在使用 PBX 并且 SIP 电话已连接到它。我需要在 PBX 发生一些变化时向手机发送 NOTFIY 消息。我知道电话必须订阅 PBX,并且 PBX 可以发送 NOTIFY 消息,该消息在对话消息中。
我需要的是 OUT Of Dialog NOTIFY 消息作为电话。手机已经有代码来理解 OOD NOTIFY。我知道对 REFER 等方法有隐式订阅。有没有类似的东西,所以我可以在不订阅手机的情况下发送 OOD NOTIFY?
#include "pjsip_event_notification.h"
#include <pjsip.h>
#include <pjsip_ua.h>
#include <pjlib-util.h>
#include <pjlib.h>
#include <pjlib.h>
#include <pjsua.h>
#include <pjsua-lib/pjsua_internal.h>
static EventCallBack* registeredCallbackObject = NULL;
extern "C" {
pj_bool_t on_rx_response_wrapper(pjsip_rx_data *rdata){
registeredCallbackObject->on_rx_response(rdata);
return PJ_FALSE;
}
pj_bool_t on_rx_request_wrapper(pjsip_rx_data *rdata){
registeredCallbackObject->on_rx_request(rdata);
return PJ_FALSE;
}
/* The module instance. */
static pjsip_module mod_event_handler =
{
NULL, NULL, /* prev, next. */
{ (char*)"mod-reg-event", 12 }, /* Name. */
-1, /* Id */
PJSIP_MOD_PRIORITY_TSX_LAYER - 1, /* Priority */
NULL, /* load() */
NULL, /* start() */
NULL, /* stop() */
NULL, /* unload() */
&on_rx_response_wrapper, /* on_rx_request() */
&on_rx_response_wrapper, /* on_rx_response() */
NULL, /* on_tx_request. */
NULL, /* on_tx_response() */
NULL, /* on_tsx_state() */
};
PJ_DECL(pj_status_t) event_callback_init() {
return pjsip_endpt_register_module(pjsua_get_pjsip_endpt(),
&mod_event_handler);
}
void setEventCallbackObject(EventCallBack* eventCallBack){
registeredCallbackObject=eventCallBack;
}
}
相同 pjsip_event_notification.h 的 h 文件
#include <pj/config_site.h>
#include <pjsua-lib/pjsua.h>
class EventCallBack {
public:
virtual ~EventCallBack() {}
virtual void on_rx_response(pjsip_rx_data *rdata){
// Target Call Back for Notify message
}
virtual void on_rx_request(pjsip_rx_data *rdata){
}
};
extern "C" {
pj_status_t event_callback_init();
void setEventCallbackObject(EventCallBack* eventCallBack);
}