[asterisk-commits] branch group/t38passthrough r31552 - in /team/group/t38passthrough: ./ build_...

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Thu Jun 1 14:14:43 MST 2006


Author: mogorman
Date: Thu Jun  1 16:14:42 2006
New Revision: 31552

URL: http://svn.digium.com/view/asterisk?rev=31552&view=rev
Log:
solve conflict get things up to latest

Added:
    team/group/t38passthrough/fixedjitterbuf.c
      - copied unchanged from r31522, trunk/fixedjitterbuf.c
    team/group/t38passthrough/fixedjitterbuf.h
      - copied unchanged from r31522, trunk/fixedjitterbuf.h
Removed:
    team/group/t38passthrough/scx_jitterbuf.c
    team/group/t38passthrough/scx_jitterbuf.h
Modified:
    team/group/t38passthrough/   (props changed)
    team/group/t38passthrough/.cleancount
    team/group/t38passthrough/CREDITS
    team/group/t38passthrough/Makefile
    team/group/t38passthrough/abstract_jb.c
    team/group/t38passthrough/build_tools/menuselect.c
    team/group/t38passthrough/build_tools/menuselect.h
    team/group/t38passthrough/build_tools/menuselect_curses.c
    team/group/t38passthrough/channel.c
    team/group/t38passthrough/channels/chan_h323.c
    team/group/t38passthrough/channels/chan_jingle.c
    team/group/t38passthrough/channels/chan_mgcp.c
    team/group/t38passthrough/channels/chan_misdn.c
    team/group/t38passthrough/channels/chan_oss.c
    team/group/t38passthrough/channels/chan_sip.c
    team/group/t38passthrough/channels/chan_skinny.c
    team/group/t38passthrough/channels/chan_zap.c
    team/group/t38passthrough/channels/h323/h323.conf.sample
    team/group/t38passthrough/channels/misdn/chan_misdn_config.h
    team/group/t38passthrough/channels/misdn/ie.c
    team/group/t38passthrough/channels/misdn/isdn_lib.c
    team/group/t38passthrough/channels/misdn/isdn_lib.h
    team/group/t38passthrough/channels/misdn/isdn_msg_parser.c
    team/group/t38passthrough/channels/misdn_config.c
    team/group/t38passthrough/configs/alsa.conf.sample
    team/group/t38passthrough/configs/jabber.conf.sample
    team/group/t38passthrough/configs/mgcp.conf.sample
    team/group/t38passthrough/configs/misdn.conf.sample
    team/group/t38passthrough/configs/oss.conf.sample
    team/group/t38passthrough/configs/sip.conf.sample
    team/group/t38passthrough/configs/skinny.conf.sample
    team/group/t38passthrough/configs/zapata.conf.sample
    team/group/t38passthrough/frame.c
    team/group/t38passthrough/include/asterisk/channel.h
    team/group/t38passthrough/include/asterisk/jabber.h
    team/group/t38passthrough/include/asterisk/utils.h
    team/group/t38passthrough/res/res_jabber.c
    team/group/t38passthrough/utils.c

Propchange: team/group/t38passthrough/
------------------------------------------------------------------------------
Binary property 'branch-1.2-merged' - no diff available.

Propchange: team/group/t38passthrough/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Thu Jun  1 16:14:42 2006
@@ -1,1 +1,1 @@
-/trunk:1-31254
+/trunk:1-31551

Modified: team/group/t38passthrough/.cleancount
URL: http://svn.digium.com/view/asterisk/team/group/t38passthrough/.cleancount?rev=31552&r1=31551&r2=31552&view=diff
==============================================================================
--- team/group/t38passthrough/.cleancount (original)
+++ team/group/t38passthrough/.cleancount Thu Jun  1 16:14:42 2006
@@ -1,1 +1,1 @@
-18
+19

Modified: team/group/t38passthrough/CREDITS
URL: http://svn.digium.com/view/asterisk/team/group/t38passthrough/CREDITS?rev=31552&r1=31551&r2=31552&view=diff
==============================================================================
--- team/group/t38passthrough/CREDITS (original)
+++ team/group/t38passthrough/CREDITS Thu Jun  1 16:14:42 2006
@@ -30,57 +30,93 @@
 === MISCELLANEOUS PATCHES ===
 Jim Dixon - Zapata Telephony and app_rpt
 	http://www.zapatatelephony.org/app_rpt.html
+
 Russell Bryant - Asterisk 1.0 maintainer and misc. enhancements
 	russelb at clemson.edu
+
 Anthony Minessale II - Countless big and small fixes, and relentless forward push
 	anthmct at yahoo.com              http://www.asterlink.com
+
 James Golovich - Innumerable contributions
 	You can find him and asterisk-perl at http://asterisk.gnuinter.net
+
 Andre Bierwirth - Extension hints and status
+
 Oliver Daudey - ISDN4Linux fixes
+
 Pauline Middelink - ISDN4Linux patches and some general patches.
 	She can be found at http://www.polyware.nl/~middelink/En/
+
 Jean-Denis Girard - Various contributions from the South Pacific Islands
 	jd-girard at esoft.pf             http://www.esoft.pf
+
 William Jordan / Vonage - MySQL enhancements to Voicemail
 	wjordan at vonage.com
+
 Jac Kersing - Various fixes
+
 Steven Critchfield - Seek and Trunc functions for playback and recording
 	critch at basesys.com
+
 Jefferson Noxon - app_lookupcidname, app_db, and various other contributions
+
 Klaus-Peter Junghanns - in-band DTMF on SIP and MGCP
+
 Ross Finlayson - Dynamic RTP payload support
+
 Mahmut Fettahlioglu - Audio recording, music-on-hold changes, alaw file
 	format, and various fixes. Can be contacted at mahmut at oa.com.au
+
 James Dennis - Cisco SIP compatibility patches to work with SIP service
 	providers. Can be contacted at asterisk at jdennis.net
+
 Tilghman Lesher - ast_localtime(); ast_say_date_with_format(); 
 	GotoIfTime, Random, SayUnixTime, HasNewVoicemail applications;
 	CUT, SORT, EVAL, CURL, FIELDQTY, STRFTIME, QUEUEAGENT* functions;
 	and other innumerable bug fixes. http://asterisk.drunkcoder.com/
+
 Jayson Vantuyl - Manager protocol changes, various other bugs.
 	jvantuyl at computingedge.net
