提交 06a0b2c0 authored 作者: Anthony Minessale's avatar Anthony Minessale

cause code goodies

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2671 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 387fdc53
......@@ -53,7 +53,8 @@ static void audio_bridge_function(switch_core_session_t *session, char *data)
if (switch_ivr_originate(session, &peer_session, &cause, data, timelimit, NULL, NULL, NULL, NULL) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Create Outgoing Channel!\n");
switch_channel_hangup(caller_channel, SWITCH_CAUSE_REQUESTED_CHAN_UNAVAIL);
/* Hangup the channel with the cause code from the failed originate.*/
switch_channel_hangup(caller_channel, cause);
return;
} else {
switch_ivr_multi_threaded_bridge(session, peer_session, NULL, NULL, NULL);
......
......@@ -1555,7 +1555,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
switch_channel_t *caller_channel = NULL;
switch_memory_pool_t *pool = NULL;
char *data = NULL;
int i, argc;
int i, argc = 0;
int32_t idx = -1;
switch_codec_t write_codec = {0};
switch_frame_t write_frame = {0};
......@@ -1850,17 +1850,33 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
done:
if (caller_channel) {
*cause = switch_channel_get_cause(caller_channel);
*cause = SWITCH_CAUSE_UNALLOCATED;
if (status == SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Originate Resulted in Success: [%s]\n", switch_channel_get_name(peer_channel));
} else {
*cause = SWITCH_CAUSE_CHANNEL_UNACCEPTABLE;
if (peer_channel) {
*cause = switch_channel_get_cause(peer_channel);
} else {
for (i = 0; i < argc; i++) {
if (!peer_channels[i]) {
continue;
}
*cause = switch_channel_get_cause(peer_channels[i]);
break;
}
}
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Originate Resulted in Error Cause: %d [%s]\n", *cause, switch_channel_cause2str(*cause));
}
if (odata) {
free(odata);
}
if (!pass && write_codec.implementation) {
switch_core_codec_destroy(&write_codec);
}
return status;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论