char *sofia_glue_get_multipart(switch_core_session_t *session, const char *prefix, const char *sdp, char **mp_type);
void sofia_glue_tech_simplify(private_object_t *tech_pvt);
switch_console_callback_match_t *sofia_reg_find_reg_url_multi(sofia_profile_t *profile, const char *user, const char *host);
+switch_bool_t sofia_glue_profile_exists(const char *key);
return status;
}
+switch_bool_t sofia_glue_profile_exists(const char *key)
+{
+ switch_bool_t tf = SWITCH_FALSE;
+
+ switch_mutex_lock(mod_sofia_globals.hash_mutex);
+ if (switch_core_hash_find(mod_sofia_globals.profile_hash, key)) {
+ tf = SWITCH_TRUE;
+ }
+ switch_mutex_unlock(mod_sofia_globals.hash_mutex);
+
+ return tf;
+}
+
sofia_profile_t *sofia_glue_find_profile__(const char *file, const char *func, int line, const char *key)
{
sofia_profile_t *profile;
switch_find_local_ip(guess_ip4, sizeof(guess_ip4), NULL, AF_INET);
if (profile->reg_db_domain) {
- sofia_profile_t *xprofile;
-
- if ((xprofile = sofia_glue_find_profile(to_host))) {
- sofia_glue_release_profile(xprofile);
- } else {
-
+ if (!sofia_glue_profile_exists(to_host)) {
if (sofia_glue_add_profile(switch_core_strdup(profile->pool, to_host), profile) == SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Auto-Adding Alias [%s] for profile [%s]\n", to_host, profile->name);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Alias [%s] for profile [%s] (already exists)\n",
to_host, profile->name);
}
-
-
}
}