+
 Thorsten Lockert - OpenBSD, FreeBSD ports, making MacOS X port run on 10.3,
 	dialplan include verification, route lookup on OpenBSD, SNMP agent
 	support (res_snmp), various other bugs. tholo at sigmasoft.com
+
 Brian West - ODBC support and Bug Marshaling  
+
 Josh Roberson - chan_zap reload support, Advanced Voicemail Features, other misc. patches,
 	and Bug Marshalling. - josh at asteriasgi.com, http://www.asteriasgi.com
+
 William Waites - syslog support, SIP NAT traversal for SIP-UA. ww at styx.org
+
 Rich Murphey - Porting to FreeBSD, NetBSD, OpenBSD, and Darwin.
 	rich at whiteoaklabs.com  http://whiteoaklabs.com
+
 Simon Lockhart - Porting to Solaris (based on work of Logan ???)	
 	simon at slimey.org
+
 Olle E. Johansson - SIP RFC compliance, documentation and testing, testing, testing
 	oej at edvina.net, http://edvina.net
+
 Steve Kann - new jitter buffer for IAX2
 	stevek at stevek.com
+
 Constantine Filin - major contributions to the Asterisk Realtime Architecture
+
 Steve Murphy - privacy support, $[ ] parser upgrade, AEL2 parser upgrade
+
 Claude Patry - bug fixes, feature enhancements, and bug marshalling
 	cpatry at gmail.com
+
 Miroslav Nachev, miro at space-comm.com COSMOS Software Enterprises, Ltd.
 	- for Variable for No Answer Timeout for Attended Transfer
+
+Slav Klenov & Vanheuverzwijn Joachim - development of the generic jitterbuffer
+	Securax Ltd. info at securax.be
+
+Roy Sigurd Karlsbakk - providing funding for generic jitterbuffer development
+	roy at karlsbakk.net, Briiz Telecom AS
+
 
 === OTHER CONTRIBUTIONS ===
 John Todd - Monkey sounds and associated teletorture prompt

Modified: team/group/t38passthrough/Makefile
URL: http://svn.digium.com/view/asterisk/team/group/t38passthrough/Makefile?rev=31552&r1=31551&r2=31552&view=diff
==============================================================================
--- team/group/t38passthrough/Makefile (original)
+++ team/group/t38passthrough/Makefile Thu Jun  1 16:14:42 2006
@@ -282,7 +282,7 @@
 	astmm.o enum.o srv.o dns.o aescrypt.o aestab.o aeskey.o \
 	utils.o plc.o jitterbuf.o dnsmgr.o devicestate.o \
 	netsock.o slinfactory.o ast_expr2.o ast_expr2f.o \
-	cryptostub.o sha1.o http.o scx_jitterbuf.o abstract_jb.o
+	cryptostub.o sha1.o http.o fixedjitterbuf.o abstract_jb.o
 
 # we need to link in the objects statically, not as a library, because
 # otherwise modules will not have them available if none of the static

Modified: team/group/t38passthrough/abstract_jb.c
URL: http://svn.digium.com/view/asterisk/team/group/t38passthrough/abstract_jb.c?rev=31552&r1=31551&r2=31552&view=diff
==============================================================================
--- team/group/t38passthrough/abstract_jb.c (original)
+++ team/group/t38passthrough/abstract_jb.c Thu Jun  1 16:14:42 2006
@@ -42,7 +42,7 @@
 #include "asterisk/utils.h"
 
 #include "asterisk/abstract_jb.h"
-#include "scx_jitterbuf.h"
+#include "fixedjitterbuf.h"
 #include "jitterbuf.h"
 
 /*! Internal jb flags */
@@ -89,49 +89,49 @@
 };
 
 /* Implementation functions */
-/* scx */
-static void * jb_create_scx(struct ast_jb_conf *general_config, long resynch_threshold);
-static void jb_destroy_scx(void *jb);
-static int jb_put_first_scx(void *jb, struct ast_frame *fin, long now);
-static int jb_put_scx(void *jb, struct ast_frame *fin, long now);
-static int jb_get_scx(void *jb, struct ast_frame **fout, long now, long interpl);
-static long jb_next_scx(void *jb);
-static int jb_remove_scx(void *jb, struct ast_frame **fout);
-static void jb_force_resynch_scx(void *jb);
-/* stevek */
-static void * jb_create_stevek(struct ast_jb_conf *general_config, long resynch_threshold);
-static void jb_destroy_stevek(void *jb);
-static int jb_put_first_stevek(void *jb, struct ast_frame *fin, long now);
-static int jb_put_stevek(void *jb, struct ast_frame *fin, long now);
-static int jb_get_stevek(void *jb, struct ast_frame **fout, long now, long interpl);
-static long jb_next_stevek(void *jb);
-static int jb_remove_stevek(void *jb, struct ast_frame **fout);
-static void jb_force_resynch_stevek(void *jb);
+/* fixed */
+static void * jb_create_fixed(struct ast_jb_conf *general_config, long resynch_threshold);
+static void jb_destroy_fixed(void *jb);
+static int jb_put_first_fixed(void *jb, struct ast_frame *fin, long now);
+static int jb_put_fixed(void *jb, struct ast_frame *fin, long now);
+static int jb_get_fixed(void *jb, struct ast_frame **fout, long now, long interpl);
+static long jb_next_fixed(void *jb);
+static int jb_remove_fixed(void *jb, struct ast_frame **fout);
+static void jb_force_resynch_fixed(void *jb);
+/* adaptive */
+static void * jb_create_adaptive(struct ast_jb_conf *general_config, long resynch_threshold);
+static void jb_destroy_adaptive(void *jb);
+static int jb_put_first_adaptive(void *jb, struct ast_frame *fin, long now);
+static int jb_put_adaptive(void *jb, struct ast_frame *fin, long now);
+static int jb_get_adaptive(void *jb, struct ast_frame **fout, long now, long interpl);
+static long jb_next_adaptive(void *jb);
+static int jb_remove_adaptive(void *jb, struct ast_frame **fout);
+static void jb_force_resynch_adaptive(void *jb);
 
 /* Available jb implementations */
 static struct ast_jb_impl avail_impl[] = 
 {
 	{
 		.name = "fixed",
-		.create = jb_create_scx,
-		.destroy = jb_destroy_scx,
-		.put_first = jb_put_first_scx,
-		.put = jb_put_scx,
-		.get = jb_get_scx,
-		.next = jb_next_scx,
-		.remove = jb_remove_scx,
-		.force_resync = jb_force_resynch_scx
+		.create = jb_create_fixed,
+		.destroy = jb_destroy_fixed,
+		.put_first = jb_put_first_fixed,
+		.put = jb_put_fixed,
+		.get = jb_get_fixed,
+		.next = jb_next_fixed,
+		.remove = jb_remove_fixed,
+		.force_resync = jb_force_resynch_fixed
 	},
 	{
 		.name = "adaptive",
-		.create = jb_create_stevek,
-		.destroy = jb_destroy_stevek,
-		.put_first = jb_put_first_stevek,
-		.put = jb_put_stevek,
-		.get = jb_get_stevek,
-		.next = jb_next_stevek,
-		.remove = jb_remove_stevek,
-		.force_resync = jb_force_resynch_stevek
+		.create = jb_create_adaptive,
+		.destroy = jb_destroy_adaptive,
+		.put_first = jb_put_first_adaptive,
+		.put = jb_put_adaptive,
+		.get = jb_get_adaptive,
+		.next = jb_next_adaptive,
+		.remove = jb_remove_adaptive,
+		.force_resync = jb_force_resynch_adaptive
 	}
 };
 
