;
; chan_misdn sample config
;

; general section:
;
; for debugging and general setup, things that are not bound to port groups
;

[general] 
;
; Sets the Path to the misdn-init.conf (for nt_ptp mode checking)
;
misdn_init=/etc/misdn-init.conf

; set debugging flag: 
;   0 - No Debug
;   1 - mISDN Messages and * - Messages, and * - State changes
;   2 - Messages + Message specific Informations (e.g. bearer capability)
;   3 - very Verbose, the above + lots of Driver specific infos
;   4 - even more Verbose than 3
;
; default value: 0
;
debug=0



; set debugging file and flags for mISDNuser (NT-Stack) 
; 
; flags can be or'ed with the following values:
;
; DBGM_NET        0x00000001
; DBGM_MSG        0x00000002
; DBGM_FSM        0x00000004
; DBGM_TEI        0x00000010
; DBGM_L2         0x00000020
; DBGM_L3         0x00000040
; DBGM_L3DATA     0x00000080
; DBGM_BC         0x00000100
; DBGM_TONE       0x00000200
; DBGM_BCDATA     0x00000400
; DBGM_MAN        0x00001000
; DBGM_APPL       0x00002000
; DBGM_ISDN       0x00004000
; DBGM_SOCK       0x00010000
; DBGM_CONN       0x00020000
; DBGM_CDATA      0x00040000
; DBGM_DDATA      0x00080000
; DBGM_SOUND      0x00100000
; DBGM_SDATA      0x00200000
; DBGM_TOPLEVEL   0x40000000
; DBGM_ALL        0xffffffff
;

ntdebugflags=0
ntdebugfile=/var/log/misdn-nt.log


; some pbx systems do cut the L1 for some milliseconds, to avoid 
; dropping running calls, we can set this flag to yes and tell
; mISDNuser not to drop the calls on L2_RELEASE
ntkeepcalls=no

; the big trace
;
; default value: [not set]
;
;tracefile=/var/log/asterisk/misdn.log


; set to yes if you want mISDN_dsp to bridge the calls in HW
;
; default value: yes
;
bridging=no


;
; watches the L1s of every port. If one l1 is down it tries to 
; get it up. The timeout is given in seconds. with 0 as value it
; does not watch the l1 at all
; 
; default value: 0
;
; this option is only read at loading time of chan_misdn, 
; which means you need to unload and load chan_misdn to change the 
; value, an asterisk restart should do the trick
; 
l1watcher_timeout=0

; stops dialtone after getting first digit on nt Port
;
; default value: yes
;
stop_tone_after_first_digit=yes

; whether to append overlapdialed Digits to Extension or not 
;
; default value: yes
;
append_digits2exten=yes

;;; CRYPTION STUFF

; Whether to look for dynamic crypting attempt
;
; default value: no
;
dynamic_crypt=no

; crypt_prefix, what is used for crypting Protocol
;
; default value: [not set]
;
crypt_prefix=**

; Keys for cryption, you reference them in the dialplan
; later also in dynamic encr.
;
; default value: [not set]
;
crypt_keys=test,muh

; users sections:
; 
; name your sections as you which but not "general" ! 
; the sections are Groups, you can dial out in extensions.conf
; with Dial(mISDN/g:extern/101) where extern is a section name, 
; chan_misdn tries every port in this section to find a 
; new free channel
; 

; The default section is not a group section, it just contains config elements
; which are inherited by group sections.
;

;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
; jbenable = yes              ; Enables the use of a jitterbuffer on the receiving side of a
                              ; SIP 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 SIP channel can accept jitter,
                              ; thus a jitterbuffer on the receive SIP side will be used only
                              ; if it is forced and enabled.

; jbforce = no                ; Forces the use of a jitterbuffer on the receive side of a SIP
                              ; channel. Defaults to "no".

; jbmaxsize = 200             ; Max length of the jitterbuffer in milliseconds.

