Re-order handlers in CEL to ensure that HANGUP events happen after APP_END
authorMatthew Jordan <mjordan@digium.com>
Tue, 16 Jul 2013 22:25:33 +0000 (22:25 +0000)
committerMatthew Jordan <mjordan@digium.com>
Tue, 16 Jul 2013 22:25:33 +0000 (22:25 +0000)
When a channel is hungup, both an APP_END event and a HANGUP event can be
fired. To ensure that HANGUP events occur after APP_END events, the method
callbacks for the APP_END event should be processed prior to the callbacks
for the HANGUP event.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@394530 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/cel.c

index b71afde..209d145 100644 (file)
@@ -1145,9 +1145,14 @@ static void cel_channel_app_change(
        }
 }
 
+/* \brief Handlers for channel snapshot changes.
+ * \note Order of the handlers matters. Application changes must come before state
+ * changes to ensure that hangup notifications occur after application changes.
+ * Linkedid checking should always come last.
+ */
 cel_channel_snapshot_monitor cel_channel_monitors[] = {
-       cel_channel_state_change,
        cel_channel_app_change,
+       cel_channel_state_change,
        cel_channel_linkedid_change,
 };