From 5478d18747939139a5f840d7aefc62d1d6dfcd7b Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 21 Jan 2008 20:14:53 +0000 Subject: [PATCH] update git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7313 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/mod_sofia.c | 7 ++++--- src/mod/endpoints/mod_sofia/mod_sofia.h | 1 + src/mod/endpoints/mod_sofia/sofia.c | 8 ++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 34cab0e514..50b5b6cd0e 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -1198,6 +1198,7 @@ static switch_status_t cmd_status(char **argv, int argc, switch_stream_handle_t if ((profile = sofia_glue_find_profile(argv[1]))) { stream->write_function(stream, "%s\n", line); stream->write_function(stream, "Name \t%s\n", switch_str_nil(argv[1])); + stream->write_function(stream, "Domain Name\t%s\n", switch_str_nil(profile->domain_name)); if (strcasecmp(argv[1], profile->name)) { stream->write_function(stream, "Alias Of \t%s\n", switch_str_nil(profile->name)); } @@ -1748,11 +1749,11 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session } else if (!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))) { + if (sofia_reg_find_reg_url(profile, dest, profile->domain_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); + tech_pvt->local_url = switch_core_session_sprintf(nsession, "%s@%s", dest, profile->domain_name); } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Cannot locate registered user %s@%s\n", dest, profile->name); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Cannot locate registered user %s@%s\n", dest, profile->domain_name); cause = SWITCH_CAUSE_NO_ROUTE_DESTINATION; goto error; } diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.h b/src/mod/endpoints/mod_sofia/mod_sofia.h index 1bf680fe98..b220bd372a 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.h +++ b/src/mod/endpoints/mod_sofia/mod_sofia.h @@ -234,6 +234,7 @@ struct sofia_gateway { struct sofia_profile { int debug; char *name; + char *domain_name; char *dbname; char *dialplan; char *context; diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index fabaa71b57..d4f7055425 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -871,6 +871,7 @@ switch_status_t config_sofia(int reload, char *profile_name) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "No Settings, check the new config!\n"); } else { char *xprofilename = (char *) switch_xml_attr_soft(xprofile, "name"); + char *xprofiledomain = (char *) switch_xml_attr(xprofile, "domain"); switch_memory_pool_t *pool = NULL; if (!xprofilename) { @@ -902,6 +903,12 @@ switch_status_t config_sofia(int reload, char *profile_name) profile->name = switch_core_strdup(profile->pool, xprofilename); switch_snprintf(url, sizeof(url), "sofia_reg_%s", xprofilename); + if (xprofiledomain) { + profile->domain_name = switch_core_strdup(profile->pool, xprofiledomain); + } else { + profile->domain_name = profile->name; + } + profile->dbname = switch_core_strdup(profile->pool, url); switch_core_hash_init(&profile->chat_hash, profile->pool); switch_core_hash_init(&profile->sub_hash, profile->pool); @@ -2374,6 +2381,7 @@ void sofia_handle_sip_i_invite(nua_t *nua, sofia_profile_t *profile, nua_handle_ } switch_channel_set_variable(channel, "sofia_profile_name", profile->name); + switch_channel_set_variable(channel, "sofia_profile_domain_name", profile->domain_name); if (!switch_strlen_zero(sip->sip_from->a_display)) { displayname = sip->sip_from->a_display;