[Freeswitch-svn] [commit] r7588 - freeswitch/trunk/src/mod/endpoints/mod_sofia
Freeswitch SVN
anthm at freeswitch.org
Mon Feb 11 15:47:20 EST 2008
Author: anthm
Date: Mon Feb 11 15:47:20 2008
New Revision: 7588
Modified:
freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
Log:
auto append domain name on ^ notation
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c Mon Feb 11 15:47:20 2008
@@ -1564,7 +1564,7 @@
switch_caller_profile_t *caller_profile = NULL;
private_object_t *tech_pvt = NULL;
switch_channel_t *nchannel;
- char *host, *dest_to;
+ char *host = NULL, *dest_to = NULL;
*new_session = NULL;
@@ -1679,8 +1679,6 @@
if ((dest_to = strchr(dest, '^'))) {
*dest_to++ = '\0';
- tech_pvt->dest_to = switch_core_session_alloc(nsession, strlen(dest_to) + 5);
- switch_snprintf(tech_pvt->dest_to, strlen(dest_to) + 5, "sip:%s", dest_to);
}
if ((host = strchr(dest, '%'))) {
@@ -1696,12 +1694,13 @@
cause = SWITCH_CAUSE_NO_ROUTE_DESTINATION;
goto error;
}
- } else if (!strchr(dest, '@')) {
+ } else if (!(host = strchr(dest, '@'))) {
char buf[128];
tech_pvt->e_dest = switch_core_session_strdup(nsession, dest);
if (sofia_reg_find_reg_url(profile, dest, profile_name, buf, sizeof(buf))) {
tech_pvt->dest = switch_core_session_strdup(nsession, buf);
tech_pvt->local_url = switch_core_session_sprintf(nsession, "%s@%s", dest, profile_name);
+ 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;
@@ -1713,6 +1712,15 @@
}
}
+ if (dest_to) {
+ if (strchr(dest_to, '@')) {
+ tech_pvt->dest_to = switch_core_session_sprintf(nsession, "sip:%s", dest_to);
+ } else {
+ tech_pvt->dest_to = switch_core_session_sprintf(nsession, "sip:%s@%s", dest_to, host);
+ }
+ }
+
+
if (!tech_pvt->dest_to) {
tech_pvt->dest_to = tech_pvt->dest;
}
More information about the Freeswitch-svn
mailing list