mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-14 08:05:37 +00:00
add var_event down into the endpoints so chans with no parents can still pass options
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8416 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
50d821c90b
commit
1ea027f37f
@ -732,6 +732,7 @@ SWITCH_DECLARE(void) switch_core_service_session(_In_ switch_core_session_t *ses
|
|||||||
\return the cause code of the attempted call
|
\return the cause code of the attempted call
|
||||||
*/
|
*/
|
||||||
SWITCH_DECLARE(switch_call_cause_t) switch_core_session_outgoing_channel(_In_opt_ switch_core_session_t *session,
|
SWITCH_DECLARE(switch_call_cause_t) switch_core_session_outgoing_channel(_In_opt_ switch_core_session_t *session,
|
||||||
|
_In_opt_ switch_event_t *var_event,
|
||||||
_In_z_ const char *endpoint_name,
|
_In_z_ const char *endpoint_name,
|
||||||
_In_ switch_caller_profile_t *caller_profile,
|
_In_ switch_caller_profile_t *caller_profile,
|
||||||
_Inout_ switch_core_session_t **new_session,
|
_Inout_ switch_core_session_t **new_session,
|
||||||
|
@ -48,7 +48,7 @@ typedef struct switch_io_event_hook_recv_dtmf switch_io_event_hook_recv_dtmf_t;
|
|||||||
typedef struct switch_io_event_hook_state_change switch_io_event_hook_state_change_t;
|
typedef struct switch_io_event_hook_state_change switch_io_event_hook_state_change_t;
|
||||||
typedef struct switch_io_event_hook_resurrect_session switch_io_event_hook_resurrect_session_t;
|
typedef struct switch_io_event_hook_resurrect_session switch_io_event_hook_resurrect_session_t;
|
||||||
typedef switch_status_t (*switch_outgoing_channel_hook_t)
|
typedef switch_status_t (*switch_outgoing_channel_hook_t)
|
||||||
(switch_core_session_t *, switch_caller_profile_t *, switch_core_session_t *, switch_originate_flag_t);
|
(switch_core_session_t *, switch_event_t *, switch_caller_profile_t *, switch_core_session_t *, switch_originate_flag_t);
|
||||||
typedef switch_status_t (*switch_receive_message_hook_t) (switch_core_session_t *, switch_core_session_message_t *);
|
typedef switch_status_t (*switch_receive_message_hook_t) (switch_core_session_t *, switch_core_session_message_t *);
|
||||||
typedef switch_status_t (*switch_receive_event_hook_t) (switch_core_session_t *, switch_event_t *);
|
typedef switch_status_t (*switch_receive_event_hook_t) (switch_core_session_t *, switch_event_t *);
|
||||||
typedef switch_status_t (*switch_read_frame_hook_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int);
|
typedef switch_status_t (*switch_read_frame_hook_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int);
|
||||||
|
@ -100,7 +100,7 @@ struct switch_io_event_hooks;
|
|||||||
|
|
||||||
|
|
||||||
typedef switch_call_cause_t (*switch_io_outgoing_channel_t)
|
typedef switch_call_cause_t (*switch_io_outgoing_channel_t)
|
||||||
(switch_core_session_t *, switch_caller_profile_t *, switch_core_session_t **, switch_memory_pool_t **, switch_originate_flag_t);
|
(switch_core_session_t *, switch_event_t *, switch_caller_profile_t *, switch_core_session_t **, switch_memory_pool_t **, switch_originate_flag_t);
|
||||||
typedef switch_status_t (*switch_io_read_frame_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int);
|
typedef switch_status_t (*switch_io_read_frame_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int);
|
||||||
typedef switch_status_t (*switch_io_write_frame_t) (switch_core_session_t *, switch_frame_t *, switch_io_flag_t, int);
|
typedef switch_status_t (*switch_io_write_frame_t) (switch_core_session_t *, switch_frame_t *, switch_io_flag_t, int);
|
||||||
typedef switch_status_t (*switch_io_kill_channel_t) (switch_core_session_t *, int);
|
typedef switch_status_t (*switch_io_kill_channel_t) (switch_core_session_t *, int);
|
||||||
|
@ -1772,6 +1772,7 @@ SWITCH_STANDARD_APP(audio_bridge_function)
|
|||||||
/* fake chan_user */
|
/* fake chan_user */
|
||||||
switch_endpoint_interface_t *user_endpoint_interface;
|
switch_endpoint_interface_t *user_endpoint_interface;
|
||||||
static switch_call_cause_t user_outgoing_channel(switch_core_session_t *session,
|
static switch_call_cause_t user_outgoing_channel(switch_core_session_t *session,
|
||||||
|
switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session,
|
switch_core_session_t **new_session,
|
||||||
switch_memory_pool_t **pool,
|
switch_memory_pool_t **pool,
|
||||||
@ -1781,6 +1782,7 @@ switch_io_routines_t user_io_routines = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static switch_call_cause_t user_outgoing_channel(switch_core_session_t *session,
|
static switch_call_cause_t user_outgoing_channel(switch_core_session_t *session,
|
||||||
|
switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session,
|
switch_core_session_t **new_session,
|
||||||
switch_memory_pool_t **pool,
|
switch_memory_pool_t **pool,
|
||||||
@ -1857,7 +1859,18 @@ static switch_call_cause_t user_outgoing_channel(switch_core_session_t *session,
|
|||||||
d_dest = switch_channel_expand_variables(channel, dest);
|
d_dest = switch_channel_expand_variables(channel, dest);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
d_dest = strdup(dest);
|
switch_event_t *event = var_event;
|
||||||
|
if (!event) {
|
||||||
|
switch_event_create(&event, SWITCH_EVENT_MESSAGE);
|
||||||
|
switch_assert(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "dialed_user", user);
|
||||||
|
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "dialed_domain", domain);
|
||||||
|
d_dest = switch_event_expand_headers(event, dest);
|
||||||
|
if (event && event != var_event) {
|
||||||
|
switch_event_destroy(&event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & SOF_FORKED_DIAL)) {
|
if ((flags & SOF_FORKED_DIAL)) {
|
||||||
|
@ -289,7 +289,7 @@ SWITCH_STANDARD_DIALPLAN(asterisk_dialplan_hunt)
|
|||||||
|
|
||||||
/* fake chan_sip */
|
/* fake chan_sip */
|
||||||
switch_endpoint_interface_t *sip_endpoint_interface;
|
switch_endpoint_interface_t *sip_endpoint_interface;
|
||||||
static switch_call_cause_t sip_outgoing_channel(switch_core_session_t *session,
|
static switch_call_cause_t sip_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session,
|
switch_core_session_t **new_session,
|
||||||
switch_memory_pool_t **pool,
|
switch_memory_pool_t **pool,
|
||||||
@ -298,7 +298,7 @@ switch_io_routines_t sip_io_routines = {
|
|||||||
/*.outgoing_channel */ sip_outgoing_channel
|
/*.outgoing_channel */ sip_outgoing_channel
|
||||||
};
|
};
|
||||||
|
|
||||||
static switch_call_cause_t sip_outgoing_channel(switch_core_session_t *session,
|
static switch_call_cause_t sip_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session,
|
switch_core_session_t **new_session,
|
||||||
switch_memory_pool_t **pool,
|
switch_memory_pool_t **pool,
|
||||||
@ -316,7 +316,7 @@ static switch_call_cause_t sip_outgoing_channel(switch_core_session_t *session,
|
|||||||
}
|
}
|
||||||
|
|
||||||
outbound_profile->destination_number = switch_core_sprintf(outbound_profile->pool, "%s/%s", profile, outbound_profile->destination_number);
|
outbound_profile->destination_number = switch_core_sprintf(outbound_profile->pool, "%s/%s", profile, outbound_profile->destination_number);
|
||||||
return switch_core_session_outgoing_channel(session, "sofia", outbound_profile, new_session, pool, SOF_NONE);
|
return switch_core_session_outgoing_channel(session, var_event, "sofia", outbound_profile, new_session, pool, SOF_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -324,7 +324,7 @@ static switch_call_cause_t sip_outgoing_channel(switch_core_session_t *session,
|
|||||||
|
|
||||||
/* fake chan_iax2 */
|
/* fake chan_iax2 */
|
||||||
switch_endpoint_interface_t *iax2_endpoint_interface;
|
switch_endpoint_interface_t *iax2_endpoint_interface;
|
||||||
static switch_call_cause_t iax2_outgoing_channel(switch_core_session_t *session,
|
static switch_call_cause_t iax2_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session,
|
switch_core_session_t **new_session,
|
||||||
switch_memory_pool_t **pool,
|
switch_memory_pool_t **pool,
|
||||||
@ -333,13 +333,13 @@ switch_io_routines_t iax2_io_routines = {
|
|||||||
/*.outgoing_channel */ iax2_outgoing_channel
|
/*.outgoing_channel */ iax2_outgoing_channel
|
||||||
};
|
};
|
||||||
|
|
||||||
static switch_call_cause_t iax2_outgoing_channel(switch_core_session_t *session,
|
static switch_call_cause_t iax2_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session,
|
switch_core_session_t **new_session,
|
||||||
switch_memory_pool_t **pool,
|
switch_memory_pool_t **pool,
|
||||||
switch_originate_flag_t flags)
|
switch_originate_flag_t flags)
|
||||||
{
|
{
|
||||||
return switch_core_session_outgoing_channel(session, "iax", outbound_profile, new_session, pool, SOF_NONE);
|
return switch_core_session_outgoing_channel(session, var_event, "iax", outbound_profile, new_session, pool, SOF_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@ static switch_status_t channel_on_hangup(switch_core_session_t *session);
|
|||||||
static switch_status_t channel_on_routing(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_exchange_media(switch_core_session_t *session);
|
||||||
static switch_status_t channel_on_soft_execute(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,
|
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||||
@ -753,7 +753,7 @@ static switch_loadable_module_interface_t channel_module_interface = {
|
|||||||
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines
|
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines
|
||||||
that allocate memory or you will have 1 channel with memory allocated from another channel's pool!
|
that allocate memory or you will have 1 channel with memory allocated from another channel's pool!
|
||||||
*/
|
*/
|
||||||
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
|
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
||||||
{
|
{
|
||||||
|
@ -208,7 +208,7 @@ static switch_status_t channel_on_hangup(switch_core_session_t *session);
|
|||||||
static switch_status_t channel_on_routing(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_exchange_media(switch_core_session_t *session);
|
||||||
static switch_status_t channel_on_soft_execute(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,
|
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||||
@ -1566,7 +1566,7 @@ switch_io_routines_t dingaling_io_routines = {
|
|||||||
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines
|
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines
|
||||||
that allocate memory or you will have 1 channel with memory allocated from another channel's pool!
|
that allocate memory or you will have 1 channel with memory allocated from another channel's pool!
|
||||||
*/
|
*/
|
||||||
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
|
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
||||||
{
|
{
|
||||||
|
@ -419,7 +419,7 @@ static switch_status_t channel_on_hangup(switch_core_session_t *session);
|
|||||||
static switch_status_t channel_on_routing(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_exchange_media(switch_core_session_t *session);
|
||||||
static switch_status_t channel_on_soft_execute(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,
|
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||||
@ -693,7 +693,7 @@ static switch_status_t channel_receive_message(switch_core_session_t *session, s
|
|||||||
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines
|
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines
|
||||||
that allocate memory or you will have 1 channel with memory allocated from another channel's pool!
|
that allocate memory or you will have 1 channel with memory allocated from another channel's pool!
|
||||||
*/
|
*/
|
||||||
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
|
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
||||||
{
|
{
|
||||||
|
@ -143,7 +143,7 @@ static switch_status_t channel_on_hangup(switch_core_session_t *session);
|
|||||||
static switch_status_t channel_on_routing(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_exchange_media(switch_core_session_t *session);
|
||||||
static switch_status_t channel_on_soft_execute(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,
|
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||||
@ -631,7 +631,7 @@ switch_io_routines_t portaudio_io_routines = {
|
|||||||
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines
|
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines
|
||||||
that allocate memory or you will have 1 channel with memory allocated from another channel's pool!
|
that allocate memory or you will have 1 channel with memory allocated from another channel's pool!
|
||||||
*/
|
*/
|
||||||
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
|
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
||||||
{
|
{
|
||||||
|
@ -103,7 +103,7 @@ static switch_status_t channel_on_hangup(switch_core_session_t *session);
|
|||||||
static switch_status_t channel_on_routing(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_exchange_media(switch_core_session_t *session);
|
||||||
static switch_status_t channel_on_soft_execute(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,
|
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||||
@ -395,7 +395,7 @@ static switch_status_t channel_receive_message(switch_core_session_t *session, s
|
|||||||
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines
|
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines
|
||||||
that allocate memory or you will have 1 channel with memory allocated from another channel's pool!
|
that allocate memory or you will have 1 channel with memory allocated from another channel's pool!
|
||||||
*/
|
*/
|
||||||
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
|
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
||||||
{
|
{
|
||||||
|
@ -52,7 +52,7 @@ static switch_status_t sofia_on_init(switch_core_session_t *session);
|
|||||||
|
|
||||||
static switch_status_t sofia_on_exchange_media(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_status_t sofia_on_soft_execute(switch_core_session_t *session);
|
||||||
static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session,
|
static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session,
|
switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session,
|
||||||
switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||||
static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||||
@ -1682,7 +1682,7 @@ static switch_status_t sofia_manage(char *relative_oid, switch_management_action
|
|||||||
return SWITCH_STATUS_SUCCESS;
|
return SWITCH_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session,
|
static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session,
|
switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session,
|
||||||
switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
||||||
{
|
{
|
||||||
@ -1694,7 +1694,7 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session
|
|||||||
private_object_t *tech_pvt = NULL;
|
private_object_t *tech_pvt = NULL;
|
||||||
switch_channel_t *nchannel;
|
switch_channel_t *nchannel;
|
||||||
char *host = NULL, *dest_to = NULL;
|
char *host = NULL, *dest_to = NULL;
|
||||||
|
|
||||||
*new_session = NULL;
|
*new_session = NULL;
|
||||||
|
|
||||||
if (!(nsession = switch_core_session_request(sofia_endpoint_interface, pool))) {
|
if (!(nsession = switch_core_session_request(sofia_endpoint_interface, pool))) {
|
||||||
|
@ -466,7 +466,7 @@ 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_hangup(switch_core_session_t *session);
|
||||||
static switch_status_t wanpipe_on_exchange_media(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_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,
|
static switch_call_cause_t wanpipe_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event, switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
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,
|
static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch_frame_t **frame,
|
||||||
switch_io_flag_t flags, int stream_id);
|
switch_io_flag_t flags, int stream_id);
|
||||||
@ -1006,7 +1006,7 @@ switch_state_handler_table_t wanpipe_state_handlers = {
|
|||||||
/*.on_soft_execute */ wanpipe_on_soft_execute
|
/*.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 switch_call_cause_t wanpipe_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event, switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
||||||
{
|
{
|
||||||
char *bchan = NULL;
|
char *bchan = NULL;
|
||||||
|
@ -173,7 +173,7 @@ static switch_status_t woomera_on_hangup(switch_core_session_t *session);
|
|||||||
static switch_status_t woomera_on_routing(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_exchange_media(switch_core_session_t *session);
|
||||||
static switch_status_t woomera_on_soft_execute(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,
|
static switch_call_cause_t woomera_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||||
static switch_status_t woomera_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
static switch_status_t woomera_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||||
@ -401,7 +401,7 @@ static switch_io_routines_t woomera_io_routines = {
|
|||||||
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines
|
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines
|
||||||
that allocate memory or you will have 1 channel with memory allocated from another channel's pool!
|
that allocate memory or you will have 1 channel with memory allocated from another channel's pool!
|
||||||
*/
|
*/
|
||||||
static switch_call_cause_t woomera_outgoing_channel(switch_core_session_t *session,
|
static switch_call_cause_t woomera_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
switch_caller_profile_t *outbound_profile,
|
switch_caller_profile_t *outbound_profile,
|
||||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags)
|
||||||
{
|
{
|
||||||
|
@ -188,12 +188,12 @@ SWITCH_DECLARE(switch_call_cause_t) switch_core_session_resurrect_channel(const
|
|||||||
return endpoint_interface->io_routines->resurrect_session(new_session, pool, data);
|
return endpoint_interface->io_routines->resurrect_session(new_session, pool, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
SWITCH_DECLARE(switch_call_cause_t) switch_core_session_outgoing_channel(switch_core_session_t *session,
|
SWITCH_DECLARE(switch_call_cause_t) switch_core_session_outgoing_channel(switch_core_session_t *session, switch_event_t *var_event,
|
||||||
const char *endpoint_name,
|
const char *endpoint_name,
|
||||||
switch_caller_profile_t *caller_profile,
|
switch_caller_profile_t *caller_profile,
|
||||||
switch_core_session_t **new_session,
|
switch_core_session_t **new_session,
|
||||||
switch_memory_pool_t **pool,
|
switch_memory_pool_t **pool,
|
||||||
switch_originate_flag_t flags)
|
switch_originate_flag_t flags)
|
||||||
{
|
{
|
||||||
switch_io_event_hook_outgoing_channel_t *ptr;
|
switch_io_event_hook_outgoing_channel_t *ptr;
|
||||||
switch_status_t status = SWITCH_STATUS_FALSE;
|
switch_status_t status = SWITCH_STATUS_FALSE;
|
||||||
@ -247,13 +247,13 @@ SWITCH_DECLARE(switch_call_cause_t) switch_core_session_outgoing_channel(switch_
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((cause = endpoint_interface->io_routines->outgoing_channel(session, outgoing_profile, new_session, pool, flags)) != SWITCH_CAUSE_SUCCESS) {
|
if ((cause = endpoint_interface->io_routines->outgoing_channel(session, var_event, outgoing_profile, new_session, pool, flags)) != SWITCH_CAUSE_SUCCESS) {
|
||||||
return cause;
|
return cause;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (session) {
|
if (session) {
|
||||||
for (ptr = session->event_hooks.outgoing_channel; ptr; ptr = ptr->next) {
|
for (ptr = session->event_hooks.outgoing_channel; ptr; ptr = ptr->next) {
|
||||||
if ((status = ptr->outgoing_channel(session, caller_profile, *new_session, flags)) != SWITCH_STATUS_SUCCESS) {
|
if ((status = ptr->outgoing_channel(session, var_event, caller_profile, *new_session, flags)) != SWITCH_STATUS_SUCCESS) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -821,7 +821,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
|
|||||||
myflags |= SOF_FORKED_DIAL;
|
myflags |= SOF_FORKED_DIAL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((reason = switch_core_session_outgoing_channel(session, chan_type, new_profile, &new_session, &pool, myflags)) != SWITCH_CAUSE_SUCCESS) {
|
if ((reason = switch_core_session_outgoing_channel(session, var_event, chan_type, new_profile, &new_session, &pool, myflags)) != SWITCH_CAUSE_SUCCESS) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot create outgoing channel of type [%s] cause: [%s]\n",
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot create outgoing channel of type [%s] cause: [%s]\n",
|
||||||
chan_type, switch_channel_cause2str(reason));
|
chan_type, switch_channel_cause2str(reason));
|
||||||
if (pool) {
|
if (pool) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user