@@ -147,9 +147,9 @@
 };
 
 /* Translations between impl and abstract return codes */
-static int scx_to_abstract_code[] =
+static int fixed_to_abstract_code[] =
 	{JB_IMPL_OK, JB_IMPL_DROP, JB_IMPL_INTERP, JB_IMPL_NOFRAME};
-static int stevek_to_abstract_code[] =
+static int adaptive_to_abstract_code[] =
 	{JB_IMPL_OK, JB_IMPL_NOFRAME, JB_IMPL_NOFRAME, JB_IMPL_INTERP, JB_IMPL_DROP, JB_IMPL_OK};
 
 /* JB_GET actions (used only for the frames log) */
@@ -467,7 +467,7 @@
 	res = jbimpl->put_first(jbobj, frr, now);
 	
 	/* The result of putting the first frame should not differ from OK. However, its possible
-	   some implementations (i.e. stevek's when resynch_threshold is specified) to drop it. */
+	   some implementations (i.e. adaptive's when resynch_threshold is specified) to drop it. */
 	if (res != JB_IMPL_OK) {
 		ast_log(LOG_WARNING, "Failed to put first frame in the jitterbuffer on channel '%s'\n", chan->name);
 		/*
@@ -615,170 +615,170 @@
 
 /* Implementation functions */
 
-/* scx */
-
-static void * jb_create_scx(struct ast_jb_conf *general_config, long resynch_threshold)
-{
-	struct scx_jb_conf conf;
+/* fixed */
+
+static void * jb_create_fixed(struct ast_jb_conf *general_config, long resynch_threshold)
+{
+	struct fixed_jb_conf conf;
 	
 	conf.jbsize = general_config->max_size;
 	conf.resync_threshold = resynch_threshold;
 	
-	return scx_jb_new(&conf);
-}
-
-
-static void jb_destroy_scx(void *jb)
-{
-	struct scx_jb *scxjb = (struct scx_jb *) jb;
+	return fixed_jb_new(&conf);
+}
+
+
+static void jb_destroy_fixed(void *jb)
+{
+	struct fixed_jb *fixedjb = (struct fixed_jb *) jb;
 	
 	/* destroy the jb */
-	scx_jb_destroy(scxjb);
-}
-
-
-static int jb_put_first_scx(void *jb, struct ast_frame *fin, long now)
-{
-	struct scx_jb *scxjb = (struct scx_jb *) jb;
+	fixed_jb_destroy(fixedjb);
+}
+
+
+static int jb_put_first_fixed(void *jb, struct ast_frame *fin, long now)
+{
+	struct fixed_jb *fixedjb = (struct fixed_jb *) jb;
 	int res;
 	
-	res = scx_jb_put_first(scxjb, fin, fin->len, fin->ts, now);
-	
-	return scx_to_abstract_code[res];
-}
-
-
-static int jb_put_scx(void *jb, struct ast_frame *fin, long now)
-{
-	struct scx_jb *scxjb = (struct scx_jb *) jb;
+	res = fixed_jb_put_first(fixedjb, fin, fin->len, fin->ts, now);
+	
+	return fixed_to_abstract_code[res];
+}
+
+
+static int jb_put_fixed(void *jb, struct ast_frame *fin, long now)
+{
+	struct fixed_jb *fixedjb = (struct fixed_jb *) jb;
 	int res;
 	
-	res = scx_jb_put(scxjb, fin, fin->len, fin->ts, now);
-	
-	return scx_to_abstract_code[res];
-}
-
-
-static int jb_get_scx(void *jb, struct ast_frame **fout, long now, long interpl)
-{
-	struct scx_jb *scxjb = (struct scx_jb *) jb;
-	struct scx_jb_frame frame;
+	res = fixed_jb_put(fixedjb, fin, fin->len, fin->ts, now);
+	
+	return fixed_to_abstract_code[res];
+}
+
+
+static int jb_get_fixed(void *jb, struct ast_frame **fout, long now, long interpl)
+{
+	struct fixed_jb *fixedjb = (struct fixed_jb *) jb;
+	struct fixed_jb_frame frame;
 	int res;
 	
-	res = scx_jb_get(scxjb, &frame, now, interpl);
+	res = fixed_jb_get(fixedjb, &frame, now, interpl);
 	*fout = frame.data;
 	
-	return scx_to_abstract_code[res];
-}
-
-
-static long jb_next_scx(void *jb)
-{
-	struct scx_jb *scxjb = (struct scx_jb *) jb;
-	
-	return scx_jb_next(scxjb);
-}
-
-
-static int jb_remove_scx(void *jb, struct ast_frame **fout)
-{
-	struct scx_jb *scxjb = (struct scx_jb *) jb;
-	struct scx_jb_frame frame;
+	return fixed_to_abstract_code[res];
+}
+
+
+static long jb_next_fixed(void *jb)
+{
+	struct fixed_jb *fixedjb = (struct fixed_jb *) jb;
+	
+	return fixed_jb_next(fixedjb);
+}
+
+
+static int jb_remove_fixed(void *jb, struct ast_frame **fout)
+{
+	struct fixed_jb *fixedjb = (struct fixed_jb *) jb;
+	struct fixed_jb_frame frame;
 	int res;
 	
-	res = scx_jb_remove(scxjb, &frame);
+	res = fixed_jb_remove(fixedjb, &frame);
 	*fout = frame.data;
 	
-	return scx_to_abstract_code[res];
-}
-
-
-static void jb_force_resynch_scx(void *jb)
-{
-	struct scx_jb *scxjb = (struct scx_jb *) jb;
-	
-	scx_jb_set_force_resynch(scxjb);
-}
-
-
-/* stevek */
-
-static void *jb_create_stevek(struct ast_jb_conf *general_config, long resynch_threshold)
+	return fixed_to_abstract_code[res];
+}
+
+
+static void jb_force_resynch_fixed(void *jb)
+{
+	struct fixed_jb *fixedjb = (struct fixed_jb *) jb;
+	
+	fixed_jb_set_force_resynch(fixedjb);
+}
+
+
+/* adaptive */
+
+static void *jb_create_adaptive(struct ast_jb_conf *general_config, long resynch_threshold)
 {
 	jb_conf jbconf;
-	jitterbuf *stevekjb;
-
-	stevekjb = jb_new();
-	if (stevekjb) {
+	jitterbuf *adaptivejb;
+
+	adaptivejb = jb_new();
+	if (adaptivejb) {
 		jbconf.max_jitterbuf = general_config->max_size;
 		jbconf.resync_threshold = general_config->resync_threshold;
 		jbconf.max_contig_interp = 10;
-		jb_setconf(stevekjb, &jbconf);
-	}
-	
-	return stevekjb;
-}
-
-
-static void jb_destroy_stevek(void *jb)
-{
-	jitterbuf *stevekjb = (jitterbuf *) jb;
-	
-	jb_destroy(stevekjb);
-}
-
-
-static int jb_put_first_stevek(void *jb, struct ast_frame *fin, long now)
-{
-	return jb_put_stevek(jb, fin, now);
-}
-
-
-static int jb_put_stevek(void *jb, struct ast_frame *fin, long now)
-{
-	jitterbuf *stevekjb = (jitterbuf *) jb;
+		jb_setconf(adaptivejb, &jbconf);
+	}
+	
+	return adaptivejb;
+}
+
+
+static void jb_destroy_adaptive(void *jb)
+{
+	jitterbuf *adaptivejb = (jitterbuf *) jb;
+	
+	jb_destroy(adaptivejb);
+}
+
+
+static int jb_put_first_adaptive(void *jb, struct ast_frame *fin, long now)
+{
+	return jb_put_adaptive(jb, fin, now);
+}
+
+
+static int jb_put_adaptive(void *jb, struct ast_frame *fin, long now)
+{
+	jitterbuf *adaptivejb = (jitterbuf *) jb;
 	int res;
 	
-	res = jb_put(stevekjb, fin, JB_TYPE_VOICE, fin->len, fin->ts, now);
-	
-	return stevek_to_abstract_code[res];
-}
-
-
-static int jb_get_stevek(void *jb, struct ast_frame **fout, long now, long interpl)
-{
-	jitterbuf *stevekjb = (jitterbuf *) jb;
+	res = jb_put(adaptivejb, fin, JB_TYPE_VOICE, fin->len, fin->ts, now);
+	
+	return adaptive_to_abstract_code[res];
+}
+
+
+static int jb_get_adaptive(void *jb, struct ast_frame **fout, long now, long interpl)
+{
+	jitterbuf *adaptivejb = (jitterbuf *) jb;
 	jb_frame frame;
 	int res;
 	
-	res = jb_get(stevekjb, &frame, now, interpl);
+	res = jb_get(adaptivejb, &frame, now, interpl);
 	*fout = frame.data;
 	
-	return stevek_to_abstract_code[res];
-}
-
-
-static long jb_next_stevek(void *jb)
-{
-	jitterbuf *stevekjb = (jitterbuf *) jb;
-	
-	return jb_next(stevekjb);
-}
-
-
-static int jb_remove_stevek(void *jb, struct ast_frame **fout)
-{
-	jitterbuf *stevekjb = (jitterbuf *) jb;
+	return adaptive_to_abstract_code[res];
+}
+
+
+static long jb_next_adaptive(void *jb)
+{
+	jitterbuf *adaptivejb = (jitterbuf *) jb;
+	
+	return jb_next(adaptivejb);
+}
+
+
+static int jb_remove_adaptive(void *jb, struct ast_frame **fout)
+{
+	jitterbuf *adaptivejb = (jitterbuf *) jb;
 	jb_frame frame;
 	int res;
 	
-	res = jb_getall(stevekjb, &frame);
+	res = jb_getall(adaptivejb, &frame);
 	*fout = frame.data;
 	
-	return stevek_to_abstract_code[res];
-}
-
-
-static void jb_force_resynch_stevek(void *jb)
-{
-}
+	return adaptive_to_abstract_code[res];
+}
+
+
+static void jb_force_resynch_adaptive(void *jb)
+{
+}

Modified: team/group/t38passthrough/build_tools/menuselect.c
URL: http://svn.digium.com/view/asterisk/team/group/t38passthrough/build_tools/menuselect.c?rev=31552&r1=31551&r2=31552&view=diff
==============================================================================
--- team/group/t38passthrough/build_tools/menuselect.c (original)
+++ team/group/t38passthrough/build_tools/menuselect.c Thu Jun  1 16:14:42 2006
@@ -39,20 +39,6 @@
 #include "asterisk/linkedlists.h"
 
 #undef MENUSELECT_DEBUG
-
-struct depend {
-	/*! the name of the dependency */
-	const char *name;
-	/*! for linking */
-	AST_LIST_ENTRY(depend) list;
-};
-
-struct conflict {
-	/*! the name of the conflict */
-	const char *name;
-	/*! for linking */
-	AST_LIST_ENTRY(conflict) list;
-};
 
 /*! The list of categories */
 struct categories categories = AST_LIST_HEAD_NOLOCK_INIT_VALUE;

Modified: team/group/t38passthrough/build_tools/menuselect.h
URL: http://svn.digium.com/view/asterisk/team/group/t38passthrough/build_tools/menuselect.h?rev=31552&r1=31551&r2=31552&view=diff
==============================================================================
--- team/group/t38passthrough/build_tools/menuselect.h (original)
+++ team/group/t38passthrough/build_tools/menuselect.h Thu Jun  1 16:14:42 2006
@@ -31,8 +31,19 @@
 #define OUTPUT_MAKEOPTS_DEFAULT "menuselect.makeopts"
 #define MENUSELECT_DEPS         "build_tools/menuselect-deps"
 
-struct depend;
-struct conflict;
+struct depend {
+	/*! the name of the dependency */
+	const char *name;
+	/*! for linking */
+	AST_LIST_ENTRY(depend) list;
+};
+
+struct conflict {
+	/*! the name of the conflict */
+	const char *name;
+	/*! for linking */
+	AST_LIST_ENTRY(conflict) list;
+};
 
 struct member {
 	/*! What will be sent to the makeopts file */

Modified: team/group/t38passthrough/build_tools/menuselect_curses.c
URL: http://svn.digium.com/view/asterisk/team/group/t38passthrough/build_tools/menuselect_curses.c?rev=31552&r1=31551&r2=31552&view=diff
==============================================================================
--- team/group/t38passthrough/build_tools/menuselect_curses.c (original)
+++ team/group/t38passthrough/build_tools/menuselect_curses.c Thu Jun  1 16:14:42 2006
@@ -126,7 +126,9 @@
 {
 	int i = 0;
 	int j = 0;
-	struct member *mem;
+	struct member *mem, *curmem = NULL;
+	struct depend *dep;
+	struct conflict *con;
 	char buf[64];
 	const char *desc = NULL;
 
@@ -146,15 +148,35 @@
 		waddstr(menu, buf);
 		
 		if (curopt + 1 == i)
-			desc = mem->displayname;
+			curmem = mem;
 
 		if (i == end)
 			break;
 	}
 
-	if (desc) {
+	if (curmem->displayname) {
 		wmove(menu, end - start + 2, max_x / 2 - 16);
-		waddstr(menu, desc);
+		waddstr(menu, curmem->displayname);
+	}
+	if (!AST_LIST_EMPTY(&curmem->deps)) {
+		wmove(menu, end - start + 3, max_x / 2 - 16);
+		snprintf(buf, sizeof(buf), "Depends on: ");
+		AST_LIST_TRAVERSE(&curmem->deps, dep, list) {
+			strncat(buf, dep->name, sizeof(buf) - strlen(buf) - 1);
+			if (AST_LIST_NEXT(dep, list))
+				strncat(buf, ", ", sizeof(buf) - strlen(buf) - 1);
+		}
+		waddstr(menu, buf);
+	}
+	if (!AST_LIST_EMPTY(&curmem->conflicts)) {
+		wmove(menu, end - start + 4, max_x / 2 - 16);
+		snprintf(buf, sizeof(buf), "Conflicts with: ");
+		AST_LIST_TRAVERSE(&curmem->conflicts, con, list) {
+			strncat(buf, con->name, sizeof(buf) - strlen(buf) - 1);
+			if (AST_LIST_NEXT(con, list))
+				strncat(buf, ", ", sizeof(buf) - strlen(buf) - 1);
+		}
+		waddstr(menu, buf);
 	}
 	wmove(menu, curopt - start, max_x / 2 - 9);
 

Modified: team/group/t38passthrough/channel.c
URL: http://svn.digium.com/view/asterisk/team/group/t38passthrough/channel.c?rev=31552&r1=31551&r2=31552&view=diff
==============================================================================
--- team/group/t38passthrough/channel.c (original)
+++ team/group/t38passthrough/channel.c Thu Jun  1 16:14:42 2006
@@ -2835,6 +2835,14 @@
 {
 	int res = -1;
 
+	/* each of these channels may be sitting behind a channel proxy (i.e. chan_agent)
+	   and if so, we don't really want to masquerade it, but its proxy */
+	if (original->_bridge && (original->_bridge != ast_bridged_channel(original)))
+		original = original->_bridge;
+
+	if (clone->_bridge && (clone->_bridge != ast_bridged_channel(clone)))
+		clone = clone->_bridge;
+
 	if (original == clone) {
 		ast_log(LOG_WARNING, "Can't masquerade channel '%s' into itself!\n", original->name);
 		return -1;

Modified: team/group/t38passthrough/channels/chan_h323.c
URL: http://svn.digium.com/view/asterisk/team/group/t38passthrough/channels/chan_h323.c?rev=31552&r1=31551&r2=31552&view=diff
==============================================================================
--- team/group/t38passthrough/channels/chan_h323.c (original)
+++ team/group/t38passthrough/channels/chan_h323.c Thu Jun  1 16:14:42 2006
@@ -83,6 +83,7 @@
 #include "asterisk/dsp.h"
 #include "asterisk/causes.h"
 #include "asterisk/stringfields.h"
+#include "asterisk/abstract_jb.h"
 #ifdef __cplusplus
 }
 #endif
@@ -104,6 +105,16 @@
 
 /* global debug flag */
 int h323debug;
+
+/*! Global jitterbuffer configuration - by default, jb is disabled */
+static struct ast_jb_conf default_jbconf =
+{
+	.flags = 0,
+	.max_size = -1,
+	.resync_threshold = -1,
+	.impl = ""
+};
+static struct ast_jb_conf global_jbconf;
 
 /** Variables required by Asterisk */
 static const char desc[] = "The NuFone Network's Open H.323 Channel Driver";
@@ -788,6 +799,10 @@
 				ch = NULL;
 			}
 		}
+
+		/* Configure the new channel jb */
+		if (ch && pvt && pvt->rtp)
+			ast_jb_configure(ch, &global_jbconf);
 	} else  {
 		ast_log(LOG_WARNING, "Unable to allocate channel structure\n");
 	}
@@ -2020,8 +2035,18 @@
 	global_options.dtmfmode = H323_DTMF_RFC2833;
 	global_options.capability = GLOBAL_CAPABILITY;
 	global_options.bridge = 1;		/* Do native bridging by default */
+
+	/* Copy the default jb config over global_jbconf */
+	memcpy(&global_jbconf, &default_jbconf, sizeof(struct ast_jb_conf));
+
 	v = ast_variable_browse(cfg, "general");
-	while(v) {
+	while (v) {
+		/* handle jb conf */
+                if (!ast_jb_read_conf(&global_jbconf, v->name, v->value)) {
+			v = v->next;
+			continue;
+		}
+
 		/* Create the interface list */
 		if (!strcasecmp(v->name, "port")) {
 			h323_signalling_port = (int)strtol(v->value, NULL, 10);

Modified: team/group/t38passthrough/channels/chan_jingle.c
URL: http://svn.digium.com/view/asterisk/team/group/t38passthrough/channels/chan_jingle.c?rev=31552&r1=31551&r2=31552&view=diff
==============================================================================
--- team/group/t38passthrough/channels/chan_jingle.c (original)
+++ team/group/t38passthrough/channels/chan_jingle.c Thu Jun  1 16:14:42 2006
@@ -69,10 +69,21 @@
 #include "asterisk/utils.h"
 #include "asterisk/causes.h"
 #include "asterisk/astobj.h"
+#include "asterisk/abstract_jb.h"
 #include "asterisk/jabber.h"
 #include "asterisk/jingle.h"
 
 #define JINGLE_CONFIG "jingle.conf"
+
+/*! Global jitterbuffer configuration - by default, jb is disabled */
+static struct ast_jb_conf default_jbconf =
+{
+	.flags = 0,
+	.max_size = -1,
+	.resync_threshold = -1,
+	.impl = ""
+};
+static struct ast_jb_conf global_jbconf;
 
 enum jingle_protocol {
 	AJI_PROTOCOL_UDP = 1,
@@ -773,6 +784,11 @@
 		ast_hangup(tmp);
 		tmp = NULL;
 	}
+
+	/* Configure the new channel jb */
+	if (tmp && i && i->rtp)
+		ast_jb_configure(tmp, &global_jbconf);
+
 	return tmp;
 }
 
@@ -1453,8 +1469,15 @@
 		return 0;
 	}
 
+	/* Copy the default jb config over global_jbconf */
+	memcpy(&global_jbconf, &default_jbconf, sizeof(struct ast_jb_conf));
+
 	cat = ast_category_browse(cfg, NULL);
 	for (var = ast_variable_browse(cfg, "general"); var; var = var->next) {
+		/* handle jb conf */
+		if (!ast_jb_read_conf(&global_jbconf, var->name, var->value))
+			continue;
+
 		if (!strcasecmp(var->name, "allowguest"))
 			allowguest =
 				(ast_true(ast_variable_retrieve(cfg, "general", "allowguest"))) ? 1 : 0;

Modified: team/group/t38passthrough/channels/chan_mgcp.c
URL: http://svn.digium.com/view/asterisk/team/group/t38passthrough/channels/chan_mgcp.c?rev=31552&r1=31551&r2=31552&view=diff
==============================================================================
--- team/group/t38passthrough/channels/chan_mgcp.c (original)
+++ team/group/t38passthrough/channels/chan_mgcp.c Thu Jun  1 16:14:42 2006
@@ -117,6 +117,7 @@
 #include "asterisk/dsp.h"
 #include "asterisk/devicestate.h"
 #include "asterisk/stringfields.h"
+#include "asterisk/abstract_jb.h"
 
 #ifndef IPTOS_MINCOST
 #define IPTOS_MINCOST 0x02
@@ -136,6 +137,16 @@
 #ifndef INADDR_NONE
 #define INADDR_NONE (in_addr_t)(-1)
 #endif
+
+/*! Global jitterbuffer configuration - by default, jb is disabled */
+static struct ast_jb_conf default_jbconf =
+{
+	.flags = 0,
+	.max_size = -1,
+	.resync_threshold = -1,
+	.impl = ""
+};
+static struct ast_jb_conf global_jbconf;
 
 static const char tdesc[] = "Media Gateway Control Protocol (MGCP)";
 static const char config[] = "mgcp.conf";
@@ -353,10 +364,6 @@
 			This should be obsoleted */
 	char cxident[80];
 	char callid[80];
-/* SC: obsolete
-	time_t lastouttime;
-	int lastout;
-*/
 	int cxmode;
 	struct mgcp_request *cx_queue; /*!< SC: pending CX commands */
 	ast_mutex_t cx_queue_lock;     /*!< SC: CX queue lock */
@@ -364,10 +371,6 @@
 	int iseq; /* Not used? RTP? */
 	int outgoing;
 	int alreadygone;
-/* SC: obsolete
-	int messagepending;
-	struct mgcp_message *msgs;
-*/
 	struct mgcp_subchannel *next; /* for out circular linked list */
 };
 
@@ -1499,6 +1502,10 @@
 			ast_verbose(VERBOSE_PREFIX_3 "MGCP mgcp_new(%s) created in state: %s\n",
 				tmp->name, ast_state2str(state));
 		}
+
+		/* Configure the new channel jb */
+		if (tmp && sub && sub->rtp)
+			ast_jb_configure(tmp, &global_jbconf);
 	} else {
 		ast_log(LOG_WARNING, "Unable to allocate channel structure\n");
 	}
