]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
AMI: Fixed OriginateResponse message 05/1805/7
authorpchero <pchero21@gmail.com>
Tue, 8 Dec 2015 19:04:12 +0000 (20:04 +0100)
committerpchero <pchero21@gmail.com>
Thu, 10 Dec 2015 00:17:14 +0000 (01:17 +0100)
When the asterisk sending OriginateResponse message,
it doesn't set the "Uniqueid".
And it didn't support correct response message for
Application originate.

ASTERISK-25624 #close

Change-Id: I26f54f677ccfb0b7cfd4967a844a1657fd69b74d

main/manager.c

index 99c5502752ec38ddd8803aa295bd4a93ff5939b5..455a49c4e0bab403af7adc50e80e4f42b1ccc552 100644 (file)
@@ -651,6 +651,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
                                <parameter name="Channel"/>
                                <parameter name="Context"/>
                                <parameter name="Exten"/>
+                               <parameter name="Application"/>
+                               <parameter name="Data"/>
                                <parameter name="Reason"/>
                                <parameter name="Uniqueid"/>
                                <parameter name="CallerIDNum"/>
@@ -4969,22 +4971,43 @@ static void *fast_originate(void *data)
        }
        /* Tell the manager what happened with the channel */
        chans[0] = chan;
-       ast_manager_event_multichan(EVENT_FLAG_CALL, "OriginateResponse", chan ? 1 : 0, chans,
-               "%s"
-               "Response: %s\r\n"
-               "Channel: %s\r\n"
-               "Context: %s\r\n"
-               "Exten: %s\r\n"
-               "Reason: %d\r\n"
-               "Uniqueid: %s\r\n"
-               "CallerIDNum: %s\r\n"
-               "CallerIDName: %s\r\n",
-               in->idtext, res ? "Failure" : "Success",
-               chan ? ast_channel_name(chan) : requested_channel, in->context, in->exten, reason,
-               chan ? ast_channel_uniqueid(chan) : "<null>",
-               S_OR(in->cid_num, "<unknown>"),
-               S_OR(in->cid_name, "<unknown>")
-               );
+       if (!ast_strlen_zero(in->app)) {
+               ast_manager_event_multichan(EVENT_FLAG_CALL, "OriginateResponse", chan ? 1 : 0, chans,
+                       "%s"
+                       "Response: %s\r\n"
+                       "Channel: %s\r\n"
+                       "Application: %s\r\n"
+                       "Data: %s\r\n"
+                       "Reason: %d\r\n"
+                       "Uniqueid: %s\r\n"
+                       "CallerIDNum: %s\r\n"
+                       "CallerIDName: %s\r\n",
+                       in->idtext, res ? "Failure" : "Success",
+                       chan ? ast_channel_name(chan) : requested_channel,
+                       in->app, in->appdata, reason,
+                       chan ? ast_channel_uniqueid(chan) : S_OR(in->channelid, "<unknown>"),
+                       S_OR(in->cid_num, "<unknown>"),
+                       S_OR(in->cid_name, "<unknown>")
+                       );
+       } else {
+               ast_manager_event_multichan(EVENT_FLAG_CALL, "OriginateResponse", chan ? 1 : 0, chans,
+                       "%s"
+                       "Response: %s\r\n"
+                       "Channel: %s\r\n"
+                       "Context: %s\r\n"
+                       "Exten: %s\r\n"
+                       "Reason: %d\r\n"
+                       "Uniqueid: %s\r\n"
+                       "CallerIDNum: %s\r\n"
+                       "CallerIDName: %s\r\n",
+                       in->idtext, res ? "Failure" : "Success",
+                       chan ? ast_channel_name(chan) : requested_channel,
+                       in->context, in->exten, reason,
+                       chan ? ast_channel_uniqueid(chan) : S_OR(in->channelid, "<unknown>"),
+                       S_OR(in->cid_num, "<unknown>"),
+                       S_OR(in->cid_name, "<unknown>")
+                       );
+       }
 
        /* Locked and ref'd by ast_pbx_outgoing_exten or ast_pbx_outgoing_app */
        if (chan) {