summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2008-09-08 12:46:29 +0000
committerBenny Prijono <bennylp@teluu.com>2008-09-08 12:46:29 +0000
commit03c39c1ff8bb8e932c75c52312a3d9d6ffbf67d5 (patch)
tree6705caee2e499275dde0bbe08a9b989a572cf463
parent794181964eaa304a325f80ef6af300fc12d6073e (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
-rw-r--r--pjsip/src/pjsua-lib/pjsua_pres.c11
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,