summaryrefslogtreecommitdiff
path: root/main/presencestate.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/presencestate.c')
-rw-r--r--main/presencestate.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/main/presencestate.c b/main/presencestate.c
index 399613e39..3be2ebeed 100644
--- a/main/presencestate.c
+++ b/main/presencestate.c
@@ -522,14 +522,23 @@ int ast_presence_state_engine_init(void)
static struct ast_manager_event_blob *presence_state_to_ami(struct stasis_message *msg)
{
struct ast_presence_state_message *presence_state = stasis_message_data(msg);
+ struct ast_manager_event_blob *res;
- return ast_manager_event_blob_create(EVENT_FLAG_CALL, "PresenceStateChange",
+ char *subtype = ast_escape_c_alloc(presence_state->subtype);
+ char *message = ast_escape_c_alloc(presence_state->message);
+
+ res = ast_manager_event_blob_create(EVENT_FLAG_CALL, "PresenceStateChange",
"Presentity: %s\r\n"
"Status: %s\r\n"
"Subtype: %s\r\n"
"Message: %s\r\n",
presence_state->provider,
ast_presence_state2str(presence_state->state),
- presence_state->subtype,
- presence_state->message);
+ subtype ?: "",
+ message ?: "");
+
+ ast_free(subtype);
+ ast_free(message);
+
+ return res;
}