git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7520 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale
2008-02-04 22:38:01 +00:00
parent 345c97aba6
commit c37e4fc907
2 changed files with 42 additions and 18 deletions
+16 -7
View File
@@ -404,20 +404,29 @@ void sofia_glue_attach_private(switch_core_session_t *session, sofia_profile_t *
switch_status_t sofia_glue_ext_address_lookup(char **ip, switch_port_t *port, char *sourceip, switch_memory_pool_t *pool)
{
char *error;
switch_status_t status;
int x;
if (!sourceip) {
return SWITCH_STATUS_FALSE;
}
if (!strncasecmp(sourceip, "stun:", 5)) {
char *stun_ip = sourceip + 5;
if (!stun_ip) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Stun Failed! NO STUN SERVER\n");
return SWITCH_STATUS_FALSE;
for (x = 0; x < 5; x++) {
char *stun_ip = sourceip + 5;
if (!stun_ip) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Stun Failed! NO STUN SERVER\n");
return SWITCH_STATUS_FALSE;
}
if ((status = switch_stun_lookup(ip, port, stun_ip, SWITCH_STUN_DEFAULT_PORT, &error, pool)) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Stun Failed! %s:%d [%s]\n", stun_ip, SWITCH_STUN_DEFAULT_PORT, error);
switch_yield(100000);
} else {
break;
}
}
if (switch_stun_lookup(ip, port, stun_ip, SWITCH_STUN_DEFAULT_PORT, &error, pool) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Stun Failed! %s:%d [%s]\n", stun_ip, SWITCH_STUN_DEFAULT_PORT, error);
return SWITCH_STATUS_FALSE;
if (status != SWITCH_STATUS_SUCCESS) {
return status;
}
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Stun Success [%s]:[%d]\n", *ip, *port);
} else {