; jbresyncthreshold = 1000    ; Jump in the frame timestamps over which the jitterbuffer is
                              ; resynchronized. Useful to improve the quality of the voice, with
                              ; big jumps in/broken timestamps, usually sent from exotic devices
                              ; and programs. Defaults to 1000.

; jbimpl = fixed              ; Jitterbuffer implementation, used on the receiving side of a SIP
                              ; channel. Two implementations are currently available - "fixed"
                              ; (with size always equals to jbmaxsize) and "adaptive" (with
                              ; variable size, actually the new jb of IAX2). Defaults to fixed.

; jbtargetextra = 40          ; This option only affects the jb when 'jbimpl = adaptive' is set.
                              ; The option represents the number of milliseconds by which the new
                              ; jitter buffer will pad its size. the default is 40, so without
                              ; modification, the new jitter buffer will set its size to the jitter
                              ; value plus 40 milliseconds. increasing this value may help if your
                              ; network normally has low jitter, but occasionally has spikes.

; jblog = no                  ; Enables jitterbuffer frame logging. Defaults to "no".
;-----------------------------------------------------------------------------------

[default]

; define your default context here
;
; default value: default
;
context=misdn

; language
;
; default value: en
;
language=en

;
; sets the musiconhold class
;
musicclass=default

;
; Either if we should produce DTMF Tones ourselves
; 
senddtmf=yes

;
; If we should generate Ringing for chan_sip and others
;
far_alerting=no


;
; Here you can list which bearer capabilities should be allowed:
;   all                  - allow any bearer capability
;   speech               - allow speech
;   3_1khz               - allow 3.1KHz audio
;   digital_unrestricted - allow unrestricted digital
;   digital_restricted   - allow restricted digital
;   video                - allow video
;
; Example:
; allowed_bearers=speech,3_1khz
;
allowed_bearers=all

; Prefixes for national and international, those are put before the 
; oad if an according dialplan is set by the other end. 
;
; default values: nationalprefix      : 0
;                 internationalprefix : 00
;
nationalprefix=0
internationalprefix=00

; set rx/tx gains between -8 and 8 to change the RX/TX Gain
;
; default values: rxgain: 0
;                 txgain: 0
;
rxgain=0
txgain=0

; some telcos especially in NL seem to need this set to yes, also in 
; switzerland this seems to be important
;
; default value: no
;
te_choose_channel=no



;
; This option defines, if chan_misdn should check the L1 on  a PMP 
; before making a group call on it. The L1 may go down for PMP Ports
; so we might need this.
; But be aware! a broken or plugged off cable might be used for a group call
; as well, since chan_misdn has no chance to distinguish if the L1 is down
; because of a lost Link or because the Provider shut it down...
;
; default: no
;
pmp_l1_check=no


;
; in PMP this option defines which cause should be sent out to 
; the 3. caller. chan_misdn does not support callwaiting on TE
; PMP side. This allows to modify the RELEASE_COMPLETE cause 
; at least.
;
reject_cause=16


;
; Send Setup_Acknowledge on incoming calls anyway (instead of PROCEEDING), 
; this requests additional Infos, so we can waitfordigits 
; without much issues. This works only for PTP Ports
; 
; default value: no
;
need_more_infos=no


;
; set this to yes if you want to disconnect calls when a timeout occurs
; for example during the overlapdial phase
;
nttimeout=no

; Set the method to use for channel selection:
;   standard     - Use the first free channel starting from the lowest number.
;   standard_dec - Use the first free channel starting from the highest number.
;   round_robin  - Use the round robin algorithm to select a channel. Use this
;                  if you want to balance your load.
;
; default value: standard
;
method=standard


; specify if chan_misdn should collect digits before going into the 
; dialplan, you can choose yes=4 Seconds, no, or specify the amount
; of seconds you need;
; 
overlapdial=yes

