diff options
-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); |