diff options
author | Benny Prijono <bennylp@teluu.com> | 2008-09-08 12:46:29 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2008-09-08 12:46:29 +0000 |
commit | 03c39c1ff8bb8e932c75c52312a3d9d6ffbf67d5 (patch) | |
tree | 6705caee2e499275dde0bbe08a9b989a572cf463 /pjsip/src/pjsua-lib | |
parent | 794181964eaa304a325f80ef6af300fc12d6073e (diff) |
Ticket #615: Error adding new buddy in the on_incoming_subscribe() callback (thanks Joseph Maiquez for reporting the error)
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2264 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua-lib')
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_pres.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_pres.c b/pjsip/src/pjsua-lib/pjsua_pres.c index 23050ff2..f0a2100f 100644 --- a/pjsip/src/pjsua-lib/pjsua_pres.c +++ b/pjsip/src/pjsua-lib/pjsua_pres.c @@ -1179,7 +1179,16 @@ void pjsua_pres_update_acc(int acc_id, pj_bool_t force) pjsip_tx_data *tdata; pjsip_pres_get_status(uapres->sub, &pres_status); - if (force || pres_status.info[0].basic_open != acc->online_status) { + + /* Only send NOTIFY once subscription is active. Some subscriptions + * may still be in NULL (when app is adding a new buddy while in the + * on_incoming_subscribe() callback) or PENDING (when user approval is + * being requested) state and we don't send NOTIFY to these subs until + * the user accepted the request. + */ + if (pjsip_evsub_get_state(uapres->sub)==PJSIP_EVSUB_STATE_ACTIVE && + (force || pres_status.info[0].basic_open != acc->online_status)) + { pres_status.info[0].basic_open = acc->online_status; pj_memcpy(&pres_status.info[0].rpid, &acc->rpid, |