Module: kamailio
Branch: 4.2
Commit: 4e1a1007db5441849bc3c45a1b768e6a69b79c8f
URL:
https://github.com/kamailio/kamailio/commit/4e1a1007db5441849bc3c45a1b768e6…
Author: Luis Azedo <luis(a)2600hz.com>
Committer: Luis Azedo <luis(a)2600hz.com>
Date: 2015-03-09T12:48:21Z
kazoo: only create tags if not empty
to-tag and from-tag are created empty if not supplied in amp payload
this patch formats the dialog message to include the tags only if they are supplied in amp
payload
(cherry picked from commit deb0e811cddd71c45ebb36db7b41faa8d9e9ca5e)
---
Modified: modules/kazoo/defs.h
Modified: modules/kazoo/kz_pua.c
---
Diff:
https://github.com/kamailio/kamailio/commit/4e1a1007db5441849bc3c45a1b768e6…
Patch:
https://github.com/kamailio/kamailio/commit/4e1a1007db5441849bc3c45a1b768e6…
---
diff --git a/modules/kazoo/defs.h b/modules/kazoo/defs.h
index 01d9af4..e7f991d 100644
--- a/modules/kazoo/defs.h
+++ b/modules/kazoo/defs.h
@@ -69,14 +69,17 @@
#define DIALOGINFO_EMPTY_BODY "<?xml version=\"1.0\"
encoding=\"UTF-8\"?>\
<dialog-info xmlns=\"urn:ietf:params:xml:ns:dialog-info\"
version=\"1\" state=\"full\" entity=\"%.*s\"> \
-<dialog direction=\"initiator\">\
+<dialog call-id=\"76001e23e09704ea9e1257ebea85e1f3\"
direction=\"initiator\">\
<state>terminated</state>\
</dialog>\
</dialog-info>"
+#define LOCAL_TAG "local-tag=\"%.*s\""
+#define REMOTE_TAG "remote-tag=\"%.*s\""
+
#define DIALOGINFO_BODY "<?xml version=\"1.0\"
encoding=\"UTF-8\"?>\
<dialog-info xmlns=\"urn:ietf:params:xml:ns:dialog-info\"
version=\"1\" state=\"full\" entity=\"%.*s\">\
-<dialog id=\"%.*s\" call-id=\"%.*s\" local-tag=\"%.*s\"
remote-tag=\"%.*s\" direction=\"%.*s\">\
+<dialog id=\"%.*s\" call-id=\"%.*s\" %.*s %.*s
direction=\"%.*s\">\
<state>%.*s</state>\
<local>\
<identity display=\"%.*s\">%.*s</identity>\
@@ -91,7 +94,7 @@
#define DIALOGINFO_BODY_2 "<?xml version=\"1.0\"
encoding=\"UTF-8\"?>\
<dialog-info xmlns=\"urn:ietf:params:xml:ns:dialog-info\"
version=\"1\" state=\"full\" entity=\"%.*s\">\
-<dialog id=\"%.*s\" call-id=\"%.*s\" local-tag=\"%.*s\"
remote-tag=\"%.*s\" direction=\"%.*s\">\
+<dialog id=\"%.*s\" call-id=\"%.*s\" %.*s %.*s
direction=\"%.*s\">\
<state>%.*s</state>\
<local>\
<identity display=\"%.*s\">%.*s</identity>\
diff --git a/modules/kazoo/kz_pua.c b/modules/kazoo/kz_pua.c
index 562a060..d9757a7 100644
--- a/modules/kazoo/kz_pua.c
+++ b/modules/kazoo/kz_pua.c
@@ -320,6 +320,8 @@ int kz_pua_publish_dialoginfo_to_presentity(struct json_object
*json_obj) {
int expires = 0;
str event = str_init("dialog");
int reset = 0;
+ char to_tag_buffer[100];
+ char from_tag_buffer[100];
char *body = (char *)pkg_malloc(DIALOGINFO_BODY_BUFFER_SIZE);
if(body == NULL) {
@@ -375,6 +377,16 @@ int kz_pua_publish_dialoginfo_to_presentity(struct json_object
*json_obj) {
if(!to_uri.len)
to_uri = to;
+ if(fromtag.len > 0) {
+ fromtag.len = sprintf(from_tag_buffer, LOCAL_TAG, fromtag.len, fromtag.s);
+ fromtag.s = from_tag_buffer;
+ }
+
+ if(totag.len > 0) {
+ totag.len = sprintf(to_tag_buffer, REMOTE_TAG, totag.len, totag.s);
+ totag.s = to_tag_buffer;
+ }
+
if(callid.len) {
if(dbk_include_entity) {