Module: kamailio
Branch: master
Commit: bb2c9ea0b70a428dd115da5fa2c0e6482d9db7dc
URL:
https://github.com/kamailio/kamailio/commit/bb2c9ea0b70a428dd115da5fa2c0e64…
Author: lazedo <luis.azedo(a)factorlusitano.com>
Committer: lazedo <luis.azedo(a)factorlusitano.com>
Date: 2016-01-04T16:12:46Z
presence_xml: fix pres_agg_nbody_empty
we were sending the presence element without the entity attribute.
it seems some UAs dislike this
---
Modified: modules/presence_xml/notify_body.c
---
Diff:
https://github.com/kamailio/kamailio/commit/bb2c9ea0b70a428dd115da5fa2c0e64…
Patch:
https://github.com/kamailio/kamailio/commit/bb2c9ea0b70a428dd115da5fa2c0e64…
---
diff --git a/modules/presence_xml/notify_body.c b/modules/presence_xml/notify_body.c
index 2730038..f10305c 100644
--- a/modules/presence_xml/notify_body.c
+++ b/modules/presence_xml/notify_body.c
@@ -58,15 +58,20 @@ void free_xml_body(char* body)
body= NULL;
}
-#define PRESENCE_EMPTY_BODY_SIZE 512
+#define PRESENCE_EMPTY_BODY_SIZE 1024
-#define PRESENCE_EMPTY_BODY "<presence> \
-<tuple id=\"615293b33c62dec073e05d9421e9f48b\">\
+#define PRESENCE_EMPTY_BODY "<?xml version=\"1.0\"
encoding=\"UTF-8\"?>\
+<presence xmlns=\"urn:ietf:params:xml:ns:pidf\"
xmlns:dm=\"urn:ietf:params:xml:ns:pidf:data-model\"
xmlns:rpid=\"urn:ietf:params:xml:ns:pidf:rpid\"
xmlns:c=\"urn:ietf:params:xml:ns:pidf:cipid\" entity=\"%.*s\"> \
+<tuple xmlns=\"urn:ietf:params:xml:ns:pidf\"
id=\"615293b33c62dec073e05d9421e9f48b\">\
<status>\
<basic>open</basic>\
</status>\
</tuple>\
<note xmlns=\"urn:ietf:params:xml:ns:pidf\">Available</note>\
+<dm:person xmlns:dm=\"urn:ietf:params:xml:ns:pidf:data-model\"
xmlns:rpid=\"urn:ietf:params:xml:ns:pidf:rpid\" id=\"1\">\
+<rpid:activities/>\
+<dm:note>Available</dm:note>\
+</dm:person>\
</presence>"
str* pres_agg_nbody_empty(str* pres_user, str* pres_domain)
@@ -78,7 +83,7 @@ str* pres_agg_nbody_empty(str* pres_user, str* pres_domain)
str* body_array = (str*)pkg_malloc(sizeof(str));
char* body = (char*)pkg_malloc(PRESENCE_EMPTY_BODY_SIZE);
- sprintf(body, PRESENCE_EMPTY_BODY);
+ sprintf(body, PRESENCE_EMPTY_BODY, pres_user->len, pres_user->s);
body_array->s = body;
body_array->len = strlen(body);