core: add variables execute_on_hold, execute_on_unhold, api_on_hold, api_on_unhold

This commit is contained in:
Antonio Silva 2022-11-09 09:24:51 +00:00
parent bb682fc5b4
commit 32783624d7
2 changed files with 8 additions and 0 deletions

View File

@ -155,6 +155,8 @@ SWITCH_BEGIN_EXTERN_C
#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_EXECUTE_ON_PRE_ORIGINATE_VARIABLE "execute_on_pre_originate"
#define SWITCH_CHANNEL_EXECUTE_ON_HOLD_VARIABLE "execute_on_hold"
#define SWITCH_CHANNEL_EXECUTE_ON_UNHOLD_VARIABLE "execute_on_unhold"
#define SWITCH_CHANNEL_EXECUTE_ON_PRE_BRIDGE_VARIABLE "execute_on_pre_bridge"
#define SWITCH_CHANNEL_EXECUTE_ON_POST_BRIDGE_VARIABLE "execute_on_post_bridge"
@ -167,6 +169,8 @@ SWITCH_BEGIN_EXTERN_C
#define SWITCH_CHANNEL_API_ON_ORIGINATE_VARIABLE "api_on_originate"
#define SWITCH_CHANNEL_API_ON_POST_ORIGINATE_VARIABLE "api_on_post_originate"
#define SWITCH_CHANNEL_API_ON_PRE_ORIGINATE_VARIABLE "api_on_pre_originate"
#define SWITCH_CHANNEL_API_ON_HOLD_VARIABLE "api_on_hold"
#define SWITCH_CHANNEL_API_ON_UNHOLD_VARIABLE "api_on_unhold"
#define SWITCH_CALL_TIMEOUT_VARIABLE "call_timeout"
#define SWITCH_HOLDING_UUID_VARIABLE "holding_uuid"

View File

@ -867,8 +867,12 @@ SWITCH_DECLARE(void) switch_channel_mark_hold(switch_channel_t *channel, switch_
if (on) {
switch_channel_set_flag(channel, CF_LEG_HOLDING);
switch_channel_execute_on(channel, SWITCH_CHANNEL_EXECUTE_ON_HOLD_VARIABLE);
switch_channel_api_on(channel, SWITCH_CHANNEL_API_ON_HOLD_VARIABLE);
} else {
switch_channel_clear_flag(channel, CF_LEG_HOLDING);
switch_channel_execute_on(channel, SWITCH_CHANNEL_EXECUTE_ON_UNHOLD_VARIABLE);
switch_channel_api_on(channel, SWITCH_CHANNEL_API_ON_UNHOLD_VARIABLE);
}
if (switch_event_create(&event, on ? SWITCH_EVENT_CHANNEL_HOLD : SWITCH_EVENT_CHANNEL_UNHOLD) == SWITCH_STATUS_SUCCESS) {