summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2008-07-31 08:32:46 +0000
committerBenny Prijono <bennylp@teluu.com>2008-07-31 08:32:46 +0000
commita589ed37b097e63e853a3ad356b4605b767cf4a8 (patch)
tree5389bc8c4f3eefc3a4966f96c45712a838d15dd1 /pjsip
parent8fbda606f3e71e9d0d8b3ae6571db408b9dae48d (diff)
Fixed ticket #582: Extended presence status is not sent in initial NOTIFY request (thanks Joseph Maiquez for the report)
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2186 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_core.c8
-rw-r--r--pjsip/src/pjsua-lib/pjsua_pres.c3
2 files changed, 11 insertions, 0 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_core.c b/pjsip/src/pjsua-lib/pjsua_core.c
index fe95348c..760f7505 100644
--- a/pjsip/src/pjsua-lib/pjsua_core.c
+++ b/pjsip/src/pjsua-lib/pjsua_core.c
@@ -1070,6 +1070,14 @@ PJ_DEF(pj_status_t) pjsua_destroy(void)
/* Terminate all calls. */
pjsua_call_hangup_all();
+ /* Set all accounts to offline */
+ for (i=0; i<(int)PJ_ARRAY_SIZE(pjsua_var.acc); ++i) {
+ if (!pjsua_var.acc[i].valid)
+ continue;
+ pjsua_var.acc[i].online_status = PJ_FALSE;
+ pj_bzero(&pjsua_var.acc[i].rpid, sizeof(pjrpid_element));
+ }
+
/* Terminate all presence subscriptions. */
pjsua_pres_shutdown();
diff --git a/pjsip/src/pjsua-lib/pjsua_pres.c b/pjsip/src/pjsua-lib/pjsua_pres.c
index 04632f41..e2c35c1e 100644
--- a/pjsip/src/pjsua-lib/pjsua_pres.c
+++ b/pjsip/src/pjsua-lib/pjsua_pres.c
@@ -878,6 +878,9 @@ PJ_DEF(pj_status_t) pjsua_pres_notify( pjsua_acc_id acc_id,
//Both pjsua_var.local_uri and pjsua_var.contact_uri are enclosed in "<" and ">"
//causing XML parsing to fail.
//pres_status.info[0].contact = pjsua_var.local_uri;
+ /* add RPID information */
+ pj_memcpy(&pres_status.info[0].rpid, &acc->rpid,
+ sizeof(pjrpid_element));
pjsip_pres_set_status(srv_pres->sub, &pres_status);