[Pkg-voip-commits] r4751 - /asterisk/trunk/debian/patches/vpb-driver-4.2.18

paravoid at alioth.debian.org paravoid at alioth.debian.org
Wed Oct 17 17:55:13 UTC 2007


Author: paravoid
Date: Wed Oct 17 17:55:12 2007
New Revision: 4751

URL: http://svn.debian.org/wsvn/pkg-voip/?sc=1&rev=4751
Log:
Also add the correct configuration for chan_vpb

Modified:
    asterisk/trunk/debian/patches/vpb-driver-4.2.18

Modified: asterisk/trunk/debian/patches/vpb-driver-4.2.18
URL: http://svn.debian.org/wsvn/pkg-voip/asterisk/trunk/debian/patches/vpb-driver-4.2.18?rev=4751&op=diff
==============================================================================
--- asterisk/trunk/debian/patches/vpb-driver-4.2.18 (original)
+++ asterisk/trunk/debian/patches/vpb-driver-4.2.18 Wed Oct 17 17:55:12 2007
@@ -3,8 +3,8 @@
 
  -- Ron <ron at debian.org>
 
---- asterisk-1.4.13/channels/chan_vpb.cc	2007-07-06 00:58:27.000000000 +0930
-+++ asterisk-1.4.13+vpb-driver-4.2.18/channels/chan_vpb.cc	2007-10-12 13:10:12.000000000 +0930
+--- asterisk-1.4.13~dfsg.orig/channels/chan_vpb.cc
++++ asterisk-1.4.13~dfsg/channels/chan_vpb.cc
 @@ -33,6 +33,8 @@
  	<depend>vpbapi</depend>
   ***/
@@ -14,7 +14,7 @@
  extern "C" {
  
  #include "asterisk.h"
-@@ -66,7 +68,6 @@
+@@ -66,7 +68,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revisi
  #include <sys/ioctl.h>
  #include <ctype.h>
  
@@ -22,7 +22,7 @@
  #include <assert.h>
  
  #ifdef pthread_create
-@@ -182,7 +183,7 @@
+@@ -182,7 +183,7 @@ static int use_ast_dtmf=0;
  static int break_for_dtmf=1;
  
  /* Set EC suppression threshold */
@@ -31,7 +31,7 @@
  
  /* Inter Digit Delay for collecting DTMF's */
  static int dtmf_idd = 3000;
-@@ -192,26 +193,26 @@
+@@ -192,26 +193,26 @@ static int dtmf_idd = 3000;
  #define TIMER_PERIOD_RING 4000
  static int timer_period_ring = TIMER_PERIOD_RING;
  	  
@@ -69,7 +69,7 @@
  				{ VPB_GRUNT, VPB_CALL_GRUNT, 0 },
  				{ 0, 0, 1 } };
  #define VPB_DIALTONE_WAIT 2000 /* Wait up to 2s for a dialtone */
-@@ -339,7 +340,7 @@
+@@ -339,7 +340,7 @@ static struct vpb_pvt {
  
  } *iflist = NULL;
  
@@ -78,7 +78,7 @@
  static void *do_chanreads(void *pvt);
  static struct ast_channel *vpb_request(const char *type, int format, void *data, int *cause);
  static int vpb_digit_begin(struct ast_channel *ast, char digit);
-@@ -378,7 +379,9 @@
+@@ -378,7 +379,9 @@ static struct ast_channel_tech vpb_tech 
  	queryoption: NULL,
  	transfer: NULL,
  	write_video: NULL,
