Hello, I want to clarify the signaling of CHANNEL_EXECUTE_COMPLETE events via the ESL socket. Especially on transfers / blind transfers I’m a bit confused how CHANNEL_EXECUTE_COMPLETE are sent and how the variables are set. The call scenario is the following: * A call control is sent to a ESL application via socket application. * The call is bridged to a SIP user. * The SIP user initiates a blind transfer to another phone number When the bind transfer is initiated, I get a CHANNEL_EXECUTE_COMPLETE event where the channel variables are set as follows: variable_current_application_data: sounds/moh.wav variable_current_application: playback variable_current_application_response: PLAYBACK%20ERROR Application: bridge Application-Data: ... Application-Response: PLAYBACK%20ERROR Application-UUID: 1420bfcd-63cd-4445-afa8-6e6c17c07d69 The Application-UUID "1420bfcd-63cd-4445-afa8-6e6c17c07d69 "belongs to the „bridge" command of the call send through ESL. But the Application-Response is set to PLAYBACK%20ERROR“, however the application response belongs to a playback command which was implicitly triggered when the call is put on hold. It seems on a blind transfer the call is first put on hold for a second and then bridged again. As the MOH is interrupted, the Application-Response is set to PLAYBACK%20ERROR. I see the same variables also in the CHANNEL_EXECUTE_COMPLETE belonging to the „socket“ which I get in the end of the call. variable_current_application_data: sounds/tevox-standard-moh-2.wav variable_current_application: playback variable_current_application_response: PLAYBACK%20ERROR Application: socket Application-Data: 192.168.154.209%3A8029%20async%20full Application-Response: PLAYBACK%20ERROR Application-UUID: 3a923054-89a5-11e7-a87d-e97d1c60b3f1 To be able to implement the processing of CHANNEL_EXECUTE_COMPLETE properly for all call scenarios, I need to understand the signaling in depth. Here in conclusion what I can see in the ESL trace: * I can get several CHANNEL_EXECUTE_COMPLETE events for an application that is executed, not just only one. * An application can trigger/execute other applications (Like playback in scope of executing a bridge command and blind transfer). * I also receive a CHANNEL_EXECUTE_COMPLETE event for those „implicit" executed applications. * In addition, I get a CHANNEL_EXECUTE_COMPLETE with the Application-UUID of the initial application. The channel variable "Application-Response" contains the last response that was generated in scope of the application that was executed belonging to the Application-UUID. If an other application was executed in scope of this application, the variables current_application, current_application_data and current_application_response are set. In this case the variable Application-Response = variable_current_application_response. I’ve tested this with older and the latest freeswitch version, the behavior seems to be by design. Questions: Why do I get a CHANNEL_EXECUTE_COMPLETE in scope of the bridge application at all (Or is this a bug)? Why is the Application-Response set to PLAYBACK%20ERROR (the current / last executed application)? Why is there no variable_current_application_uuid? Any comments are welcome Markus