]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Add "a tls-version" configuration option to select the protocol version of the SIP...
authorStefan Knoblich <stkn@freeswitch.org>
Sat, 22 Dec 2007 23:50:15 +0000 (23:50 +0000)
committerStefan Knoblich <stkn@freeswitch.org>
Sat, 22 Dec 2007 23:50:15 +0000 (23:50 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6963 d0543943-73ff-0310-b7d9-9358b9ac24b2

conf/sip_profiles/default.xml
src/mod/endpoints/mod_sofia/mod_sofia.h
src/mod/endpoints/mod_sofia/sofia.c

index 6d5825747633d39a9490615718e540b81e9e77fd..7507c6df69920f2a693a65f82810659af1fb4770 100644 (file)
@@ -53,6 +53,8 @@
     <param name="tls-sip-port" value="5061"/>
     <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) -->
     <param name="tls-cert-dir" value="$${base_dir}/conf/ssl"/>
+    <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
+    <param name="tls-version" value="sslv23"/>
     
     <!--If you don't want to pass through timestampes from 1 RTP call to another (on a per call basis with rtp_rewrite_timestamps chanvar)-->
     <!--<param name="rtp-rewrite-timestamps" value="true"/>-->
index 9f65d23c5276fdf522a67be9bea71d6b3a18acc6..131193f8bfc3f50db54480995bbc3f19ea0814c1 100644 (file)
@@ -243,6 +243,7 @@ struct sofia_profile {
        sofia_dtmf_t dtmf_type;
        int sip_port;
        int tls_sip_port;
+       int tls_version;
        char *codec_string;
        int running;
        int dtmf_duration;
index a4c4ab9f2b4b101de14692a4dbdb138ce22fe1ad..dba43354420f9718e8663938ba24a9c300707b06 100644 (file)
@@ -390,6 +390,7 @@ void *SWITCH_THREAD_FUNC sofia_profile_thread_run(switch_thread_t *thread, void
                                                        NUTAG_URL(profile->bindurl),
                                                        TAG_IF(sofia_test_pflag(profile, PFLAG_TLS), NUTAG_SIPS_URL(profile->tls_bindurl)),
                                                        TAG_IF(sofia_test_pflag(profile, PFLAG_TLS), NUTAG_CERTIFICATE_DIR(profile->tls_cert_dir)),
+                                                       TAG_IF(sofia_test_pflag(profile, PFLAG_TLS), TPTAG_TLS_VERSION(profile->tls_version)),
                                                        NTATAG_UDP_MTU(65536),
                                                        TAG_IF(tportlog, TPTAG_LOG(1)),
                                                        TAG_END());     /* Last tag should always finish the sequence */
@@ -857,6 +858,7 @@ switch_status_t config_sofia(int reload, char *profile_name)
                                switch_thread_rwlock_create(&profile->rwlock, profile->pool);
                                switch_mutex_init(&profile->flag_mutex, SWITCH_MUTEX_NESTED, profile->pool);
                                profile->dtmf_duration = 100;
+                               profile->tls_version = 0;
 
                                for (param = switch_xml_child(settings, "param"); param; param = param->next) {
                                        char *var = (char *) switch_xml_attr_soft(param, "name");
@@ -1056,6 +1058,13 @@ switch_status_t config_sofia(int reload, char *profile_name)
                                                profile->tls_sip_port = atoi(val);
                                        } else if (!strcasecmp(var, "tls-cert-dir")) {
                                                profile->tls_cert_dir = switch_core_strdup(profile->pool, val);
+                                       } else if (!strcasecmp(var, "tls-version")) {
+
+                                               if (!strcasecmp(val, "tlsv1")) {
+                                                       profile->tls_version = 1;
+                                               } else {
+                                                       profile->tls_version = 0;
+                                               }
                                        }
                                }