From bcd742c4466d6cf4e7d465c16e71c17e0e326dc3 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Fri, 24 Aug 2007 08:28:52 +0000 Subject: Ticket #365: ability to override generated ttuple ID in PIDF message body (thanks Babon Frederic) git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1423 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/include/pjsua-lib/pjsua.h | 6 ++++++ pjsip/src/pjsua-lib/pjsua_acc.c | 1 + pjsip/src/pjsua-lib/pjsua_pres.c | 2 ++ 3 files changed, 9 insertions(+) diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h index 73793247..d6af018d 100644 --- a/pjsip/include/pjsua-lib/pjsua.h +++ b/pjsip/include/pjsua-lib/pjsua.h @@ -1769,6 +1769,12 @@ typedef struct pjsua_acc_config */ pj_bool_t publish_enabled; + /** + * Optional PIDF tuple ID for outgoing PUBLISH and NOTIFY. If this value + * is not specified, a random string will be used. + */ + pj_str_t pidf_tuple_id; + /** * Optional URI to be put as Contact for this account. It is recommended * that this field is left empty, so that the value will be calculated diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c index 3d638c66..b92e3e51 100644 --- a/pjsip/src/pjsua-lib/pjsua_acc.c +++ b/pjsip/src/pjsua-lib/pjsua_acc.c @@ -75,6 +75,7 @@ static void copy_acc_config(pj_pool_t *pool, pj_strdup_with_null(pool, &dst->id, &src->id); pj_strdup_with_null(pool, &dst->reg_uri, &src->reg_uri); pj_strdup_with_null(pool, &dst->force_contact, &src->force_contact); + pj_strdup_with_null(pool, &dst->pidf_tuple_id, &src->pidf_tuple_id); dst->proxy_cnt = src->proxy_cnt; for (i=0; iproxy_cnt; ++i) diff --git a/pjsip/src/pjsua-lib/pjsua_pres.c b/pjsip/src/pjsua-lib/pjsua_pres.c index 963db29c..d5316959 100644 --- a/pjsip/src/pjsua-lib/pjsua_pres.c +++ b/pjsip/src/pjsua-lib/pjsua_pres.c @@ -553,6 +553,7 @@ static pj_bool_t pres_on_rx_request(pjsip_rx_data *rdata) pj_bzero(&pres_status, sizeof(pres_status)); pres_status.info_cnt = 1; pres_status.info[0].basic_open = pjsua_var.acc[acc_id].online_status; + pres_status.info[0].id = pjsua_var.acc[acc_id].cfg.pidf_tuple_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; @@ -650,6 +651,7 @@ static pj_status_t send_publish(int acc_id, pj_bool_t active) pj_bzero(&pres_status, sizeof(pres_status)); pres_status.info_cnt = 1; pres_status.info[0].basic_open = acc->online_status; + pres_status.info[0].id = acc->cfg.pidf_tuple_id; /* Be careful not to send PIDF with presence entity ID containing * "<" character. -- cgit v1.2.3