diff options
author | Benny Prijono <bennylp@teluu.com> | 2008-07-31 08:32:46 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2008-07-31 08:32:46 +0000 |
commit | a589ed37b097e63e853a3ad356b4605b767cf4a8 (patch) | |
tree | 5389bc8c4f3eefc3a4966f96c45712a838d15dd1 /pjsip | |
parent | 8fbda606f3e71e9d0d8b3ae6571db408b9dae48d (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.c | 8 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_pres.c | 3 |
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); |