William R Sowerbutts
2004-Nov-21 12:18 UTC
[Asterisk-Users] TDM400 FXO stops handling outgoing calls, but still accepts incoming?
I have a bit of a weird problem that I'm having great trouble debugging. I have a TDM400P PCI card with two FXO and two FXS modules. Both FXO modules are connected to BT lines here in the UK. Both BT lines have V23 Caller-ID, which works fine with Asterisk. Both asterisk and zaptel are fresh from CVS. Both FXO modules (channels 3 and 4) are in "group 1" for outgoing calls. My calls are placed like this: Dial(Zap/g1/${EXTEN}) My understanding is that the first free channel in the group should be used to place calls. Much of the time, this is the case. However, after some seemingly random time interval, channel 3 stops accepting outgoing calls, even if the line is idle -- and all calls go out on channel 4. If channel 4 is busy, outgoing calls are rejected (I hear a congestion tone, and my Cisco 7960 says "Reorder") even though channel 3 is idle. If I then call channel 3's number from another line (eg, my mobile), the incoming call is accepted entirely as normal. When the incoming call is completed, channel 3 will handle outgoing calls for a while. It invariably breaks itself, though. I've tested in two different PCs, same results. One point, not sure if it's related: In order to make remote disconnect supervision work with my BT line, I've had to modify the "wctdm" (previously "wcfxs") driver slightly; I had to raise BATT_THRESH to 8. Without this modification, the FXO modules cannot detect the loss of battery used to indicate that the remote party has terminated the call. Ideally I'd prefer to not make this modification, but without it remote disconnect supervision doesn't work. I assume that some event is happening to tie up the channel. How can I get Asterisk to dump a full log of all events on the zap channels for debugging purposes? Any help would be greatly appreciated. Cheers, Will _________________________________________________________________________ William R Sowerbutts will@sowerbutts.com "Carpe post meridiem" http://sowerbutts.com main(){char*s=">#=0> ^#X@#@^7=",c=0,m;for(;c<15;c++)for (m=-1;m<7;putchar(m++/6&c%3/2?10:s[c]-31&1<<m?42:32));} -------------- next part -------------- ; ; Zapata telephony interface ; ; Configuration file [trunkgroups] ; ; Trunk groups are used for NFAS or GR-303 connections. ; ; Group: Defines a trunk group. ; group => <trunkgroup>,<dchannel>[,<backup1>...] ; ; trunkgroup is the numerical trunk group to create ; dchannel is the zap channel which will have the ; d-channel for the trunk. ; backup1 is an optional list of backup d-channels. ; ;trunkgroup => 1,24,48 ; ; Spanmap: Associates a span with a trunk group ; spanmap => <zapspan>,<trunkgroup>[,<logicalspan>] ; ; zapspan is the zap span number to associate ; trunkgroup is the trunkgroup (specified above) for the mapping ; logicalspan is the logical span number within the trunk group to use. ; if unspecified, no logical span number is used. ; ;spanmap => 1,1,1 ;spanmap => 2,1,2 ;spanmap => 3,1,3 ;spanmap => 4,1,4 [channels] ; ; Default language ; ;language=en ; ; Default context ; context=default ; ; Switchtype: Only used for PRI. ; ; national: National ISDN 2 (default) ; dms100: Nortel DMS100 ; 4ess: AT&T 4ESS ; 5ess: Lucent 5ESS ; euroisdn: EuroISDN ; ni1: Old National ISDN 1 ; switchtype=national ; ; Some switches (AT&T especially) require network specific facility IE ; supported values are currently 'none', 'sdn', 'megacom', 'accunet' ; ;nsf=none ; ; PRI Dialplan: Only RARELY used for PRI. ; ; unknown: Unknown ; private: Private ISDN ; local: Local ISDN ; national: National ISDN ; international: International ISDN ; ;pridialplan=national ; ; Overlap dialing mode (sending overlap digits) ; ;overlapdial=yes ; ; Signalling method (default is fxs). Valid values: ; em: E & M ; em_w: E & M Wink ; featd: Feature Group D (The fake, Adtran style, DTMF) ; featdmf: Feature Group D (The real thing, MF (domestic, US)) ; featb: Feature Group B (MF (domestic, US)) ; fxs_ls: FXS (Loop Start) ; fxs_gs: FXS (Ground Start) ; fxs_ks: FXS (Kewl Start) ; fxo_ls: FXO (Loop Start) ; fxo_gs: FXO (Ground Start) ; fxo_ks: FXO (Kewl Start) ; pri_cpe: PRI signalling, CPE side ; pri_net: PRI signalling, Network side ; gr303fxoks_net: GR-303 Signalling, FXO Loopstart, Network side ; gr303fxsks_cpe: GR-303 Signalling, FXS Loopstart, CPE side ; sf: SF (Inband Tone) Signalling ; sf_w: SF Wink ; sf_featd: SF Feature Group D (The fake, Adtran style, DTMF) ; sf_featdmf: SF Feature Group D (The real thing, MF (domestic, US)) ; sf_featb: SF Feature Group B (MF (domestic, US)) ; The following are used for Radio interfaces: ; fxs_rx: Receive audio/COR on an FXS kewlstart interface (FXO at the channel bank) ; fxs_tx: Transmit audio/PTT on an FXS loopstart interface (FXO at the channel bank) ; fxo_rx: Receive audio/COR on an FXO loopstart interface (FXS at the channel bank) ; fxo_tx: Transmit audio/PTT on an FXO groundstart interface (FXS at the channel bank) ; em_rx: Receive audio/COR on an E&M interface (1-way) ; em_tx: Transmit audio/PTT on an E&M interface (1-way) ; em_txrx: Receive audio/COR AND Transmit audio/PTT on an E&M interface (2-way) ; em_rxtx: same as em_txrx (for our dyslexic friends) ; sf_rx: Receive audio/COR on an SF interface (1-way) ; sf_tx: Transmit audio/PTT on an SF interface (1-way) ; sf_txrx: Receive audio/COR AND Transmit audio/PTT on an SF interface (2-way) ; sf_rxtx: same as sf_txrx (for our dyslexic friends) ; signalling=fxo_ks ; ; A variety of timing parameters can be specified as well ; Including: ; prewink: Pre-wink time (default 50ms) ; preflash: Pre-flash time (default 50ms) ; wink: Wink time (default 150ms) ; flash: Flash time (default 750ms) ; start: Start time (default 1500ms) ; rxwink: Receiver wink time (default 300ms) ; rxflash: Receiver flashtime (default 1250ms) ; debounce: Debounce timing (default 600ms) ; rxwink=300 ; Atlas seems to use long (250ms) winks ; ; Whether or not to do distinctive ring detection on FXO lines ; ;usedistinctiveringdetection=yes ; ; Whether or not to use caller ID ; usecallerid=yes cidsignalling=v23 cidstart=polarity ; ; Whether or not to hide outgoing caller ID (Override with *67 or *82) ; hidecallerid=no ; ; Whether or not to enable call waiting on FXO lines ; callwaiting=no ; ; Whether or not restrict outgoing caller ID (will be sent as ANI only, not available for the user) ; Mostly use with FXS ports ; ;restrictcid=no ; ; Whether or not use the caller ID presentation for the outgoing call that the calling switch is sending ; usecallingpres=yes ; ; Support Caller*ID on Call Waiting ; callwaitingcallerid=no ; ; Support three-way calling ; threewaycalling=no ; ; Support flash-hook call transfer (requires three way calling) ; transfer=no ; ; Support call forward variable ; cancallforward=yes ; ; Whether or not to support Call Return (*69) ; callreturn=no ; ; Stutter dialtone support: If a mailbox is specified without a voicemail ; context, then when voicemail is received in a mailbox in the default ; voicemail context in voicemail.conf, taking the phone off hook will ; cause a stutter dialtone instead of a normal one. ; ; If a mailbox is specified *with* a voicemail context, the same will ; result if voicemail recieved in mailbox in the specified voicemail ; context ; ; for default voicemail context, the example below is fine: ; ;mailbox=1234 ; ; for any other voicemail context, the following will produce the ; stutter tone: ; ;mailbox=1234@context ; ; Enable echo cancellation ; Use either "yes", "no", or a power of two from 32 to 256 if you wish ; to actually set the number of taps of cancellation. ; ; best so far: 64, 128 also seems ok? echocancel=64 ; ; Generally, it is not necessary (and in fact undesirable) to echo cancel ; when the circuit path is entirely TDM. You may, however, reverse this ; behavior by enabling the echo cancel during pure TDM bridging below. ; echocancelwhenbridged=yes ; ; In some cases, the echo canceller doesn't train quickly enough and there ; is echo at the beginning of the call. Enabling echo training will cause ; asterisk to briefly mute the channel, send an impulse, and use the impulse ; response to pre-train the echo canceller so it can start out with a much ; closer idea of the actual echo. Value may be "yes", "no", or a number of ; milliseconds to delay before training (default = 400) ; echotraining=yes echotraining=800 ; ; If you are having trouble with DTMF detection, you can relax the ; DTMF detection parameters. Relaxing them may make the DTMF detector ; more likely to have "talkoff" where DTMF is detected when it ; shouldn't be. ; ;relaxdtmf=yes ; ; You may also set the default receive and transmit gains (in dB) ; rxgain=5.0 txgain=6.5 ; ; Logical groups can be assigned to allow outgoing rollover. Groups ; range from 0 to 31, 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 dialing *8#. For simple offices, just ; make these both the same ; callgroup=1 pickupgroup=1 ; ; Specify whether the channel should be answered immediately or ; if the simple switch should provide dialtone, read digits, etc. ; immediate=no ; ; CallerID can be set to "asreceived" or a specific number ; if you want to override it. Note that "asreceived" only ; applies to trunk interfaces. ; ;callerid=2564286000 ; ; AMA flags affects the recording of Call Detail Records. If specified ; it may be 'default', 'omit', 'billing', or 'documentation'. ; ;amaflags=default ; ; Channels may be associated with an account code to ease ; billing ; ;accountcode=lss0101 ; ; ADSI (Analog Display Services Interface) can be enabled on a per-channel ; basis if you have (or may have) ADSI compatible CPE equipment ; ;adsi=yes ; ; On trunk interfaces (FXS) and E&M interfaces (E&M, Wink, Feature Group D ; etc, it can be useful to perform busy detection either in an effort to ; detect hangup or for detecting busies ; busydetect=no ; ; If busydetect is enabled, is also possible to specify how many ; busy tones to wait before hanging up. The default is 4, but ; better results can be achieved if set to 6 or even 8. Mind that ; higher the number, more time is needed to hangup a channel, but ; lower is probability to get random hangups ; busycount=6 ; ; On trunk interfaces (FXS) it can be useful to attempt to follow the progress ; of a call through RINGING, BUSY, and ANSWERING. If turned on, call ; progress attempts to determine answer, busy, and ringing on phone lines. ; This feature is HIGHLY EXPERIMENTAL and can easily detect false answers, ; so don't count on it being very accurate. ; ; Few zones are supported at the time of this writing, but may ; be selected with "progzone" ; ; This feature can also easily detect false hangups. The symptoms of this ; is being disconnected in the middle of a call for no reason. ; callprogress=no progzone=uk ; ; For fax detection, uncomment one of the following lines. The default is *OFF* ; ;faxdetect=both ;faxdetect=incoming ;faxdetect=outgoing ;faxdetect=no ; ; Select which class of music to use for music on hold. If not specified ; then the default will be used. ; ;musiconhold=default ; ; PRI channels can have an idle extension and a minunused number. So long ; as at least "minunused" channels are idle, chan_zap will try to call ; "idledial" on them, and then dump them into the PBX in the "idleext" ; extension (which is of the form exten@context). When channels are needed ; the "idle" calls are disconnected (so long as there are at least "minidle" ; calls still running, of course) to make more channels available. The ; primary use of this is to create a dynamic service, where idle channels ; are bundled through multilink PPP, thus more efficiently utilizing ; combined voice/data services than conventional fixed mappings/muxings. ; ;idledial=6999 ;idleext=6999@dialout ;minunused=2 ;minidle=1 ; ; Configure jitter buffers in zapata (each one is 20ms, default is 4) ; ;jitterbuffers=4 ; ; You can define your own custom ring cadences here. You can define up to ; 8 pairs. If the silence is negative, it indicates where the callerid ; spill is to be placed. Also, if you define any custom cadences, the ; default cadences will be turned off. ; ; Syntax is: cadence=ring,silence[,ring,silence[...]] ; ; These are the default cadences: ; ;cadence=125,125,2000,-4000 ;cadence=250,250,500,1000,250,250,500,-4000 ;cadence=125,125,125,125,125,-4000 ;cadence=1000,500,2500,-5000 ; ; Each channel consists of the channel number or range. It ; inherits the parameters that were specified above its declaration ; ; For GR-303, CRV's are created like channels except they must start ; with the trunk group followed by a colon, e.g.: ; ; crv => 1:1 ; crv => 2:1-2,5-8 ; ; ;callerid="Green Phone"<(256) 428-6121> ;channel => 1 ;callerid="Black Phone"<(256) 428-6122> ;channel => 2 ;callerid="CallerID Phone" <(256) 428-6123> ;callerid="CallerID Phone" <(630) 372-1564> ;callerid="CallerID Phone" <(256) 704-4666> ;channel => 3 ;callerid="Pac Tel Phone" <(256) 428-6124> ;channel => 4 ;callerid="Uniden Dead" <(256) 428-6125> ;channel => 5 ;callerid="Cortelco 2500" <(256) 428-6126> ;channel => 6 ;callerid="Main TA 750" <(256) 428-6127> ;channel => 44 ; ; For example, maybe we have some other channels ; which start out in a different context and use ; E & M signalling instead. ; ;context=remote ;sigalling=em ;channel => 15 ;channel => 16 ;signalling=em_w ; ; All those in group 0 I'll use for outgoing calls ; ; Strip most significant digit (9) before sending ; ;stripmsd=1 ;callerid=asreceived ;group=0 ;signalling=fxs_ls ;channel => 45 ;signalling=fxo_ls ;group=1 ;callerid="Joe Schmoe" <(256) 428-6131> ;channel => 25 ;callerid="Megan May" <(256) 428-6132> ;channel => 26 ;callerid="Suzy Queue" <(256) 428-6233> ;channel => 27 ;callerid="Larry Moe" <(256) 428-6234> ;channel => 28 ; ; Sample PRI (CPE) config: Specify the switchtype, the signalling as ; either pri_cpe or pri_net for CPE or Network termination, and generally ; you will want to create a single "group" for all channels of the PRI. ; ; switchtype = national ; signalling = pri_cpe ; group = 2 ; channel => 1-23 ; ; Used for distintive ring support for x100p. ; You can see the dringX patterns is to set any one of the dringXcontext fields ; and they will be printed on the console when an inbound call comes in. ; ;dring1=95,0,0 ;dring1context=internal1 ;dring2=325,95,0 ;dring2context=internal2 ; If no pattern is matched here is where we go. ;context=default ;channel => 1 ; PSTN line for Will group=1 callgroup=1 pickupgroup=1 signalling=fxs_ks context=incoming-from-pstn-will callerid=Unknown call for Will's PSTN line <UNKNOWN> channel => 4 ; PSTN line for Celia group=1 callgroup=1 pickupgroup=1 callerid=Unknown call for Celia's PSTN line <UNKNOWN> context=incoming-from-pstn-celia channel => 3 ; Internal DECT phones rxgain=-2.0 txgain=-2.5 signalling=fxo_ks context=internal group=2 callgroup=1 pickupgroup=1 callerid=DECT Cordless Phone 1 <913> channel => 1 rxgain=-2.0 txgain=-2.5 signalling=fxo_ks context=internal group=2 callgroup=1 pickupgroup=1 callerid=DECT Cordless Phone 2 <914> channel => 2 -------------- next part -------------- # # Zaptel Configuration File # # This file is parsed by the Zaptel Configurator, ztcfg # # # First come the span definitions, in the format # span=<span num>,<timing>,<line build out (LBO)>,<framing>,<coding>[,yellow] # # The timing parameter determines the selection of primary, secondary, and # so on sync sources. If this span should be considered a primary sync # source, then give it a value of "1". For a secondary, use "2", and so on. # To not use this as a sync source, just use "0" # # The line build-out (or LBO) is an integer, from the following table: # 0: 0 db (CSU) / 0-133 feet (DSX-1) # 1: 133-266 feet (DSX-1) # 2: 266-399 feet (DSX-1) # 3: 399-533 feet (DSX-1) # 4: 533-655 feet (DSX-1) # 5: -7.5db (CSU) # 6: -15db (CSU) # 7: -22.5db (CSU) # # The framing is one of "d4" or "esf" for T1 or "cas" or "ccs" for E1 # # Note: "d4" could be referred to as "sf" or "superframe" # # The coding is one of "ami" or "b8zs" for T1 or "ami" or "hdb3" for E1 # # E1's may have the additional keyword "crc4" to enable CRC4 checking # # If the keyword "yellow" follows, yellow alarm is transmitted when no # channels are open. # #span=1,0,0,esf,b8zs #span=2,1,0,esf,b8zs #span=3,0,0,ccs,hdb3,crc4 # # Next come the dynamic span definitions, in the form: # dynamic=<driver>,<address>,<numchans>,<timing> # # Where <driver> is the name of the driver (e.g. eth), <address> is the # driver specific address (like a MAC for eth), <numchans> is the number # of channels, and <timing> is a timing priority, like for a normal span. # use "0" to not use this as a timing source, or prioritize them as # primary, secondard, etc. Note that you MUST have a REAL zaptel device # if you are not using external timing. # # dynamic=eth,eth0/00:02:b3:35:43:9c,24,0 # # Next come the definitions for using the channels. The format is: # <device>=<channel list> # # Valid devices are: # # "e&m" : Channel(s) are signalled using E&M signalling (specific # implementation, such as Immediate, Wink, or Feature Group D # are handled by the userspace library). # "fxsls" : Channel(s) are signalled using FXS Loopstart protocol. # "fxsgs" : Channel(s) are signalled using FXS Groundstart protocol. # "fxsks" : Channel(s) are signalled using FXS Koolstart protocol. # "fxols" : Channel(s) are signalled using FXO Loopstart protocol. # "fxogs" : Channel(s) are signalled using FXO Groundstart protocol. # "fxoks" : Channel(s) are signalled using FXO Koolstart protocol. # "sf" : Channel(s) are signalled using in-band single freq tone. # Syntax as follows: # channel# => sf:<rxfreq>,<rxbw>,<rxflag>,<txfreq>,<txlevel>,<txflag> # rxfreq is rx tone freq in hz, rxbw is rx notch (and decode) # bandwith in hz (typically 10.0), rxflag is either 'normal' or # 'inverted', txfreq is tx tone freq in hz, txlevel is tx tone # level in dbm, txflag is either 'normal' or 'inverted'. Set # rxfreq or txfreq to 0.0 if that tone is not desired. # "unused" : No signalling is performed, each channel in the list remains idle # "clear" : Channel(s) are bundled into a single span. No conversion or # signalling is performed, and raw data is available on the master. # "indclear": Like "clear" except all channels are treated individually and # are not bundled. "bchan" is an alias for this. # "rawhdlc" : The zaptel driver performs HDLC encoding and decoding on the # bundle, and the resulting data is communicated via the master # device. # "fcshdlc" : The zapdel driver performs HDLC encoding and decoding on the # bundle and also performs incoming and outgoing FCS insertion # and verification. "dchan" is an alias for this. # "nethdlc" : The zaptel driver bundles the channels together into an # hdlc network device, which in turn can be configured with # sethdlc (available separately). # "dacs" : The zaptel driver cross connects the channels starting at # the channel number listed at the end, after a colon # # The channel list is a comma-separated list of channels or ranges, for # example: # # 1,3,5 (channels one, three, and five) # 16-23, 29 (channels 16 through 23, as well as channel 29 # # So, some complete examples are: # e&m=1-12 # nethdlc=13-24 # fxsls=25,26,27,28 # fxols=29-32 # #fxoks=1-24 #bchan=25-47 #dchan=48 #fxols=1-12 #fxols=13-24 #e&m=25-29 #nethdlc=30-33 #clear=44 #clear=45 #clear=46 #clear=47 #fcshdlc=48 #dacs=1-24:48 # # Finally, you can preload some tone zones, to prevent them from getting # overwritten by other users (if you allow non-root users to open /dev/tor* # interfaces anyway. Also this means they won't have to be loaded at runtime. # The format is "loadzone=<zone>" where the zone is a two letter country code. # # You may also specify a default zone with "defaultzone=<zone>" where zone # is a two letter country code. # #loadzone = us #loadzone=it #loadzone=fr #loadzone=de #loadzone=uk #loadzone=fi #loadzone=jp #loadzone=sp #loadzone=no # Will's config: # channel 1 (was) my X100P: #fxsks=1 #loadzone=uk #defaultzone=uk loadzone=uk defaultzone=uk fxsks=3,4 fxoks=1,2
William R Sowerbutts
2004-Nov-21 15:34 UTC
[Asterisk-Users] TDM400 FXO stops handling outgoing calls, but still accepts incoming?
Hmmmm. Is it possible that the line is detecting a polarity event, decided that the line is ringing and started listening for a non-existant V23 data stream, and then the line has not in fact rung? This would mark the line as busy (and unable to handle an outgoing call) but when a call did in fact come in the line would then ring correctly. I believe BT's automated testing equipment can produce these line conditions. Will On Sun, Nov 21, 2004 at 07:18:33PM +0000, William R Sowerbutts wrote:>I have a bit of a weird problem that I'm having great trouble debugging. > >I have a TDM400P PCI card with two FXO and two FXS modules. Both FXO modules >are connected to BT lines here in the UK. Both BT lines have V23 Caller-ID, >which works fine with Asterisk. Both asterisk and zaptel are fresh from CVS. > >Both FXO modules (channels 3 and 4) are in "group 1" for outgoing calls. > >My calls are placed like this: Dial(Zap/g1/${EXTEN}) > >My understanding is that the first free channel in the group should be used to >place calls. Much of the time, this is the case. However, after some seemingly >random time interval, channel 3 stops accepting outgoing calls, even if the >line is idle -- and all calls go out on channel 4. If channel 4 is busy, >outgoing calls are rejected (I hear a congestion tone, and my Cisco 7960 says >"Reorder") even though channel 3 is idle. > >If I then call channel 3's number from another line (eg, my mobile), the >incoming call is accepted entirely as normal. When the incoming call is >completed, channel 3 will handle outgoing calls for a while. It invariably >breaks itself, though. > >I've tested in two different PCs, same results. > >One point, not sure if it's related: In order to make remote disconnect >supervision work with my BT line, I've had to modify the "wctdm" (previously >"wcfxs") driver slightly; I had to raise BATT_THRESH to 8. Without this >modification, the FXO modules cannot detect the loss of battery used to >indicate that the remote party has terminated the call. Ideally I'd prefer to >not make this modification, but without it remote disconnect supervision >doesn't work. > >I assume that some event is happening to tie up the channel. How can I get >Asterisk to dump a full log of all events on the zap channels for debugging >purposes? > >Any help would be greatly appreciated. > >Cheers, > >Will > >_________________________________________________________________________ >William R Sowerbutts will@sowerbutts.com >"Carpe post meridiem" http://sowerbutts.com > main(){char*s=">#=0> ^#X@#@^7=",c=0,m;for(;c<15;c++)for > (m=-1;m<7;putchar(m++/6&c%3/2?10:s[c]-31&1<<m?42:32));} >>; >; Zapata telephony interface >; >; Configuration file > >[trunkgroups] >; >; Trunk groups are used for NFAS or GR-303 connections. >; >; Group: Defines a trunk group. >; group => <trunkgroup>,<dchannel>[,<backup1>...] >; >; trunkgroup is the numerical trunk group to create >; dchannel is the zap channel which will have the >; d-channel for the trunk. >; backup1 is an optional list of backup d-channels. >; >;trunkgroup => 1,24,48 >; >; Spanmap: Associates a span with a trunk group >; spanmap => <zapspan>,<trunkgroup>[,<logicalspan>] >; >; zapspan is the zap span number to associate >; trunkgroup is the trunkgroup (specified above) for the mapping >; logicalspan is the logical span number within the trunk group to use. >; if unspecified, no logical span number is used. >; >;spanmap => 1,1,1 >;spanmap => 2,1,2 >;spanmap => 3,1,3 >;spanmap => 4,1,4 > >[channels] >; >; Default language >; >;language=en >; >; Default context >; >context=default >; >; Switchtype: Only used for PRI. >; >; national: National ISDN 2 (default) >; dms100: Nortel DMS100 >; 4ess: AT&T 4ESS >; 5ess: Lucent 5ESS >; euroisdn: EuroISDN >; ni1: Old National ISDN 1 >; >switchtype=national >; >; Some switches (AT&T especially) require network specific facility IE >; supported values are currently 'none', 'sdn', 'megacom', 'accunet' >; >;nsf=none >; >; PRI Dialplan: Only RARELY used for PRI. >; >; unknown: Unknown >; private: Private ISDN >; local: Local ISDN >; national: National ISDN >; international: International ISDN >; >;pridialplan=national >; >; Overlap dialing mode (sending overlap digits) >; >;overlapdial=yes >; >; Signalling method (default is fxs). Valid values: >; em: E & M >; em_w: E & M Wink >; featd: Feature Group D (The fake, Adtran style, DTMF) >; featdmf: Feature Group D (The real thing, MF (domestic, US)) >; featb: Feature Group B (MF (domestic, US)) >; fxs_ls: FXS (Loop Start) >; fxs_gs: FXS (Ground Start) >; fxs_ks: FXS (Kewl Start) >; fxo_ls: FXO (Loop Start) >; fxo_gs: FXO (Ground Start) >; fxo_ks: FXO (Kewl Start) >; pri_cpe: PRI signalling, CPE side >; pri_net: PRI signalling, Network side >; gr303fxoks_net: GR-303 Signalling, FXO Loopstart, Network side >; gr303fxsks_cpe: GR-303 Signalling, FXS Loopstart, CPE side >; sf: SF (Inband Tone) Signalling >; sf_w: SF Wink >; sf_featd: SF Feature Group D (The fake, Adtran style, DTMF) >; sf_featdmf: SF Feature Group D (The real thing, MF (domestic, US)) >; sf_featb: SF Feature Group B (MF (domestic, US)) >; The following are used for Radio interfaces: >; fxs_rx: Receive audio/COR on an FXS kewlstart interface (FXO at the channel bank) >; fxs_tx: Transmit audio/PTT on an FXS loopstart interface (FXO at the channel bank) >; fxo_rx: Receive audio/COR on an FXO loopstart interface (FXS at the channel bank) >; fxo_tx: Transmit audio/PTT on an FXO groundstart interface (FXS at the channel bank) >; em_rx: Receive audio/COR on an E&M interface (1-way) >; em_tx: Transmit audio/PTT on an E&M interface (1-way) >; em_txrx: Receive audio/COR AND Transmit audio/PTT on an E&M interface (2-way) >; em_rxtx: same as em_txrx (for our dyslexic friends) >; sf_rx: Receive audio/COR on an SF interface (1-way) >; sf_tx: Transmit audio/PTT on an SF interface (1-way) >; sf_txrx: Receive audio/COR AND Transmit audio/PTT on an SF interface (2-way) >; sf_rxtx: same as sf_txrx (for our dyslexic friends) >; >signalling=fxo_ks >; >; A variety of timing parameters can be specified as well >; Including: >; prewink: Pre-wink time (default 50ms) >; preflash: Pre-flash time (default 50ms) >; wink: Wink time (default 150ms) >; flash: Flash time (default 750ms) >; start: Start time (default 1500ms) >; rxwink: Receiver wink time (default 300ms) >; rxflash: Receiver flashtime (default 1250ms) >; debounce: Debounce timing (default 600ms) >; >rxwink=300 ; Atlas seems to use long (250ms) winks >; >; Whether or not to do distinctive ring detection on FXO lines >; >;usedistinctiveringdetection=yes > >; >; Whether or not to use caller ID >; >usecallerid=yes >cidsignalling=v23 >cidstart=polarity >; >; Whether or not to hide outgoing caller ID (Override with *67 or *82) >; >hidecallerid=no >; >; Whether or not to enable call waiting on FXO lines >; >callwaiting=no >; >; Whether or not restrict outgoing caller ID (will be sent as ANI only, not available for the user) >; Mostly use with FXS ports >; >;restrictcid=no >; >; Whether or not use the caller ID presentation for the outgoing call that the calling switch is sending >; >usecallingpres=yes >; >; Support Caller*ID on Call Waiting >; >callwaitingcallerid=no >; >; Support three-way calling >; >threewaycalling=no >; >; Support flash-hook call transfer (requires three way calling) >; >transfer=no >; >; Support call forward variable >; >cancallforward=yes >; >; Whether or not to support Call Return (*69) >; >callreturn=no >; >; Stutter dialtone support: If a mailbox is specified without a voicemail >; context, then when voicemail is received in a mailbox in the default >; voicemail context in voicemail.conf, taking the phone off hook will >; cause a stutter dialtone instead of a normal one. >; >; If a mailbox is specified *with* a voicemail context, the same will >; result if voicemail recieved in mailbox in the specified voicemail >; context >; >; for default voicemail context, the example below is fine: >; >;mailbox=1234 >; >; for any other voicemail context, the following will produce the >; stutter tone: >; >;mailbox=1234@context >; >; Enable echo cancellation >; Use either "yes", "no", or a power of two from 32 to 256 if you wish >; to actually set the number of taps of cancellation. >; >; best so far: 64, 128 also seems ok? >echocancel=64 >; >; Generally, it is not necessary (and in fact undesirable) to echo cancel >; when the circuit path is entirely TDM. You may, however, reverse this >; behavior by enabling the echo cancel during pure TDM bridging below. >; >echocancelwhenbridged=yes >; >; In some cases, the echo canceller doesn't train quickly enough and there >; is echo at the beginning of the call. Enabling echo training will cause >; asterisk to briefly mute the channel, send an impulse, and use the impulse >; response to pre-train the echo canceller so it can start out with a much >; closer idea of the actual echo. Value may be "yes", "no", or a number of >; milliseconds to delay before training (default = 400) >; >echotraining=yes >echotraining=800 >; >; If you are having trouble with DTMF detection, you can relax the >; DTMF detection parameters. Relaxing them may make the DTMF detector >; more likely to have "talkoff" where DTMF is detected when it >; shouldn't be. >; >;relaxdtmf=yes >; >; You may also set the default receive and transmit gains (in dB) >; >rxgain=5.0 >txgain=6.5 >; >; Logical groups can be assigned to allow outgoing rollover. Groups >; range from 0 to 31, 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 dialing *8#. For simple offices, just >; make these both the same >; >callgroup=1 >pickupgroup=1 > >; >; Specify whether the channel should be answered immediately or >; if the simple switch should provide dialtone, read digits, etc. >; >immediate=no >; >; CallerID can be set to "asreceived" or a specific number >; if you want to override it. Note that "asreceived" only >; applies to trunk interfaces. >; >;callerid=2564286000 >; >; AMA flags affects the recording of Call Detail Records. If specified >; it may be 'default', 'omit', 'billing', or 'documentation'. >; >;amaflags=default >; >; Channels may be associated with an account code to ease >; billing >; >;accountcode=lss0101 >; >; ADSI (Analog Display Services Interface) can be enabled on a per-channel >; basis if you have (or may have) ADSI compatible CPE equipment >; >;adsi=yes >; >; On trunk interfaces (FXS) and E&M interfaces (E&M, Wink, Feature Group D >; etc, it can be useful to perform busy detection either in an effort to >; detect hangup or for detecting busies >; >busydetect=no >; >; If busydetect is enabled, is also possible to specify how many >; busy tones to wait before hanging up. The default is 4, but >; better results can be achieved if set to 6 or even 8. Mind that >; higher the number, more time is needed to hangup a channel, but >; lower is probability to get random hangups >; >busycount=6 >; >; On trunk interfaces (FXS) it can be useful to attempt to follow the progress >; of a call through RINGING, BUSY, and ANSWERING. If turned on, call >; progress attempts to determine answer, busy, and ringing on phone lines. >; This feature is HIGHLY EXPERIMENTAL and can easily detect false answers, >; so don't count on it being very accurate. >; >; Few zones are supported at the time of this writing, but may >; be selected with "progzone" >; >; This feature can also easily detect false hangups. The symptoms of this >; is being disconnected in the middle of a call for no reason. >; >callprogress=no >progzone=uk >; >; For fax detection, uncomment one of the following lines. The default is *OFF* >; >;faxdetect=both >;faxdetect=incoming >;faxdetect=outgoing >;faxdetect=no >; >; Select which class of music to use for music on hold. If not specified >; then the default will be used. >; >;musiconhold=default >; >; PRI channels can have an idle extension and a minunused number. So long >; as at least "minunused" channels are idle, chan_zap will try to call >; "idledial" on them, and then dump them into the PBX in the "idleext" >; extension (which is of the form exten@context). When channels are needed >; the "idle" calls are disconnected (so long as there are at least "minidle" >; calls still running, of course) to make more channels available. The >; primary use of this is to create a dynamic service, where idle channels >; are bundled through multilink PPP, thus more efficiently utilizing >; combined voice/data services than conventional fixed mappings/muxings. >; >;idledial=6999 >;idleext=6999@dialout >;minunused=2 >;minidle=1 >; >; Configure jitter buffers in zapata (each one is 20ms, default is 4) >; >;jitterbuffers=4 >; >; You can define your own custom ring cadences here. You can define up to >; 8 pairs. If the silence is negative, it indicates where the callerid >; spill is to be placed. Also, if you define any custom cadences, the >; default cadences will be turned off. >; >; Syntax is: cadence=ring,silence[,ring,silence[...]] >; >; These are the default cadences: >; >;cadence=125,125,2000,-4000 >;cadence=250,250,500,1000,250,250,500,-4000 >;cadence=125,125,125,125,125,-4000 >;cadence=1000,500,2500,-5000 >; >; Each channel consists of the channel number or range. It >; inherits the parameters that were specified above its declaration >; >; For GR-303, CRV's are created like channels except they must start >; with the trunk group followed by a colon, e.g.: >; >; crv => 1:1 >; crv => 2:1-2,5-8 >; >; >;callerid="Green Phone"<(256) 428-6121> >;channel => 1 >;callerid="Black Phone"<(256) 428-6122> >;channel => 2 >;callerid="CallerID Phone" <(256) 428-6123> >;callerid="CallerID Phone" <(630) 372-1564> >;callerid="CallerID Phone" <(256) 704-4666> >;channel => 3 >;callerid="Pac Tel Phone" <(256) 428-6124> >;channel => 4 >;callerid="Uniden Dead" <(256) 428-6125> >;channel => 5 >;callerid="Cortelco 2500" <(256) 428-6126> >;channel => 6 >;callerid="Main TA 750" <(256) 428-6127> >;channel => 44 >; >; For example, maybe we have some other channels >; which start out in a different context and use >; E & M signalling instead. >; >;context=remote >;sigalling=em >;channel => 15 >;channel => 16 > >;signalling=em_w >; >; All those in group 0 I'll use for outgoing calls >; >; Strip most significant digit (9) before sending >; >;stripmsd=1 >;callerid=asreceived >;group=0 >;signalling=fxs_ls >;channel => 45 > >;signalling=fxo_ls >;group=1 >;callerid="Joe Schmoe" <(256) 428-6131> >;channel => 25 >;callerid="Megan May" <(256) 428-6132> >;channel => 26 >;callerid="Suzy Queue" <(256) 428-6233> >;channel => 27 >;callerid="Larry Moe" <(256) 428-6234> >;channel => 28 >; >; Sample PRI (CPE) config: Specify the switchtype, the signalling as >; either pri_cpe or pri_net for CPE or Network termination, and generally >; you will want to create a single "group" for all channels of the PRI. >; >; switchtype = national >; signalling = pri_cpe >; group = 2 >; channel => 1-23 > >; >; Used for distintive ring support for x100p. >; You can see the dringX patterns is to set any one of the dringXcontext fields >; and they will be printed on the console when an inbound call comes in. >; >;dring1=95,0,0 >;dring1context=internal1 >;dring2=325,95,0 >;dring2context=internal2 >; If no pattern is matched here is where we go. >;context=default >;channel => 1 > >; PSTN line for Will >group=1 >callgroup=1 >pickupgroup=1 >signalling=fxs_ks >context=incoming-from-pstn-will >callerid=Unknown call for Will's PSTN line <UNKNOWN> >channel => 4 > >; PSTN line for Celia >group=1 >callgroup=1 >pickupgroup=1 >callerid=Unknown call for Celia's PSTN line <UNKNOWN> >context=incoming-from-pstn-celia >channel => 3 > >; Internal DECT phones >rxgain=-2.0 >txgain=-2.5 >signalling=fxo_ks >context=internal >group=2 >callgroup=1 >pickupgroup=1 >callerid=DECT Cordless Phone 1 <913> >channel => 1 > >rxgain=-2.0 >txgain=-2.5 >signalling=fxo_ks >context=internal >group=2 >callgroup=1 >pickupgroup=1 >callerid=DECT Cordless Phone 2 <914> >channel => 2># ># Zaptel Configuration File ># ># This file is parsed by the Zaptel Configurator, ztcfg ># ># ># First come the span definitions, in the format ># span=<span num>,<timing>,<line build out (LBO)>,<framing>,<coding>[,yellow] ># ># The timing parameter determines the selection of primary, secondary, and ># so on sync sources. If this span should be considered a primary sync ># source, then give it a value of "1". For a secondary, use "2", and so on. ># To not use this as a sync source, just use "0" ># ># The line build-out (or LBO) is an integer, from the following table: ># 0: 0 db (CSU) / 0-133 feet (DSX-1) ># 1: 133-266 feet (DSX-1) ># 2: 266-399 feet (DSX-1) ># 3: 399-533 feet (DSX-1) ># 4: 533-655 feet (DSX-1) ># 5: -7.5db (CSU) ># 6: -15db (CSU) ># 7: -22.5db (CSU) ># ># The framing is one of "d4" or "esf" for T1 or "cas" or "ccs" for E1 ># ># Note: "d4" could be referred to as "sf" or "superframe" ># ># The coding is one of "ami" or "b8zs" for T1 or "ami" or "hdb3" for E1 ># ># E1's may have the additional keyword "crc4" to enable CRC4 checking ># ># If the keyword "yellow" follows, yellow alarm is transmitted when no ># channels are open. ># >#span=1,0,0,esf,b8zs >#span=2,1,0,esf,b8zs >#span=3,0,0,ccs,hdb3,crc4 ># ># Next come the dynamic span definitions, in the form: ># dynamic=<driver>,<address>,<numchans>,<timing> ># ># Where <driver> is the name of the driver (e.g. eth), <address> is the ># driver specific address (like a MAC for eth), <numchans> is the number ># of channels, and <timing> is a timing priority, like for a normal span. ># use "0" to not use this as a timing source, or prioritize them as ># primary, secondard, etc. Note that you MUST have a REAL zaptel device ># if you are not using external timing. ># ># dynamic=eth,eth0/00:02:b3:35:43:9c,24,0 ># ># Next come the definitions for using the channels. The format is: ># <device>=<channel list> ># ># Valid devices are: ># ># "e&m" : Channel(s) are signalled using E&M signalling (specific ># implementation, such as Immediate, Wink, or Feature Group D ># are handled by the userspace library). ># "fxsls" : Channel(s) are signalled using FXS Loopstart protocol. ># "fxsgs" : Channel(s) are signalled using FXS Groundstart protocol. ># "fxsks" : Channel(s) are signalled using FXS Koolstart protocol. ># "fxols" : Channel(s) are signalled using FXO Loopstart protocol. ># "fxogs" : Channel(s) are signalled using FXO Groundstart protocol. ># "fxoks" : Channel(s) are signalled using FXO Koolstart protocol. ># "sf" : Channel(s) are signalled using in-band single freq tone. ># Syntax as follows: ># channel# => sf:<rxfreq>,<rxbw>,<rxflag>,<txfreq>,<txlevel>,<txflag> ># rxfreq is rx tone freq in hz, rxbw is rx notch (and decode) ># bandwith in hz (typically 10.0), rxflag is either 'normal' or ># 'inverted', txfreq is tx tone freq in hz, txlevel is tx tone ># level in dbm, txflag is either 'normal' or 'inverted'. Set ># rxfreq or txfreq to 0.0 if that tone is not desired. ># "unused" : No signalling is performed, each channel in the list remains idle ># "clear" : Channel(s) are bundled into a single span. No conversion or ># signalling is performed, and raw data is available on the master. ># "indclear": Like "clear" except all channels are treated individually and ># are not bundled. "bchan" is an alias for this. ># "rawhdlc" : The zaptel driver performs HDLC encoding and decoding on the ># bundle, and the resulting data is communicated via the master ># device. ># "fcshdlc" : The zapdel driver performs HDLC encoding and decoding on the ># bundle and also performs incoming and outgoing FCS insertion ># and verification. "dchan" is an alias for this. ># "nethdlc" : The zaptel driver bundles the channels together into an ># hdlc network device, which in turn can be configured with ># sethdlc (available separately). ># "dacs" : The zaptel driver cross connects the channels starting at ># the channel number listed at the end, after a colon ># ># The channel list is a comma-separated list of channels or ranges, for ># example: ># ># 1,3,5 (channels one, three, and five) ># 16-23, 29 (channels 16 through 23, as well as channel 29 ># ># So, some complete examples are: ># e&m=1-12 ># nethdlc=13-24 ># fxsls=25,26,27,28 ># fxols=29-32 ># >#fxoks=1-24 >#bchan=25-47 >#dchan=48 >#fxols=1-12 >#fxols=13-24 >#e&m=25-29 >#nethdlc=30-33 >#clear=44 >#clear=45 >#clear=46 >#clear=47 >#fcshdlc=48 >#dacs=1-24:48 ># ># Finally, you can preload some tone zones, to prevent them from getting ># overwritten by other users (if you allow non-root users to open /dev/tor* ># interfaces anyway. Also this means they won't have to be loaded at runtime. ># The format is "loadzone=<zone>" where the zone is a two letter country code. ># ># You may also specify a default zone with "defaultzone=<zone>" where zone ># is a two letter country code. ># >#loadzone = us >#loadzone=it >#loadzone=fr >#loadzone=de >#loadzone=uk >#loadzone=fi >#loadzone=jp >#loadzone=sp >#loadzone=no > ># Will's config: > ># channel 1 (was) my X100P: >#fxsks=1 >#loadzone=uk >#defaultzone=uk > >loadzone=uk >defaultzone=uk >fxsks=3,4 >fxoks=1,2 >>_______________________________________________ >Asterisk-Users mailing list >Asterisk-Users@lists.digium.com >http://lists.digium.com/mailman/listinfo/asterisk-users >To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users_________________________________________________________________________ William R Sowerbutts will@sowerbutts.com "Carpe post meridiem" http://sowerbutts.com main(){char*s=">#=0> ^#X@#@^7=",c=0,m;for(;c<15;c++)for (m=-1;m<7;putchar(m++/6&c%3/2?10:s[c]-31&1<<m?42:32));}
Ian D. Wlloughby
2004-Nov-22 09:09 UTC
[Asterisk-Users] TDM400 FXO stops handling outgoing calls, but still accepts incoming?
Hi Will, <snip> Having read through the Caller ID code, it appears that this is indeed what is happening. The Caller ID code doesn't contain any logic to trigger a timeout if no Caller ID data stream is found, or if a stream starts and does not terminate. </snip> I submitted a patch for this which was included in the the CVS build of the 19th of November. See bug http://bugs.digium.com/bug_view_page.php?bug_id=0002909 Regards Ian
Ian D. Wlloughby
2004-Nov-22 11:09 UTC
[Asterisk-Users] TDM400 FXO stops handling outgoing calls, but still accepts incoming?
>Ian, > >The code I am running includes this patch already (I checked it outfrom CVS on the 21st), and it does not seem to resolve the problem on my line.> >The patch I have posted earlier today, which causes the Caller-ID codeto abort after 15 seconds, does resolve the problem. Hmmm, it should bail out when you get Event 17. This was the patch I put in if you get an event then bail. Here is my log:- Nov 21 16:19:04 VERBOSE[1974]: == Starting post polarity CID detection on channel 4 Nov 21 16:19:04 NOTICE[28670]: Got event 17 (Polarity Reversal)... Nov 21 16:19:06 WARNING[28670]: CID timed out waiting for ring. Exiting simple switch Which looks the same as yours so I am confuse as to why yours isn't bailing as the code is in the same if block as the Got event 17. Are you using V23 and Polarity Reversal as this is the only bit of code I changed, the Bell stuff already had conditions to allow it to bail out. R's Ian