;
; dialplan means Type Of Number in ISDN Terms (for outgoing calls)
;
; there are different types of the dialplan:
;
; dialplan -> outgoing Number
; localdialplan -> callerid
; cpndialplan -> connected party number
;
; dialplan options: 
;
; 0 - unknown
; 1 - International
; 2 - National
; 4 - Subscriber
;
; This setting is used for outgoing calls
;
; default value: 0
;
dialplan=0
localdialplan=0
cpndialplan=0



;
; turn this to no if you don't mind correct handling of Progress Indicators  
;
early_bconnect=yes


;
; turn this on if you like to send Tone Indications to a Incoming
; isdn channel on a TE Port. Rarely used, only if the Telco allows
; you to send indications by yourself, normally the Telco sends the 
; indications to the remote party.
; 
; default: no
;
incoming_early_audio=no

; uncomment the following to get into s extension at extension conf
; there you can use DigitTimeout if you can't or don't want to use
; isdn overlap dial. 
; note: This will jump into the s exten for every exten!
;
; default value: no
;
;always_immediate=no

;
; set this to yes if you want to generate your own dialtone 
; with always_immediate=yes, else chan_misdn generates the dialtone
;
; default value: no
;
nodialtone=no


; uncomment the following if you want callers which called exactly the 
; base number (so no extension is set) jump to the s extension.
; if the user dials something more it jumps to the correct extension 
; instead
;
; default value: no
;
;immediate=no

; uncomment the following to have hold and retrieve support
;
; default value: no
;
;hold_allowed=yes

; Pickup and Callgroup
;
; default values: not set = 0
; range: 0-63
;
;callgroup=1
;pickupgroup=1


;
; these are the exact isdn screening and presentation indicators
; if -1 is given for either value the presentation indicators are used
; from asterisks CALLERPRES function.
; s=0, p=0 -> callerid presented
; s=1, p=1 -> callerid restricted (the remote end does not see it!)
; 
; default values s=-1, p=-1
presentation=-1
screen=-1

; This enables echo cancellation with the given number of taps.
; Be aware: Move this setting only to outgoing portgroups!
; A value of zero turns echo cancellation off.
;
; possible values are: 0,32,64,128,256,yes(=128),no(=0)
;
; default value: no
;
;echocancel=no

; Set this to no to disable echotraining. You can enter a number > 10
; the value is a multiple of 0.125 ms. 
;
; default value: no 
; yes = 2000
; no = 0
;
echotraining=no

;
; chan_misdns jitterbuffer, default 4000
; 
jitterbuffer=4000

;
; change this threshold to enable dejitter functionality
;
jitterbuffer_upper_threshold=0


;
; change this to yes, if you want to bridge a mISDN data channel to 
; another channel type or to an application.
;
hdlc=no


;
; defines the maximum amount of incoming calls per port for
; this group. Calls which exceed the maximum will be marked with 
; the channel variable MAX_OVERFLOW. It will contain the amount of 
; overflowed calls
;
max_incoming=-1

;
; defines the maximum amount of outgoing calls per port for this group
; exceeding calls will be rejected
;
max_outgoing=-1

[intern]
; define your ports, e.g. 1,2 (depends on mISDN-driver loading order) 
ports=1,2
; context where to go to when incoming Call on one of the above ports
context=Intern

[internPP]
;
; adding the postfix 'ptp' to a port number is obsolete now, chan_misdn
; parses /etc/misdn-init.conf and sets the ptp mode to the corresponding
; configs. For backwards compatibility you can still set ptp here.
;
ports=3
	
[first_extern]
; again port defs
ports=4
; again a context for incoming calls
context=Extern1
; msns for te ports, listen on those numbers on the above ports, and 
; indicate the incoming calls to asterisk
; here you can give a comma separated list or simply an '*' for 
; any msn. 
msns=*

; here an example with given msns
[second_extern]
ports=5
context=Extern2
callerid=15
msns=102,144,101,104
