summaryrefslogtreecommitdiff
path: root/main/manager_channels.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/manager_channels.c')
-rw-r--r--main/manager_channels.c47
1 files changed, 22 insertions, 25 deletions
diff --git a/main/manager_channels.c b/main/manager_channels.c
index e1f918868..0cab36562 100644
--- a/main/manager_channels.c
+++ b/main/manager_channels.c
@@ -774,33 +774,30 @@ static void channel_dial_cb(void *data, struct stasis_subscription *sub,
return;
}
- if (caller) {
- caller_event_string = ast_manager_build_channel_state_string(caller);
- if (!caller_event_string) {
- return;
- }
- dialstatus = ast_json_string_get(ast_json_object_get(ast_multi_channel_blob_get_json(obj), "dialstatus"));
- dialstring = ast_json_string_get(ast_json_object_get(ast_multi_channel_blob_get_json(obj), "dialstring"));
- if (ast_strlen_zero(dialstatus)) {
- manager_event(EVENT_FLAG_CALL, "DialBegin",
- "%s"
- "%s"
- "DialString: %s\r\n",
- ast_str_buffer(caller_event_string),
- ast_str_buffer(peer_event_string),
- S_OR(dialstring, "unknown"));
- } else {
- manager_event(EVENT_FLAG_CALL, "DialEnd",
- "%s"
- "%s"
- "DialStatus: %s\r\n",
- ast_str_buffer(caller_event_string),
- ast_str_buffer(peer_event_string),
- S_OR(dialstatus, "unknown"));
- }
+ if (caller && !(caller_event_string = ast_manager_build_channel_state_string(caller))) {
+ return;
+ }
+
+ dialstatus = ast_json_string_get(ast_json_object_get(ast_multi_channel_blob_get_json(obj), "dialstatus"));
+ dialstring = ast_json_string_get(ast_json_object_get(ast_multi_channel_blob_get_json(obj), "dialstring"));
+ if (ast_strlen_zero(dialstatus)) {
+ manager_event(EVENT_FLAG_CALL, "DialBegin",
+ "%s"
+ "%s"
+ "DialString: %s\r\n",
+ caller_event_string ? ast_str_buffer(caller_event_string) : "",
+ ast_str_buffer(peer_event_string),
+ S_OR(dialstring, "unknown"));
} else {
- /* TODO: If we don't have a caller, this should be treated as an Originate */
+ manager_event(EVENT_FLAG_CALL, "DialEnd",
+ "%s"
+ "%s"
+ "DialStatus: %s\r\n",
+ caller_event_string ? ast_str_buffer(caller_event_string) : "",
+ ast_str_buffer(peer_event_string),
+ S_OR(dialstatus, "unknown"));
}
+
}
static void manager_channels_shutdown(void)