[Freeswitch-svn] [commit] r9461 - freeswitch/trunk/src/mod/applications/mod_fax

Freeswitch SVN ctrix at freeswitch.org
Fri Sep 5 08:22:20 EDT 2008


Author: ctrix
Date: Fri Sep  5 08:22:19 2008
New Revision: 9461

Modified:
   freeswitch/trunk/src/mod/applications/mod_fax/mod_fax.c

Log:
adding a couple of notes and eventually disable jitterbuffer

Modified: freeswitch/trunk/src/mod/applications/mod_fax/mod_fax.c
==============================================================================
--- freeswitch/trunk/src/mod/applications/mod_fax/mod_fax.c	(original)
+++ freeswitch/trunk/src/mod/applications/mod_fax/mod_fax.c	Fri Sep  5 08:22:19 2008
@@ -297,7 +297,6 @@
 					T30_SUPPORT_STANDARD_RESOLUTION | T30_SUPPORT_FINE_RESOLUTION | T30_SUPPORT_SUPERFINE_RESOLUTION
 					| T30_SUPPORT_R8_RESOLUTION | T30_SUPPORT_R16_RESOLUTION);
 
-			//TODO Disable V17
 
 			if ( pvt->disable_v17 ) 
 			{
@@ -545,9 +544,9 @@
 	}
 
 	/*
-	    Initialize the SpanDSP elements
+	    *** Initialize the SpanDSP elements ***
 
-	    NOTE, we could analyze if a fax was already detected in previous stages
+	    Note: we could analyze if a fax was already detected in previous stages
 	    and if so, when T.38 will be supported, send a reinvite in T38_MODE,
 	    bypassing AUDIO_MODE.
 	 */
@@ -558,11 +557,17 @@
 		return;
 	}
 
-	/* Answer the call */
-	switch_channel_answer(channel);
-
 	/* Note: Disable echocan on the channel, it there is an API call to do that */
 
+	/*
+	   Note: We should eventually disable JB before answering. JB is bad for faxing
+
+	    switch_channel_set_variable(channel, "jitterbuffer_msec", "0" );
+	*/
+
+
+	/* Finally answer the call */
+	switch_channel_answer(channel);
 
 	/* We store the original channel codec before switching both
 	 * legs of the calls to a linear 16 bit codec that is the one
@@ -644,6 +649,13 @@
 			goto done;
 		}
 
+		/* Note: more analysys on this. RTP timing maybe inaccurate and, if so,
+		         shoule be improved.
+		   agx proposes to add a channel variable to disable this check and don't skip CNG frames
+		   to improve the compatibility with the problems that another (??)famous pbx that 
+		   has always had serious problems with timers (or lack of).
+		*/
+
 		/* Skip CNG frames (autogenerated by FreeSWITCH, usually) */
 		if (switch_test_flag(read_frame, SFF_CNG)) {
 			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Skipping CNG frame\n" );



More information about the Freeswitch-svn mailing list