]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add rtp-autofix-timing (defauts to true even when not present) set to false to disable it
authorAnthony Minessale <anthony.minessale@gmail.com>
Fri, 3 Apr 2009 15:07:10 +0000 (15:07 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Fri, 3 Apr 2009 15:07:10 +0000 (15:07 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12903 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_sofia/mod_sofia.c
src/mod/endpoints/mod_sofia/mod_sofia.h
src/mod/endpoints/mod_sofia/sofia.c

index 42bd6a5a9262c319c19efd6216b7725fced3d28e..fd9e34d774a2cbcc5622f7cbaac6a47a4316fc4f 100644 (file)
@@ -716,7 +716,7 @@ static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_f
                                                return SWITCH_STATUS_GENERR;
                                        }
                                        
-                                       if (tech_pvt->check_frames++ < MAX_CODEC_CHECK_FRAMES) {
+                                       if (sofia_test_pflag(tech_pvt->profile, PFLAG_AUTOFIX_TIMING) && tech_pvt->check_frames++ < MAX_CODEC_CHECK_FRAMES) {
                                                if (!tech_pvt->read_impl.encoded_bytes_per_packet) {
                                                        tech_pvt->check_frames = MAX_CODEC_CHECK_FRAMES;
                                                        goto skip;
index 212d0445f5258525d832cf795005c593d5a1b2fc..1452c223b057cc91c8303bae8ed8d07c8b50724f 100644 (file)
@@ -183,6 +183,7 @@ typedef enum {
        PFLAG_DISABLE_NAPTR,
        PFLAG_AUTOFLUSH,
        PFLAG_NAT_OPTIONS_PING,
+       PFLAG_AUTOFIX_TIMING,
        /* No new flags below this line */
        PFLAG_MAX
 } PFLAGS;
index b3e6618bde0351c1e75a1f201a86933e161eb210..ae4eca7d2257f08e25266811bfaa2b321239c07c 100644 (file)
@@ -1680,6 +1680,12 @@ switch_status_t reconfig_sofia(sofia_profile_t *profile)
                                                } else {
                                                        sofia_clear_pflag(profile, PFLAG_AUTOFLUSH);
                                                }
+                                       } else if (!strcasecmp(var, "rtp-autofix-timing")) {
+                                               if (switch_true(val)) {
+                                                       sofia_set_pflag(profile, PFLAG_AUTOFIX_TIMING);
+                                               } else {
+                                                       sofia_clear_pflag(profile, PFLAG_AUTOFIX_TIMING);
+                                               }
                                        } else if (!strcasecmp(var, "nat-options-ping")) {
                                                if (switch_true(val)) {
                                                        sofia_set_pflag(profile, PFLAG_NAT_OPTIONS_PING);
@@ -1947,6 +1953,7 @@ switch_status_t config_sofia(int reload, char *profile_name)
                                sofia_set_pflag(profile, PFLAG_STUN_ENABLED);
                                sofia_set_pflag(profile, PFLAG_DISABLE_100REL);
                                profile->auto_restart = 1;
+                               sofia_set_pflag(profile, PFLAG_AUTOFIX_TIMING);
 
                                for (param = switch_xml_child(settings, "param"); param; param = param->next) {
                                        char *var = (char *) switch_xml_attr_soft(param, "name");
@@ -2218,6 +2225,12 @@ switch_status_t config_sofia(int reload, char *profile_name)
                                                } else {
                                                        sofia_clear_pflag(profile, PFLAG_AUTOFLUSH);
                                                }
+                                       } else if (!strcasecmp(var, "rtp-autofix-timing")) {
+                                               if (switch_true(val)) {
+                                                       sofia_set_pflag(profile, PFLAG_AUTOFIX_TIMING);
+                                               } else {
+                                                       sofia_clear_pflag(profile, PFLAG_AUTOFIX_TIMING);
+                                               }
                                        } else if (!strcasecmp(var, "nat-options-ping")) {
                                                if (switch_true(val)) {
                                                        sofia_set_pflag(profile, PFLAG_NAT_OPTIONS_PING);