@@ -89,7 +89,7 @@
  };
  
  static struct ast_channel_tech vpb_tech_indicate = {
-@@ -406,7 +409,9 @@
+@@ -406,7 +409,9 @@ static struct ast_channel_tech vpb_tech_
  	queryoption: NULL,
  	transfer: NULL,
  	write_video: NULL,
@@ -100,7 +100,7 @@
  };
  
  /* Can't get ast_vpb_bridge() working on v4pci without either a horrible 
-@@ -528,7 +533,7 @@
+@@ -528,7 +533,7 @@ static enum ast_bridge_result ast_vpb_br
  
  	#else
  
@@ -109,7 +109,7 @@
  	if (res == VPB_OK) {
  		/* pthread_cond_wait(&bridges[i].cond, &bridges[i].lock);*/ /* Wait for condition signal. */
  		while( !bridges[i].endbridge ) {
-@@ -592,7 +597,7 @@
+@@ -592,7 +597,7 @@ static enum ast_bridge_result ast_vpb_br
  			cs[0] = cs[1];
  			cs[1] = cs[2];
  		};
@@ -118,7 +118,7 @@
  	}
  
  	#endif
-@@ -710,7 +715,7 @@
+@@ -710,7 +715,7 @@ static void get_callerid(struct vpb_pvt 
  			}
  
  		} else {
@@ -127,7 +127,7 @@
  			strncpy(p->callerid,"unknown", sizeof(p->callerid) - 1);
  		}
  		delete cli_struct;
-@@ -1011,7 +1016,7 @@
+@@ -1011,7 +1016,7 @@ static inline int monitor_handle_owned(s
  			}
  			break;
  
@@ -136,7 +136,7 @@
  			f.frametype = AST_FRAME_NULL;
  			vpb_reset_play_fifo_alarm(p->handle);
  			break;
