mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 17:38:59 +00:00
Mega Changes
adding mod_park for putting channels in limbo state for remote control. adding stuff to mod_event_socket to let you do the bgapi <command> <args> this will let you execute a job in the bg and the result will be sent as an event with an indicated uuid to match the reply to the command adding switch_core_port_allocator (to be used soon) adding "make sure" to do a full rebild of the freeswitch object files There will be more to this committed as the week progresses make sure you do a rebuild after this update or you'll be sowwie ./configure && make sure git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2540 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
@@ -260,7 +260,7 @@ static switch_status_t originate_function(char *cmd, switch_core_session_t *ises
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
if (switch_ivr_originate(NULL, &caller_session, aleg, timeout, NULL, cid_name, cid_num, NULL) != SWITCH_STATUS_SUCCESS) {
|
||||
if (switch_ivr_originate(NULL, &caller_session, aleg, timeout, &noop_state_handler, cid_name, cid_num, NULL) != SWITCH_STATUS_SUCCESS) {
|
||||
stream->write_function(stream, "Cannot Create Outgoing Channel! [%s]\n", aleg);
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
@@ -268,9 +268,32 @@ static switch_status_t originate_function(char *cmd, switch_core_session_t *ises
|
||||
caller_channel = switch_core_session_get_channel(caller_session);
|
||||
assert(caller_channel != NULL);
|
||||
switch_channel_clear_state_handler(caller_channel, NULL);
|
||||
switch_core_session_rwunlock(caller_session);
|
||||
|
||||
switch_ivr_session_transfer(caller_session, exten, dp, context);
|
||||
|
||||
if (*exten == '&') {
|
||||
switch_caller_extension_t *extension = NULL;
|
||||
char *app_name = switch_core_session_strdup(caller_session, (exten + 1));
|
||||
char *arg, *e;
|
||||
|
||||
if ((e = strchr(app_name, ')'))) {
|
||||
*e = '\0';
|
||||
}
|
||||
|
||||
if ((arg = strchr(app_name, '('))) {
|
||||
*arg++ = '\0';
|
||||
}
|
||||
|
||||
if ((extension = switch_caller_extension_new(caller_session, app_name, arg)) == 0) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "memory error!\n");
|
||||
switch_channel_hangup(caller_channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
|
||||
return SWITCH_STATUS_MEMERR;
|
||||
}
|
||||
switch_caller_extension_add_application(caller_session, extension, app_name, arg);
|
||||
switch_channel_set_caller_extension(caller_channel, extension);
|
||||
switch_channel_set_state(caller_channel, CS_EXECUTE);
|
||||
} else {
|
||||
switch_ivr_session_transfer(caller_session, exten, dp, context);
|
||||
}
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;;
|
||||
}
|
||||
|
Reference in New Issue
Block a user