sla cid tweaks

Conflicts:
	src/mod/endpoints/mod_sofia/sofia_glue.c
This commit is contained in:
Anthony Minessale committed 2013-04-05 00:36:44 -05:00
1 parent 241cf2a8c2
commit 900f2aab74
5 files changed
+3005 -31

No files matched your search

+18 -11
View File
@@ -3276,26 +3276,22 @@ static int broadsoft_sla_gather_state_callback(void *pArg, int argc, char **argv
data = switch_core_hash_find(sh->hash, key);
if (uuid && (session = switch_core_session_locate(uuid))) {
if (strcasecmp(state, "idle") && uuid && (session = switch_core_session_locate(uuid))) {
switch_channel_t *channel = switch_core_session_get_channel(session);
if (switch_channel_direction(channel) == SWITCH_CALL_DIRECTION_INBOUND) {
if (switch_channel_test_flag(channel, CF_BRIDGE_ORIGINATOR)) {
callee_name = switch_channel_get_variable(channel, "callee_id_name");
callee_number = switch_channel_get_variable(channel, "callee_id_number");
if (zstr((callee_name = switch_channel_get_variable(channel, "effective_callee_id_name"))) &&
zstr((callee_name = switch_channel_get_variable(channel, "sip_callee_id_name")))) {
callee_name = switch_channel_get_variable(channel, "callee_id_name");
}
if (zstr((callee_number = switch_channel_get_variable(channel, "effective_callee_id_number"))) &&
zstr((callee_number = switch_channel_get_variable(channel, "sip_callee_id_number"))) &&
zstr((callee_number = switch_channel_get_variable(channel, "callee_id_number")))) {
if (zstr(callee_number)) {
callee_number = switch_channel_get_variable(channel, "destination_number");
}
} else {
callee_name = switch_channel_get_variable(channel, "caller_id_name");
callee_number = switch_channel_get_variable(channel, "caller_id_number");
}
if (zstr(callee_name) && !zstr(callee_number)) {
callee_name = callee_number;
}
@@ -3307,9 +3303,20 @@ static int broadsoft_sla_gather_state_callback(void *pArg, int argc, char **argv
if (!zstr(callee_name)) {
callee_name = switch_sanitize_number(switch_core_session_strdup(session, callee_name));
}
//if (switch_channel_get_state(channel) != CS_EXECUTE) {
//callee_number = NULL;
//}
switch_core_session_rwunlock(session);
}
if (data && strstr(data, info)) {
return 0;
}
if (!zstr(callee_number)) {
if (zstr(callee_name)) {
callee_name = "unknown";