-@@ -1020,7 +1025,7 @@
+@@ -1020,7 +1025,7 @@ static inline int monitor_handle_owned(s
  			f.frametype = AST_FRAME_NULL;
  			vpb_reset_record_fifo_alarm(p->handle);
  			break;
@@ -145,7 +145,7 @@
  		default:
  			f.frametype = AST_FRAME_NULL;
  			break;
-@@ -1298,7 +1303,7 @@
+@@ -1298,7 +1303,7 @@ static inline int monitor_handle_notowne
  				}
  			} else if (!ast_canmatch_extension(NULL, p->context, p->ext, 1, p->callerid)){
  				if (ast_exists_extension(NULL, "default", p->ext, 1, p->callerid)) {
@@ -154,7 +154,7 @@
  				} else if (!ast_canmatch_extension(NULL, "default", p->ext, 1, p->callerid)) {
  					if (option_verbose > 3) {
  						ast_verbose(VERBOSE_PREFIX_4 "%s: handle_notowned: can't match anything in %s or default\n", p->dev, p->context);
-@@ -1360,8 +1365,8 @@
+@@ -1360,8 +1365,8 @@ static void *do_monitor(void *unused)
  		}
  
  		if (res != VPB_OK) {
@@ -165,7 +165,7 @@
  			continue;
  		}
  
-@@ -1469,7 +1474,7 @@
+@@ -1469,7 +1474,7 @@ static int restart_monitor(void)
  				/* Why do other drivers kill the thread? No need says I, simply awake thread with event. */
  				VPB_EVENT e;
  				e.handle = 0;
@@ -174,7 +174,7 @@
  				e.data = 0;
  
  				if (option_verbose > 3)
-@@ -1526,11 +1531,7 @@
+@@ -1526,11 +1531,7 @@ static void mkbrd(vpb_model_t model, int
  			vpb_echo_canc_enable();
  			ast_log(LOG_NOTICE, "Voicetronix echo cancellation ON\n");
  			if (ec_supp_threshold > -1){
@@ -187,7 +187,7 @@
  				ast_log(LOG_NOTICE, "Voicetronix EC Sup Thres set\n");
  			}
  		}
-@@ -1646,7 +1647,7 @@
+@@ -1646,7 +1647,7 @@ static struct vpb_pvt *mkif(int board, i
  	}
  
  	tmp->vpb_model = vpb_model_unknown;
@@ -196,7 +196,7 @@
  		if(strcmp(buf,"V12PCI")==0) 
  			tmp->vpb_model = vpb_model_v12pci;
  		else if(strcmp(buf,"VPB4")==0) 
-@@ -1874,7 +1875,7 @@
+@@ -1874,7 +1875,7 @@ static int vpb_digit_end(struct ast_chan
  static int vpb_call(struct ast_channel *ast, char *dest, int timeout)
  {
  	struct vpb_pvt *p = (struct vpb_pvt *)ast->tech_pvt;
@@ -205,7 +205,7 @@
  	char *s = strrchr(dest, '/');
  	char dialstring[254] = "";
  	int tmp = 0;
-@@ -1897,7 +1898,7 @@
+@@ -1897,7 +1898,7 @@ static int vpb_call(struct ast_channel *
  			dialstring[i] = ',';
  		else if ((dialstring[i] == 'f') || (dialstring[i] == 'F'))
  			dialstring[i] = '&';
@@ -214,7 +214,7 @@
  
  	if (ast->_state != AST_STATE_DOWN && ast->_state != AST_STATE_RESERVED) {
  		ast_log(LOG_WARNING, "vpb_call on %s neither down nor reserved!\n", ast->name);
-@@ -1908,7 +1909,7 @@
+@@ -1908,7 +1909,7 @@ static int vpb_call(struct ast_channel *
  		return -1;
  	}
  	if (p->mode != MODE_FXO)  /* Station port, ring it. */
@@ -223,7 +223,7 @@
  	else {
  		VPB_CALL call;
  
-@@ -1961,17 +1962,17 @@
+@@ -1961,17 +1962,17 @@ static int vpb_call(struct ast_channel *
  		#endif
  
  		if (res != VPB_OK) {
@@ -245,7 +245,7 @@
  	}
  
  	if (!p->readthread){
-@@ -2049,7 +2050,7 @@
+@@ -2049,7 +2050,7 @@ static int vpb_hangup(struct ast_channel
  
  	if (p->mode != MODE_FXO) {
  		/* station port. */
@@ -254,7 +254,7 @@
  		if(p->state!=VPB_STATE_ONHOOK){
  			/* This is causing a "dial end" "play tone" loop
  			playtone(p->handle, &Busytone); 
-@@ -2201,7 +2202,7 @@
+@@ -2201,7 +2202,7 @@ static struct ast_frame  *vpb_read(struc
  	return &f;
  }
  
@@ -263,7 +263,7 @@
  {
  	switch(ast_format) {
  		case AST_FORMAT_ALAW:
-@@ -2213,11 +2214,11 @@
+@@ -2213,11 +2214,11 @@ static inline int ast2vpbformat(int ast_
  		case AST_FORMAT_ADPCM:
  			return VPB_OKIADPCM;
  		default:
@@ -277,7 +277,7 @@
  {
  	switch(ast_format) {
  		case AST_FORMAT_ALAW:
-@@ -2245,7 +2246,7 @@
+@@ -2245,7 +2246,7 @@ static inline int astformatbits(int ast_
  			return 4;
  		default:
  			return 8;
@@ -286,7 +286,7 @@
  }
  
  int a_gain_vector(float g, short *v, int n) 
-@@ -2267,7 +2268,8 @@
+@@ -2267,7 +2268,8 @@ int a_gain_vector(float g, short *v, int
  static int vpb_write(struct ast_channel *ast, struct ast_frame *frame)
  {
  	struct vpb_pvt *p = (struct vpb_pvt *)ast->tech_pvt; 
@@ -296,7 +296,7 @@
  	struct timeval play_buf_time_start;
  	int tdiff;
  
-@@ -2371,7 +2373,8 @@
+@@ -2371,7 +2373,8 @@ static void *do_chanreads(void *pvt)
  	struct ast_frame *fr = &p->fr;
  	char *readbuf = ((char *)p->buf) + AST_FRIENDLY_OFFSET;
  	int bridgerec = 0;
@@ -306,7 +306,7 @@
  	int ignore_dtmf;
  	const char * getdtmf_var = NULL;
  
-@@ -2497,7 +2500,7 @@
+@@ -2497,7 +2500,7 @@ static void *do_chanreads(void *pvt)
  
  		if (p->lastinput == -1) {
  			vpb_record_buf_start(p->handle, fmt);
@@ -315,7 +315,7 @@
  			p->lastinput = fmt;
  			if(option_verbose>1) 
  				ast_verbose( VERBOSE_PREFIX_2 "%s: Starting record mode (codec=%d)[%s]\n",p->dev,fmt,ast2vpbformatname(afmt));
-@@ -2621,7 +2624,7 @@
+@@ -2621,7 +2624,7 @@ static void *do_chanreads(void *pvt)
  	return NULL;
  }
  
@@ -324,7 +324,7 @@
  {
  	struct ast_channel *tmp; 
  	char cid_num[256];
-@@ -2663,11 +2666,11 @@
+@@ -2663,11 +2666,11 @@ static struct ast_channel *vpb_new(struc
  		tmp->tech_pvt = me;
  		
  		strncpy(tmp->context, context, sizeof(tmp->context)-1);
@@ -340,7 +340,7 @@
  			ast_string_field_set(tmp, language, me->language);
  
  		me->owner = tmp;
-@@ -2707,7 +2710,7 @@
+@@ -2707,7 +2710,7 @@ static struct ast_channel *vpb_request(c
  	int oldformat;
  	struct vpb_pvt *p;
  	struct ast_channel *tmp = NULL;
@@ -349,7 +349,7 @@
  	char *s, *sepstr;
  	int group=-1;
  
-@@ -2718,13 +2721,15 @@
+@@ -2718,13 +2721,15 @@ static struct ast_channel *vpb_request(c
  		return NULL;
  	}
  
@@ -368,7 +368,7 @@
  	}
  	/* Search for an unowned channel */
  	ast_mutex_lock(&iflock); {
-@@ -2779,7 +2784,7 @@
+@@ -2779,7 +2784,7 @@ static float parse_gain_value(char *gain
  }
  
  
@@ -377,7 +377,7 @@
  {
  	struct vpb_pvt *p;
  	/* First, take us out of the channel loop */
-@@ -2831,20 +2836,22 @@
+@@ -2831,20 +2836,22 @@ int unload_module()
  		iflist = NULL;
  	} ast_mutex_unlock(&iflock);
  
@@ -409,7 +409,7 @@
  {
  	struct ast_config *cfg;
  	struct ast_variable *v;
-@@ -2858,7 +2865,7 @@
+@@ -2858,7 +2865,7 @@ int load_module()
  	int got_gain=0;
  	int first_channel = 1;
  	int echo_cancel = DEFAULT_ECHO_CANCEL;
@@ -418,7 +418,7 @@
  	int bal1 = -1; /* Special value - means do not set */
  	int bal2 = -1; 
  	int bal3 = -1;
-@@ -2872,8 +2879,6 @@
+@@ -2872,8 +2879,6 @@ int load_module()
  		return AST_MODULE_LOAD_DECLINE;
  	}  
  
@@ -427,7 +427,7 @@
  	ast_mutex_lock(&iflock); {
  		v = ast_variable_browse(cfg, "general");
  		while (v){
-@@ -2909,7 +2914,7 @@
+@@ -2909,7 +2914,7 @@ int load_module()
  				timer_period_ring = atoi(v->value);
  			}
  			else if (strcasecmp(v->name, "ecsuppthres") ==0) {
@@ -436,7 +436,7 @@
  			}
  			else if (strcasecmp(v->name, "dtmfidd") ==0) {
  				dtmf_idd = atoi(v->value);
-@@ -2947,7 +2952,7 @@
+@@ -2947,7 +2952,7 @@ int load_module()
  					iflist = tmp;
  				} else {
  					ast_log(LOG_ERROR, "Unable to register channel '%s'\n", v->value);
@@ -445,7 +445,7 @@
  					goto done;
  				}
  			} else if (strcasecmp(v->name, "language") == 0) {
-@@ -3013,18 +3018,18 @@
+@@ -3013,18 +3018,18 @@ int load_module()
  	ast_config_destroy(cfg);
  
  	if (use_ast_ind == 1){
@@ -468,7 +468,7 @@
  		}
  		else {
  			ast_log(LOG_NOTICE,"VPB driver Registered )\n");
-@@ -3032,7 +3037,7 @@
+@@ -3032,7 +3037,7 @@ int load_module()
  	}
  
  
@@ -477,7 +477,7 @@
  		unload_module();
  	else 
  		restart_monitor(); /* And start the monitor for the first time */
-@@ -3040,10 +3045,12 @@
+@@ -3040,10 +3045,12 @@ int load_module()
  	return error;
  }
  
@@ -490,7 +490,7 @@
  
  const char *description()
  {
-@@ -3055,10 +3062,21 @@
+@@ -3055,10 +3062,21 @@ const char *key()
  	return ASTERISK_GPL_KEY;
  }
  
@@ -514,3 +514,349 @@
  /**/
 -
 -
+--- asterisk-1.4.13~dfsg.orig/configs/vpb.conf.sample
++++ asterisk-1.4.13~dfsg/configs/vpb.conf.sample
+@@ -1,108 +1,248 @@
+ ;
+-; V6PCI/V12PCI config file for VoiceTronix Hardware
++; Voicetronix Voice Processing Board (VPB) telephony interface
+ ;
+-; Options for [general] section
++; Configuration file
+ ;
+-; type = v12pci|v6pci|v4pci
+-; cards = number of cards
+-;    To use Asterisk indication tones
+-; indication = 1
+-;    none,-24db,-18db only for use with OpenLine4
+-; ecsuppthres = 0|2048|4096
+-;    Inter Digit Delay timeout for when collecting DTMF tones for dialling
+-;    from a Station port, in ms
+-; dtmfidd = 3000
+-;    To use Asterisk DTMF detection
+-; ast-dtmf-det=1
+-;    Used with ast-dtmf-det
+-; relaxdtmf=1
+-;    When a native bridge occurs between 2 vpb channels, it will only break
+-;    the connection for '#' and '*'
+-; break-for-dtmf=no
+-;    Set the maximum period between received rings, default 4000ms
+-; timer_period_ring=4000
+-;
+-; Options for [interface] section
+-; board = board_number (1, 2, 3, ...)
+-; channel = channel_number (1,2,3...)
+-; mode = fxo|immediate|dialtone -- for type of line and line handling
+-; context = starting context
+-; echocancel = on|off (on by default of v4pci, off by default for others)
+-; callerid = on|off|v23|bell (on => to collect caller ID if available between 1st/2nd rings using vpb functions)
+-;                            (v23|bell => collect caller ID using asterisk functions)
+-;            Or for use with FXS channels a '"name" <location>' format can be used to set the channels CID
+-;
+-; UseLoopDrop = 0|1 (enables the use of Loop Drop detection, on by default in
+-;                    some cases spurious loop-drops can cause unexpected 
+-;                    hangup detection)
+-; 
+-; Gain settings
+-; txgain  => Transmit Software Gain (-12 => 12)
+-; rxgain  => Receive Software Gain (-12 => 12)
+-; txhwgain => Transmit hardware gain (-12 => 12)
+-; rxhwgain => Receive Hardware gain (-12 => 12)
+-;
+-; These are advanced settings and only mentioned for completeness.
+-; bal1  => Hybrid balance codec register 1
+-; bal2  => Hybrid balance codec register 2
+-; bal3  => Hybrid balance codec register 3
+-;
+-; Dial translations - if you want a pause or hook-flash in your dial string
+-; you can use "w" for pause (wait) or "f" for "hook-flash", eg:
+-; exten => _9XXX,1,Dial(vpb/g1/ww${EXTEN:${TRUNKMSD}})
++
++[general]
+ ;
++; Total number of Voicetronix cards in this machine
+ ;
++cards=1
++
++;
++; Which indication functions to use
++;    1 = use Asterisk functions
++;    0 = use VPB functions
++;
++indication=1
++
++;
++; Echo Canceller suppression threshold
++;    0    = no suppression threshold
++;    2048 = -18dB
++;    4096 = -24dB
++;
++;ecsuppthres=0
++
++;
++; Inter-digit delay timeout, used when collecting DTMF tones for dialling
++; from a station port.  Measured in milliseconds.
++;
++dtmfidd=3000
++
++;
++; How to play DTMF tones
++;    any value     = use Asterisk functions
++;    commented out = use VPB functions
++;
++;ast-dtmf=1
++
++;
++; How to detect DTMF tones
++;    any value     = use Asterisk functions
++;    commented out = use VPB functions
++;
++; NOTE: this setting is currently broken, and uncommenting it will
++; stop dialling from working.  Any volunteers to fix it?
++;ast-dtmf-det=1
++
++;
++; Use relaxed DTMF detection (ignored unless ast-dtmf-det is set)
++;
++relaxdtmf=1
++
++;
++; When we do a native bridge between two VPB channels:
++;    yes = only break the connection for '#' and '*'
++;    no  = break the connection for any DTMF
++;
++; NOTE: this is currently broken, and setting to no will segfault
++; Asterisk while dialling.  Any volunteers to fix it?
++;
++break-for-dtmf=yes
++
++;
++; The maximum period between received rings.  Measures in milliseconds.
++;
++timer_period_ring=4000
+ 
+-[general]
+-type = v12pci
+-;type = v6pci
+-;type = v4pci
+-cards = 1
+ 
+ [interfaces]
++;
++; Default language
++;
++language=en
++
++;
++; Default context
++;
++context=default
++
++;
++; Echo cancellation
++;     off  = no not use echo cancellation
++;     on   = use echo cancellation
++;
++echocancel=off
++
++;
++; Caller ID routines/signalling
++;   For FXO ports, select one of:
++;     on   = collect caller ID between 1st/2nd rings using VPB routines
++;     off  = do not use caller ID
++;     bell = bell202 as used in US, using Asterisk's caller ID routines
++;     v23  = v23 as used in the UK, using Asterisk's caller ID routines
++;   For FXS ports, set the channel's CID in '"name" <number>' format
++;
++; NOTE that other caller ID standards are supported in Asterisk, but are
++; not yet active in chan_vpb.  It should be reasonably trivial to add
++; support for the other standards (see the default zapata.conf for a list
++; of them) that Asterisk already handles.
++;
++callerid=bell
+ 
+-board = 0
+-echocancel = on
++;
++; Use a polarity reversal as the trigger for the start of caller ID,
++; rather than triggering after the first ring.
++;
++usepolaritycid=0
++
++;
++; Use loop drop to detect the end of a call.  On by default, but if you
++; experience unexpected hangups, try turning it off.
++;
++useloopdrop=1
++
++;
++; Use in-kernel bridging.  This will generally give lower delay audio if
++; bridging between two VPB channels.  It will not affect bridging
++; between VPB channels and other technologies.
++;
++usenativebridge=1
++
++;
++; Software transmit and receive gain.  Adjusting these will change the
++; volume of audio files that are played (tx) and recorded (rx).  It will
++; _not_ affect audio between channels in a native bridge.  It will,
++; however, affect the volume of audio between VPB channels and channels
++; using other technologies (such as VoIP channels).  Usually it's best to
++; leave these as they are.  If you're looking to get rid of echo, the
++; first thing to do is match your line impedance with the bal1/bal2/bal3
++; settings.
++;
++;txgain=0.0
++;rxgain=0.0
++
++;
++; Hardware transmit and receive gain.  Adjusting these will change the
++; volume of all audio on a channel.  The allowed range of settings is
++; -12.0 to 12.0 (measured in dB).
++;
++;txhwgain=0.0
++;rxhwgain=0.0
++
++;
++; Balance register settings, for matching the impedance of the card to
++; that of the connected equipment.  Only relevant for OpenLine and
++; OpenSwitch series cards.  Values should be in the range 0 - 255.
++;
++; We (Voicetronix) have determined the best codec balance values for
++; standard interfaces based on their US, Australian and European
++; specifications, shown below.
++;
++; US (600 ohm)
++;bal1=0xf8
++;bal2=0x1a
++;bal3=0x0c
++;
++; Australia (complex impedance)
++;bal1=0xf0
++;bal2=0x5d
++;bal3=0x79
++;
++; Europe (CTR-21)
++;bal1=0xf0
++;bal2=0x6e
++;bal3=0x75
+ 
++;
++; Logical groups can be assigned to allow outgoing rollover.  Groups range
++; from 0 to 63, and multiple groups can be specified.
++;
++group=1
++
++;
++; Ring groups (a.k.a. call groups) and pickup groups.  If a phone is
++; ringing and it is a member of a group which is one of your pickup
++; groups, then you can answer it by picking up and dialling *8#.  For
++; simple offices, just make these both the same.  Groups range from 0 to
++; 63.
++;
++callgroup=1
++pickupgroup=1
++
++;
++; If we haven't had a "grunt" (voice activity detection) for this many
++; seconds, then we hang up the line due to inactivity.  Default is one
++; hour.
++;
++grunttimeout=3600
++
++;
++; Type of line and line handling.  This setting will usually be overridden
++; on a per channel basis.  Valid settings are:
++;     fxo       = this is an FXO port
++;     immediate = this is an FXS port, with no dialtone or dialling
++;                   required (ie it is a "hotline")
++;     dialtone  = this is an FXS port, providing dialtone and dialling
++;
++mode=immediate
+ 
+-; For OpenLine4 cards
+-;context = demo
+-;mode = fxo
+-;channel = 0
+-;channel = 1
+-;channel = 2
+-;channel = 3
+-
+-; For OpenSwith12 with jumpers at factory default
+-context = demo
+-mode = fxo
+-channel = 8
+-channel = 9
+-channel = 10
+-channel = 11
+-
+-context = local
+-mode = dialtone
+-channel = 0
+-channel = 1
+-channel = 2
+-channel = 3
+-channel = 4
+-channel = 5
+-channel = 6
+-channel = 7
+-;
+-; For OpenSwitch6
+-; Note that V6PCI channel numbers start at 7!
+-;context = demo
+-;mode = fxo
+-;channel = 6
+-;channel = 7
+-
+-;mode = dialtone
+-;channel = 8
+-;channel = 9
+-;channel = 10
+-;channel = 11
++;-------------------------------------------------------------------------
++; Channel definitions
++;
++; Each channel inherits the settings specified above, unless the are
++; overridden.  As a minimum, the board number and channel number must be
++; set, starting from 0 for the first board, and for the channels on each
++; board.  For example, board 0, channels 0 to 11, then board 1, channels
++; 0 to 11 for two OpenSwitch12 cards.
++;
+ 
++;
++; First board is an OpenSwitch12 card (jumpers at factory defaults)
++;
++;board=0
++;
++;mode=dialtone
++;context=from-handset
++;group=1
++;channel=0
++;channel=1
++;channel=2
++;channel=3
++;channel=4
++;channel=5
++;channel=6
++;channel=7
++;
++;mode=fxo
++;context=from-pstn
++;group=2
++;channel=8
++;channel=9
++;channel=10
++;channel=11
+ 
++;
++; Second board is an OpenLine4
++;
++;board=1
++;
++;mode=fxo
++;group=2
++;context=from-pstn
++;channel=0
++;channel=1
++;channel=2
++;channel=3




More information about the Pkg-voip-commits mailing list