add some clarification

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9238 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2008-08-11 16:12:55 +00:00
parent 4a278c111d
commit 4f670da192
4 changed files with 20 additions and 6 deletions

View File

@ -1186,7 +1186,8 @@ typedef enum {
SWITCH_CAUSE_ALLOTTED_TIMEOUT = 602,
SWITCH_CAUSE_USER_CHALLENGE = 603,
SWITCH_CAUSE_MEDIA_TIMEOUT = 604,
SWITCH_CAUSE_PICKED_OFF = 605
SWITCH_CAUSE_PICKED_OFF = 605,
SWITCH_CAUSE_USER_NOT_REGISTERED = 606
} switch_call_cause_t;
typedef enum {

View File

@ -1616,8 +1616,8 @@ SWITCH_STANDARD_API(sofia_contact_function)
char *p;
sofia_profile_t *profile = NULL;
const char *exclude_contact = NULL;
char *reply = "";
char *reply = "error/facility_not_subscribed";
if (!cmd) {
stream->write_function(stream, "%s", "");
return SWITCH_STATUS_SUCCESS;
@ -1696,8 +1696,14 @@ SWITCH_STANDARD_API(sofia_contact_function)
if (!switch_strlen_zero(reply) && end_of(reply) == ',') {
end_of(reply) = '\0';
}
if (switch_strlen_zero(reply)) {
reply = "error/user_not_registered";
}
stream->write_function(stream, "%s", reply);
reply = NULL;
switch_safe_free(mystream.data);
}
}
@ -1960,7 +1966,7 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session
tech_pvt->local_url = switch_core_session_sprintf(nsession, "%s@%s", dest, host);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Cannot locate registered user %s@%s\n", dest, host);
cause = SWITCH_CAUSE_NO_ROUTE_DESTINATION;
cause = SWITCH_CAUSE_USER_NOT_REGISTERED;
goto error;
}
} else if (!(host = strchr(dest, '@'))) {
@ -1972,7 +1978,7 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session
host = profile_name;
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Cannot locate registered user %s@%s\n", dest, profile_name);
cause = SWITCH_CAUSE_NO_ROUTE_DESTINATION;
cause = SWITCH_CAUSE_USER_NOT_REGISTERED;
goto error;
}
} else {

View File

@ -101,6 +101,7 @@ static struct switch_cause_table CAUSE_CHART[] = {
{"USER_CHALLENGE", SWITCH_CAUSE_USER_CHALLENGE},
{"MEDIA_TIMEOUT", SWITCH_CAUSE_MEDIA_TIMEOUT},
{"PICKED_OFF", SWITCH_CAUSE_PICKED_OFF},
{"USER_NOT_REGISTERED", SWITCH_CAUSE_USER_NOT_REGISTERED},
{NULL, 0}
};

View File

@ -536,10 +536,16 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
char *loop_data = NULL;
uint32_t progress_timelimit_sec = 0;
*bleg = NULL;
if (!strncasecmp(bridgeto, "error/", 6)) {
*cause = switch_channel_str2cause(bridgeto + 6);
return SWITCH_STATUS_SUCCESS;
}
switch_zmalloc(write_frame.data, SWITCH_RECOMMENDED_BUFFER_SIZE);
write_frame.buflen = SWITCH_RECOMMENDED_BUFFER_SIZE;
*bleg = NULL;
odata = strdup(bridgeto);
if (!odata) {