/*! executed when the state changes to init */
switch_state_handler_t on_init;
/*! executed when the state changes to ring */
- switch_state_handler_t on_ring;
+ switch_state_handler_t on_routing;
/*! executed when the state changes to execute */
switch_state_handler_t on_execute;
/*! executed when the state changes to hangup */
switch_state_handler_t on_hangup;
/*! executed when the state changes to loopback */
- switch_state_handler_t on_loopback;
+ switch_state_handler_t on_exchange_media;
/*! executed when the state changes to transmit */
- switch_state_handler_t on_transmit;
+ switch_state_handler_t on_soft_execute;
/*! executed when the state changes to hold */
- switch_state_handler_t on_hold;
+ switch_state_handler_t on_consume_media;
/*! executed when the state changes to hibernate */
switch_state_handler_t on_hibernate;
/*! executed when the state changes to reset */
/*!
\enum switch_channel_state_t
- \brief Channel States
+ \brief Channel States (these are the defaults, CS_SOFT_EXECUTE, CS_EXCHANGE_MEDIA, and CS_CONSUME_MEDIA are often overridden by specific apps)
<pre>
CS_NEW - Channel is newly created
CS_INIT - Channel has been initilized
-CS_RING - Channel is looking for a dialplan
-CS_TRANSMIT - Channel is in a passive transmit state
+CS_ROUTING - Channel is looking for an extension to execute
+CS_SOFT_EXECUTE - Channel is ready to execute from 3rd party control
CS_EXECUTE - Channel is executing it's dialplan
-CS_LOOPBACK - Channel is in loopback
-CS_PARK - Channel is parked
-CS_HOLD - Channel is on hold
+CS_EXCHANGE_MEDIA - Channel is exchanging media with another channel.
+CS_PARK - Channel is accepting media awaiting commands.
+CS_CONSUME_MEDIA - Channel is consuming all media and dropping it.
CS_HIBERNATE - Channel is in a sleep state
CS_RESET - Channel is in a reset state
CS_HANGUP - Channel is flagged for hangup and ready to end
typedef enum {
CS_NEW,
CS_INIT,
- CS_RING,
- CS_TRANSMIT,
+ CS_ROUTING,
+ CS_SOFT_EXECUTE,
CS_EXECUTE,
- CS_LOOPBACK,
+ CS_EXCHANGE_MEDIA,
CS_PARK,
- CS_HOLD,
+ CS_CONSUME_MEDIA,
CS_HIBERNATE,
CS_RESET,
CS_HANGUP,
static switch_status_t conference_say(conference_obj_t * conference, const char *text, uint32_t leadin);
static void conference_list(conference_obj_t * conference, switch_stream_handle_t *stream, char *delim);
SWITCH_STANDARD_API(conf_api_main);
-static switch_status_t audio_bridge_on_ring(switch_core_session_t *session);
+static switch_status_t audio_bridge_on_routing(switch_core_session_t *session);
static switch_status_t conference_outcall(conference_obj_t * conference,
char *conference_name,
switch_core_session_t *session,
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "unique-id", "%s", conference->name);
- switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_RING");
+ switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_ROUTING");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "answer-state", "%s", conference->count == 1 ? "early" : "confirmed");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "call-direction", "%s", conference->count == 1 ? "outbound" : "inbound");
switch_event_fire(&event);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "unique-id", "%s", conference->name);
- switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_RING");
+ switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_ROUTING");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "answer-state", "%s", conference->count == 1 ? "early" : "confirmed");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "call-direction", "%s", conference->count == 1 ? "outbound" : "inbound");
switch_event_fire(&event);
}
/* outbound call bridge progress call state callback handler */
-static switch_status_t audio_bridge_on_ring(switch_core_session_t *session)
+static switch_status_t audio_bridge_on_routing(switch_core_session_t *session)
{
switch_channel_t *channel = NULL;
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CUSTOM RING\n");
/* put the channel in a passive state so we can loop audio to it */
- switch_channel_set_state(channel, CS_TRANSMIT);
+ switch_channel_set_state(channel, CS_SOFT_EXECUTE);
return SWITCH_STATUS_FALSE;
}
static switch_state_handler_table_t audio_bridge_peer_state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ audio_bridge_on_ring,
+ /*.on_routing */ audio_bridge_on_routing,
/*.on_execute */ NULL,
/*.on_hangup */ NULL,
- /*.on_loopback */ NULL,
- /*.on_transmit */ NULL,
- /*.on_hold */ NULL,
+ /*.on_exchange_media */ NULL,
+ /*.on_soft_execute */ NULL,
+ /*.on_consume_media */ NULL,
};
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "unique-id", "%s", conf_name);
- switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_RING");
+ switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_ROUTING");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "answer-state", "%s", conference->count == 1 ? "early" : "confirmed");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "call-direction", "%s", conference->count == 1 ? "outbound" : "inbound");
switch_event_fire(&event);
switch_channel_state_t state = switch_channel_get_state(channel);
const char *id = NULL;
- if (state == CS_HANGUP || state == CS_RING) {
+ if (state == CS_HANGUP || state == CS_ROUTING) {
if ((id = switch_channel_get_variable(channel, "xfer_uuids"))) {
switch_stream_handle_t stream = { 0 };
SWITCH_STANDARD_STREAM(stream);
}
}
- if (!switch_channel_test_flag(caller_channel, CF_TRANSFER) && switch_channel_get_state(caller_channel) != CS_RING) {
+ if (!switch_channel_test_flag(caller_channel, CF_TRANSFER) && switch_channel_get_state(caller_channel) != CS_ROUTING) {
switch_channel_hangup(caller_channel, cause);
}
return;
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", 0);
- switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", wait_count > 0 ? "CS_RING" : "CS_HANGUP");
+ switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", wait_count > 0 ? "CS_ROUTING" : "CS_HANGUP");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "unique-id", "%s", node->name);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "answer-state", "%s", wait_count > 0 ? "early" : "terminated");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "call-direction", "%s", "inbound");
const char *id = NULL;
char *sql = NULL;
- if (state == CS_HANGUP || state == CS_RING) {
+ if (state == CS_HANGUP || state == CS_ROUTING) {
id = switch_channel_get_variable(channel, "limit_id");
realm = switch_channel_get_variable(channel, "limit_realm");
sql = switch_mprintf("delete from limit_data where uuid='%q' and hostname='%q' and realm='%q'and id='%q';",
static void remove_pvt(private_t * tech_pvt);
static switch_status_t channel_on_init(switch_core_session_t *session);
static switch_status_t channel_on_hangup(switch_core_session_t *session);
-static switch_status_t channel_on_ring(switch_core_session_t *session);
-static switch_status_t channel_on_loopback(switch_core_session_t *session);
-static switch_status_t channel_on_transmit(switch_core_session_t *session);
+static switch_status_t channel_on_routing(switch_core_session_t *session);
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session);
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
switch_caller_profile_t *outbound_profile,
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
switch_set_flag_locked(tech_pvt, TFLAG_IO);
/* Move Channel's State Machine to RING */
- switch_channel_set_state(channel, CS_RING);
+ switch_channel_set_state(channel, CS_ROUTING);
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_ring(switch_core_session_t *session)
+static switch_status_t channel_on_routing(switch_core_session_t *session)
{
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_transmit(switch_core_session_t *session)
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL TRANSMIT\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_loopback(switch_core_session_t *session)
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session)
{
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
static switch_state_handler_table_t channel_event_handlers = {
/*.on_init */ channel_on_init,
- /*.on_ring */ channel_on_ring,
+ /*.on_routing */ channel_on_routing,
/*.on_execute */ channel_on_execute,
/*.on_hangup */ channel_on_hangup,
- /*.on_loopback */ channel_on_loopback,
- /*.on_transmit */ channel_on_transmit
+ /*.on_exchange_media */ channel_on_exchange_media,
+ /*.on_soft_execute */ channel_on_soft_execute
};
static switch_io_routines_t channel_io_routines = {
SWITCH_STANDARD_API(dl_debug);
static switch_status_t channel_on_init(switch_core_session_t *session);
static switch_status_t channel_on_hangup(switch_core_session_t *session);
-static switch_status_t channel_on_ring(switch_core_session_t *session);
-static switch_status_t channel_on_loopback(switch_core_session_t *session);
-static switch_status_t channel_on_transmit(switch_core_session_t *session);
+static switch_status_t channel_on_routing(switch_core_session_t *session);
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session);
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
switch_caller_profile_t *outbound_profile,
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
if (negotiate_media(session) == SWITCH_STATUS_SUCCESS) {
/* Move Channel's State Machine to RING */
- switch_channel_set_state(channel, CS_RING);
+ switch_channel_set_state(channel, CS_ROUTING);
}
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_ring(switch_core_session_t *session)
+static switch_status_t channel_on_routing(switch_core_session_t *session)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
struct private_object *tech_pvt = NULL;
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_loopback(switch_core_session_t *session)
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL LOOPBACK\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_transmit(switch_core_session_t *session)
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL TRANSMIT\n");
return SWITCH_STATUS_SUCCESS;
switch_state_handler_table_t dingaling_event_handlers = {
/*.on_init */ channel_on_init,
- /*.on_ring */ channel_on_ring,
+ /*.on_routing */ channel_on_routing,
/*.on_execute */ channel_on_execute,
/*.on_hangup */ channel_on_hangup,
- /*.on_loopback */ channel_on_loopback,
- /*.on_transmit */ channel_on_transmit
+ /*.on_exchange_media */ channel_on_exchange_media,
+ /*.on_soft_execute */ channel_on_soft_execute
};
switch_io_routines_t dingaling_io_routines = {
static switch_status_t channel_on_init(switch_core_session_t *session);
static switch_status_t channel_on_hangup(switch_core_session_t *session);
-static switch_status_t channel_on_ring(switch_core_session_t *session);
-static switch_status_t channel_on_loopback(switch_core_session_t *session);
-static switch_status_t channel_on_transmit(switch_core_session_t *session);
+static switch_status_t channel_on_routing(switch_core_session_t *session);
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session);
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
switch_caller_profile_t *outbound_profile,
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
switch_set_flag_locked(tech_pvt, TFLAG_IO);
/* Move Channel's State Machine to RING */
- switch_channel_set_state(switch_core_session_get_channel(session), CS_RING);
+ switch_channel_set_state(switch_core_session_get_channel(session), CS_ROUTING);
switch_mutex_lock(globals.mutex);
globals.calls++;
switch_mutex_unlock(globals.mutex);
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_ring(switch_core_session_t *session)
+static switch_status_t channel_on_routing(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CHANNEL RING\n", switch_channel_get_name(switch_core_session_get_channel(session)));
return SWITCH_STATUS_SUCCESS;
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_loopback(switch_core_session_t *session)
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL LOOPBACK\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_transmit(switch_core_session_t *session)
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL TRANSMIT\n");
return SWITCH_STATUS_SUCCESS;
switch_state_handler_table_t iax_state_handlers = {
/*.on_init */ channel_on_init,
- /*.on_ring */ channel_on_ring,
+ /*.on_routing */ channel_on_routing,
/*.on_execute */ channel_on_execute,
/*.on_hangup */ channel_on_hangup,
- /*.on_loopback */ channel_on_loopback,
- /*.on_transmit */ channel_on_transmit
+ /*.on_exchange_media */ channel_on_exchange_media,
+ /*.on_soft_execute */ channel_on_soft_execute
};
switch_io_routines_t iax_io_routines = {
static void remove_pvt(private_t * tech_pvt);
static switch_status_t channel_on_init(switch_core_session_t *session);
static switch_status_t channel_on_hangup(switch_core_session_t *session);
-static switch_status_t channel_on_ring(switch_core_session_t *session);
-static switch_status_t channel_on_loopback(switch_core_session_t *session);
-static switch_status_t channel_on_transmit(switch_core_session_t *session);
+static switch_status_t channel_on_routing(switch_core_session_t *session);
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session);
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
switch_caller_profile_t *outbound_profile,
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
switch_set_flag_locked(tech_pvt, TFLAG_IO);
/* Move Channel's State Machine to RING */
- switch_channel_set_state(channel, CS_RING);
+ switch_channel_set_state(channel, CS_ROUTING);
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_ring(switch_core_session_t *session)
+static switch_status_t channel_on_routing(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CHANNEL RING\n", switch_channel_get_name(switch_core_session_get_channel(session)));
return SWITCH_STATUS_SUCCESS;
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_transmit(switch_core_session_t *session)
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL TRANSMIT\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_loopback(switch_core_session_t *session)
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL LOOPBACK\n");
return SWITCH_STATUS_SUCCESS;
switch_state_handler_table_t portaudio_event_handlers = {
/*.on_init */ channel_on_init,
- /*.on_ring */ channel_on_ring,
+ /*.on_routing */ channel_on_routing,
/*.on_execute */ channel_on_execute,
/*.on_hangup */ channel_on_hangup,
- /*.on_loopback */ channel_on_loopback,
- /*.on_transmit */ channel_on_transmit
+ /*.on_exchange_media */ channel_on_exchange_media,
+ /*.on_soft_execute */ channel_on_soft_execute
};
switch_io_routines_t portaudio_io_routines = {
static switch_status_t channel_on_init(switch_core_session_t *session);
static switch_status_t channel_on_hangup(switch_core_session_t *session);
-static switch_status_t channel_on_ring(switch_core_session_t *session);
-static switch_status_t channel_on_loopback(switch_core_session_t *session);
-static switch_status_t channel_on_transmit(switch_core_session_t *session);
+static switch_status_t channel_on_routing(switch_core_session_t *session);
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session);
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
switch_caller_profile_t *outbound_profile,
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
switch_set_flag_locked(tech_pvt, TFLAG_IO);
/* Move Channel's State Machine to RING */
- switch_channel_set_state(channel, CS_RING);
+ switch_channel_set_state(channel, CS_ROUTING);
switch_mutex_lock(globals.mutex);
globals.calls++;
switch_mutex_unlock(globals.mutex);
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_ring(switch_core_session_t *session)
+static switch_status_t channel_on_routing(switch_core_session_t *session)
{
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_loopback(switch_core_session_t *session)
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL LOOPBACK\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_transmit(switch_core_session_t *session)
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL TRANSMIT\n");
return SWITCH_STATUS_SUCCESS;
switch_state_handler_table_t reference_state_handlers = {
/*.on_init */ channel_on_init,
- /*.on_ring */ channel_on_ring,
+ /*.on_routing */ channel_on_routing,
/*.on_execute */ channel_on_execute,
/*.on_hangup */ channel_on_hangup,
- /*.on_loopback */ channel_on_loopback,
- /*.on_transmit */ channel_on_transmit
+ /*.on_exchange_media */ channel_on_exchange_media,
+ /*.on_soft_execute */ channel_on_soft_execute
};
switch_io_routines_t reference_io_routines = {
static switch_status_t sofia_on_init(switch_core_session_t *session);
-static switch_status_t sofia_on_loopback(switch_core_session_t *session);
-static switch_status_t sofia_on_transmit(switch_core_session_t *session);
+static switch_status_t sofia_on_exchange_media(switch_core_session_t *session);
+static switch_status_t sofia_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session,
switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session,
switch_memory_pool_t **pool, switch_originate_flag_t flags);
}
/* Move Channel's State Machine to RING */
- switch_channel_set_state(channel, CS_RING);
+ switch_channel_set_state(channel, CS_ROUTING);
assert( switch_channel_get_state(channel) != CS_INIT);
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t sofia_on_ring(switch_core_session_t *session)
+static switch_status_t sofia_on_routing(switch_core_session_t *session)
{
private_object_t *tech_pvt = (private_object_t *) switch_core_session_get_private(session);
switch_assert(tech_pvt != NULL);
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t sofia_on_loopback(switch_core_session_t *session)
+static switch_status_t sofia_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "SOFIA LOOPBACK\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t sofia_on_transmit(switch_core_session_t *session)
+static switch_status_t sofia_on_soft_execute(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "SOFIA TRANSMIT\n");
return SWITCH_STATUS_SUCCESS;
switch_state_handler_table_t sofia_event_handlers = {
/*.on_init */ sofia_on_init,
- /*.on_ring */ sofia_on_ring,
+ /*.on_routing */ sofia_on_routing,
/*.on_execute */ sofia_on_execute,
/*.on_hangup */ sofia_on_hangup,
- /*.on_loopback */ sofia_on_loopback,
- /*.on_transmit */ sofia_on_transmit,
- /*.on_hold */ NULL,
+ /*.on_exchange_media */ sofia_on_exchange_media,
+ /*.on_soft_execute */ sofia_on_soft_execute,
+ /*.on_consume_media */ NULL,
/*.on_hibernate*/ sofia_on_hibernate,
/*.on_reset*/ sofia_on_reset
};
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_HANGUP");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "answer-state", "%s", "resubscribe");
} else {
- switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_RING");
+ switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_ROUTING");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "unique-id", "%s", uuid);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "answer-state", "%s", state);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "astate", "%s", state);
{2, SANGOMA_PRI_EVENT_DCHAN_DOWN, "DCHAN_DOWN"},
{3, SANGOMA_PRI_EVENT_RESTART, "RESTART"},
{4, SANGOMA_PRI_EVENT_CONFIG_ERR, "CONFIG_ERR"},
- {5, SANGOMA_PRI_EVENT_RING, "RING"},
+ {5, SANGOMA_PRI_EVENT_RING, "ROUTING"},
{6, SANGOMA_PRI_EVENT_HANGUP, "HANGUP"},
{7, SANGOMA_PRI_EVENT_RINGING, "RINGING"},
{8, SANGOMA_PRI_EVENT_ANSWER, "ANSWER"},
static int str2switch(char *swtype);
static switch_status_t wanpipe_on_init(switch_core_session_t *session);
static switch_status_t wanpipe_on_hangup(switch_core_session_t *session);
-static switch_status_t wanpipe_on_loopback(switch_core_session_t *session);
-static switch_status_t wanpipe_on_transmit(switch_core_session_t *session);
+static switch_status_t wanpipe_on_exchange_media(switch_core_session_t *session);
+static switch_status_t wanpipe_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t wanpipe_outgoing_channel(switch_core_session_t *session, switch_caller_profile_t *outbound_profile,
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout,
switch_io_flag_t flags, int stream_id);
static int on_info(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent);
static int on_hangup(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent);
-static int on_ring(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent);
+static int on_routing(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent);
static int check_flags(struct sangoma_pri *spri);
static int on_restart(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent);
static int on_anything(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent);
done:
/* Move Channel's State Machine to RING */
- switch_channel_set_state(channel, CS_RING);
+ switch_channel_set_state(channel, CS_ROUTING);
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t wanpipe_on_ring(switch_core_session_t *session)
+static switch_status_t wanpipe_on_routing(switch_core_session_t *session)
{
switch_channel_t *channel = NULL;
private_object_t *tech_pvt = NULL;
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t wanpipe_on_loopback(switch_core_session_t *session)
+static switch_status_t wanpipe_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "WANPIPE LOOPBACK\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t wanpipe_on_transmit(switch_core_session_t *session)
+static switch_status_t wanpipe_on_soft_execute(switch_core_session_t *session)
{
private_object_t *tech_pvt;
switch_channel_t *channel;
switch_state_handler_table_t wanpipe_state_handlers = {
/*.on_init */ wanpipe_on_init,
- /*.on_ring */ wanpipe_on_ring,
+ /*.on_routing */ wanpipe_on_routing,
/*.on_execute */ NULL,
/*.on_hangup */ wanpipe_on_hangup,
- /*.on_loopback */ wanpipe_on_loopback,
- /*.on_transmit */ wanpipe_on_transmit
+ /*.on_exchange_media */ wanpipe_on_exchange_media,
+ /*.on_soft_execute */ wanpipe_on_soft_execute
};
static switch_call_cause_t wanpipe_outgoing_channel(switch_core_session_t *session, switch_caller_profile_t *outbound_profile,
}
-static int on_ringing(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent)
+static int on_routinging(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent)
{
switch_core_session_t *session;
switch_channel_t *channel;
}
-static int on_ring(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent)
+static int on_routing(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent)
{
char name[128];
switch_core_session_t *session = NULL;
switch_mutex_init(&chanmap.mutex, SWITCH_MUTEX_NESTED, module_pool);
SANGOMA_MAP_PRI_EVENT((*spri), SANGOMA_PRI_EVENT_ANY, on_anything);
- SANGOMA_MAP_PRI_EVENT((*spri), SANGOMA_PRI_EVENT_RING, on_ring);
- SANGOMA_MAP_PRI_EVENT((*spri), SANGOMA_PRI_EVENT_RINGING, on_ringing);
+ SANGOMA_MAP_PRI_EVENT((*spri), SANGOMA_PRI_EVENT_RING, on_routing);
+ SANGOMA_MAP_PRI_EVENT((*spri), SANGOMA_PRI_EVENT_RINGING, on_routinging);
//SANGOMA_MAP_PRI_EVENT((*spri), SANGOMA_PRI_EVENT_SETUP_ACK, on_proceed);
SANGOMA_MAP_PRI_EVENT((*spri), SANGOMA_PRI_EVENT_PROCEEDING, on_proceed);
SANGOMA_MAP_PRI_EVENT((*spri), SANGOMA_PRI_EVENT_ANSWER, on_answer);
static switch_status_t woomera_on_init(switch_core_session_t *session);
static switch_status_t woomera_on_hangup(switch_core_session_t *session);
-static switch_status_t woomera_on_ring(switch_core_session_t *session);
-static switch_status_t woomera_on_loopback(switch_core_session_t *session);
-static switch_status_t woomera_on_transmit(switch_core_session_t *session);
+static switch_status_t woomera_on_routing(switch_core_session_t *session);
+static switch_status_t woomera_on_exchange_media(switch_core_session_t *session);
+static switch_status_t woomera_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t woomera_outgoing_channel(switch_core_session_t *session,
switch_caller_profile_t *outbound_profile,
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t woomera_on_ring(switch_core_session_t *session)
+static switch_status_t woomera_on_routing(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s WOOMERA RING\n", switch_channel_get_name(switch_core_session_get_channel(session)));
return SWITCH_STATUS_SUCCESS;
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t woomera_on_loopback(switch_core_session_t *session)
+static switch_status_t woomera_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "WOOMERA LOOPBACK\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t woomera_on_transmit(switch_core_session_t *session)
+static switch_status_t woomera_on_soft_execute(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "WOOMERA TRANSMIT\n");
return SWITCH_STATUS_SUCCESS;
static switch_state_handler_table_t woomera_event_handlers = {
/*.on_init */ woomera_on_init,
- /*.on_ring */ woomera_on_ring,
+ /*.on_routing */ woomera_on_routing,
/*.on_execute */ woomera_on_execute,
/*.on_hangup */ woomera_on_hangup,
- /*.on_loopback */ woomera_on_loopback,
- /*.on_transmit */ woomera_on_transmit
+ /*.on_exchange_media */ woomera_on_exchange_media,
+ /*.on_soft_execute */ woomera_on_soft_execute
};
static switch_io_routines_t woomera_io_routines = {
}
/* Move Channel's State Machine to RING */
switch_channel_answer(channel);
- switch_channel_set_state(channel, CS_RING);
+ switch_channel_set_state(channel, CS_ROUTING);
if (switch_sockaddr_info_get(&tech_pvt->udpwrite,
ip, SWITCH_UNSPEC, port, 0, switch_core_session_get_pool(tech_pvt->session)) != SWITCH_STATUS_SUCCESS) {
static switch_state_handler_table_t state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ NULL,
+ /*.on_routing */ NULL,
/*.on_execute */ NULL,
/*.on_hangup */ my_on_hangup,
- /*.on_loopback */ NULL,
- /*.on_transmit */ NULL
+ /*.on_exchange_media */ NULL,
+ /*.on_soft_execute */ NULL
};
return rad_config;
}
-static switch_status_t my_on_ring(switch_core_session_t *session)
+static switch_status_t my_on_routing(switch_core_session_t *session)
{
switch_xml_t cdr;
switch_channel_t *channel = switch_core_session_get_channel(session);
switch_time_exp_t tm;
char buffer[32];
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "[mod_radius_cdr] Entering my_on_ring\n");
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "[mod_radius_cdr] Entering my_on_routing\n");
rad_config = my_radius_init();
static const switch_state_handler_table_t state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ my_on_ring,
+ /*.on_routing */ my_on_routing,
/*.on_execute */ NULL,
/*.on_hangup */ my_on_hangup,
- /*.on_loopback */ NULL,
- /*.on_transmit */ NULL
+ /*.on_exchange_media */ NULL,
+ /*.on_soft_execute */ NULL
};
SWITCH_MODULE_LOAD_FUNCTION(mod_radius_cdr_load)
void Session::check_hangup_hook()
{
- if (hangup_func_str && (hook_state == CS_HANGUP || hook_state == CS_RING)) {
+ if (hangup_func_str && (hook_state == CS_HANGUP || hook_state == CS_ROUTING)) {
hh++;
}
}
void Session::check_hangup_hook()
{
- if (hangup_func_str && (hook_state == CS_HANGUP || hook_state == CS_RING)) {
+ if (hangup_func_str && (hook_state == CS_HANGUP || hook_state == CS_ROUTING)) {
hh++;
}
}
PyDict_SetItemString(d, "CS_INIT", SWIG_From_int((int) (CS_INIT)));
}
{
- PyDict_SetItemString(d, "CS_RING", SWIG_From_int((int) (CS_RING)));
+ PyDict_SetItemString(d, "CS_ROUTING", SWIG_From_int((int) (CS_ROUTING)));
}
{
- PyDict_SetItemString(d, "CS_TRANSMIT", SWIG_From_int((int) (CS_TRANSMIT)));
+ PyDict_SetItemString(d, "CS_SOFT_EXECUTE", SWIG_From_int((int) (CS_SOFT_EXECUTE)));
}
{
PyDict_SetItemString(d, "CS_EXECUTE", SWIG_From_int((int) (CS_EXECUTE)));
}
{
- PyDict_SetItemString(d, "CS_LOOPBACK", SWIG_From_int((int) (CS_LOOPBACK)));
+ PyDict_SetItemString(d, "CS_EXCHANGE_MEDIA", SWIG_From_int((int) (CS_EXCHANGE_MEDIA)));
}
{
- PyDict_SetItemString(d, "CS_HOLD", SWIG_From_int((int) (CS_HOLD)));
+ PyDict_SetItemString(d, "CS_CONSUME_MEDIA", SWIG_From_int((int) (CS_CONSUME_MEDIA)));
}
{
PyDict_SetItemString(d, "CS_HIBERNATE", SWIG_From_int((int) (CS_HIBERNATE)));
int argc = 0;
jsval ret;
- if (jss->on_hangup && (jss->hook_state == CS_HANGUP || jss->hook_state == CS_RING)) {
+ if (jss->on_hangup && (jss->hook_state == CS_HANGUP || jss->hook_state == CS_ROUTING)) {
argv[argc++] = OBJECT_TO_JSVAL(jss->obj);
if (jss->hook_state == CS_HANGUP) {
argv[argc++] = STRING_TO_JSVAL(JS_NewStringCopyZ(jss->cx, "hangup"));
jss->session = peer_session;
switch_set_flag(jss, S_HUP);
*rval = BOOLEAN_TO_JSVAL(JS_TRUE);
- switch_channel_set_state(switch_core_session_get_channel(jss->session), CS_TRANSMIT);
+ switch_channel_set_state(switch_core_session_get_channel(jss->session), CS_SOFT_EXECUTE);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Missing Args\n");
static switch_state_handler_table_t state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ NULL,
+ /*.on_routing */ NULL,
/*.on_execute */ NULL,
/*.on_hangup */ my_on_hangup,
- /*.on_loopback */ NULL,
- /*.on_transmit */ NULL
+ /*.on_exchange_media */ NULL,
+ /*.on_soft_execute */ NULL
};
SWITCH_MODULE_LOAD_FUNCTION(mod_xml_cdr_load)
switch_assert(channel != NULL);
- if (!channel->hangup_cause && channel->state > CS_RING && channel->state < CS_HANGUP && channel->state != CS_RESET &&
+ if (!channel->hangup_cause && channel->state > CS_ROUTING && channel->state < CS_HANGUP && channel->state != CS_RESET &&
!switch_test_flag(channel, CF_TRANSFER)) {
ret++;
}
static const char *state_names[] = {
"CS_NEW",
"CS_INIT",
- "CS_RING",
- "CS_TRANSMIT",
+ "CS_ROUTING",
+ "CS_SOFT_EXECUTE",
"CS_EXECUTE",
- "CS_LOOPBACK",
+ "CS_EXCHANGE_MEDIA",
"CS_PARK",
- "CS_HOLD",
+ "CS_CONSUME_MEDIA",
"CS_HIBERNATE",
"CS_RESET",
"CS_HANGUP",
channel->state_flags = 0;
}
- if (channel->state >= CS_RING) {
+ if (channel->state >= CS_ROUTING) {
switch_clear_flag(channel, CF_TRANSFER);
switch_channel_presence(channel, "unknown", (char *) state_names[state]);
}
if (state < CS_HANGUP) {
switch_event_t *event;
if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_STATE) == SWITCH_STATUS_SUCCESS) {
- if (state == CS_RING) {
+ if (state == CS_ROUTING) {
switch_channel_event_set_data(channel, event);
} else {
char state_num[25];
case CS_NEW:
case CS_INIT:
- case CS_LOOPBACK:
- case CS_TRANSMIT:
- case CS_RING:
+ case CS_EXCHANGE_MEDIA:
+ case CS_SOFT_EXECUTE:
+ case CS_ROUTING:
case CS_EXECUTE:
case CS_HANGUP:
case CS_DONE:
case CS_INIT:
switch (state) {
-case CS_LOOPBACK:
-case CS_TRANSMIT:
-case CS_RING:
+case CS_EXCHANGE_MEDIA:
+case CS_SOFT_EXECUTE:
+case CS_ROUTING:
case CS_EXECUTE:
case CS_PARK:
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
case CS_HIBERNATE:
case CS_RESET:
ok++;
}
break;
-case CS_LOOPBACK:
+case CS_EXCHANGE_MEDIA:
switch (state) {
-case CS_TRANSMIT:
-case CS_RING:
+case CS_SOFT_EXECUTE:
+case CS_ROUTING:
case CS_EXECUTE:
case CS_PARK:
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
case CS_HIBERNATE:
case CS_RESET:
ok++;
}
break;
-case CS_TRANSMIT:
+case CS_SOFT_EXECUTE:
switch (state) {
-case CS_LOOPBACK:
-case CS_RING:
+case CS_EXCHANGE_MEDIA:
+case CS_ROUTING:
case CS_EXECUTE:
case CS_PARK:
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
case CS_HIBERNATE:
case CS_RESET:
ok++;
case CS_PARK:
switch (state) {
-case CS_LOOPBACK:
-case CS_RING:
+case CS_EXCHANGE_MEDIA:
+case CS_ROUTING:
case CS_EXECUTE:
-case CS_TRANSMIT:
+case CS_SOFT_EXECUTE:
case CS_HIBERNATE:
case CS_RESET:
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
ok++;
default:
break;
}
break;
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
switch (state) {
-case CS_LOOPBACK:
-case CS_RING:
+case CS_EXCHANGE_MEDIA:
+case CS_ROUTING:
case CS_EXECUTE:
-case CS_TRANSMIT:
+case CS_SOFT_EXECUTE:
case CS_HIBERNATE:
case CS_RESET:
case CS_PARK:
break;
case CS_HIBERNATE:
switch (state) {
-case CS_LOOPBACK:
+case CS_EXCHANGE_MEDIA:
case CS_INIT:
-case CS_RING:
+case CS_ROUTING:
case CS_EXECUTE:
-case CS_TRANSMIT:
+case CS_SOFT_EXECUTE:
case CS_PARK:
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
case CS_RESET:
ok++;
default:
}
break;
-case CS_RING:
+case CS_ROUTING:
switch (state) {
-case CS_LOOPBACK:
+case CS_EXCHANGE_MEDIA:
case CS_EXECUTE:
-case CS_TRANSMIT:
+case CS_SOFT_EXECUTE:
case CS_PARK:
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
case CS_HIBERNATE:
case CS_RESET:
ok++;
case CS_EXECUTE:
switch (state) {
-case CS_LOOPBACK:
-case CS_TRANSMIT:
-case CS_RING:
+case CS_EXCHANGE_MEDIA:
+case CS_SOFT_EXECUTE:
+case CS_ROUTING:
case CS_PARK:
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
case CS_HIBERNATE:
case CS_RESET:
ok++;
case CS_HANGUP:
case CS_DONE:
break;
- case CS_RING:
+ case CS_ROUTING:
sql = switch_mprintf("update channels set state='%s',cid_name='%q',cid_num='%q',ip_addr='%s',dest='%q' "
"where uuid='%s'",
switch_event_get_header(event, "channel-state"),
switch_channel_get_name(session->channel));
}
-static void switch_core_standard_on_ring(switch_core_session_t *session)
+static void switch_core_standard_on_routing(switch_core_session_t *session)
{
switch_dialplan_interface_t *dialplan_interface = NULL;
switch_caller_profile_t *caller_profile;
if (!count) {
if (switch_channel_test_flag(session->channel, CF_OUTBOUND)) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "No Dialplan, changing state to HOLD\n");
- switch_channel_set_state(session->channel, CS_HOLD);
+ switch_channel_set_state(session->channel, CS_CONSUME_MEDIA);
goto end;
}
}
}
}
-static void switch_core_standard_on_loopback(switch_core_session_t *session)
+static void switch_core_standard_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Standard LOOPBACK\n");
switch_ivr_session_echo(session);
}
-static void switch_core_standard_on_transmit(switch_core_session_t *session)
+static void switch_core_standard_on_soft_execute(switch_core_session_t *session)
{
switch_assert(session != NULL);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Standard TRANSMIT\n");
switch_ivr_park(session, NULL);
}
-static void switch_core_standard_on_hold(switch_core_session_t *session)
+static void switch_core_standard_on_consume_media(switch_core_session_t *session)
{
switch_assert(session != NULL);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Standard HOLD\n");
STATE_MACRO(init, "INIT");
switch_core_session_signal_unlock(session);
break;
- case CS_RING: /* Look for a dialplan and find something to do */
+ case CS_ROUTING: /* Look for a dialplan and find something to do */
switch_core_session_signal_lock(session);
- STATE_MACRO(ring, "RING");
+ STATE_MACRO(routing, "ROUTING");
switch_core_session_signal_unlock(session);
break;
case CS_RESET: /* Reset */
case CS_EXECUTE: /* Execute an Operation */
STATE_MACRO(execute, "EXECUTE");
break;
- case CS_LOOPBACK: /* loop all data back to source */
- STATE_MACRO(loopback, "LOOPBACK");
+ case CS_EXCHANGE_MEDIA: /* loop all data back to source */
+ STATE_MACRO(exchange_media, "EXCHANGE_MEDIA");
break;
- case CS_TRANSMIT: /* send/recieve data to/from another channel */
- STATE_MACRO(transmit, "TRANSMIT");
+ case CS_SOFT_EXECUTE: /* send/recieve data to/from another channel */
+ STATE_MACRO(soft_execute, "SOFT_EXECUTE");
break;
case CS_PARK: /* wait in limbo */
STATE_MACRO(park, "PARK");
break;
- case CS_HOLD: /* wait in limbo */
- STATE_MACRO(hold, "HOLD");
+ case CS_CONSUME_MEDIA: /* wait in limbo */
+ STATE_MACRO(consume_media, "CONSUME_MEDIA");
break;
case CS_HIBERNATE: /* sleep */
STATE_MACRO(hibernate, "HIBERNATE");
allocated = 1;
switch_set_flag(this, S_HUP);
uuid = strdup(switch_core_session_get_uuid(session));
- switch_channel_set_state(switch_core_session_get_channel(session), CS_TRANSMIT);
+ switch_channel_set_state(switch_core_session_get_channel(session), CS_SOFT_EXECUTE);
}
}
}
if (a_leg_session) a_leg_session->end_allow_threads();
channel = switch_core_session_get_channel(session);
allocated = 1;
- switch_channel_set_state(switch_core_session_get_channel(session), CS_TRANSMIT);
+ switch_channel_set_state(switch_core_session_get_channel(session), CS_SOFT_EXECUTE);
return SWITCH_STATUS_SUCCESS;
switch_channel_set_caller_profile(channel, new_profile);
switch_channel_set_flag(channel, CF_TRANSFER);
- switch_channel_set_state(channel, CS_RING);
+ switch_channel_set_state(channel, CS_ROUTING);
msg.message_id = SWITCH_MESSAGE_INDICATE_TRANSFER;
msg.from = __FILE__;
return NULL;
}
-static switch_status_t audio_bridge_on_loopback(switch_core_session_t *session)
+static switch_status_t audio_bridge_on_exchange_media(switch_core_session_t *session)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
switch_ivr_bridge_data_t *bd = switch_channel_get_private(channel, "_bridge_");
state = switch_channel_get_state(channel);
- if (!switch_channel_test_flag(channel, CF_TRANSFER) && state != CS_PARK && state != CS_RING) {
+ if (!switch_channel_test_flag(channel, CF_TRANSFER) && state != CS_PARK && state != CS_ROUTING) {
switch_channel_hangup(channel, SWITCH_CAUSE_NORMAL_CLEARING);
}
return SWITCH_STATUS_FALSE;
}
-static switch_status_t audio_bridge_on_ring(switch_core_session_t *session)
+static switch_status_t audio_bridge_on_routing(switch_core_session_t *session)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CUSTOM RING\n", switch_channel_get_name(channel));
/* put the channel in a passive state so we can loop audio to it */
- switch_channel_set_state(channel, CS_HOLD);
+ switch_channel_set_state(channel, CS_CONSUME_MEDIA);
return SWITCH_STATUS_FALSE;
}
-static switch_status_t audio_bridge_on_hold(switch_core_session_t *session)
+static switch_status_t audio_bridge_on_consume_media(switch_core_session_t *session)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
static const switch_state_handler_table_t audio_bridge_peer_state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ audio_bridge_on_ring,
+ /*.on_routing */ audio_bridge_on_routing,
/*.on_execute */ NULL,
/*.on_hangup */ NULL,
- /*.on_loopback */ audio_bridge_on_loopback,
- /*.on_transmit */ NULL,
- /*.on_hold */ audio_bridge_on_hold,
+ /*.on_exchange_media */ audio_bridge_on_exchange_media,
+ /*.on_soft_execute */ NULL,
+ /*.on_consume_media */ audio_bridge_on_consume_media,
};
static switch_status_t uuid_bridge_on_reset(switch_core_session_t *session)
switch_channel_clear_flag(channel, CF_TRANSFER);
if (switch_channel_test_flag(channel, CF_ORIGINATOR)) {
- switch_channel_set_state(channel, CS_TRANSMIT);
+ switch_channel_set_state(channel, CS_SOFT_EXECUTE);
}
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t uuid_bridge_on_transmit(switch_core_session_t *session)
+static switch_status_t uuid_bridge_on_soft_execute(switch_core_session_t *session)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
switch_core_session_t *other_session;
}
if (switch_channel_get_state(other_channel) == CS_RESET) {
- switch_channel_set_state(other_channel, CS_TRANSMIT);
+ switch_channel_set_state(other_channel, CS_SOFT_EXECUTE);
}
- switch_channel_wait_for_state(channel, other_channel, CS_TRANSMIT);
+ switch_channel_wait_for_state(channel, other_channel, CS_SOFT_EXECUTE);
switch_channel_clear_flag(channel, CF_TRANSFER);
switch_channel_clear_flag(other_channel, CF_TRANSFER);
static const switch_state_handler_table_t uuid_bridge_state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ NULL,
+ /*.on_routing */ NULL,
/*.on_execute */ NULL,
/*.on_hangup */ NULL,
- /*.on_loopback */ NULL,
- /*.on_transmit */ uuid_bridge_on_transmit,
- /*.on_hold */ NULL,
+ /*.on_exchange_media */ NULL,
+ /*.on_soft_execute */ uuid_bridge_on_soft_execute,
+ /*.on_consume_media */ NULL,
/*.on_hibernate*/ NULL,
/*.on_reset*/ uuid_bridge_on_reset
};
static const switch_state_handler_table_t signal_bridge_state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ NULL,
+ /*.on_routing */ NULL,
/*.on_execute */ NULL,
/*.on_hangup */ signal_bridge_on_hangup,
- /*.on_loopback */ NULL,
- /*.on_transmit */ NULL,
- /*.on_hold */ NULL,
+ /*.on_exchange_media */ NULL,
+ /*.on_soft_execute */ NULL,
+ /*.on_consume_media */ NULL,
/*.on_hibernate */ signal_bridge_on_hibernate
};
const switch_application_interface_t *application_interface;
const char *app, *data;
- switch_channel_set_state(peer_channel, CS_HOLD);
+ switch_channel_set_state(peer_channel, CS_CONSUME_MEDIA);
if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_BRIDGE) == SWITCH_STATUS_SUCCESS) {
switch_channel_event_set_data(caller_channel, event);
if ((status = switch_ivr_wait_for_answer(session, peer_session)) != SWITCH_STATUS_SUCCESS) {
switch_channel_state_t w_state = switch_channel_get_state(caller_channel);
switch_channel_hangup(peer_channel, SWITCH_CAUSE_ALLOTTED_TIMEOUT);
- if (w_state < CS_HANGUP && w_state != CS_RING && w_state != CS_PARK && !switch_channel_test_flag(caller_channel, CF_TRANSFER) &&
+ if (w_state < CS_HANGUP && w_state != CS_ROUTING && w_state != CS_PARK && !switch_channel_test_flag(caller_channel, CF_TRANSFER) &&
w_state != CS_EXECUTE) {
const char *ext = switch_channel_get_variable(peer_channel, "original_destination_number");
if (!ext) {
}
switch_channel_set_private(peer_channel, "_bridge_", b_leg);
- switch_channel_set_state(peer_channel, CS_LOOPBACK);
+ switch_channel_set_state(peer_channel, CS_EXCHANGE_MEDIA);
audio_bridge_thread(NULL, (void *) a_leg);
switch_channel_clear_flag(caller_channel, CF_ORIGINATOR);
//make sure this doesnt break anything
- if (!switch_channel_test_flag(peer_channel, CF_TRANSFER) && switch_channel_get_state(peer_channel) == CS_LOOPBACK) {
+ if (!switch_channel_test_flag(peer_channel, CF_TRANSFER) && switch_channel_get_state(peer_channel) == CS_EXCHANGE_MEDIA) {
switch_channel_set_state(peer_channel, CS_RESET);
}
- while (switch_channel_get_state(peer_channel) == CS_LOOPBACK) {
+ while (switch_channel_get_state(peer_channel) == CS_EXCHANGE_MEDIA) {
switch_yield(1000);
}
state = switch_channel_get_state(caller_channel);
if (!switch_channel_test_flag(caller_channel, CF_TRANSFER)) {
- if ((state != CS_EXECUTE && state != CS_PARK && state != CS_RING) ||
+ if ((state != CS_EXECUTE && state != CS_PARK && state != CS_ROUTING) ||
(switch_channel_test_flag(peer_channel, CF_ANSWERED) && state < CS_HANGUP &&
switch_true(switch_channel_get_variable(caller_channel, SWITCH_HANGUP_AFTER_BRIDGE_VARIABLE)))) {
switch_channel_hangup(caller_channel, switch_channel_get_cause(peer_channel));
/* override transmit state for originator_channel to bridge to originatee_channel
* install pointer to originatee_session into originator_channel
- * set CF_TRANSFER on both channels and change state to CS_TRANSMIT to
+ * set CF_TRANSFER on both channels and change state to CS_SOFT_EXECUTE to
* inturrupt anything they are already doing.
* originatee_session will fall asleep and originator_session will bridge to it
*/
static const switch_state_handler_table_t originate_state_handlers;
-static switch_status_t originate_on_hold_transmit(switch_core_session_t *session)
+static switch_status_t originate_on_consume_media_transmit(switch_core_session_t *session)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
- while(switch_channel_get_state(channel) == CS_HOLD) {
+ while(switch_channel_get_state(channel) == CS_CONSUME_MEDIA) {
switch_ivr_sleep(session, 10);
}
return SWITCH_STATUS_FALSE;
}
-static switch_status_t originate_on_ring(switch_core_session_t *session)
+static switch_status_t originate_on_routing(switch_core_session_t *session)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
/* put the channel in a passive state until it is answered */
- switch_channel_set_state(channel, CS_HOLD);
+ switch_channel_set_state(channel, CS_CONSUME_MEDIA);
return SWITCH_STATUS_FALSE;
}
static const switch_state_handler_table_t originate_state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ originate_on_ring,
+ /*.on_routing */ originate_on_routing,
/*.on_execute */ NULL,
/*.on_hangup */ NULL,
- /*.on_loopback */ NULL,
- /*.on_transmit */ originate_on_hold_transmit,
- /*.on_hold */ originate_on_hold_transmit
+ /*.on_exchange_media */ NULL,
+ /*.on_soft_execute */ originate_on_consume_media_transmit,
+ /*.on_consume_media */ originate_on_consume_media_transmit
};
typedef enum {
goto wbreak;
}
- switch_channel_set_state(channel, CS_TRANSMIT);
+ switch_channel_set_state(channel, CS_SOFT_EXECUTE);
switch_core_session_exec(collect->session, application_interface, app_data);
if (switch_channel_get_state(channel) < CS_HANGUP) {
if (!switch_core_session_running(peer_sessions[i])) {
//if (!(flags & SOF_NOBLOCK)) {
- //switch_channel_set_state(peer_channels[i], CS_RING);
+ //switch_channel_set_state(peer_channels[i], CS_ROUTING);
//}
//} else {
switch_core_session_thread_launch(peer_sessions[i]);
continue;
}
- if (state >= CS_RING) {
+ if (state >= CS_ROUTING) {
goto endfor1;
}