diff options
Diffstat (limited to 'pjsip')
-rw-r--r-- | pjsip/src/pjsip-simple/rpid.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/pjsip/src/pjsip-simple/rpid.c b/pjsip/src/pjsip-simple/rpid.c index 2ad36a9f..df15c6ab 100644 --- a/pjsip/src/pjsip-simple/rpid.c +++ b/pjsip/src/pjsip-simple/rpid.c @@ -21,6 +21,7 @@ #include <pjsip-simple/errno.h> #include <pj/assert.h> #include <pj/guid.h> +#include <pj/pool.h> #include <pj/string.h> @@ -146,7 +147,16 @@ PJ_DEF(pj_status_t) pjrpid_add_element(pjpidf_pres *pres, attr = pj_xml_attr_new(pool, &ID, &elem->id); } else { pj_str_t person_id; - pj_create_unique_string(pool, &person_id); + /* xs:ID must start with letter */ + //pj_create_unique_string(pool, &person_id); + person_id.ptr = (char*)pj_pool_alloc(pool, PJ_GUID_STRING_LENGTH+2); + person_id.ptr += 2; + pj_generate_unique_string(&person_id); + person_id.ptr -= 2; + person_id.ptr[0] = 'p'; + person_id.ptr[1] = 'j'; + person_id.slen += 2; + attr = pj_xml_attr_new(pool, &ID, &person_id); } pj_xml_add_attr(nd_person, attr); |