From bf20f524520968eb71d3f6457a8af57ef79d619f Mon Sep 17 00:00:00 2001
From: Anthony Minessale <anthm@freeswitch.org>
Date: Thu, 5 Jul 2012 12:34:09 -0500
Subject: [PATCH] add execute_on_post_originate and api_on_post_originate to
 run on chosen newly originated channels vs execute_on_originate which runs on
 all candidates

---
 src/include/switch_types.h | 2 ++
 src/switch_ivr_originate.c | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/src/include/switch_types.h b/src/include/switch_types.h
index c5e1fab7b4..dd301bd5ce 100644
--- a/src/include/switch_types.h
+++ b/src/include/switch_types.h
@@ -143,6 +143,7 @@ SWITCH_BEGIN_EXTERN_C
 #define SWITCH_CHANNEL_EXECUTE_ON_RING_VARIABLE "execute_on_ring"
 #define SWITCH_CHANNEL_EXECUTE_ON_TONE_DETECT_VARIABLE "execute_on_tone_detect"
 #define SWITCH_CHANNEL_EXECUTE_ON_ORIGINATE_VARIABLE "execute_on_originate"
+#define SWITCH_CHANNEL_EXECUTE_ON_POST_ORIGINATE_VARIABLE "execute_on_post_originate"
 
 #define SWITCH_CHANNEL_API_ON_ANSWER_VARIABLE "api_on_answer"
 #define SWITCH_CHANNEL_API_ON_PRE_ANSWER_VARIABLE "api_on_pre_answer"
@@ -150,6 +151,7 @@ SWITCH_BEGIN_EXTERN_C
 #define SWITCH_CHANNEL_API_ON_RING_VARIABLE "api_on_ring"
 #define SWITCH_CHANNEL_API_ON_TONE_DETECT_VARIABLE "api_on_tone_detect"
 #define SWITCH_CHANNEL_API_ON_ORIGINATE_VARIABLE "api_on_originate"
+#define SWITCH_CHANNEL_API_ON_POST_ORIGINATE_VARIABLE "api_on_post_originate"
 
 #define SWITCH_CALL_TIMEOUT_VARIABLE "call_timeout"
 #define SWITCH_HOLDING_UUID_VARIABLE "holding_uuid"
diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c
index 6d3ad966ec..0a9c82eff7 100644
--- a/src/switch_ivr_originate.c
+++ b/src/switch_ivr_originate.c
@@ -3598,6 +3598,10 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
 		}
 		
 
+		switch_channel_execute_on(bchan, SWITCH_CHANNEL_EXECUTE_ON_POST_ORIGINATE_VARIABLE);
+		switch_channel_api_on(bchan, SWITCH_CHANNEL_API_ON_POST_ORIGINATE_VARIABLE);
+
+
 		while(switch_channel_state_change_pending(bchan)) {
 			switch_cond_next();
 		}