Module: kamailio Branch: master Commit: c5b79b55f2f0cdaf7f99e5f0d8042ba6435b98c8 URL: https://github.com/kamailio/kamailio/commit/c5b79b55f2f0cdaf7f99e5f0d8042ba6...
Author: Emmanuel Schmidbauer emmanuel@getweave.com Committer: Emmanuel Schmidbauer emmanuel@getweave.com Date: 2016-05-12T12:07:59-04:00
nsq: fix MWI NOTIFY with 0 Voice Messages
---
Modified: modules/nsq/defs.h Modified: modules/nsq/nsq_pua.c
---
Diff: https://github.com/kamailio/kamailio/commit/c5b79b55f2f0cdaf7f99e5f0d8042ba6... Patch: https://github.com/kamailio/kamailio/commit/c5b79b55f2f0cdaf7f99e5f0d8042ba6...
---
diff --git a/modules/nsq/defs.h b/modules/nsq/defs.h index 0f479c1..68ab9e7 100644 --- a/modules/nsq/defs.h +++ b/modules/nsq/defs.h @@ -79,6 +79,7 @@ #define PRESENCE_BODY_BUFFER_SIZE 4096
#define MWI_BODY_VOICE_MESSAGE "Messages-Waiting: %.*s\r\nMessage-Account: %.*s\r\nVoice-Message: %.*s\r\n" +#define MWI_BODY_NO_VOICE_MESSAGE "Messages-Waiting: %.*s\r\nMessage-Account: %.*s\r\n" #define MWI_BODY "Messages-Waiting: %.*s\r\nMessage-Account: %.*s\r\nVoice-Message: %.*s/%.*s (%.*s/%.*s)\r\n" #define PRESENCE_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"> \ diff --git a/modules/nsq/nsq_pua.c b/modules/nsq/nsq_pua.c index 005d094..f16b352 100644 --- a/modules/nsq/nsq_pua.c +++ b/modules/nsq/nsq_pua.c @@ -327,14 +327,17 @@ int nsq_pua_publish_mwi_to_presentity(struct json_object *json_obj) { expires += (int)time(NULL); }
- if (mwi_voice_message.len > 0) { - sprintf(body, MWI_BODY_VOICE_MESSAGE, mwi_waiting.len, mwi_waiting.s, - mwi_account.len, mwi_account.s, mwi_voice_message.len, mwi_voice_message.s); - } else { + if (mwi_new.len > 0) sprintf(body, MWI_BODY, mwi_waiting.len, mwi_waiting.s, mwi_account.len, mwi_account.s, mwi_new.len, mwi_new.s, mwi_saved.len, mwi_saved.s, mwi_urgent.len, mwi_urgent.s, mwi_urgent_saved.len, mwi_urgent_saved.s); + } else if (mwi_voice_message.len > 0) { + sprintf(body, MWI_BODY_VOICE_MESSAGE, mwi_waiting.len, mwi_waiting.s, + mwi_account.len, mwi_account.s, mwi_voice_message.len, mwi_voice_message.s); + } else { + sprintf(body, MWI_BODY_NO_VOICE_MESSAGE, mwi_waiting.len, mwi_waiting.s, + mwi_account.len, mwi_account.s); }
mwi_body.s = body;