可以发送Out Of Dialog NOTIFY消息吗? 我正在使用PBX和SIP电话连接到它。我需要在PBX上发生一些变化时将NOTFIY消息发送到手机。我知道手机必须支持PBX,PBX可以发送NOTIFY消息,这是对话消息。
我需要的是OUT Of Dialog NOTIFY消息是电话。电话已经有代码来理解OOD NOTIFY。 我知道有像REFER这样的方法的隐式订阅。有没有这样的东西,所以我可以发送OOD NOTIFY而无需订阅手机?
答案 0 :(得分:1)
没有标准化的方式来发送没有必要订阅的NOTIFY(我已经看到NOTIFY请求被用作没有订阅的NAT保持活动机制但是这是一些顽皮的ATA的黑客攻击的情况)。
答案 1 :(得分:0)
#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);
}