if (!sofia_glue_init_sql(profile)) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Cannot Open SQL Database [%s]!\n", profile->name);
sofia_profile_start_failure(profile, profile->name);
- sofia_glue_del_profile(profile);
goto end;
}
}
sofia_profile_start_failure(profile, profile->name);
- sofia_glue_del_profile(profile);
goto end;
}
}
}
+ /* Do gateway cleanups */
+ sofia_glue_del_every_gateway(profile);
+ sofia_reg_check_gateway(profile, switch_epoch_time_now(NULL));
+ sofia_sub_check_gateway(profile, switch_epoch_time_now(NULL));
+ sofia_glue_fire_events(profile);
+
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Waiting for worker thread\n");
+
+ if (worker_thread) {
+ switch_thread_join(&st, worker_thread);
+ }
+ else {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "ERROR: Sofia worker thead failed to start\n");
+ }
sofia_reg_unregister(profile);
nua_shutdown(profile->nua);
sofia_clear_pflag_locked(profile, PFLAG_RUNNING);
sofia_clear_pflag_locked(profile, PFLAG_SHUTDOWN);
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Waiting for worker thread\n");
-
- if ( worker_thread ) {
- switch_thread_join(&st, worker_thread);
- } else {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "ERROR: Sofia worker thead failed to start\n");
- }
sanity = 4;
while (profile->inuse) {
}
}
+ end:
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Write lock %s\n", profile->name);
switch_thread_rwlock_wrlock(profile->rwlock);
sofia_profile_destroy(profile);
- end:
switch_mutex_lock(mod_sofia_globals.mutex);
mod_sofia_globals.threads--;
switch_mutex_unlock(mod_sofia_globals.mutex);
--- /dev/null
+<?xml version="1.0"?>
+<document type="freeswitch/xml">
+ <section name="configuration" description="Various Configuration">
+
+ <configuration name="modules.conf" description="Modules">
+ <modules>
+ <load module="mod_sofia"/>
+ </modules>
+ </configuration>
+
+ <configuration name="console.conf" description="Console Logger">
+ <mappings>
+ <map name="all" value="console,debug,info,notice,warning,err,crit,alert"/>
+ </mappings>
+ <settings>
+ <param name="colorize" value="true"/>
+ <param name="uuid" value="true"/>
+ <param name="loglevel" value="debug"/>
+ </settings>
+ </configuration>
+ <configuration name="sofia.conf" description="SofiaSIP">
+ <profiles>
+ <profile name="external">
+ <gateways>
+ <gateway name="faxtest">
+ <param name="username" value="not-used"/>
+ <param name="password" value="not-used"/>
+ <param name="proxy" value="$${local_ip_v4}:61060"/>
+ <param name="register" value="false"/>
+ <param name="retry-seconds" value="30"/>
+ <param name="dtmf-type" value="rfc2833"/>
+ <variables>
+ <variable name="rtp_secure_media" value="false" direction="outbound"/>
+ </variables>
+ </gateway>
+ </gateways>
+
+ <domains>
+ <domain name="all" alias="false" parse="true"/>
+ </domains>
+
+ <settings>
+ <param name="debug" value="1"/>
+ <param name="shutdown-on-fail" value="true"/>
+ <param name="p-asserted-id-parse" value="verbatim"/>
+ <param name="username" value="SignalWire-STACK"/>
+ <param name="user-agent-string" value="SignalWire STACK Unit Test"/>
+ <param name="sip-trace" value="yes"/>
+ <param name="sip-capture" value="no"/>
+ <param name="rfc2833-pt" value="101"/>
+ <param name="sip-port" value="61060"/>
+ <param name="dialplan" value="XML"/>
+ <param name="context" value="default"/>
+ <param name="dtmf-duration" value="2000"/>
+ <param name="inbound-codec-prefs" value="PCMU"/>
+ <param name="outbound-codec-prefs" value="PCMU"/>
+ <param name="rtp-timer-name" value="soft"/>
+ <param name="local-network-acl" value="localnet.auto"/>
+ <param name="manage-presence" value="false"/>
+ <param name="inbound-codec-negotiation" value="generous"/>
+ <param name="nonce-ttl" value="60"/>
+ <param name="inbound-late-negotiation" value="true"/>
+ <param name="inbound-zrtp-passthru" value="false"/>
+ <param name="rtp-ip" value="$${local_ip_v4}"/>
+ <param name="sip-ip" value="$${local_ip_v4}"/>
+ <param name="ext-rtp-ip" value="$${local_ip_v4}"/>
+ <param name="ext-sip-ip" value="$${local_ip_v4}"/>
+ <param name="rtp-timeout-sec" value="300"/>
+ <param name="rtp-hold-timeout-sec" value="1800"/>
+ <param name="session-timeout" value="600"/>
+ <param name="minimum-session-expires" value="90"/>
+ <param name="tls" value="false"/>
+ </settings>
+ </profile>
+
+ <profile name="internal">
+ <gateways>
+ </gateways>
+
+ <domains>
+ <domain name="all" alias="false" parse="true"/>
+ </domains>
+
+ <settings>
+ <param name="debug" value="1"/>
+ <param name="shutdown-on-fail" value="true"/>
+ <param name="p-asserted-id-parse" value="verbatim"/>
+ <param name="username" value="SignalWire-STACK"/>
+ <param name="user-agent-string" value="SignalWire STACK Unit Test"/>
+ <param name="sip-trace" value="yes"/>
+ <param name="sip-capture" value="no"/>
+ <param name="rfc2833-pt" value="101"/>
+ <param name="sip-port" value="61061"/>
+ <param name="dialplan" value="XML"/>
+ <param name="context" value="default"/>
+ <param name="dtmf-duration" value="2000"/>
+ <param name="inbound-codec-prefs" value="PCMU"/>
+ <param name="outbound-codec-prefs" value="PCMU"/>
+ <param name="rtp-timer-name" value="soft"/>
+ <param name="local-network-acl" value="localnet.auto"/>
+ <param name="manage-presence" value="false"/>
+ <param name="inbound-codec-negotiation" value="generous"/>
+ <param name="nonce-ttl" value="60"/>
+ <param name="inbound-late-negotiation" value="true"/>
+ <param name="inbound-zrtp-passthru" value="false"/>
+ <param name="rtp-ip" value="$${local_ip_v4}"/>
+ <param name="sip-ip" value="$${local_ip_v4}"/>
+ <param name="ext-rtp-ip" value="$${local_ip_v4}"/>
+ <param name="ext-sip-ip" value="$${local_ip_v4}"/>
+ <param name="rtp-timeout-sec" value="300"/>
+ <param name="rtp-hold-timeout-sec" value="1800"/>
+ <param name="session-timeout" value="600"/>
+ <param name="minimum-session-expires" value="90"/>
+ <param name="tls" value="false"/>
+ </settings>
+ </profile>
+
+ </profiles>
+ </configuration>
+
+ <configuration name="switch.conf" description="Switch">
+ <param name="rtp-start-port" value="20000"/>
+ <param name="rtp-end-port" value="30000"/>
+ <param name="threaded-system-exec" value="true"/>
+ </configuration>
+
+ <configuration name="timezones.conf" description="Timezones">
+ <timezones>
+ <zone name="GMT" value="GMT0" />
+ </timezones>
+ </configuration>
+ </section>
+
+ <section name="dialplan" description="Regex/XML Dialplan">
+ <context name="default">
+ <extension name="sample">
+ <condition>
+ <action application="info"/>
+ </condition>
+ </extension>
+
+ </context>
+ </section>
+</document>