@@ -4165,8 +4172,18 @@
 	}
 	memset(&bindaddr, 0, sizeof(bindaddr));
 	dtmfmode = 0;
+
+	/* Copy the default jb config over global_jbconf */
+	memcpy(&global_jbconf, &default_jbconf, sizeof(struct ast_jb_conf));
+
 	v = ast_variable_browse(cfg, "general");
-	while(v) {
+	while (v) {
+		/* handle jb conf */
+		if (!ast_jb_read_conf(&global_jbconf, v->name, v->value)) {
+			v = v->next;
+			continue;
+		}
+
 		/* Create the interface list */
 		if (!strcasecmp(v->name, "bindaddr")) {
 			if (!(hp = ast_gethostbyname(v->value, &ahp))) {

Modified: team/group/t38passthrough/channels/chan_misdn.c
URL: http://svn.digium.com/view/asterisk/team/group/t38passthrough/channels/chan_misdn.c?rev=31552&r1=31551&r2=31552&view=diff
==============================================================================
--- team/group/t38passthrough/channels/chan_misdn.c (original)
+++ team/group/t38passthrough/channels/chan_misdn.c Thu Jun  1 16:14:42 2006
@@ -151,6 +151,8 @@
   
 	ast_mutex_t lock;
 
+	char allowed_bearers[BUFFERSIZE+1];
+	
 	enum misdn_chan_state state;
 	int holded; 
 	int orginator;
@@ -346,12 +348,28 @@
 }
 
 
+
+struct allowed_bearers {
+	int cap;
+	int val;
+	char *name;
+};
+
+struct allowed_bearers allowed_bearers_array[]={
+	{INFO_CAPABILITY_SPEECH,1,"speech"},
+	{INFO_CAPABILITY_AUDIO_3_1K,2,"3_1khz"},
+	{INFO_CAPABILITY_DIGITAL_UNRESTRICTED,4,"digital_unrestricted"},
+	{INFO_CAPABILITY_DIGITAL_RESTRICTED,8,"digital_restriced"},
+	{INFO_CAPABILITY_VIDEO,16,"video"}
+};
+
 static char *bearer2str(int cap) {
 	static char *bearers[]={
 		"Speech",
 		"Audio 3.1k",
 		"Unres Digital",
 		"Res Digital",
+		"Video",
 		"Unknown Bearer"
 	};
 	
@@ -368,8 +386,11 @@
 	case INFO_CAPABILITY_DIGITAL_RESTRICTED:
 		return bearers[3];
 		break;
+	case INFO_CAPABILITY_VIDEO:
+		return bearers[4];
+		break;
 	default:
-		return bearers[4];
+		return bearers[5];
 		break;
 	}
 }
@@ -1153,7 +1174,7 @@
 	
 	int port=bc->port;
 	
-	chan_misdn_log(1,port,"update_config: Getting Config\n");
+	chan_misdn_log(5,port,"update_config: Getting Config\n");
 
 
 	int hdlc=0;
@@ -1243,7 +1264,7 @@
 	struct misdn_bchannel *bc=ch->bc;
 	int len=ch->jb_len, threshold=ch->jb_upper_threshold;
 	
-	chan_misdn_log(1,bc->port, "config_jb: Called\n");
+	chan_misdn_log(5,bc->port, "config_jb: Called\n");
 	
 	if ( ! len ) {
 		chan_misdn_log(1,bc->port, "config_jb: Deactivating Jitterbuffer\n");
@@ -1294,6 +1315,10 @@
 		break;
 	}
 }
+
+
+
+
 
 static int read_config(struct chan_list *ch, int orig) {
 
@@ -1335,6 +1360,9 @@
 	misdn_cfg_get( port, MISDN_CFG_NEED_MORE_INFOS, &bc->need_more_infos, sizeof(int));
 	
 	misdn_cfg_get( port, MISDN_CFG_FAR_ALERTING, &ch->far_alerting, sizeof(int));
+
+	misdn_cfg_get( port, MISDN_CFG_ALLOWED_BEARERS, &ch->allowed_bearers, BUFFERSIZE);
+	
 	
 	int hdlc=0;
 	misdn_cfg_get( port, MISDN_CFG_HDLC, &hdlc, sizeof(int));
@@ -1394,7 +1422,7 @@
 		misdn_cfg_get(port, MISDN_CFG_PICKUPGROUP, &pg, sizeof(pg));
 		misdn_cfg_get(port, MISDN_CFG_CALLGROUP, &cg, sizeof(cg));
 		
-		chan_misdn_log(2, port, " --> * CallGrp:%s PickupGrp:%s\n",ast_print_group(buf,sizeof(buf),cg),ast_print_group(buf,sizeof(buf),pg));
+		chan_misdn_log(5, port, " --> * CallGrp:%s PickupGrp:%s\n",ast_print_group(buf,sizeof(buf),cg),ast_print_group(buf,sizeof(buf),pg));
 		ast->pickupgroup=pg;
 		ast->callgroup=cg;
 	}
@@ -2228,18 +2256,20 @@
 	int bridging;
 	misdn_cfg_get( 0, MISDN_GEN_BRIDGING, &bridging, sizeof(int));
 	if (bridging) {
-		int ecwb;
+		int ecwb, ec;
 		misdn_cfg_get( ch1->bc->port, MISDN_CFG_ECHOCANCELWHENBRIDGED, &ecwb, sizeof(int));
-		if ( !ecwb ) {
+		misdn_cfg_get( ch1->bc->port, MISDN_CFG_ECHOCANCEL, &ec, sizeof(int));
+		if ( !ecwb && ec ) {
 			chan_misdn_log(2, ch1->bc->port, "Disabling Echo Cancellor when Bridged\n");
 			ch1->bc->ec_enable=0;
-		/*	manager_ec_disable(ch1->bc); */
+			manager_ec_disable(ch1->bc);
 		}
 		misdn_cfg_get( ch2->bc->port, MISDN_CFG_ECHOCANCELWHENBRIDGED, &ecwb, sizeof(int));
-		if ( !ecwb ) {
+		misdn_cfg_get( ch2->bc->port, MISDN_CFG_ECHOCANCEL, &ec, sizeof(int));
+		if ( !ecwb && ec) {
 			chan_misdn_log(2, ch2->bc->port, "Disabling Echo Cancellor when Bridged\n");
 			ch2->bc->ec_enable=0;
-		/*	manager_ec_disable(ch2->bc); */
+			manager_ec_disable(ch2->bc); 
 		}
 		
 		/* trying to make a mISDN_dsp conference */
@@ -2291,7 +2321,7 @@
 	const struct tone_zone_sound *ts= NULL;
 	struct ast_channel *ast=cl->ast;
 	
-	chan_misdn_log(2,cl->bc->port,"Tone Indicate:\n");
+	chan_misdn_log(3,cl->bc->port,"Tone Indicate:\n");
 	
 	if (!cl->ast) {
 		return 0;
@@ -2299,24 +2329,24 @@
 	
 	switch (tone) {
 	case TONE_DIAL:
-		chan_misdn_log(2,cl->bc->port," --> Dial\n");
+		chan_misdn_log(3,cl->bc->port," --> Dial\n");
 		ts=ast_get_indication_tone(ast->zone,"dial");
 		misdn_lib_tone_generator_start(cl->bc);
 		break;
 	case TONE_ALERTING:
-		chan_misdn_log(2,cl->bc->port," --> Ring\n");
+		chan_misdn_log(3,cl->bc->port," --> Ring\n");
 		ts=ast_get_indication_tone(ast->zone,"ring");
 		misdn_lib_tone_generator_stop(cl->bc);
 		break;
 	case TONE_FAR_ALERTING:
 	/* VERY UGLY HACK, BECAUSE CHAN_SIP DOES NOT GENERATE TONES */
-		chan_misdn_log(2,cl->bc->port," --> Ring\n");
+		chan_misdn_log(3,cl->bc->port," --> Ring\n");
 		ts=ast_get_indication_tone(ast->zone,"ring");
 		misdn_lib_tone_generator_start(cl->bc);
 		misdn_lib_echo(cl->bc,1);
 		break;
 	case TONE_BUSY:
-		chan_misdn_log(2,cl->bc->port," --> Busy\n");
+		chan_misdn_log(3,cl->bc->port," --> Busy\n");
 		ts=ast_get_indication_tone(ast->zone,"busy");
 		misdn_lib_tone_generator_stop(cl->bc);
 		break;
@@ -2324,7 +2354,7 @@
 		break;
 
 	case TONE_NONE:
-		chan_misdn_log(2,cl->bc->port," --> None\n");
+		chan_misdn_log(3,cl->bc->port," --> None\n");
 		misdn_lib_tone_generator_stop(cl->bc);
 		ast_playtones_stop(ast);
 		break;
@@ -2784,8 +2814,8 @@
 		} 
 		release_unlock;
 		
-		chan_misdn_log(1, bc->port, "Trying to Release bc with l3id: %x\n",bc->l3_id);
-
+		chan_misdn_log(1, bc->port, "release_chan: bc with l3id: %x\n",bc->l3_id);
+		
 		//releaseing jitterbuffer
 		if (ch->jb ) {
 			misdn_jb_destroy(ch->jb);
@@ -3325,6 +3355,24 @@
 
 		/** queue new chan **/
 		cl_queue_chan(&cl_te, ch) ;
+
+
+		if (!strstr(ch->allowed_bearers,"all")) {
+			int i;
+			for (i=0; i< sizeof(allowed_bearers_array)/sizeof(struct allowed_bearers); i++) {
+				if (allowed_bearers_array[i].cap == bc->capability) {
+					if (  !strstr( ch->allowed_bearers, allowed_bearers_array[i].name)) {
+						chan_misdn_log(0,bc->port,"Bearer Not allowed\b");
+						bc->out_cause=88;
+						
+						ch->state=MISDN_EXTCANTMATCH;
+						misdn_lib_send_event(bc, EVENT_RELEASE_COMPLETE );
+						return RESPONSE_OK;
+					}
+				}
+				
+			}
+		}
 		
 		/* Check for Pickup Request first */
 		if (!strcmp(chan->exten, ast_pickup_ext())) {
@@ -3380,7 +3428,8 @@
 			if (bc->nt)
 				misdn_lib_send_event(bc, EVENT_RELEASE_COMPLETE );
 			else
-				misdn_lib_send_event(bc, EVENT_DISCONNECT );
+				misdn_lib_send_event(bc, EVENT_RELEASE );
+				
 			break;
 		}
 		
@@ -3404,26 +3453,34 @@
 				if (bc->nt)
 					misdn_lib_send_event(bc, EVENT_RELEASE_COMPLETE );
 				else
-					misdn_lib_send_event(bc, EVENT_DISCONNECT );
+					misdn_lib_send_event(bc, EVENT_RELEASE);
 			}
 		} else {
-			int ret= misdn_lib_send_event(bc, EVENT_SETUP_ACKNOWLEDGE );
-			if (ret == -ENOCHAN) {
-				ast_log(LOG_WARNING,"Channel was catched, before we could Acknowledge\n");
-				misdn_lib_send_event(bc,EVENT_RELEASE_COMPLETE);
+
+
+			if (bc->sending_complete) {
+				bc->out_cause=1;
+				misdn_lib_send_event(bc, EVENT_RELEASE);
+			} else {
+				
+				int ret= misdn_lib_send_event(bc, EVENT_SETUP_ACKNOWLEDGE );
+				if (ret == -ENOCHAN) {
+					ast_log(LOG_WARNING,"Channel was catched, before we could Acknowledge\n");
+					misdn_lib_send_event(bc,EVENT_RELEASE_COMPLETE);
+				}
+				/*  send tone to phone :) */
+				
+				/** ADD IGNOREPAT **/
+				
+				int stop_tone;
+				misdn_cfg_get( 0, MISDN_GEN_STOP_TONE, &stop_tone, sizeof(int));
+				if ( (!ast_strlen_zero(bc->dad)) && stop_tone ) 
+					tone_indicate(ch,TONE_NONE);
+				else
+					tone_indicate(ch,TONE_DIAL);
+				
+				ch->state=MISDN_WAITING4DIGS;
 			}
-			/*  send tone to phone :) */
-
-			/** ADD IGNOREPAT **/
-			
-			int stop_tone;
-			misdn_cfg_get( 0, MISDN_GEN_STOP_TONE, &stop_tone, sizeof(int));
-			if ( (!ast_strlen_zero(bc->dad)) && stop_tone ) 
-				tone_indicate(ch,TONE_NONE);
-			else
-				tone_indicate(ch,TONE_DIAL);
-			
-			ch->state=MISDN_WAITING4DIGS;
 		}
       
 	}
@@ -3791,8 +3848,11 @@
 		
 		break;
 
-
 	case EVENT_RESTART:
+
+		stop_bc_tones(ch);
+		release_chan(bc);
+		
 		break;
 				
 	default:

Modified: team/group/t38passthrough/channels/chan_oss.c
URL: http://svn.digium.com/view/asterisk/team/group/t38passthrough/channels/chan_oss.c?rev=31552&r1=31551&r2=31552&view=diff
==============================================================================
--- team/group/t38passthrough/channels/chan_oss.c (original)
+++ team/group/t38passthrough/channels/chan_oss.c Thu Jun  1 16:14:42 2006
@@ -156,13 +156,9 @@
     ; jbenable = yes              ; Enables the use of a jitterbuffer on the receiving side of an
                                   ; OSS channel. Defaults to "no". An enabled jitterbuffer will
                                   ; be used only if the sending side can create and the receiving
-                                  ; side can not accept jitter. The ZAP channel can't accept jitter,
-                                  ; thus an enabled jitterbuffer on the receive ZAP side will always
-                                  ; be used if the sending side can create jitter or if ZAP jb is
-                                  ; forced.
-
-    ; jbforce = no                ; Forces the use of a jitterbuffer on the receive side of a ZAP
-                                  ; channel. Defaults to "no".
+                                  ; side can not accept jitter. The OSS channel can't accept jitter,
+                                  ; thus an enabled jitterbuffer on the receive OSS side will always
+                                  ; be used if the sending side can create jitter.
 
     ; jbmaxsize = 200             ; Max length of the jitterbuffer in milliseconds.
 
@@ -171,8 +167,8 @@
                                   ; big jumps in/broken timestamps, usualy sent from exotic devices
                                   ; and programs. Defaults to 1000.
 
-    ; jbimpl = fixed              ; Jitterbuffer implementation, used on the receiving side of a SIP
-                                  ; channel. Two implementation are currenlty available - "fixed"
+    ; jbimpl = fixed              ; Jitterbuffer implementation, used on the receiving side of an OSS
+                                  ; channel. Two implementations are currenlty available - "fixed"
                                   ; (with size always equals to jbmax-size) and "adaptive" (with
                                   ; variable size, actually the new jb of IAX2). Defaults to fixed.
 


[... 3074 lines stripped ...]


More information about the asterisk-commits mailing list