summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua-lib/pjsua_pres.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip/src/pjsua-lib/pjsua_pres.c')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_pres.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_pres.c b/pjsip/src/pjsua-lib/pjsua_pres.c
index cba0724c..ceb1b762 100644
--- a/pjsip/src/pjsua-lib/pjsua_pres.c
+++ b/pjsip/src/pjsua-lib/pjsua_pres.c
@@ -543,8 +543,10 @@ static pj_bool_t pres_on_rx_request(pjsip_rx_data *rdata)
/* Create and send the first NOTIFY to active subscription: */
status = pjsip_pres_notify( sub, PJSIP_EVSUB_STATE_ACTIVE, NULL,
NULL, &tdata);
- if (status == PJ_SUCCESS)
+ if (status == PJ_SUCCESS) {
+ pjsua_process_msg_data(tdata, NULL);
status = pjsip_pres_send_request( sub, tdata);
+ }
if (status != PJ_SUCCESS) {
pjsua_perror(THIS_FILE, "Unable to create/send NOTIFY",
@@ -611,8 +613,10 @@ static void refresh_server_subscription(int acc_id)
pres_status.info[0].basic_open = pjsua_var.acc[acc_id].online_status;
pjsip_pres_set_status(uapres->sub, &pres_status);
- if (pjsip_pres_current_notify(uapres->sub, &tdata)==PJ_SUCCESS)
+ if (pjsip_pres_current_notify(uapres->sub, &tdata)==PJ_SUCCESS) {
+ pjsua_process_msg_data(tdata, NULL);
pjsip_pres_send_request(uapres->sub, tdata);
+ }
}
uapres = uapres->next;
@@ -835,6 +839,8 @@ static void subscribe_buddy_presence(unsigned index)
return;
}
+ pjsua_process_msg_data(tdata, NULL);
+
status = pjsip_pres_send_request(buddy->sub, tdata);
if (status != PJ_SUCCESS) {
pjsip_pres_terminate(buddy->sub, PJ_FALSE);
@@ -864,8 +870,10 @@ static void unsubscribe_buddy_presence(unsigned index)
}
status = pjsip_pres_initiate( buddy->sub, 0, &tdata);
- if (status == PJ_SUCCESS)
+ if (status == PJ_SUCCESS) {
+ pjsua_process_msg_data(tdata, NULL);
status = pjsip_pres_send_request( buddy->sub, tdata );
+ }
if (status != PJ_SUCCESS) {
pjsip_pres_terminate(buddy->sub, PJ_FALSE);