]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
manager.c: Update AMI Status event documentation
authorRichard Mudgett <rmudgett@digium.com>
Thu, 28 Dec 2017 02:48:40 +0000 (20:48 -0600)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 28 Dec 2017 15:15:54 +0000 (09:15 -0600)
The AMI Status event had linkedid listed twice and was missing the
effective connected line name and number headers.

NOTE: The linkedid and other standard channel snapshot fields in the XML
documentation are part of the <channel_snapshot/> XML template defined in
doc/appdocsxml.xslt.

* Cached the effective connected line party id so it doesn't get
calculated four times.

Change-Id: I004c4c4f9e7b40ef55035c831702721bec82496c

main/manager.c

index 890a9754855a29c9b3714753b764d27bbae118f9..4e611a085b7c4b00adaabb0a8497f346e097bfa6 100644 (file)
@@ -247,14 +247,16 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
                                <parameter name="DNID">
                                        <para>Dialed number identifier</para>
                                </parameter>
+                               <parameter name="EffectiveConnectedLineNum">
+                               </parameter>
+                               <parameter name="EffectiveConnectedLineName">
+                               </parameter>
                                <parameter name="TimeToHangup">
                                        <para>Absolute lifetime of the channel</para>
                                </parameter>
                                <parameter name="BridgeID">
                                        <para>Identifier of the bridge the channel is in, may be empty if not in one</para>
                                </parameter>
-                               <parameter name="Linkedid">
-                               </parameter>
                                <parameter name="Application">
                                        <para>Application currently executing on the channel</para>
                                </parameter>
@@ -4583,6 +4585,7 @@ static int action_status(struct mansession *s, const struct message *m)
                struct timeval now;
                long elapsed_seconds;
                struct ast_bridge *bridge;
+               struct ast_party_id effective_id;
 
                ast_channel_lock(chan);
 
@@ -4611,10 +4614,12 @@ static int action_status(struct mansession *s, const struct message *m)
                channels++;
 
                bridge = ast_channel_get_bridge(chan);
+               effective_id = ast_channel_connected_effective_id(chan);
 
                astman_append(s,
                        "Event: Status\r\n"
                        "Privilege: Call\r\n"
+                       /* v-- Start channel snapshot headers */
                        "Channel: %s\r\n"
                        "ChannelState: %u\r\n"
                        "ChannelStateDesc: %s\r\n"
@@ -4627,13 +4632,14 @@ static int action_status(struct mansession *s, const struct message *m)
                        "Exten: %s\r\n"
                        "Priority: %d\r\n"
                        "Uniqueid: %s\r\n"
+                       "Linkedid: %s\r\n"
+                       /* ^-- End channel snapshot headers */
                        "Type: %s\r\n"
                        "DNID: %s\r\n"
                        "EffectiveConnectedLineNum: %s\r\n"
                        "EffectiveConnectedLineName: %s\r\n"
                        "TimeToHangup: %ld\r\n"
                        "BridgeID: %s\r\n"
-                       "Linkedid: %s\r\n"
                        "Application: %s\r\n"
                        "Data: %s\r\n"
                        "Nativeformats: %s\r\n"
@@ -4647,6 +4653,7 @@ static int action_status(struct mansession *s, const struct message *m)
                        "%s"
                        "%s"
                        "\r\n",
+                       /* v-- Start channel snapshot headers */
                        ast_channel_name(chan),
                        ast_channel_state(chan),
                        ast_state2str(ast_channel_state(chan)),
@@ -4659,13 +4666,14 @@ static int action_status(struct mansession *s, const struct message *m)
                        ast_channel_exten(chan),
                        ast_channel_priority(chan),
                        ast_channel_uniqueid(chan),
+                       ast_channel_linkedid(chan),
+                       /* ^-- End channel snapshot headers */
                        ast_channel_tech(chan)->type,
                        S_OR(ast_channel_dialed(chan)->number.str, ""),
-                       S_COR(ast_channel_connected_effective_id(chan).number.valid, ast_channel_connected_effective_id(chan).number.str, "<unknown>"),
-                       S_COR(ast_channel_connected_effective_id(chan).name.valid, ast_channel_connected_effective_id(chan).name.str, "<unknown>"),
+                       S_COR(effective_id.number.valid, effective_id.number.str, "<unknown>"),
+                       S_COR(effective_id.name.valid, effective_id.name.str, "<unknown>"),
                        (long)ast_channel_whentohangup(chan)->tv_sec,
                        bridge ? bridge->uniqueid : "",
-                       ast_channel_linkedid(chan),
                        ast_channel_appl(chan),
                        ast_channel_data(chan),
                        ast_format_cap_get_names(ast_channel_nativeformats(chan), &codec_buf),