From 00b6fa19217115535224699b058f6d405f191d88 Mon Sep 17 00:00:00 2001 From: Xavier Carcelle Date: Mon, 9 Jul 2012 19:14:34 +0200 Subject: rename and move files around --- asterisk-load-tests/call_and_anwser_call/README | 10 + .../call_and_anwser_call/driver/conf.py | 41 + .../call_and_anwser_call/driver/extensions.conf | 98 ++ .../call_and_anwser_call/driver/system.conf | 48 + asterisk-load-tests/call_and_hangup/README | 14 + asterisk-load-tests/call_and_hangup/README_FR | 11 + asterisk-load-tests/call_and_hangup/driver/conf.py | 40 + .../call_and_hangup/driver/dahdi-channels.conf | 57 + .../call_and_hangup/driver/extensions.conf | 84 ++ .../call_and_hangup/driver/sip.conf | 1340 ++++++++++++++++++ .../call_and_hangup/driver/system.conf | 48 + .../call_and_hangup/tested/chan_dahdi.conf | 1459 ++++++++++++++++++++ .../call_and_hangup/tested/extensions.conf | 125 ++ .../call_and_hangup/tested/system.conf | 49 + asterisk-load-tests/full_IO/README | 46 + asterisk-load-tests/full_IO/pcb/chan_dahdi.conf | 65 + asterisk-load-tests/full_IO/pcb/extensions.conf | 80 ++ asterisk-load-tests/full_IO/pcb/sip.conf | 686 +++++++++ asterisk-load-tests/full_IO/pcb/system.conf | 33 + asterisk-load-tests/full_IO/xhd/chan_dahdi.conf | 79 ++ asterisk-load-tests/full_IO/xhd/conf.py | 31 + asterisk-load-tests/full_IO/xhd/extensions.conf | 76 + asterisk-load-tests/full_IO/xhd/sip.conf | 1340 ++++++++++++++++++ asterisk-load-tests/full_IO/xhd/system.conf | 44 + asterisk-load-tests/install.sh | 137 ++ call_and_anwser_call/README | 10 - call_and_anwser_call/driver/conf.py | 41 - call_and_anwser_call/driver/extensions.conf | 98 -- call_and_anwser_call/driver/system.conf | 48 - call_and_hangup/README | 14 - call_and_hangup/README_FR | 11 - call_and_hangup/driver/conf.py | 40 - call_and_hangup/driver/dahdi-channels.conf | 57 - call_and_hangup/driver/extensions.conf | 84 -- call_and_hangup/driver/sip.conf | 1340 ------------------ call_and_hangup/driver/system.conf | 48 - call_and_hangup/tested/chan_dahdi.conf | 1459 -------------------- call_and_hangup/tested/extensions.conf | 125 -- call_and_hangup/tested/system.conf | 49 - full_IO/README | 46 - full_IO/full_IO.sh | 137 -- full_IO/pcb/chan_dahdi.conf | 65 - full_IO/pcb/extensions.conf | 80 -- full_IO/pcb/sip.conf | 686 --------- full_IO/pcb/system.conf | 33 - full_IO/xhd/chan_dahdi.conf | 79 -- full_IO/xhd/conf.py | 31 - full_IO/xhd/extensions.conf | 76 - full_IO/xhd/sip.conf | 1340 ------------------ full_IO/xhd/system.conf | 44 - 50 files changed, 6041 insertions(+), 6041 deletions(-) create mode 100644 asterisk-load-tests/call_and_anwser_call/README create mode 100644 asterisk-load-tests/call_and_anwser_call/driver/conf.py create mode 100644 asterisk-load-tests/call_and_anwser_call/driver/extensions.conf create mode 100644 asterisk-load-tests/call_and_anwser_call/driver/system.conf create mode 100644 asterisk-load-tests/call_and_hangup/README create mode 100644 asterisk-load-tests/call_and_hangup/README_FR create mode 100644 asterisk-load-tests/call_and_hangup/driver/conf.py create mode 100644 asterisk-load-tests/call_and_hangup/driver/dahdi-channels.conf create mode 100644 asterisk-load-tests/call_and_hangup/driver/extensions.conf create mode 100644 asterisk-load-tests/call_and_hangup/driver/sip.conf create mode 100644 asterisk-load-tests/call_and_hangup/driver/system.conf create mode 100644 asterisk-load-tests/call_and_hangup/tested/chan_dahdi.conf create mode 100644 asterisk-load-tests/call_and_hangup/tested/extensions.conf create mode 100644 asterisk-load-tests/call_and_hangup/tested/system.conf create mode 100644 asterisk-load-tests/full_IO/README create mode 100644 asterisk-load-tests/full_IO/pcb/chan_dahdi.conf create mode 100644 asterisk-load-tests/full_IO/pcb/extensions.conf create mode 100644 asterisk-load-tests/full_IO/pcb/sip.conf create mode 100644 asterisk-load-tests/full_IO/pcb/system.conf create mode 100644 asterisk-load-tests/full_IO/xhd/chan_dahdi.conf create mode 100644 asterisk-load-tests/full_IO/xhd/conf.py create mode 100644 asterisk-load-tests/full_IO/xhd/extensions.conf create mode 100644 asterisk-load-tests/full_IO/xhd/sip.conf create mode 100644 asterisk-load-tests/full_IO/xhd/system.conf create mode 100755 asterisk-load-tests/install.sh delete mode 100644 call_and_anwser_call/README delete mode 100644 call_and_anwser_call/driver/conf.py delete mode 100644 call_and_anwser_call/driver/extensions.conf delete mode 100644 call_and_anwser_call/driver/system.conf delete mode 100644 call_and_hangup/README delete mode 100644 call_and_hangup/README_FR delete mode 100644 call_and_hangup/driver/conf.py delete mode 100644 call_and_hangup/driver/dahdi-channels.conf delete mode 100644 call_and_hangup/driver/extensions.conf delete mode 100644 call_and_hangup/driver/sip.conf delete mode 100644 call_and_hangup/driver/system.conf delete mode 100644 call_and_hangup/tested/chan_dahdi.conf delete mode 100644 call_and_hangup/tested/extensions.conf delete mode 100644 call_and_hangup/tested/system.conf delete mode 100644 full_IO/README delete mode 100755 full_IO/full_IO.sh delete mode 100644 full_IO/pcb/chan_dahdi.conf delete mode 100644 full_IO/pcb/extensions.conf delete mode 100644 full_IO/pcb/sip.conf delete mode 100644 full_IO/pcb/system.conf delete mode 100644 full_IO/xhd/chan_dahdi.conf delete mode 100644 full_IO/xhd/conf.py delete mode 100644 full_IO/xhd/extensions.conf delete mode 100644 full_IO/xhd/sip.conf delete mode 100644 full_IO/xhd/system.conf diff --git a/asterisk-load-tests/call_and_anwser_call/README b/asterisk-load-tests/call_and_anwser_call/README new file mode 100644 index 0000000..bd02eb6 --- /dev/null +++ b/asterisk-load-tests/call_and_anwser_call/README @@ -0,0 +1,10 @@ +This is reported in redmine ticket 3582. + +1.Setup +1.1Hardware + +1.2.Software +Description +2.Running the test + +3. Results diff --git a/asterisk-load-tests/call_and_anwser_call/driver/conf.py b/asterisk-load-tests/call_and_anwser_call/driver/conf.py new file mode 100644 index 0000000..2fa1c59 --- /dev/null +++ b/asterisk-load-tests/call_and_anwser_call/driver/conf.py @@ -0,0 +1,41 @@ +# -*- coding: UTF-8 -*- + +from __future__ import unicode_literals + +## global configuration + +sipp_remote_host = '127.0.0.1' + +sipp_local_ip = '127.0.0.1' +sipp_call_rate = 1.0 +sipp_pause_in_ms = 3000 +sipp_rate_period_in_ms = 6000 + sipp_pause_in_ms + +## scenarios configuration + +called_line = { + 'username': 'loadtester2', + 'bind_port': 5070, +} + +calling_line = { + 'username': 'loadtester1', + 'password': 'loadtester1', +} + +#scenarios.call_and_answer_call.calling_line = calling_line +#scenarios.call_and_answer_call.called_line = called_line +scenarios.call_and_answer_call.called_exten = '2222232332' +#scenarios.call_and_answer_call.called_exten = '32' + +#scenarios.call_then_cancel_on_ringing.calling_line = calling_line +scenarios.call_then_cancel_on_ringing.called_exten = '105' +scenarios.call_then_cancel_on_ringing.sipp_pause_in_ms = 3000 +scenarios.call_then_cancel_on_ringing.sipp_rate_period_in_ms = 15000 + +# scenarios.call_then_hangup.calling_line = calling_line +# calling trhough FXS port 1 to reach port FXO on pcb#4 - cf dialplan for 105 +scenarios.call_then_hangup.called_exten = '105' + +#scenarios.call_then_wait.calling_line = calling_line +scenarios.call_then_wait.called_exten = '102' diff --git a/asterisk-load-tests/call_and_anwser_call/driver/extensions.conf b/asterisk-load-tests/call_and_anwser_call/driver/extensions.conf new file mode 100644 index 0000000..49141ef --- /dev/null +++ b/asterisk-load-tests/call_and_anwser_call/driver/extensions.conf @@ -0,0 +1,98 @@ +[default] +;exten => _X.,1,NoOp(### Call from ${CALLERID} to ${EXTEN} ###) + +exten => _0.,1,Dial(SIP/${EXTEN:1}@tolapai) +exten => _1.,1,Dial(DAHDI/g11/${EXTEN:1}) +exten => _2.,1,Dial(DAHDI/g12/${EXTEN:1}) +exten => _3.,1,Dial(DAHDI/g13/${EXTEN:1}) +exten => _4.,1,Dial(DAHDI/g14/${EXTEN:1}) +exten => 5,1,Dial(DAHDI/g5) +exten => 6,1,Playback(hello-world) + +exten => 7,1,Answer +exten => 7,n,Echo + + +; appel via le port B410P BRI 1 +exten = _21.,1,NoOp() +same = n,Dial(DAHDI/g11/${EXTEN:2}) +same = n,Hangup() + +; appel via le port B410p BRI 2 +;exten = 22,1,NoOp() +;same = n,Dial(DAHDI/g12) +exten = _22.,1,NoOp() +same = n,Dial(DAHDI/g12/${EXTEN:2}) +same = n,Hangup() + +; appel via le port B410p BRI 3 +;exten = 23,1,NoOp() +;same = n,Dial(DAHDI/g13) +exten = _23.,1,NoOp() +same = n,Dial(DAHDI/g13/${EXTEN:2}) +same = n,Hangup() + +; appel via le port B410p BRI 4 +;exten = 24,1,NoOp() +;same = n,Dial(DAHDI/g14) +exten = _24.,1,NoOp() +same = n,Dial(DAHDI/g14/${EXTEN:2}) +same = n,Hangup() + +; appel via le port FXS 1 de la carte TDM400 +exten = 11,1,NoOp() +same = n,Dial(DAHDI/g4) +same = n,Hangup() + +; appel via le port FXS 2 de la carte TDM400 +exten = 12,1,NoOp() +same = n,Dial(DAHDI/g5) +same = n,Hangup() + +; appel via le port FXO 1 de la carte TDM400 +exten = 13,1,NoOp() +same = n,Dial(DAHDI/g6) +same = n,Hangup() + +exten = s,1,NoOp() +;same = n,Goto(wait-and-hangup,1) +same = n,Goto(call-loadtester2,1) + +exten = wait-and-hangup,1,NoOp() +same = n,Answer() +same = n,Wait(60) +same = n,Hangup() + +exten = call-loadtester2,1,NoOp() +same = n,Dial(SIP/loadtester2) +same = n,Hangup() + +exten = 32,1,NoOp() +same = n,Dial(SIP/loadtester2) +same = n,Hangup() + +exten = 108,1,NoOp() +same = n,Dial(SIP/phone1) +same = n,Hangup() + +exten = hangup,1,NoOp() +same = n,Answer() +same = n,Wait(10) +same = n,Hangup() + +[from-internal] +include => default + +[from-pstn] +include => default + +[lol] +include => default + +[loadtest] +exten => s,1,NoOp(Init call for test) +exten => s,n,Answer +exten => s,n,Playback(hello-world) +exten => s,n,Echo +exten => s,n,Hangup + diff --git a/asterisk-load-tests/call_and_anwser_call/driver/system.conf b/asterisk-load-tests/call_and_anwser_call/driver/system.conf new file mode 100644 index 0000000..e237a47 --- /dev/null +++ b/asterisk-load-tests/call_and_anwser_call/driver/system.conf @@ -0,0 +1,48 @@ +# Autogenerated by /usr/sbin/dahdi_genconf on Fri Apr 20 18:08:28 2012 +# If you edit this file and execute /usr/sbin/dahdi_genconf again, +# your manual changes will be LOST. +# Dahdi Configuration File +# +# This file is parsed by the Dahdi Configurator, dahdi_cfg +# +# Span 1: B4/0/1 "B4XXP (PCI) Card 0 Span 1" (MASTER) +span=1,1,0,ccs,ami +# termtype: te +bchan=1-2 +hardhdlc=3 +echocanceller=mg2,1-2 + +# Span 2: B4/0/2 "B4XXP (PCI) Card 0 Span 2" +span=2,2,0,ccs,ami +# termtype: te +bchan=4-5 +hardhdlc=6 +echocanceller=mg2,4-5 + +# Span 3: B4/0/3 "B4XXP (PCI) Card 0 Span 3" +span=3,3,0,ccs,ami +# termtype: te +bchan=7-8 +hardhdlc=9 +echocanceller=mg2,7-8 + +# Span 4: B4/0/4 "B4XXP (PCI) Card 0 Span 4" YELLOW +span=4,4,0,ccs,ami +# termtype: te +bchan=10-11 +hardhdlc=12 +echocanceller=mg2,10-11 + +# Span 5: WCTDM/4 "Wildcard TDM400P REV I Board 5" +fxoks=13 +echocanceller=mg2,13 +fxoks=14 +echocanceller=mg2,14 +fxsks=15 +echocanceller=mg2,15 +# channel 16, WCTDM/4/3, no module. + +# Global data + +loadzone = us +defaultzone = us diff --git a/asterisk-load-tests/call_and_hangup/README b/asterisk-load-tests/call_and_hangup/README new file mode 100644 index 0000000..f5cc226 --- /dev/null +++ b/asterisk-load-tests/call_and_hangup/README @@ -0,0 +1,14 @@ +This test was used for calling and hanging up ~30000 times between + +- a driver PC with a Digium B410P and a Digium TDP400P with two FXS modules and + one FXO module. +- a XiVO IPBX Open Hardware prototype (PCB version 4.0) with the FXO/FXS and + ISDN cards. + +The driver machine runs load-tester and calls the prototype through its FXS +port; the prototype then rings a phone. + +To reproduce: + +* Install files +* run load-tester with scenario call-then-cancel-on-ringing diff --git a/asterisk-load-tests/call_and_hangup/README_FR b/asterisk-load-tests/call_and_hangup/README_FR new file mode 100644 index 0000000..c979ef3 --- /dev/null +++ b/asterisk-load-tests/call_and_hangup/README_FR @@ -0,0 +1,11 @@ +Ce test a été utilisé pour appeler (décrocher et raccrocher) 30 000 fois entre: + +- un pilote avec un Digium B410P et un Digium TDP400P avec deux modules FXS et un module FXO. +- un prototype XiVO IPBX Open Hardware (PCB version 4.0) avec le FXO/FXS et les cartes ISDN. + +La machine pilote lance load-tester et appelle le prototype à travers le port FXS. Le prototype fait alors sonner un téléphone. + +Pour le reproduire: + +* Installer les fichiers +* Mettre en marche le load-tester (chargement de test) avec le scénario "call-then-cancel-on-ringing". diff --git a/asterisk-load-tests/call_and_hangup/driver/conf.py b/asterisk-load-tests/call_and_hangup/driver/conf.py new file mode 100644 index 0000000..15214a2 --- /dev/null +++ b/asterisk-load-tests/call_and_hangup/driver/conf.py @@ -0,0 +1,40 @@ +# -*- coding: UTF-8 -*- + +from __future__ import unicode_literals + +## global configuration + +sipp_remote_host = '127.0.0.1' + +sipp_local_ip = '127.0.0.1' +sipp_call_rate = 1.0 +sipp_pause_in_ms = 6000 +sipp_rate_period_in_ms = 18000 + sipp_pause_in_ms + +## scenarios configuration + +called_line = { + 'username': 'loadtester2', + 'bind_port': 5070, +} + +calling_line = { + 'username': 'loadtester1', + 'password': 'loadtester1', +} + +#scenarios.call_and_answer_call.calling_line = calling_line +#scenarios.call_and_answer_call.called_line = called_line +scenarios.call_and_answer_call.called_exten = 's' + +#scenarios.call_then_cancel_on_ringing.calling_line = calling_line +scenarios.call_then_cancel_on_ringing.called_exten = '105' +scenarios.call_then_cancel_on_ringing.sipp_pause_in_ms = 3000 +scenarios.call_then_cancel_on_ringing.sipp_rate_period_in_ms = 15000 + +# scenarios.call_then_hangup.calling_line = calling_line +# calling trhough FXS port 1 to reach port FXO on pcb#4 - cf dialplan for 105 +scenarios.call_then_hangup.called_exten = '105' + +#scenarios.call_then_wait.calling_line = calling_line +scenarios.call_then_wait.called_exten = '102' diff --git a/asterisk-load-tests/call_and_hangup/driver/dahdi-channels.conf b/asterisk-load-tests/call_and_hangup/driver/dahdi-channels.conf new file mode 100644 index 0000000..570d113 --- /dev/null +++ b/asterisk-load-tests/call_and_hangup/driver/dahdi-channels.conf @@ -0,0 +1,57 @@ +; Autogenerated by /usr/sbin/dahdi_genconf on Fri Apr 20 18:08:28 2012 +; If you edit this file and execute /usr/sbin/dahdi_genconf again, +; your manual changes will be LOST. +; Dahdi Channels Configurations (chan_dahdi.conf) +; +; This is not intended to be a complete chan_dahdi.conf. Rather, it is intended +; to be #include-d by /etc/chan_dahdi.conf that will include the global settings +; + +; Span 1: B4/0/1 "B4XXP (PCI) Card 0 Span 1" (MASTER) +group=0,11 +context=from-pstn +switchtype = euroisdn +signalling = bri_cpe_ptmp +channel => 1-2 + +group=0,12 +context=from-pstn +switchtype = euroisdn +signalling = bri_cpe_ptmp +channel => 4-5 +; Span 3: B4/0/3 "B4XXP (PCI) Card 0 Span 3" +group=0,13 +context=from-pstn +switchtype = euroisdn +signalling = bri_cpe_ptmp +channel => 7-8 +; Span 4: B4/0/4 "B4XXP (PCI) Card 0 Span 4" YELLOW +group=0,14 +context=from-pstn +switchtype = euroisdn +signalling = bri_cpe_ptmp +channel => 10-11 +; Span 5: WCTDM/4 "Wildcard TDM400P REV I Board 5" +;;; line="13 WCTDM/4/0 FXOKS" +signalling=fxo_ks +callerid="Channel 13" <4013> +mailbox=4013 +group=4 +context=from-internal +channel => 13 + +;;; line="14 WCTDM/4/1 FXOKS" +signalling=fxo_ks +callerid="Channel 14" <4014> +mailbox=4014 +group=5 +context=from-internal +channel => 14 + +;;; line="15 WCTDM/4/2 FXSKS" +signalling=fxs_ks +callerid=asreceived +group=6 +context=from-pstn +channel => 15 + diff --git a/asterisk-load-tests/call_and_hangup/driver/extensions.conf b/asterisk-load-tests/call_and_hangup/driver/extensions.conf new file mode 100644 index 0000000..772c5e4 --- /dev/null +++ b/asterisk-load-tests/call_and_hangup/driver/extensions.conf @@ -0,0 +1,84 @@ +[default] +;exten => _X.,1,NoOp(### Call from ${CALLERID} to ${EXTEN} ###) + +exten => _0.,1,Dial(SIP/${EXTEN:1}@tolapai) +exten => _1.,1,Dial(DAHDI/g11/${EXTEN:1}) +exten => _2.,1,Dial(DAHDI/g12/${EXTEN:1}) +exten => _3.,1,Dial(DAHDI/g13/${EXTEN:1}) +exten => _4.,1,Dial(DAHDI/g14/${EXTEN:1}) +exten => 5,1,Dial(DAHDI/g5) +exten => 6,1,Playback(hello-world) + +exten => 7,1,Answer +exten => 7,n,Echo + + +; appel via le port B410P BRI 1 +exten = 101,1,NoOp() +same = n,Dial(DAHDI/g11) +same = n,Hangup() + +; appel via le port B410p BRI 2 +exten = 102,1,NoOp() +same = n,Dial(DAHDI/g12) +same = n,Hangup() + +; appel via le port B410p BRI 3 +exten = 103,1,NoOp() +same = n,Dial(DAHDI/g13) +same = n,Hangup() + +; appel via le port B410p BRI 4 +exten = 104,1,NoOp() +same = n,Dial(DAHDI/g14) +same = n,Hangup() + +; appel via le port FXS 1 de la carte TDM400 +exten = 105,1,NoOp() +same = n,Dial(DAHDI/g4) +same = n,Hangup() + +; appel via le port FXS 2 de la carte TDM400 +exten = 106,1,NoOp() +same = n,Dial(DAHDI/g5) +same = n,Hangup() + +; appel via le port FXO 1 de la carte TDM400 +exten = 107,1,NoOp() +same = n,Dial(DAHDI/g6) +same = n,Hangup() + +exten = s,1,NoOp() +;same = n,Goto(wait-and-hangup,1) +same = n,Goto(call-loadtester2,1) + +exten = wait-and-hangup,1,NoOp() +same = n,Answer() +same = n,Wait(60) +same = n,Hangup() + +exten = call-loadtester2,1,NoOp() +same = n,Dial(SIP/loadtester2) +same = n,Hangup() + +exten = hangup,1,NoOp() +same = n,Answer() +same = n,Wait(10) +same = n,Hangup() + +[from-internal] +include => default + +[from-pstn] +include => default + +[lol] +include => default + +[loadtest] +exten => s,1,NoOp(Init call for test) +exten => s,n,Answer +exten => s,n,Playback(hello-world) +exten => s,n,Echo +exten => s,n,Hangup + diff --git a/asterisk-load-tests/call_and_hangup/driver/sip.conf b/asterisk-load-tests/call_and_hangup/driver/sip.conf new file mode 100644 index 0000000..98fad2d --- /dev/null +++ b/asterisk-load-tests/call_and_hangup/driver/sip.conf @@ -0,0 +1,1340 @@ +; +; SIP Configuration example for Asterisk +; +; Note: Please read the security documentation for Asterisk in order to +; understand the risks of installing Asterisk with the sample +; configuration. If your Asterisk is installed on a public +; IP address connected to the Internet, you will want to learn +; about the various security settings BEFORE you start +; Asterisk. +; +; Especially note the following settings: +; - allowguest (default enabled) +; - permit/deny - IP address filters +; - contactpermit/contactdeny - IP address filters for registrations +; - context - Which set of services you offer various users +; +; SIP dial strings +;----------------------------------------------------------- +; In the dialplan (extensions.conf) you can use several +; syntaxes for dialing SIP devices. +; SIP/devicename +; SIP/username@domain (SIP uri) +; SIP/username[:password[:md5secret[:authname[:transport]]]]@host[:port] +; SIP/devicename/extension +; SIP/devicename/extension/IPorHost +; SIP/username@domain//IPorHost +; +; +; Devicename +; devicename is defined as a peer in a section below. +; +; username@domain +; Call any SIP user on the Internet +; (Don't forget to enable DNS SRV records if you want to use this) +; +; devicename/extension +; If you define a SIP proxy as a peer below, you may call +; SIP/proxyhostname/user or SIP/user@proxyhostname +; where the proxyhostname is defined in a section below +; This syntax also works with ATA's with FXO ports +; +; SIP/username[:password[:md5secret[:authname]]]@host[:port] +; This form allows you to specify password or md5secret and authname +; without altering any authentication data in config. +; Examples: +; +; SIP/*98@mysipproxy +; SIP/sales:topsecret::account02@domain.com:5062 +; SIP/12345678::bc53f0ba8ceb1ded2b70e05c3f91de4f:myname@192.168.0.1 +; +; IPorHost +; The next server for this call regardless of domain/peer +; +; All of these dial strings specify the SIP request URI. +; In addition, you can specify a specific To: header by adding an +; exclamation mark after the dial string, like +; +; SIP/sales@mysipproxy!sales@edvina.net +; +; A new feature for 1.8 allows one to specify a host or IP address to use +; when routing the call. This is typically used in tandem with func_srv if +; multiple methods of reaching the same domain exist. The host or IP address +; is specified after the third slash in the dialstring. Examples: +; +; SIP/devicename/extension/IPorHost +; SIP/username@domain//IPorHost +; +; CLI Commands +; ------------------------------------------------------------- +; Useful CLI commands to check peers/users: +; sip show peers Show all SIP peers (including friends) +; sip show registry Show status of hosts we register with +; +; sip set debug on Show all SIP messages +; +; sip reload Reload configuration file +; sip show settings Show the current channel configuration +; +;------- Naming devices ------------------------------------------------------ +; +; When naming devices, make sure you understand how Asterisk matches calls +; that come in. +; 1. Asterisk checks the SIP From: address username and matches against +; names of devices with type=user +; The name is the text between square brackets [name] +; 2. Asterisk checks the From: addres and matches the list of devices +; with a type=peer +; 3. Asterisk checks the IP address (and port number) that the INVITE +; was sent from and matches against any devices with type=peer +; +; Don't mix extensions with the names of the devices. Devices need a unique +; name. The device name is *not* used as phone numbers. Phone numbers are +; anything you declare as an extension in the dialplan (extensions.conf). +; +; When setting up trunks, make sure there's no risk that any From: username +; (caller ID) will match any of your device names, because then Asterisk +; might match the wrong device. +; +; Note: The parameter "username" is not the username and in most cases is +; not needed at all. Check below. In later releases, it's renamed +; to "defaultuser" which is a better name, since it is used in +; combination with the "defaultip" setting. +;----------------------------------------------------------------------------- + +; ** Old configuration options ** +; The "call-limit" configuation option is considered old is replaced +; by new functionality. To enable callcounters, you use the new +; "callcounter" setting (for extension states in queue and subscriptions) +; You are encouraged to use the dialplan groupcount functionality +; to enforce call limits instead of using this channel-specific method. +; You can still set limits per device in sip.conf or in a database by using +; "setvar" to set variables that can be used in the dialplan for various limits. + +[general] +context=default ; Default context for incoming calls +canreinvite=no +;allowguest=no ; Allow or reject guest calls (default is yes) + ; If your Asterisk is connected to the Internet + ; and you have allowguest=yes + ; you want to check which services you offer everyone + ; out there, by enabling them in the default context (see below). +;match_auth_username=yes ; if available, match user entry using the + ; 'username' field from the authentication line + ; instead of the From: field. +allowoverlap=no ; Disable overlap dialing support. (Default is yes) +;allowtransfer=no ; Disable all transfers (unless enabled in peers or users) + ; Default is enabled. The Dial() options 't' and 'T' are not + ; related as to whether SIP transfers are allowed or not. +;realm=mydomain.tld ; Realm for digest authentication + ; defaults to "asterisk". If you set a system name in + ; asterisk.conf, it defaults to that system name + ; Realms MUST be globally unique according to RFC 3261 + ; Set this to your host name or domain name +;domainsasrealm=no ; Use domans list as realms + ; You can serve multiple Realms specifying several + ; 'domain=...' directives (see below). + ; In this case Realm will be based on request 'From'/'To' header + ; and should match one of domain names. + ; Otherwise default 'realm=...' will be used. + +; With the current situation, you can do one of four things: +; a) Listen on a specific IPv4 address. Example: bindaddr=192.0.2.1 +; b) Listen on a specific IPv6 address. Example: bindaddr=2001:db8::1 +; c) Listen on the IPv4 wildcard. Example: bindaddr=0.0.0.0 +; d) Listen on the IPv4 and IPv6 wildcards. Example: bindaddr=:: +; (You can choose independently for UDP, TCP, and TLS, by specifying different values for +; "udpbindaddr", "tcpbindaddr", and "tlsbindaddr".) +; (Note that using bindaddr=:: will show only a single IPv6 socket in netstat. +; IPv4 is supported at the same time using IPv4-mapped IPv6 addresses.) +; +; You may optionally add a port number. (The default is port 5060 for UDP and TCP, 5061 +; for TLS). +; IPv4 example: bindaddr=0.0.0.0:5062 +; IPv6 example: bindaddr=[::]:5062 +; +; The address family of the bound UDP address is used to determine how Asterisk performs +; DNS lookups. In cases a) and c) above, only A records are considered. In case b), only +; AAAA records are considered. In case d), both A and AAAA records are considered. Note, +; however, that Asterisk ignores all records except the first one. In case d), when both A +; and AAAA records are available, either an A or AAAA record will be first, and which one +; depends on the operating system. On systems using glibc, AAAA records are given +; priority. + +udpbindaddr=0.0.0.0 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all) + ; Optionally add a port number, 192.168.1.1:5062 (default is port 5060) + +; When a dialog is started with another SIP endpoint, the other endpoint +; should include an Allow header telling us what SIP methods the endpoint +; implements. However, some endpoints either do not include an Allow header +; or lie about what methods they implement. In the former case, Asterisk +; makes the assumption that the endpoint supports all known SIP methods. +; If you know that your SIP endpoint does not provide support for a specific +; method, then you may provide a comma-separated list of methods that your +; endpoint does not implement in the disallowed_methods option. Note that +; if your endpoint is truthful with its Allow header, then there is no need +; to set this option. This option may be set in the general section or may +; be set per endpoint. If this option is set both in the general section and +; in a peer section, then the peer setting completely overrides the general +; setting (i.e. the result is *not* the union of the two options). +; +; Note also that while Asterisk currently will parse an Allow header to learn +; what methods an endpoint supports, the only actual use for this currently +; is for determining if Asterisk may send connected line UPDATE requests. Its +; use may be expanded in the future. +; +; disallowed_methods = UPDATE + +; +; Note that the TCP and TLS support for chan_sip is currently considered +; experimental. Since it is new, all of the related configuration options are +; subject to change in any release. If they are changed, the changes will +; be reflected in this sample configuration file, as well as in the UPGRADE.txt file. +; +tcpenable=no ; Enable server for incoming TCP connections (default is no) +tcpbindaddr=0.0.0.0 ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces) + ; Optionally add a port number, 192.168.1.1:5062 (default is port 5060) + +;tlsenable=no ; Enable server for incoming TLS (secure) connections (default is no) +;tlsbindaddr=0.0.0.0 ; IP address for TLS server to bind to (0.0.0.0) binds to all interfaces) + ; Optionally add a port number, 192.168.1.1:5063 (default is port 5061) + ; Remember that the IP address must match the common name (hostname) in the + ; certificate, so you don't want to bind a TLS socket to multiple IP addresses. + ; For details how to construct a certificate for SIP see + ; http://tools.ietf.org/html/draft-ietf-sip-domain-certs + +srvlookup=yes ; Enable DNS SRV lookups on outbound calls + ; Note: Asterisk only uses the first host + ; in SRV records + ; Disabling DNS SRV lookups disables the + ; ability to place SIP calls based on domain + ; names to some other SIP users on the Internet + ; Specifying a port in a SIP peer definition or + ; when dialing outbound calls will supress SRV + ; lookups for that peer or call. + +;pedantic=yes ; Enable checking of tags in headers, + ; international character conversions in URIs + ; and multiline formatted headers for strict + ; SIP compatibility (defaults to "no") + +; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters. +;tos_sip=cs3 ; Sets TOS for SIP packets. +;tos_audio=ef ; Sets TOS for RTP audio packets. +;tos_video=af41 ; Sets TOS for RTP video packets. +;tos_text=af41 ; Sets TOS for RTP text packets. + +;cos_sip=3 ; Sets 802.1p priority for SIP packets. +;cos_audio=5 ; Sets 802.1p priority for RTP audio packets. +;cos_video=4 ; Sets 802.1p priority for RTP video packets. +;cos_text=3 ; Sets 802.1p priority for RTP text packets. + +;maxexpiry=3600 ; Maximum allowed time of incoming registrations + ; and subscriptions (seconds) +;minexpiry=60 ; Minimum length of registrations/subscriptions (default 60) +;defaultexpiry=120 ; Default length of incoming/outgoing registration +;mwiexpiry=3600 ; Expiry time for outgoing MWI subscriptions +;maxforwards=70 ; Setting for the SIP Max-Forwards: header (loop prevention) + ; Default value is 70 +;qualifyfreq=60 ; Qualification: How often to check for the host to be up in seconds + ; Set to low value if you use low timeout for NAT of UDP sessions + ; Default: 60 +;qualifygap=100 ; Number of milliseconds between each group of peers being qualified + ; Default: 100 +;qualifypeers=1 ; Number of peers in a group to be qualified at the same time + ; Default: 1 +;notifymimetype=text/plain ; Allow overriding of mime type in MWI NOTIFY +;buggymwi=no ; Cisco SIP firmware doesn't support the MWI RFC + ; fully. Enable this option to not get error messages + ; when sending MWI to phones with this bug. +;mwi_from=asterisk ; When sending MWI NOTIFY requests, use this setting in + ; the From: header as the "name" portion. Also fill the + ; "user" portion of the URI in the From: header with this + ; value if no fromuser is set + ; Default: empty +;vmexten=voicemail ; dialplan extension to reach mailbox sets the + ; Message-Account in the MWI notify message + ; defaults to "asterisk" + +;preferred_codec_only=yes ; Respond to a SIP invite with the single most preferred codec + ; rather than advertising all joint codec capabilities. This + ; limits the other side's codec choice to exactly what we prefer. + +;disallow=all ; First disallow all codecs +;allow=ulaw ; Allow codecs in order of preference +;allow=ilbc ; see doc/rtp-packetization for framing options +; +; This option specifies a preference for which music on hold class this channel +; should listen to when put on hold if the music class has not been set on the +; channel with Set(CHANNEL(musicclass)=whatever) in the dialplan, and the peer +; channel putting this one on hold did not suggest a music class. +; +; This option may be specified globally, or on a per-user or per-peer basis. +; +;mohinterpret=default +; +; This option specifies which music on hold class to suggest to the peer channel +; when this channel places the peer on hold. It may be specified globally or on +; a per-user or per-peer basis. +; +;mohsuggest=default +; +;parkinglot=plaza ; Sets the default parking lot for call parking + ; This may also be set for individual users/peers + ; Parkinglots are configured in features.conf +;language=en ; Default language setting for all users/peers + ; This may also be set for individual users/peers +;relaxdtmf=yes ; Relax dtmf handling +;trustrpid = no ; If Remote-Party-ID should be trusted +;sendrpid = yes ; If Remote-Party-ID should be sent (defaults to no) +;sendrpid = rpid ; Use the "Remote-Party-ID" header + ; to send the identity of the remote party + ; This is identical to sendrpid=yes +;sendrpid = pai ; Use the "P-Asserted-Identity" header + ; to send the identity of the remote party +;rpid_update = no ; In certain cases, the only method by which a connected line + ; change may be immediately transmitted is with a SIP UPDATE request. + ; If communicating with another Asterisk server, and you wish to be able + ; transmit such UPDATE messages to it, then you must enable this option. + ; Otherwise, we will have to wait until we can send a reinvite to + ; transmit the information. +;prematuremedia=no ; Some ISDN links send empty media frames before + ; the call is in ringing or progress state. The SIP + ; channel will then send 183 indicating early media + ; which will be empty - thus users get no ring signal. + ; Setting this to "yes" will stop any media before we have + ; call progress (meaning the SIP channel will not send 183 Session + ; Progress for early media). Default is "yes". Also make sure that + ; the SIP peer is configured with progressinband=never. + ; + ; In order for "noanswer" applications to work, you need to run + ; the progress() application in the priority before the app. + +;progressinband=never ; If we should generate in-band ringing always + ; use 'never' to never use in-band signalling, even in cases + ; where some buggy devices might not render it + ; Valid values: yes, no, never Default: never +;useragent=Asterisk PBX ; Allows you to change the user agent string + ; The default user agent string also contains the Asterisk + ; version. If you don't want to expose this, change the + ; useragent string. +;promiscredir = no ; If yes, allows 302 or REDIR to non-local SIP address + ; Note that promiscredir when redirects are made to the + ; local system will cause loops since Asterisk is incapable + ; of performing a "hairpin" call. +;usereqphone = no ; If yes, ";user=phone" is added to uri that contains + ; a valid phone number +;dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833 + ; Other options: + ; info : SIP INFO messages (application/dtmf-relay) + ; shortinfo : SIP INFO messages (application/dtmf) + ; inband : Inband audio (requires 64 kbit codec -alaw, ulaw) + ; auto : Use rfc2833 if offered, inband otherwise + +;compactheaders = yes ; send compact sip headers. +; +;videosupport=yes ; Turn on support for SIP video. You need to turn this + ; on in this section to get any video support at all. + ; You can turn it off on a per peer basis if the general + ; video support is enabled, but you can't enable it for + ; one peer only without enabling in the general section. + ; If you set videosupport to "always", then RTP ports will + ; always be set up for video, even on clients that don't + ; support it. This assists callfile-derived calls and + ; certain transferred calls to use always use video when + ; available. [yes|NO|always] + +;maxcallbitrate=384 ; Maximum bitrate for video calls (default 384 kb/s) + ; Videosupport and maxcallbitrate is settable + ; for peers and users as well +;callevents=no ; generate manager events when sip ua + ; performs events (e.g. hold) +;authfailureevents=no ; generate manager "peerstatus" events when peer can't + ; authenticate with Asterisk. Peerstatus will be "rejected". +;alwaysauthreject = yes ; When an incoming INVITE or REGISTER is to be rejected, + ; for any reason, always reject with an identical response + ; equivalent to valid username and invalid password/hash + ; instead of letting the requester know whether there was + ; a matching user or peer for their request. This reduces + ; the ability of an attacker to scan for valid SIP usernames. + +;g726nonstandard = yes ; If the peer negotiates G726-32 audio, use AAL2 packing + ; order instead of RFC3551 packing order (this is required + ; for Sipura and Grandstream ATAs, among others). This is + ; contrary to the RFC3551 specification, the peer _should_ + ; be negotiating AAL2-G726-32 instead :-( +;outboundproxy=proxy.provider.domain ; send outbound signaling to this proxy, not directly to the devices +;outboundproxy=proxy.provider.domain:8080 ; send outbound signaling to this proxy, not directly to the devices +;outboundproxy=proxy.provider.domain,force ; Send ALL outbound signalling to proxy, ignoring route: headers +;outboundproxy=tls://proxy.provider.domain ; same as '=proxy.provider.domain' except we try to connect with tls +; ; (could also be tcp,udp) - defining transports on the proxy line only +; ; applies for the global proxy, otherwise use the transport= option +;matchexternaddrlocally = yes ; Only substitute the externaddr or externhost setting if it matches + ; your localnet setting. Unless you have some sort of strange network + ; setup you will not need to enable this. + +;dynamic_exclude_static = yes ; Disallow all dynamic hosts from registering + ; as any IP address used for staticly defined + ; hosts. This helps avoid the configuration + ; error of allowing your users to register at + ; the same address as a SIP provider. + +;contactdeny=0.0.0.0/0.0.0.0 ; Use contactpermit and contactdeny to +;contactpermit=172.16.0.0/255.255.0.0 ; restrict at what IPs your users may + ; register their phones. + +;engine=asterisk ; RTP engine to use when communicating with the device + +; +; If regcontext is specified, Asterisk will dynamically create and destroy a +; NoOp priority 1 extension for a given peer who registers or unregisters with +; us and have a "regexten=" configuration item. +; Multiple contexts may be specified by separating them with '&'. The +; actual extension is the 'regexten' parameter of the registering peer or its +; name if 'regexten' is not provided. If more than one context is provided, +; the context must be specified within regexten by appending the desired +; context after '@'. More than one regexten may be supplied if they are +; separated by '&'. Patterns may be used in regexten. +; +;regcontext=sipregistrations +;regextenonqualify=yes ; Default "no" + ; If you have qualify on and the peer becomes unreachable + ; this setting will enforce inactivation of the regexten + ; extension for the peer + +; The shrinkcallerid function removes '(', ' ', ')', non-trailing '.', and '-' not +; in square brackets. For example, the caller id value 555.5555 becomes 5555555 +; when this option is enabled. Disabling this option results in no modification +; of the caller id value, which is necessary when the caller id represents something +; that must be preserved. This option can only be used in the [general] section. +; By default this option is on. +; +;shrinkcallerid=yes ; on by default + + +;use_q850_reason = no ; Default "no" + ; Set to yes add Reason header and use Reason header if it is available. +; +;------------------------ TLS settings ------------------------------------------------------------ +;tlscertfile= ; Certificate file (*.pem format only) to use for TLS connections + ; default is to look for "asterisk.pem" in current directory + +;tlsprivatekey= ; Private key file (*.pem format only) for TLS connections. + ; If no tlsprivatekey is specified, tlscertfile is searched for + ; for both public and private key. + +;tlscafile= +; If the server your connecting to uses a self signed certificate +; you should have their certificate installed here so the code can +; verify the authenticity of their certificate. + +;tlscadir= +; A directory full of CA certificates. The files must be named with +; the CA subject name hash value. +; (see man SSL_CTX_load_verify_locations for more info) + +;tlsdontverifyserver=[yes|no] +; If set to yes, don't verify the servers certificate when acting as +; a client. If you don't have the server's CA certificate you can +; set this and it will connect without requiring tlscafile to be set. +; Default is no. + +;tlscipher= +; A string specifying which SSL ciphers to use or not use +; A list of valid SSL cipher strings can be found at: +; http://www.openssl.org/docs/apps/ciphers.html#CIPHER_STRINGS +; +;tlsclientmethod=tlsv1 ; values include tlsv1, sslv3, sslv2. + ; Specify protocol for outbound client connections. + ; If left unspecified, the default is sslv2. +; +;--------------------------- SIP timers ---------------------------------------------------- +; These timers are used primarily in INVITE transactions. +; The default for Timer T1 is 500 ms or the measured run-trip time between +; Asterisk and the device if you have qualify=yes for the device. +; +;t1min=100 ; Minimum roundtrip time for messages to monitored hosts + ; Defaults to 100 ms +;timert1=500 ; Default T1 timer + ; Defaults to 500 ms or the measured round-trip + ; time to a peer (qualify=yes). +;timerb=32000 ; Call setup timer. If a provisional response is not received + ; in this amount of time, the call will autocongest + ; Defaults to 64*timert1 + +;--------------------------- RTP timers ---------------------------------------------------- +; These timers are currently used for both audio and video streams. The RTP timeouts +; are only applied to the audio channel. +; The settings are settable in the global section as well as per device +; +;rtptimeout=60 ; Terminate call if 60 seconds of no RTP or RTCP activity + ; on the audio channel + ; when we're not on hold. This is to be able to hangup + ; a call in the case of a phone disappearing from the net, + ; like a powerloss or grandma tripping over a cable. +;rtpholdtimeout=300 ; Terminate call if 300 seconds of no RTP or RTCP activity + ; on the audio channel + ; when we're on hold (must be > rtptimeout) +;rtpkeepalive= ; Send keepalives in the RTP stream to keep NAT open + ; (default is off - zero) + +;--------------------------- SIP Session-Timers (RFC 4028)------------------------------------ +; SIP Session-Timers provide an end-to-end keep-alive mechanism for active SIP sessions. +; This mechanism can detect and reclaim SIP channels that do not terminate through normal +; signaling procedures. Session-Timers can be configured globally or at a user/peer level. +; The operation of Session-Timers is driven by the following configuration parameters: +; +; * session-timers - Session-Timers feature operates in the following three modes: +; originate : Request and run session-timers always +; accept : Run session-timers only when requested by other UA +; refuse : Do not run session timers in any case +; The default mode of operation is 'accept'. +; * session-expires - Maximum session refresh interval in seconds. Defaults to 1800 secs. +; * session-minse - Minimum session refresh interval in seconds. Defualts to 90 secs. +; * session-refresher - The session refresher (uac|uas). Defaults to 'uas'. +; +;session-timers=originate +;session-expires=600 +;session-minse=90 +;session-refresher=uas +; +;--------------------------- SIP DEBUGGING --------------------------------------------------- +;sipdebug = yes ; Turn on SIP debugging by default, from + ; the moment the channel loads this configuration +;recordhistory=yes ; Record SIP history by default + ; (see sip history / sip no history) +;dumphistory=yes ; Dump SIP history at end of SIP dialogue + ; SIP history is output to the DEBUG logging channel + + +;--------------------------- STATUS NOTIFICATIONS (SUBSCRIPTIONS) ---------------------------- +; You can subscribe to the status of extensions with a "hint" priority +; (See extensions.conf.sample for examples) +; chan_sip support two major formats for notifications: dialog-info and SIMPLE +; +; You will get more detailed reports (busy etc) if you have a call counter enabled +; for a device. +; +; If you set the busylevel, we will indicate busy when we have a number of calls that +; matches the busylevel treshold. +; +; For queues, you will need this level of detail in status reporting, regardless +; if you use SIP subscriptions. Queues and manager use the same internal interface +; for reading status information. +; +; Note: Subscriptions does not work if you have a realtime dialplan and use the +; realtime switch. +; +;allowsubscribe=no ; Disable support for subscriptions. (Default is yes) +;subscribecontext = default ; Set a specific context for SUBSCRIBE requests + ; Useful to limit subscriptions to local extensions + ; Settable per peer/user also +;notifyringing = no ; Control whether subscriptions already INUSE get sent + ; RINGING when another call is sent (default: yes) +;notifyhold = yes ; Notify subscriptions on HOLD state (default: no) + ; Turning on notifyringing and notifyhold will add a lot + ; more database transactions if you are using realtime. +;notifycid = yes ; Control whether caller ID information is sent along with + ; dialog-info+xml notifications (supported by snom phones). + ; Note that this feature will only work properly when the + ; incoming call is using the same extension and context that + ; is being used as the hint for the called extension. This means + ; that it won't work when using subscribecontext for your sip + ; user or peer (if subscribecontext is different than context). + ; This is also limited to a single caller, meaning that if an + ; extension is ringing because multiple calls are incoming, + ; only one will be used as the source of caller ID. Specify + ; 'ignore-context' to ignore the called context when looking + ; for the caller's channel. The default value is 'no.' Setting + ; notifycid to 'ignore-context' also causes call-pickups attempted + ; via SNOM's NOTIFY mechanism to set the context for the call pickup + ; to PICKUPMARK. +;callcounter = yes ; Enable call counters on devices. This can be set per + ; device too. + +;----------------------------------------- T.38 FAX SUPPORT ---------------------------------- +; +; This setting is available in the [general] section as well as in device configurations. +; Setting this to yes enables T.38 FAX (UDPTL) on SIP calls; it defaults to off. +; +; t38pt_udptl = yes ; Enables T.38 with FEC error correction. +; t38pt_udptl = yes,fec ; Enables T.38 with FEC error correction. +; t38pt_udptl = yes,redundancy ; Enables T.38 with redundancy error correction. +; t38pt_udptl = yes,none ; Enables T.38 with no error correction. +; +; In some cases, T.38 endpoints will provide a T38FaxMaxDatagram value (during T.38 setup) that +; is based on an incorrect interpretation of the T.38 recommendation, and results in failures +; because Asterisk does not believe it can send T.38 packets of a reasonable size to that +; endpoint (Cisco media gateways are one example of this situation). In these cases, during a +; T.38 call you will see warning messages on the console/in the logs from the Asterisk UDPTL +; stack complaining about lack of buffer space to send T.38 FAX packets. If this occurs, you +; can set an override (globally, or on a per-device basis) to make Asterisk ignore the +; T38FaxMaxDatagram value specified by the other endpoint, and use a configured value instead. +; This can be done by appending 'maxdatagram=' to the t38pt_udptl configuration option, +; like this: +; +; t38pt_udptl = yes,fec,maxdatagram=400 ; Enables T.38 with FEC error correction and overrides +; ; the other endpoint's provided value to assume we can +; ; send 400 byte T.38 FAX packets to it. +; +; FAX detection will cause the SIP channel to jump to the 'fax' extension (if it exists) +; based one or more events being detected. The events that can be detected are an incoming +; CNG tone or an incoming T.38 re-INVITE request. +; +; faxdetect = yes ; Default 'no', 'yes' enables both CNG and T.38 detection +; faxdetect = cng ; Enables only CNG detection +; faxdetect = t38 ; Enables only T.38 detection +; +;----------------------------------------- OUTBOUND SIP REGISTRATIONS ------------------------ +; Asterisk can register as a SIP user agent to a SIP proxy (provider) +; Format for the register statement is: +; register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] + +;register => 666:666:666@tolapai + +; +; +; +; domain is either +; - domain in DNS +; - host name in DNS +; - the name of a peer defined below or in realtime +; The domain is where you register your username, so your SIP uri you are registering to +; is username@domain +; +; If no extension is given, the 's' extension is used. The extension needs to +; be defined in extensions.conf to be able to accept calls from this SIP proxy +; (provider). +; +; A similar effect can be achieved by adding a "callbackextension" option in a peer section. +; this is equivalent to having the following line in the general section: +; +; register => username:secret@host/callbackextension +; +; and more readable because you don't have to write the parameters in two places +; (note that the "port" is ignored - this is a bug that should be fixed). +; +; Note that a register= line doesn't mean that we will match the incoming call in any +; other way than described above. If you want to control where the call enters your +; dialplan, which context, you want to define a peer with the hostname of the provider's +; server. If the provider has multiple servers to place calls to your system, you need +; a peer for each server. +; +; Beginning with Asterisk version 1.6.2, the "user" portion of the register line may +; contain a port number. Since the logical separator between a host and port number is a +; ':' character, and this character is already used to separate between the optional "secret" +; and "authuser" portions of the line, there is a bit of a hoop to jump through if you wish +; to use a port here. That is, you must explicitly provide a "secret" and "authuser" even if +; they are blank. See the third example below for an illustration. +; +; +; Examples: +; +;register => 1234:password@mysipprovider.com +; +; This will pass incoming calls to the 's' extension +; +; +;register => 2345:password@sip_proxy/1234 +; +; Register 2345 at sip provider 'sip_proxy'. Calls from this provider +; connect to local extension 1234 in extensions.conf, default context, +; unless you configure a [sip_proxy] section below, and configure a +; context. +; Tip 1: Avoid assigning hostname to a sip.conf section like [provider.com] +; Tip 2: Use separate inbound and outbound sections for SIP providers +; (instead of type=friend) if you have calls in both directions +; +;register => 3456@mydomain:5082::@mysipprovider.com +; +; Note that in this example, the optional authuser and secret portions have +; been left blank because we have specified a port in the user section +; +;register => tls://username:xxxxxx@sip-tls-proxy.example.org +; +; The 'transport' part defaults to 'udp' but may also be 'tcp' or 'tls'. +; Using 'udp://' explicitly is also useful in case the username part +; contains a '/' ('user/name'). + +;registertimeout=20 ; retry registration calls every 20 seconds (default) +;registerattempts=10 ; Number of registration attempts before we give up + ; 0 = continue forever, hammering the other server + ; until it accepts the registration + ; Default is 0 tries, continue forever + +;----------------------------------------- OUTBOUND MWI SUBSCRIPTIONS ------------------------- +; Asterisk can subscribe to receive the MWI from another SIP server and store it locally for retrieval +; by other phones. +; Format for the mwi register statement is: +; mwi => user[:secret[:authuser]]@host[:port][/mailbox] +; +; Examples: +;mwi => 1234:password@mysipprovider.com/1234 +; +; MWI received will be stored in the 1234 mailbox of the SIP_Remote context. It can be used by other phones by following the below: +; mailbox=1234@SIP_Remote +;----------------------------------------- NAT SUPPORT ------------------------ +; +; WARNING: SIP operation behind a NAT is tricky and you really need +; to read and understand well the following section. +; +; When Asterisk is behind a NAT device, the "local" address (and port) that +; a socket is bound to has different values when seen from the inside or +; from the outside of the NATted network. Unfortunately this address must +; be communicated to the outside (e.g. in SIP and SDP messages), and in +; order to determine the correct value Asterisk needs to know: +; +; + whether it is talking to someone "inside" or "outside" of the NATted network. +; This is configured by assigning the "localnet" parameter with a list +; of network addresses that are considered "inside" of the NATted network. +; IF LOCALNET IS NOT SET, THE EXTERNAL ADDRESS WILL NOT BE SET CORRECTLY. +; Multiple entries are allowed, e.g. a reasonable set is the following: +; +; localnet=192.168.0.0/255.255.0.0 ; RFC 1918 addresses +; localnet=10.0.0.0/255.0.0.0 ; Also RFC1918 +; localnet=172.16.0.0/12 ; Another RFC1918 with CIDR notation +; localnet=169.254.0.0/255.255.0.0 ; Zero conf local network +; +; + the "externally visible" address and port number to be used when talking +; to a host outside the NAT. This information is derived by one of the +; following (mutually exclusive) config file parameters: +; +; a. "externaddr = hostname[:port]" specifies a static address[:port] to +; be used in SIP and SDP messages. +; The hostname is looked up only once, when [re]loading sip.conf . +; If a port number is not present, use the port specified in the "udpbindaddr" +; (which is not guaranteed to work correctly, because a NAT box might remap the +; port number as well as the address). +; This approach can be useful if you have a NAT device where you can +; configure the mapping statically. Examples: +; +; externaddr = 12.34.56.78 ; use this address. +; externaddr = 12.34.56.78:9900 ; use this address and port. +; externaddr = mynat.my.org:12600 ; Public address of my nat box. +; externtcpport = 9900 ; The externally mapped tcp port, when Asterisk is behind a static NAT or PAT. +; ; externtcpport will default to the externaddr or externhost port if either one is set. +; externtlsport = 12600 ; The externally mapped tls port, when Asterisk is behind a static NAT or PAT. +; ; externtlsport port will default to the RFC designated port of 5061. +; +; b. "externhost = hostname[:port]" is similar to "externaddr" except +; that the hostname is looked up every "externrefresh" seconds +; (default 10s). This can be useful when your NAT device lets you choose +; the port mapping, but the IP address is dynamic. +; Beware, you might suffer from service disruption when the name server +; resolution fails. Examples: +; +; externhost=foo.dyndns.net ; refreshed periodically +; externrefresh=180 ; change the refresh interval +; +; c. "stunaddr = stun.server[:port]" queries the STUN server specified +; as an argument to obtain the external address/port. +; Queries are also sent periodically every "externrefresh" seconds +; (as a side effect, sending the query also acts as a keepalive for +; the state entry on the nat box): +; +; stunaddr = foo.stun.com:3478 +; externrefresh = 15 +; +; NOTE: STUN is only implemented for IPv4. +; +; Note that at the moment all these mechanism work only for the SIP socket. +; The IP address discovered with externaddr/externhost/STUN is reused for +; media sessions as well, but the port numbers are not remapped so you +; may still experience problems. +; +; NOTE 1: in some cases, NAT boxes will use different port numbers in +; the internal<->external mapping. In these cases, the "externaddr" and +; "externhost" might not help you configure addresses properly, and you +; really need to use STUN. +; +; NOTE 2: when using "externaddr" or "externhost", the address part is +; also used as the external address for media sessions. Even if you +; use "stunaddr", STUN queries will be sent only from the SIP port, +; not from media sockets. Thus, the port information in the SDP may be wrong! +; +; In addition to the above, Asterisk has an additional "nat" parameter to +; address NAT-related issues in incoming SIP or media sessions. +; In particular, depending on the 'nat= ' settings described below, Asterisk +; may override the address/port information specified in the SIP/SDP messages, +; and use the information (sender address) supplied by the network stack instead. +; However, this is only useful if the external traffic can reach us. +; The following settings are allowed (both globally and in individual sections): +; +; nat = no ; Default. Use rport if the remote side says to use it. +; nat = force_rport ; Force rport to always be on. +; nat = yes ; Force rport to always be on and perform comedia RTP handling. +; nat = comedia ; Use rport if the remote side says to use it and perform comedia RTP handling. +; +; 'comedia RTP handling' refers to the technique of sending RTP to the port that the +; the other endpoint's RTP arrived from, and means 'connection-oriented media'. This is +; only partially related to RFC 4145 which was referred to as COMEDIA while it was in +; draft form. This method is used to accomodate endpoints that may be located behind +; NAT devices, and as such the port number they tell Asterisk to send RTP packets to +; for their media streams is not actual port number that will be used on the nearer +; side of the NAT. +; +; In addition to these settings, Asterisk *always* uses 'symmetric RTP' mode as defined by +; RFC 4961; Asterisk will always send RTP packets from the same port number it expects +; to receive them on. +; +; The IP address used for media (audio, video, and text) in the SDP can also be overridden by using +; the media_address configuration option. This is only applicable to the general section and +; can not be set per-user or per-peer. +; +; media_address = 172.16.42.1 + +;----------------------------------- MEDIA HANDLING -------------------------------- +; By default, Asterisk tries to re-invite media streams to an optimal path. If there's +; no reason for Asterisk to stay in the media path, the media will be redirected. +; This does not really work well in the case where Asterisk is outside and the +; clients are on the inside of a NAT. In that case, you want to set directmedia=nonat. +; +;directmedia=yes ; Asterisk by default tries to redirect the + ; RTP media stream to go directly from + ; the caller to the callee. Some devices do not + ; support this (especially if one of them is behind a NAT). + ; The default setting is YES. If you have all clients + ; behind a NAT, or for some other reason want Asterisk to + ; stay in the audio path, you may want to turn this off. + + ; This setting also affect direct RTP + ; at call setup (a new feature in 1.4 - setting up the + ; call directly between the endpoints instead of sending + ; a re-INVITE). + + ; Additionally this option does not disable all reINVITE operations. + ; It only controls Asterisk generating reINVITEs for the specific + ; purpose of setting up a direct media path. If a reINVITE is + ; needed to switch a media stream to inactive (when placed on + ; hold) or to T.38, it will still be done, regardless of this + ; setting. Note that direct T.38 is not supported. + +;directmedia=nonat ; An additional option is to allow media path redirection + ; (reinvite) but only when the peer where the media is being + ; sent is known to not be behind a NAT (as the RTP core can + ; determine it based on the apparent IP address the media + ; arrives from). + +;directmedia=update ; Yet a third option... use UPDATE for media path redirection, + ; instead of INVITE. This can be combined with 'nonat', as + ; 'directmedia=update,nonat'. It implies 'yes'. + +;directrtpsetup=yes ; Enable the new experimental direct RTP setup. This sets up + ; the call directly with media peer-2-peer without re-invites. + ; Will not work for video and cases where the callee sends + ; RTP payloads and fmtp headers in the 200 OK that does not match the + ; callers INVITE. This will also fail if directmedia is enabled when + ; the device is actually behind NAT. + +;directmediadeny=0.0.0.0/0 ; Use directmediapermit and directmediadeny to restrict +;directmediapermit=172.16.0.0/16; which peers should be able to pass directmedia to each other + ; (There is no default setting, this is just an example) + ; Use this if some of your phones are on IP addresses that + ; can not reach each other directly. This way you can force + ; RTP to always flow through asterisk in such cases. + +;ignoresdpversion=yes ; By default, Asterisk will honor the session version + ; number in SDP packets and will only modify the SDP + ; session if the version number changes. This option will + ; force asterisk to ignore the SDP session version number + ; and treat all SDP data as new data. This is required + ; for devices that send us non standard SDP packets + ; (observed with Microsoft OCS). By default this option is + ; off. + +;sdpsession=Asterisk PBX ; Allows you to change the SDP session name string, (s=) + ; Like the useragent parameter, the default user agent string + ; also contains the Asterisk version. +;sdpowner=root ; Allows you to change the username field in the SDP owner string, (o=) + ; This field MUST NOT contain spaces + +;----------------------------------------- REALTIME SUPPORT ------------------------ +; For additional information on ARA, the Asterisk Realtime Architecture, +; please read realtime.txt and extconfig.txt in the /doc directory of the +; source code. +; +;rtcachefriends=yes ; Cache realtime friends by adding them to the internal list + ; just like friends added from the config file only on a + ; as-needed basis? (yes|no) + +;rtsavesysname=yes ; Save systemname in realtime database at registration + ; Default= no + +;rtupdate=yes ; Send registry updates to database using realtime? (yes|no) + ; If set to yes, when a SIP UA registers successfully, the ip address, + ; the origination port, the registration period, and the username of + ; the UA will be set to database via realtime. + ; If not present, defaults to 'yes'. Note: realtime peers will + ; probably not function across reloads in the way that you expect, if + ; you turn this option off. +;rtautoclear=yes ; Auto-Expire friends created on the fly on the same schedule + ; as if it had just registered? (yes|no|) + ; If set to yes, when the registration expires, the friend will + ; vanish from the configuration until requested again. If set + ; to an integer, friends expire within this number of seconds + ; instead of the registration interval. + +;ignoreregexpire=yes ; Enabling this setting has two functions: + ; + ; For non-realtime peers, when their registration expires, the + ; information will _not_ be removed from memory or the Asterisk database + ; if you attempt to place a call to the peer, the existing information + ; will be used in spite of it having expired + ; + ; For realtime peers, when the peer is retrieved from realtime storage, + ; the registration information will be used regardless of whether + ; it has expired or not; if it expires while the realtime peer + ; is still in memory (due to caching or other reasons), the + ; information will not be removed from realtime storage + +;----------------------------------------- SIP DOMAIN SUPPORT ------------------------ +; Incoming INVITE and REFER messages can be matched against a list of 'allowed' +; domains, each of which can direct the call to a specific context if desired. +; By default, all domains are accepted and sent to the default context or the +; context associated with the user/peer placing the call. +; REGISTER to non-local domains will be automatically denied if a domain +; list is configured. +; +; Domains can be specified using: +; domain=[,] +; Examples: +; domain=myasterisk.dom +; domain=customer.com,customer-context +; +; In addition, all the 'default' domains associated with a server should be +; added if incoming request filtering is desired. +; autodomain=yes +; +; To disallow requests for domains not serviced by this server: +; allowexternaldomains=no + +;domain=mydomain.tld,mydomain-incoming + ; Add domain and configure incoming context + ; for external calls to this domain +;domain=1.2.3.4 ; Add IP address as local domain + ; You can have several "domain" settings +;allowexternaldomains=no ; Disable INVITE and REFER to non-local domains + ; Default is yes +;autodomain=yes ; Turn this on to have Asterisk add local host + ; name and local IP to domain list. + +; fromdomain=mydomain.tld ; When making outbound SIP INVITEs to + ; non-peers, use your primary domain "identity" + ; for From: headers instead of just your IP + ; address. This is to be polite and + ; it may be a mandatory requirement for some + ; destinations which do not have a prior + ; account relationship with your server. + +;------------------------------ Advice of Charge CONFIGURATION -------------------------- +; snom_aoc_enabled = yes; ; This options turns on and off support for sending AOC-D and + ; AOC-E to snom endpoints. This option can be used both in the + ; peer and global scope. The default for this option is off. + + +;------------------------------ 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". +;----------------------------------------------------------------------------------- + +[authentication] +; Global credentials for outbound calls, i.e. when a proxy challenges your +; Asterisk server for authentication. These credentials override +; any credentials in peer/register definition if realm is matched. +; +; This way, Asterisk can authenticate for outbound calls to other +; realms. We match realm on the proxy challenge and pick an set of +; credentials from this list +; Syntax: +; auth = :@ +; auth = #@ +; Example: +auth=666:666@tolapai +; +; You may also add auth= statements to [peer] definitions +; Peer auth= override all other authentication settings if we match on realm + +;------------------------------------------------------------------------------ +; DEVICE CONFIGURATION +; +; The SIP channel has two types of devices, the friend and the peer. +; * The type=friend is a device type that accepts both incoming and outbound calls, +; where Asterisk match on the From: username on incoming calls. +; (A synonym for friend is "user"). This is a type you use for your local +; SIP phones. +; * The type=peer also handles both incoming and outbound calls. On inbound calls, +; Asterisk only matches on IP/port, not on names. This is mostly used for SIP +; trunks. +; +; For device names, we recommend using only a-z, numerics (0-9) and underscore +; +; For local phones, type=friend works most of the time +; +; If you have one-way audio, you probably have NAT problems. +; If Asterisk is on a public IP, and the phone is inside of a NAT device +; you will need to configure nat option for those phones. +; Also, turn on qualify=yes to keep the nat session open +; +; Configuration options available +; -------------------- +; context +; callingpres +; permit +; deny +; secret +; md5secret +; remotesecret +; transport +; dtmfmode +; directmedia +; nat +; callgroup +; pickupgroup +; language +; allow +; disallow +; insecure +; trustrpid +; progressinband +; promiscredir +; useclientcode +; accountcode +; setvar +; callerid +; amaflags +; callcounter +; busylevel +; allowoverlap +; allowsubscribe +; allowtransfer +; ignoresdpversion +; subscribecontext +; template +; videosupport +; maxcallbitrate +; rfc2833compensate +; mailbox +; session-timers +; session-expires +; session-minse +; session-refresher +; t38pt_usertpsource +; regexten +; fromdomain +; fromuser +; host +; port +; qualify +; defaultip +; defaultuser +; rtptimeout +; rtpholdtimeout +; sendrpid +; outboundproxy +; rfc2833compensate +; callbackextension +; registertrying +; timert1 +; timerb +; qualifyfreq +; t38pt_usertpsource +; contactpermit ; Limit what a host may register as (a neat trick +; contactdeny ; is to register at the same IP as a SIP provider, +; ; then call oneself, and get redirected to that +; ; same location). +; directmediapermit +; directmediadeny +; unsolicited_mailbox +; use_q850_reason +; maxforwards + +;[sip_proxy] +; For incoming calls only. Example: FWD (Free World Dialup) +; We match on IP address of the proxy for incoming calls +; since we can not match on username (caller id) +;type=peer +;context=from-fwd +;host=fwd.pulver.com + +;[sip_proxy-out] +;type=peer ; we only want to call out, not be called +;remotesecret=guessit ; Our password to their service +;defaultuser=yourusername ; Authentication user for outbound proxies +;fromuser=yourusername ; Many SIP providers require this! +;fromdomain=provider.sip.domain +;host=box.provider.com +;transport=udp,tcp ; This sets the default transport type to udp for outgoing, and will +; ; accept both tcp and udp. The default transport type is only used for +; ; outbound messages until a Registration takes place. During the +; ; peer Registration the transport type may change to another supported +; ; type if the peer requests so. + +;usereqphone=yes ; This provider requires ";user=phone" on URI +;callcounter=yes ; Enable call counter +;busylevel=2 ; Signal busy at 2 or more calls +;outboundproxy=proxy.provider.domain ; send outbound signaling to this proxy, not directly to the peer +;port=80 ; The port number we want to connect to on the remote side + ; Also used as "defaultport" in combination with "defaultip" settings + +;--- sample definition for a provider +;[provider1] +;type=peer +;host=sip.provider1.com +;fromuser=4015552299 ; how your provider knows you +;remotesecret=youwillneverguessit ; The password we use to authenticate to them +;secret=gissadetdu ; The password they use to contact us +;callbackextension=123 ; Register with this server and require calls coming back to this extension +;transport=udp,tcp ; This sets the transport type to udp for outgoing, and will +; ; accept both tcp and udp. Default is udp. The first transport +; ; listed will always be used for outgoing connections. +;unsolicited_mailbox=4015552299 ; If the remote SIP server sends an unsolicited MWI NOTIFY message the new/old +; ; message count will be stored in the configured virtual mailbox. It can be used +; ; by any device supporting MWI by specifying @SIP_Remote as the +; ; mailbox. + +; +; Because you might have a large number of similar sections, it is generally +; convenient to use templates for the common parameters, and add them +; the the various sections. Examples are below, and we can even leave +; the templates uncommented as they will not harm: + +[basic-options](!) ; a template + dtmfmode=rfc2833 + context=from-office + type=friend + +[natted-phone](!,basic-options) ; another template inheriting basic-options + nat=yes + directmedia=no + host=dynamic + +[public-phone](!,basic-options) ; another template inheriting basic-options + nat=no + directmedia=yes + +[my-codecs](!) ; a template for my preferred codecs + disallow=all + allow=ilbc + allow=g729 + allow=gsm + allow=g723 + allow=ulaw + +[ulaw-phone](!) ; and another one for ulaw-only + disallow=all + allow=ulaw + +;[lol] +;context=default +;type=peer +;host=tolapai +;fromuser=lol +;secret=lol +; +; and finally instantiate a few phones +; +; [2133](natted-phone,my-codecs) +; secret = peekaboo +; [2134](natted-phone,ulaw-phone) +; secret = not_very_secret +; [2136](public-phone,ulaw-phone) +; secret = not_very_secret_either +; ... +; + +; Standard configurations not using templates look like this: +; +;[grandstream1] +;type=friend +;context=from-sip ; Where to start in the dialplan when this phone calls +;callerid=John Doe <1234> ; Full caller ID, to override the phones config + ; on incoming calls to Asterisk +;host=192.168.0.23 ; we have a static but private IP address + ; No registration allowed +;nat=no ; there is not NAT between phone and Asterisk +;directmedia=yes ; allow RTP voice traffic to bypass Asterisk +;dtmfmode=info ; either RFC2833 or INFO for the BudgeTone +;call-limit=1 ; permit only 1 outgoing call and 1 incoming call at a time + ; from the phone to asterisk (deprecated) + ; 1 for the explicit peer, 1 for the explicit user, + ; remember that a friend equals 1 peer and 1 user in + ; memory + ; There is no combined call counter for a "friend" + ; so there's currently no way in sip.conf to limit + ; to one inbound or outbound call per phone. Use + ; the group counters in the dial plan for that. + ; +;mailbox=1234@default ; mailbox 1234 in voicemail context "default" +;disallow=all ; need to disallow=all before we can use allow= +;allow=ulaw ; Note: In user sections the order of codecs + ; listed with allow= does NOT matter! +;allow=alaw +;allow=g723.1 ; Asterisk only supports g723.1 pass-thru! +;allow=g729 ; Pass-thru only unless g729 license obtained +;callingpres=allowed_passed_screen ; Set caller ID presentation + ; See README.callingpres for more information + +;[xlite1] +; Turn off silence suppression in X-Lite ("Transmit Silence"=YES)! +; Note that Xlite sends NAT keep-alive packets, so qualify=yes is not needed +;type=friend +;regexten=1234 ; When they register, create extension 1234 +;callerid="Jane Smith" <5678> +;host=dynamic ; This device needs to register +;nat=yes ; X-Lite is behind a NAT router +;directmedia=no ; Typically set to NO if behind NAT +;disallow=all +;allow=gsm ; GSM consumes far less bandwidth than ulaw +;allow=ulaw +;allow=alaw +;mailbox=1234@default,1233@default ; Subscribe to status of multiple mailboxes +;registertrying=yes ; Send a 100 Trying when the device registers. + +;[snom] +;type=friend ; Friends place calls and receive calls +;context=from-sip ; Context for incoming calls from this user +;secret=blah +;subscribecontext=localextensions ; Only allow SUBSCRIBE for local extensions +;language=de ; Use German prompts for this user +;host=dynamic ; This peer register with us +;dtmfmode=inband ; Choices are inband, rfc2833, or info +;defaultip=192.168.0.59 ; IP used until peer registers +;mailbox=1234@context,2345 ; Mailbox(-es) for message waiting indicator +;subscribemwi=yes ; Only send notifications if this phone + ; subscribes for mailbox notification +;vmexten=voicemail ; dialplan extension to reach mailbox + ; sets the Message-Account in the MWI notify message + ; defaults to global vmexten which defaults to "asterisk" +;disallow=all +;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw! + + +;[polycom] +;type=friend ; Friends place calls and receive calls +;context=from-sip ; Context for incoming calls from this user +;secret=blahpoly +;host=dynamic ; This peer register with us +;dtmfmode=rfc2833 ; Choices are inband, rfc2833, or info +;defaultuser=polly ; Username to use in INVITE until peer registers +;defaultip=192.168.40.123 + ; Normally you do NOT need to set this parameter +;disallow=all +;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw! +;progressinband=no ; Polycom phones don't work properly with "never" + + +;[pingtel] +;type=friend +;secret=blah +;host=dynamic +;insecure=port ; Allow matching of peer by IP address without + ; matching port number +;insecure=invite ; Do not require authentication of incoming INVITEs +;insecure=port,invite ; (both) +;qualify=1000 ; Consider it down if it's 1 second to reply + ; Helps with NAT session + ; qualify=yes uses default value +;qualifyfreq=60 ; Qualification: How often to check for the + ; host to be up in seconds + ; Set to low value if you use low timeout for + ; NAT of UDP sessions +; +; Call group and Pickup group should be in the range from 0 to 63 +; +;callgroup=1,3-4 ; We are in caller groups 1,3,4 +;pickupgroup=1,3-5 ; We can do call pick-p for call group 1,3,4,5 +;defaultip=192.168.0.60 ; IP address to use if peer has not registered +;deny=0.0.0.0/0.0.0.0 ; ACL: Control access to this account based on IP address +;permit=192.168.0.60/255.255.255.0 +;permit=192.168.0.60/24 ; we can also use CIDR notation for subnet masks +;permit=2001:db8::/32 ; IPv6 ACLs can be specified if desired. IPv6 ACLs + ; apply only to IPv6 addresses, and IPv4 ACLs apply + ; only to IPv4 addresses. + +;[cisco1] +;type=friend +;secret=blah +;qualify=200 ; Qualify peer is no more than 200ms away +;nat=yes ; This phone may be natted + ; Send SIP and RTP to the IP address that packet is + ; received from instead of trusting SIP headers +;host=dynamic ; This device registers with us +;directmedia=no ; Asterisk by default tries to redirect the + ; RTP media stream (audio) to go directly from + ; the caller to the callee. Some devices do not + ; support this (especially if one of them is + ; behind a NAT). +;defaultip=192.168.0.4 ; IP address to use until registration +;defaultuser=goran ; Username to use when calling this device before registration + ; Normally you do NOT need to set this parameter +;setvar=CUSTID=5678 ; Channel variable to be set for all calls from or to this device +;setvar=ATTENDED_TRANSFER_COMPLETE_SOUND=beep ; This channel variable will + ; cause the given audio file to + ; be played upon completion of + ; an attended transfer. + +;[pre14-asterisk] +;type=friend +;secret=digium +;host=dynamic +;rfc2833compensate=yes ; Compensate for pre-1.4 DTMF transmission from another Asterisk machine. + ; You must have this turned on or DTMF reception will work improperly. +;t38pt_usertpsource=yes ; Use the source IP address of RTP as the destination IP address for UDPTL packets + ; if the nat option is enabled. If a single RTP packet is received Asterisk will know the + ; external IP address of the remote device. If port forwarding is done at the client side + ; then UDPTL will flow to the remote device. + +[loadtester1] +transport = udp +directmedia = no +context = default +callerid = "Loadtester1" +secret = loadtester1 +type = friend + +[loadtester2] +transport = udp +directmedia = no +context = default +callerid = "Loadtester2" +secret = loadtester2 +type = friend +host = 127.0.0.1 +port = 5070 + +[phone1] +transport = udp +directmedia = no +context = default +callerid = "Phone 1" +secret = phone1 +type = friend +host = dynamic diff --git a/asterisk-load-tests/call_and_hangup/driver/system.conf b/asterisk-load-tests/call_and_hangup/driver/system.conf new file mode 100644 index 0000000..e237a47 --- /dev/null +++ b/asterisk-load-tests/call_and_hangup/driver/system.conf @@ -0,0 +1,48 @@ +# Autogenerated by /usr/sbin/dahdi_genconf on Fri Apr 20 18:08:28 2012 +# If you edit this file and execute /usr/sbin/dahdi_genconf again, +# your manual changes will be LOST. +# Dahdi Configuration File +# +# This file is parsed by the Dahdi Configurator, dahdi_cfg +# +# Span 1: B4/0/1 "B4XXP (PCI) Card 0 Span 1" (MASTER) +span=1,1,0,ccs,ami +# termtype: te +bchan=1-2 +hardhdlc=3 +echocanceller=mg2,1-2 + +# Span 2: B4/0/2 "B4XXP (PCI) Card 0 Span 2" +span=2,2,0,ccs,ami +# termtype: te +bchan=4-5 +hardhdlc=6 +echocanceller=mg2,4-5 + +# Span 3: B4/0/3 "B4XXP (PCI) Card 0 Span 3" +span=3,3,0,ccs,ami +# termtype: te +bchan=7-8 +hardhdlc=9 +echocanceller=mg2,7-8 + +# Span 4: B4/0/4 "B4XXP (PCI) Card 0 Span 4" YELLOW +span=4,4,0,ccs,ami +# termtype: te +bchan=10-11 +hardhdlc=12 +echocanceller=mg2,10-11 + +# Span 5: WCTDM/4 "Wildcard TDM400P REV I Board 5" +fxoks=13 +echocanceller=mg2,13 +fxoks=14 +echocanceller=mg2,14 +fxsks=15 +echocanceller=mg2,15 +# channel 16, WCTDM/4/3, no module. + +# Global data + +loadzone = us +defaultzone = us diff --git a/asterisk-load-tests/call_and_hangup/tested/chan_dahdi.conf b/asterisk-load-tests/call_and_hangup/tested/chan_dahdi.conf new file mode 100644 index 0000000..ef4e637 --- /dev/null +++ b/asterisk-load-tests/call_and_hangup/tested/chan_dahdi.conf @@ -0,0 +1,1459 @@ +; +; DAHDI Telephony Configuration file +; +; You need to restart Asterisk to re-configure the DAHDI channel +; CLI> module reload chan_dahdi.so +; will reload the configuration file, but not all configuration options +; are re-configured during a reload (signalling, as well as PRI and +; SS7-related settings cannot be changed on a reload). +; +; This file documents many configuration variables. Normally unless you know +; what a variable means or that it should be changed, there's no reason to +; un-comment those lines. +; +; Examples below that are commented out (those lines that begin with a ';' but +; no space afterwards) typically show a value that is not the default value, +; but would make sense under certain circumstances. The default values are +; usually sane. Thus you should typically not touch them unless you know what +; they mean or you know you should change them. + +[trunkgroups] +; +; Trunk groups are used for NFAS connections. +; +; Group: Defines a trunk group. +; trunkgroup => ,[,...] +; +; trunkgroup is the numerical trunk group to create +; dchannel is the DAHDI channel which will have the +; d-channel for the trunk. +; backup1 is an optional list of backup d-channels. +; +;trunkgroup => 1,24,48 +;trunkgroup => 1,24 +; +; Spanmap: Associates a span with a trunk group +; spanmap => ,[,] +; +; dahdispan is the DAHDI 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 +; +; Context for calls. Defaults to 'default' +; +;context=incoming +; +; Switchtype: Only used for PRI. +; +; national: National ISDN 2 (default) +; dms100: Nortel DMS100 +; 4ess: AT&T 4ESS +; 5ess: Lucent 5ESS +; euroisdn: EuroISDN (common in Europe) +; ni1: Old National ISDN 1 +; qsig: Q.SIG +; +;switchtype=euroisdn +; +; MSNs for ISDN spans. Asterisk will listen for the listed numbers on +; incoming calls and ignore any calls not listed. +; Here you can give a comma separated list of numbers or dialplan extension +; patterns. An empty list disables MSN matching to allow any incoming call. +; Only set on PTMP CPE side of ISDN span if needed. +; The default is an empty list. +;msn= +; +; Some switches (AT&T especially) require network specific facility IE. +; Supported values are currently 'none', 'sdn', 'megacom', 'tollfreemegacom', 'accunet' +; +; nsf cannot be changed on a reload. +; +;nsf=none +; +;service_message_support=yes +; Enable service message support for channel. Must be set after switchtype. +; +; Dialing options for ISDN (i.e., Dial(DAHDI/g1/exten/options)): +; R Reverse Charge Indication +; Indicate to the called party that the call will be reverse charged. +; K(n) Keypad digits n +; Send out the specified digits as keypad digits. +; +; PRI Dialplan: The ISDN-level Type Of Number (TON) or numbering plan, used for +; the dialed number. For most installations, leaving this as 'unknown' (the +; default) works in the most cases. In some very unusual circumstances, you +; may need to set this to 'dynamic' or 'redundant'. Note that if you set one +; of the others, you will be unable to dial another class of numbers. For +; example, if you set 'national', you will be unable to dial local or +; international numbers. +; +; PRI Local Dialplan: Only RARELY used for PRI (sets the calling number's +; numbering plan). In North America, the typical use is sending the 10 digit +; callerID number and setting the prilocaldialplan to 'national' (the default). +; Only VERY rarely will you need to change this. +; +; Neither pridialplan nor prilocaldialplan can be changed on reload. +; +; unknown: Unknown +; private: Private ISDN +; local: Local ISDN +; national: National ISDN +; international: International ISDN +; dynamic: Dynamically selects the appropriate dialplan +; redundant: Same as dynamic, except that the underlying number is not +; changed (not common) +; +;pridialplan=unknown +;prilocaldialplan=national +; +; pridialplan may be also set at dialtime, by prefixing the dialled number with +; one of the following letters: +; U - Unknown +; I - International +; N - National +; L - Local (Net Specific) +; S - Subscriber +; V - Abbreviated +; R - Reserved (should probably never be used but is included for completeness) +; +; Additionally, you may also set the following NPI bits (also by prefixing the +; dialled string with one of the following letters): +; u - Unknown +; e - E.163/E.164 (ISDN/telephony) +; x - X.121 (Data) +; f - F.69 (Telex) +; n - National +; p - Private +; r - Reserved (should probably never be used but is included for completeness) +; +; You may also set the prilocaldialplan in the same way, but by prefixing the +; Caller*ID Number, rather than the dialled number. Please note that telcos +; which require this kind of additional manipulation of the TON/NPI are *rare*. +; Most telco PRIs will work fine simply by setting pridialplan to unknown or +; dynamic. +; +; +; PRI caller ID prefixes based on the given TON/NPI (dialplan) +; This is especially needed for EuroISDN E1-PRIs +; +; None of the prefix settings can be changed on reload. +; +; sample 1 for Germany +;internationalprefix = 00 +;nationalprefix = 0 +;localprefix = 0711 +;privateprefix = 07115678 +;unknownprefix = +; +; sample 2 for Germany +;internationalprefix = + +;nationalprefix = +49 +;localprefix = +49711 +;privateprefix = +497115678 +;unknownprefix = +; +; PRI resetinterval: sets the time in seconds between restart of unused +; B channels; defaults to 'never'. +; +;resetinterval = 3600 +; +; Overlap dialing mode (sending overlap digits) +; Cannot be changed on a reload. +; +; incoming: incoming direction only +; outgoing: outgoing direction only +; no: neither direction +; yes or both: both directions +; +;overlapdial=yes +; +; Allow inband audio (progress) when a call is DISCONNECTed by the far end of a PRI +; +;inbanddisconnect=yes +; +; Allow a held call to be transferred to the active call on disconnect. +; This is useful on BRI PTMP NT lines where an ISDN phone can simulate the +; transfer feature of an analog phone. +; The default is no. +;hold_disconnect_transfer=yes +; +; PRI Out of band indications. +; Enable this to report Busy and Congestion on a PRI using out-of-band +; notification. Inband indication, as used by Asterisk doesn't seem to work +; with all telcos. +; +; outofband: Signal Busy/Congestion out of band with RELEASE/DISCONNECT +; inband: Signal Busy/Congestion using in-band tones (default) +; +; priindication cannot be changed on a reload. +; +;priindication = outofband +; +; If you need to override the existing channels selection routine and force all +; PRI channels to be marked as exclusively selected, set this to yes. +; +; priexclusive cannot be changed on a reload. +; +;priexclusive = yes +; +; +; If you need to use the logical channel mapping with your Q.SIG PRI instead +; of the physical mapping you must use the qsigchannelmapping option. +; +; logical: Use the logical channel mapping +; physical: Use physical channel mapping (default) +; +;qsigchannelmapping=logical +; +; If you wish to ignore remote hold indications (and use MOH that is supplied over +; the B channel) enable this option. +; +;discardremoteholdretrieval=yes +; +; ISDN Timers +; All of the ISDN timers and counters that are used are configurable. Specify +; the timer name, and its value (in ms for timers). +; K: Layer 2 max number of outstanding unacknowledged I frames (default 7) +; N200: Layer 2 max number of retransmissions of a frame (default 3) +; T200: Layer 2 max time before retransmission of a frame (default 1000 ms) +; T203: Layer 2 max time without frames being exchanged (default 10000 ms) +; T305: Wait for DISCONNECT acknowledge (default 30000 ms) +; T308: Wait for RELEASE acknowledge (default 4000 ms) +; T309: Maintain active calls on Layer 2 disconnection (default -1, +; Asterisk clears calls) +; EuroISDN: 6000 to 12000 ms, according to (N200 + 1) x T200 + 2s +; May vary in other ISDN standards (Q.931 1993 : 90000 ms) +; T313: Wait for CONNECT acknowledge, CPE side only (default 3000 ms) +; +; T-RESPONSE: Maximum time to wait for a typical APDU response. (default 4000 ms) +; This is an implementation timer when the standard does not specify one. +; T-ACTIVATE: Request supervision timeout. (default 10000 ms) +; T-RETENTION: Maximum time to wait for user A to activate call-completion. (default 30000 ms) +; Used by ETSI PTP, ETSI PTMP, and Q.SIG as the cc_offer_timer. +; T-CCBS1: T-STATUS timer equivalent for CC user A status. (default 4000 ms) +; T-CCBS2: Maximum time the CCBS service will be active (default 45 min in ms) +; T-CCBS3: Maximum time to wait for user A to respond to user B availability. (default 20000 ms) +; T-CCBS5: Network B CCBS supervision timeout. (default 60 min in ms) +; T-CCBS6: Network A CCBS supervision timeout. (default 60 min in ms) +; T-CCNR2: Maximum time the CCNR service will be active (default 180 min in ms) +; T-CCNR5: Network B CCNR supervision timeout. (default 195 min in ms) +; T-CCNR6: Network A CCNR supervision timeout. (default 195 min in ms) +; CC-T1: Q.SIG CC request supervision timeout. (default 30000 ms) +; CCBS-T2: Q.SIG CCBS supervision timeout. (default 60 min in ms) +; CCNR-T2: Q.SIG CCNR supervision timeout. (default 195 min in ms) +; CC-T3: Q.SIG CC Maximum time to wait for user A to respond to user B availability. (default 30000 ms) +; +;pritimer => t200,1000 +;pritimer => t313,4000 +; +; CC PTMP recall mode: +; specific - Only the CC original party A can participate in the CC callback +; global - Other compatible endpoints on the PTMP line can be party A in the CC callback +; +; cc_ptmp_recall_mode cannot be changed on a reload. +; +;cc_ptmp_recall_mode = specific +; +; CC Q.SIG Party A (requester) retain signaling link option +; retain Require that the signaling link be retained. +; release Request that the signaling link be released. +; do_not_care The responder is free to choose if the signaling link will be retained. +; +;cc_qsig_signaling_link_req = retain +; +; CC Q.SIG Party B (responder) retain signaling link option +; retain Prefer that the signaling link be retained. +; release Prefer that the signaling link be released. +; +;cc_qsig_signaling_link_rsp = retain +; +; See ccss.conf.sample for more options. The timers described by ccss.conf.sample +; are not used by ISDN for the native protocol since they are defined by the +; standards and set by pritimer above. +; +; To enable transmission of facility-based ISDN supplementary services (such +; as caller name from CPE over facility), enable this option. +; Cannot be changed on a reload. +; +;facilityenable = yes +; + +; This option enables Advice of Charge pass-through between the ISDN PRI and +; Asterisk. This option can be set to any combination of 's', 'd', and 'e' which +; represent the different variants of Advice of Charge, AOC-S, AOC-D, and AOC-E. +; Advice of Charge pass-through is currently only supported for ETSI. Since most +; AOC messages are sent on facility messages, the 'facilityenable' option must +; also be enabled to fully support AOC pass-through. +; +;aoc_enable=s,d,e +; +; When this option is enabled, a hangup initiated by the ISDN PRI side of the +; asterisk channel will result in the channel delaying its hangup in an +; attempt to receive the final AOC-E message from its bridge. The delay +; period is configured as one half the T305 timer length. If the channel +; is not bridged the hangup will occur immediatly without delay. +; +;aoce_delayhangup=yes + +; pritimer cannot be changed on a reload. +; +; Signalling method. The default is "auto". Valid values: +; auto: Use the current value from DAHDI. +; em: E & M +; em_e1: E & M E1 +; em_w: E & M Wink +; featd: Feature Group D (The fake, Adtran style, DTMF) +; featdmf: Feature Group D (The real thing, MF (domestic, US)) +; featdmf_ta: Feature Group D (The real thing, MF (domestic, US)) through +; a Tandem Access point +; featb: Feature Group B (MF (domestic, US)) +; fgccama: Feature Group C-CAMA (DP DNIS, MF ANI) +; fgccamamf: Feature Group C-CAMA MF (MF DNIS, MF ANI) +; 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 +; bri_cpe: BRI PTP signalling, CPE side +; bri_net: BRI PTP signalling, Network side +; bri_cpe_ptmp: BRI PTMP signalling, CPE side +; bri_net_ptmp: BRI PTMP signalling, Network 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)) +; e911: E911 (MF) style signalling +; ss7: Signalling System 7 +; mfcr2: MFC/R2 Signalling. To specify the country variant see 'mfcr2_variant' +; +; 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) +; ss7: Signalling System 7 +; +; signalling of a channel can not be changed on a reload. +; +;signalling=fxo_ls +; +; If you have an outbound signalling format that is different from format +; specified above (but compatible), you can specify outbound signalling format, +; (see below). The 'signalling' format specified will be the inbound signalling +; format. If you only specify 'signalling', then it will be the format for +; both inbound and outbound. +; +; outsignalling can only be one of: +; em, em_e1, em_w, sf, sf_w, sf_featd, sf_featdmf, sf_featb, featd, +; featdmf, featdmf_ta, e911, fgccama, fgccamamf +; +; outsignalling cannot be changed on a reload. +; +;signalling=featdmf +; +;outsignalling=featb +; +; For Feature Group D Tandem access, to set the default CIC and OZZ use these +; parameters (Will not be updated on reload): +; +;defaultozz=0000 +;defaultcic=303 +; +; A variety of timing parameters can be specified as well +; The default values for those are "-1", which is to use the +; compile-time defaults of the DAHDI kernel modules. The timing +; parameters, (with the standard default from DAHDI): +; +; 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) +; +; None of them will update on a reload. +; +; How long generated tones (DTMF and MF) will be played on the channel +; (in milliseconds). +; +; This is a global, rather than a per-channel setting. It will not be +; updated on a reload. +; +;toneduration=100 +; +; Whether or not to do distinctive ring detection on FXO lines: +; +;usedistinctiveringdetection=yes +; +; enable dring detection after caller ID for those countries like Australia +; where the ring cadence is changed *after* the caller ID spill: +; +;distinctiveringaftercid=yes +; +; Whether or not to use caller ID: +; +usecallerid=yes +; +; Type of caller ID signalling in use +; bell = bell202 as used in US (default) +; v23 = v23 as used in the UK +; v23_jp = v23 as used in Japan +; dtmf = DTMF as used in Denmark, Sweden and Netherlands +; smdi = Use SMDI for caller ID. Requires SMDI to be enabled (usesmdi). +; +;cidsignalling=v23 +; +; What signals the start of caller ID +; ring = a ring signals the start (default) +; polarity = polarity reversal signals the start +; polarity_IN = polarity reversal signals the start, for India, +; for dtmf dialtone detection; using DTMF. +; (see doc/India-CID.txt) +; dtmf = causes monitor loop to look for dtmf energy on the +; incoming channel to initate cid acquisition +; +;cidstart=polarity +; +; When cidstart=dtmf, the energy level on the line used to trigger dtmf cid +; acquisition. This number is compared to the average over a packet of audio +; of the absolute values of 16 bit signed linear samples. The default is set +; to 256. The choice of 256 is arbitrary. The value you should select should +; be high enough to prevent false detections while low enough to insure that +; no dtmf spills are missed. +; +;dtmfcidlevel=256 +; +; Whether or not to hide outgoing caller ID (Override with *67 or *82) +; (If your dialplan doesn't catch it) +; +;hidecallerid=yes +; +; Enable if you need to hide just the name and not the number for legacy PBX use. +; Only applies to PRI channels. +;hidecalleridname=yes +; +; On UK analog lines, the caller hanging up determines the end of calls. So +; Asterisk hanging up the line may or may not end a call (DAHDI could just as +; easily be re-attaching to a prior incoming call that was not yet hung up). +; This option changes the hangup to wait for a dialtone on the line, before +; marking the line as once again available for use with outgoing calls. +;waitfordialtone=yes +; +; The following option enables receiving MWI on FXO lines. The default +; value is no. +; The mwimonitor can take the following values +; no - No mwimonitoring occurs. (default) +; yes - The same as specifying fsk +; fsk - the FXO line is monitored for MWI FSK spills +; fsk,rpas - the FXO line is monitored for MWI FSK spills preceded +; by a ring pulse alert signal. +; neon - The fxo line is monitored for the presence of NEON pulses +; indicating MWI. +; When detected, an internal Asterisk MWI event is generated so that any other +; part of Asterisk that cares about MWI state changes is notified, just as if +; the state change came from app_voicemail. +; For FSK MWI Spills, the energy level that must be seen before starting the +; MWI detection process can be set with 'mwilevel'. +; +;mwimonitor=no +;mwilevel=512 +; +; This option is used in conjunction with mwimonitor. This will get executed +; when incoming MWI state changes. The script is passed 2 arguments. The +; first is the corresponding mailbox, and the second is 1 or 0, indicating if +; there are messages waiting or not. +; +;mwimonitornotify=/usr/local/bin/dahdinotify.sh +; +; The following keyword 'mwisendtype' enables various VMWI methods on FXS lines (if supported). +; The default is to send FSK only. +; The following options are available; +; 'rpas' Ring Pulse Alert Signal, alerts intelligent phones that a FSK message is about to be sent. +; 'lrev' Line reversed to indicate messages waiting. +; 'hvdc' 90Vdc OnHook DC voltage to indicate messages waiting. +; 'hvac' or 'neon' 90Vac OnHook AC voltage to light Neon bulb. +; 'nofsk' Disables FSK MWI spills from being sent out. +; It is feasible that multiple options can be enabled. +;mwisendtype=rpas,lrev +; +; Whether or not to enable call waiting on internal extensions +; With this set to 'yes', busy extensions will hear the call-waiting +; tone, and can use hook-flash to switch between callers. The Dial() +; app will not return the "BUSY" result for extensions. +; +callwaiting=yes +; +; Configure the number of outstanding call waiting calls for internal ISDN +; endpoints before bouncing the calls as busy. This option is equivalent to +; the callwaiting option for analog ports. +; A call waiting call is a SETUP message with no B channel selected. +; The default is zero to disable call waiting for ISDN endpoints. +;max_call_waiting_calls=0 +; +; Allow incoming ISDN call waiting calls. +; A call waiting call is a SETUP message with no B channel selected. +;allow_call_waiting_calls=no +; +; Configure the ISDN span to indicate MWI for the list of mailboxes. +; You can give a comma separated list of up to 8 mailboxes per span. +; An empty list disables MWI. +; The default is an empty list. +;mwi_mailboxes=mailbox_number[@context]{,mailbox_number[@context]} +; +; Whether or not restrict outgoing caller ID (will be sent as ANI only, not +; available for the user) +; Mostly use with FXS ports +; Does nothing. Use hidecallerid instead. +; +;restrictcid=no +; +; Whether or not to use the caller ID presentation from the Asterisk channel +; for outgoing calls. +; See dialplan function CALLERID(pres) for more information. +; Only applies to PRI and SS7 channels. +; +usecallingpres=yes +; +; Some countries (UK) have ring tones with different ring tones (ring-ring), +; which means the caller ID needs to be set later on, and not just after +; the first ring, as per the default (1). +; +;sendcalleridafter = 2 +; +; +; Support caller ID on Call Waiting +; +callwaitingcallerid=yes +; +; Support three-way calling +; +threewaycalling=yes +; +; For FXS ports (either direct analog or over T1/E1): +; Support flash-hook call transfer (requires three way calling) +; Also enables call parking (overrides the 'canpark' parameter) +; +; For digital ports using ISDN PRI protocols: +; Support switch-side transfer (called 2BCT, RLT or other names) +; This setting must be enabled on both ports involved, and the +; 'facilityenable' setting must also be enabled to allow sending +; the transfer to the ISDN switch, since it sent in a FACILITY +; message. +; NOTE: This should be disabled for NT PTMP mode. Phones cannot +; have tromboned calls pushed down to them. +; +transfer=yes +; +; Allow call parking +; ('canpark=no' is overridden by 'transfer=yes') +; +canpark=yes +; +; Support call forward variable +; +cancallforward=yes +; +; Whether or not to support Call Return (*69, if your dialplan doesn't +; catch this first) +; +callreturn=yes +; +; 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 received 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. +; +; Note that when setting the number of taps, the number 256 does not translate +; to 256 ms of echo cancellation. echocancel=256 means 256 / 8 = 32 ms. +; +; Note that if any of your DAHDI cards have hardware echo cancellers, +; then this setting only turns them on and off; numeric settings will +; be treated as "yes". There are no special settings required for +; hardware echo cancellers; when present and enabled in their kernel +; modules, they take precedence over the software echo canceller compiled +; into DAHDI automatically. +; +; +echocancel=yes +; +; Some DAHDI echo cancellers (software and hardware) support adjustable +; parameters; these parameters can be supplied as additional options to +; the 'echocancel' setting. Note that Asterisk does not attempt to +; validate the parameters or their values, so if you supply an invalid +; parameter you will not know the specific reason it failed without +; checking the kernel message log for the error(s) put there by DAHDI. +; +;echocancel=128,param1=32,param2=0,param3=14 +; +; Generally, it is not necessary (and in fact undesirable) to echo cancel when +; the circuit path is entirely TDM. You may, however, change this behavior +; by enabling the echo canceller 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 +; DAHDI 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) +; +; WARNING: In some cases this option can make echo worse! If you are +; trying to debug an echo problem, it is worth checking to see if your echo +; is better with the option set to yes or no. Use whatever setting gives +; the best results. +; +; Note that these parameters do not apply to hardware echo cancellers. +; +;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) +; +; Gain Settings: increasing / decreasing the volume level on a channel. +; The values are in db (decibells). A positive number +; increases the volume level on a channel, and a +; negavive value decreases volume level. +; +; Dynamic Range Compression: you can also enable dynamic range compression +; on a channel. This will amplify quiet sounds while leaving +; louder sounds untouched. This is useful in situations where +; a linear gain setting would cause clipping. Acceptable values +; are in the range of 0.0 to around 6.0 with higher values +; causing more compression to be done. +; +; There are several independent gain settings: +; rxgain: gain for the rx (receive - into Asterisk) channel. Default: 0.0 +; txgain: gain for the tx (transmit - out of Asterisk Asterisk) channel. +; Default: 0.0 +; cid_rxgain: set the gain just for the caller ID sounds Asterisk +; emits. Default: 5.0 . +; rxdrc: dynamic range compression for the rx channel. Default: 0.0 +; txdrc: dynamic range compression for the tx channel. Default: 0.0 + +;rxgain=2.0 +;txgain=3.0 +; +;rxdrc=1.0 +;txdrc=4.0 +; +; Logical groups can be assigned to allow outgoing roll-over. Groups range +; from 0 to 63, and multiple groups can be specified. By default the +; channel is not a member of any group. +; +; Note that an explicit empty value for 'group' is invalid, and will not +; override a previous non-empty one. The same applies to callgroup and +; pickupgroup as well. +; +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. Groups range from 0 to 63. +; +callgroup=1 +pickupgroup=1 + +; Channel variable to be set for all calls from this channel +;setvar=CHANNEL=42 +;setvar=ATTENDED_TRANSFER_COMPLETE_SOUND=beep ; This channel variable will + ; cause the given audio file to + ; be played upon completion of + ; an attended transfer. + +; +; Specify whether the channel should be answered immediately or if the simple +; switch should provide dialtone, read digits, etc. +; Note: If immediate=yes the dialplan execution will always start at extension +; 's' priority 1 regardless of the dialed number! +; +;immediate=yes +; +; Specify whether flash-hook transfers to 'busy' channels should complete or +; return to the caller performing the transfer (default is yes). +; +;transfertobusy=no + +; Calls will have the party id user tag set to this string value. +; +;cid_tag= + +; With this set, you can automatically append the MSN of a party +; to the cid_tag. An '_' is used to separate the tag from the MSN. +; Applies to ISDN spans. +; Default is no. +; +; Table of what number is appended: +; outgoing incoming +; net dialed caller +; cpe caller dialed +; +;append_msn_to_cid_tag=no + +; caller ID can be set to "asreceived" or a specific number if you want to +; override it. Note that "asreceived" only applies to trunk interfaces. +; fullname sets just the +; +; fullname: sets just the name part. +; cid_number: sets just the number part: +; +;callerid = 123456 +; +;callerid = My Name <2564286000> +; Which can also be written as: +;cid_number = 2564286000 +;fullname = My Name +; +;callerid = asreceived +; +; should we use the caller ID from incoming call on DAHDI transfer? +; +;useincomingcalleridondahditransfer = yes +; +; 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 +; +; SMDI (Simplified Message Desk Interface) can be enabled on a per-channel +; basis if you would like that channel to behave like an SMDI message desk. +; The SMDI port specified should have already been defined in smdi.conf. The +; default port is /dev/ttyS0. +; +;usesmdi=yes +;smdiport=/dev/ttyS0 +; +; 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. This enables listening for +; the beep-beep busy pattern. +; +;busydetect=yes +; +; If busydetect is enabled, it is also possible to specify how many busy tones +; to wait for before hanging up. The default is 3, but it might be +; safer to set to 6 or even 8. Mind that the higher the number, the more +; time that will be needed to hangup a channel, but lowers the probability +; that you will get random hangups. +; +;busycount=6 +; +; If busydetect is enabled, it is also possible to specify the cadence of your +; busy signal. In many countries, it is 500msec on, 500msec off. Without +; busypattern specified, we'll accept any regular sound-silence pattern that +; repeats times as a busy signal. If you specify busypattern, +; then we'll further check the length of the sound (tone) and silence, which +; will further reduce the chance of a false positive. +; +;busypattern=500,500 +; +; NOTE: In make menuselect, you'll find further options to tweak the busy +; detector. If your country has a busy tone with the same length tone and +; silence (as many countries do), consider enabling the +; BUSYDETECT_COMPARE_TONE_AND_SILENCE option. +; +; To further detect which hangup tone your telco provider is sending, it is +; useful to use the ztmonitor utility to record the audio that main/dsp.c +; is receiving after the caller hangs up. +; +; For FXS (FXO signalled) ports +; switch the line polarity to signal the connected PBX that an outgoing +; call was answered by the remote party. +; For FXO (FXS signalled) ports +; watch for a polarity reversal to mark when a outgoing call is +; answered by the remote party. +; +;answeronpolarityswitch=yes +; +; For FXS (FXO signalled) ports +; switch the line polarity to signal the connected PBX that the current +; call was "hung up" by the remote party +; For FXO (FXS signalled) ports +; In some countries, a polarity reversal is used to signal the disconnect of a +; phone line. If the hanguponpolarityswitch option is selected, the call will +; be considered "hung up" on a polarity reversal. +; +;hanguponpolarityswitch=yes +; +; polarityonanswerdelay: minimal time period (ms) between the answer +; polarity switch and hangup polarity switch. +; (default: 600ms) +; +; 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". +; +; progzone also affects the pattern used for buzydetect (unless +; busypattern is set explicitly). The possible values are: +; us (default) +; ca (alias for 'us') +; cr (Costa Rica) +; br (Brazil, alias for 'cr') +; uk +; +; 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=yes +;progzone=uk +; +; Set the tonezone. Equivalent of the defaultzone settings in +; /etc/dahdi/system.conf. This sets the tone zone by number. +; Note that you'd still need to load tonezones (loadzone in +; /etc/dahdi/system.conf). +; The default is -1: not to set anything. +;tonezone = 0 ; 0 is US +; +; FXO (FXS signalled) devices must have a timeout to determine if there was a +; hangup before the line was answered. This value can be tweaked to shorten +; how long it takes before DAHDI considers a non-ringing line to have hungup. +; +; ringtimeout will not update on a reload. +; +;ringtimeout=8000 +; +; For FXO (FXS signalled) devices, whether to use pulse dial instead of DTMF +; Pulse digits from phones (FXS devices, FXO signalling) are always +; detected. +; +;pulsedial=yes +; +; For fax detection, uncomment one of the following lines. The default is *OFF* +; +;faxdetect=both +;faxdetect=incoming +;faxdetect=outgoing +;faxdetect=no +; +; When 'faxdetect' is used, one could use 'faxbuffers' to configure the DAHDI +; transmit buffer policy. The default is *OFF*. When this configuration +; option is used, the faxbuffer policy will be used for the life of the call +; after a fax tone is detected. The faxbuffer policy is reverted after the +; call is torn down. The sample below will result in 6 buffers and a full +; buffer policy. +; +;faxbuffers=>6,full +; +; This option specifies a preference for which music on hold class this channel +; should listen to when put on hold if the music class has not been set on the +; channel with Set(CHANNEL(musicclass)=whatever) in the dialplan, and the peer +; channel putting this one on hold did not suggest a music class. +; +; If this option is set to "passthrough", then the hold message will always be +; passed through as signalling instead of generating hold music locally. This +; setting is only valid when used on a channel that uses digital signalling. +; +; This option may be set globally or on a per-channel basis. +; +;mohinterpret=default +; +; This option specifies which music on hold class to suggest to the peer channel +; when this channel places the peer on hold. This option may be set globally, +; or on a per-channel basis. +; +;mohsuggest=default +; +; PRI channels can have an idle extension and a minunused number. So long as +; at least "minunused" channels are idle, chan_dahdi 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. +; +; Those settings cannot be changed on reload. +; +;idledial=6999 +;idleext=6999@dialout +;minunused=2 +;minidle=1 +; +; +; ignore_failed_channels: Continue even if some channels failed to configure. +; False by default, as if even a single channel failed to configure, it might +; mean other channels are misplaced and having them work may not be a good +; idea. If enabled (set to true), chan_dahdi will nevertheless attempt to +; configure other channels rather than giving up. This normally makes sense +; only if you use names (!) for DAHDI channels. +;ignore_failed_channels = true +; +; Configure jitter buffers in DAHDI (each one is 20ms, default is 4) +; This is set globally, rather than per-channel. +; +;jitterbuffers=4 +; +;------------------------------ JITTER BUFFER CONFIGURATION -------------------------- +; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a + ; DAHDI 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 DAHDI channel can't accept jitter, + ; thus an enabled jitterbuffer on the receive DAHDI side will always + ; be used if the sending side can create jitter. + +; 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 DAHDI + ; channel. Two implementations are currently available - "fixed" + ; (with size always equals to jbmax-size) 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". +;----------------------------------------------------------------------------------- +; +; 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 caller ID spill is +; to be placed. Also, if you define any custom cadences, the default cadences +; will be turned off. +; +; This setting is global, rather than per-channel. It will not update on +; a reload. +; +; 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. +; +; +;callerid="Green Phone"<(256) 428-6121> +;channel => 1 +;callerid="Black Phone"<(256) 428-6122> +;channel => 2 +;callerid="CallerID Phone" <(630) 372-1564> +;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 +;signaling=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 cannot be changed on a reload. +; +; switchtype = national +; signalling = pri_cpe +; group = 2 +; channel => 1-23 +; +; Alternatively, the number of the channel may be replaced with a relative +; path to a device file under /dev/dahdi . The final element of that file +; must be a number, though. The directory separator is '!', as we can't +; use '/' in a dial string. So if we have +; +; /dev/dahdi/span-name/pstn/00/1 +; /dev/dahdi/span-name/pstn/00/2 +; /dev/dahdi/span-name/pstn/00/3 +; /dev/dahdi/span-name/pstn/00/4 +; +; we could use: +;channel => span-name!pstn!00!1-4 +; +; or: +;channel => span-name!pstn!00!1,2,3,4 +; +; See also ignore_failed_channels above. + +; Used for distinctive 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. +; +; dringXrange is used to change the acceptable ranges for "tone offsets". Defaults to 10. +; Note: a range of 0 is NOT what you might expect - it instead forces it to the default. +; A range of -1 will force it to always match. +; Anything lower than -1 would presumably cause it to never match. +; +;dring1=95,0,0 +;dring1context=internal1 +;dring1range=10 +;dring2=325,95,0 +;dring2context=internal2 +;dring2range=10 +; If no pattern is matched here is where we go. +;context=default +;channel => 1 + +; AMI alarm event reporting +;reportalarms=channels +;Possible values are: +;channels - report each channel alarms (current behavior, default for backward compatibility) +;spans - report an "SpanAlarm" event when the span of any configured channel is alarmed +;all - report channel and span alarms (aggregated behavior) +;none - do not report any alarms. + +; ---------------- Options for use with signalling=ss7 ----------------- +; None of them can be changed by a reload. +; +; Variant of SS7 signalling: +; Options are itu and ansi +;ss7type = itu + +; SS7 Called Nature of Address Indicator +; +; unknown: Unknown +; subscriber: Subscriber +; national: National +; international: International +; dynamic: Dynamically selects the appropriate dialplan +; +;ss7_called_nai=dynamic +; +; SS7 Calling Nature of Address Indicator +; +; unknown: Unknown +; subscriber: Subscriber +; national: National +; international: International +; dynamic: Dynamically selects the appropriate dialplan +; +;ss7_calling_nai=dynamic +; +; +; sample 1 for Germany +;ss7_internationalprefix = 00 +;ss7_nationalprefix = 0 +;ss7_subscriberprefix = +;ss7_unknownprefix = +; + +; This option is used to disable automatic sending of ACM when the call is started +; in the dialplan. If you do use this option, you will need to use the Proceeding() +; application in the dialplan to send ACM. +;ss7_explictacm=yes + +; All settings apply to linkset 1 +;linkset = 1 + +; Point code of the linkset. For ITU, this is the decimal number +; format of the point code. For ANSI, this can either be in decimal +; number format or in the xxx-xxx-xxx format +;pointcode = 1 + +; Point code of node adjacent to this signalling link (Possibly the STP between you and +; your destination). Point code format follows the same rules as above. +;adjpointcode = 2 + +; Default point code that you would like to assign to outgoing messages (in case of +; routing through STPs, or using A links). Point code format follows the same rules +; as above. +;defaultdpc = 3 + +; Begin CIC (Circuit indication codes) count with this number +;cicbeginswith = 1 + +; What the MTP3 network indicator bits should be set to. Choices are +; national, national_spare, international, international_spare +;networkindicator=international + +; First signalling channel +;sigchan = 48 + +; Additional signalling channel for this linkset (So you can have a linkset +; with two signalling links in it). It seems like a silly way to do it, but +; for linksets with multiple signalling links, you add an additional sigchan +; line for every additional signalling link on the linkset. +;sigchan = 96 + +; Channels to associate with CICs on this linkset +;channel = 25-47 +; +; For more information on setting up SS7, see the README file in libss7 or +; the doc/ss7.txt file in the Asterisk source tree. +; ----------------- SS7 Options ---------------------------------------- + +; ---------------- Options for use with signalling=mfcr2 -------------- + +; MFC-R2 signaling has lots of variants from country to country and even sometimes +; minor variants inside the same country. The only mandatory parameters here are: +; mfcr2_variant, mfcr2_max_ani and mfcr2_max_dnis. +; IT IS RECOMMENDED that you leave the default values (leaving it commented) for the +; other parameters unless you have problems or you have been instructed to change some +; parameter. OpenR2 library uses the mfcr2_variant parameter to try to determine the +; best defaults for your country, also refer to the OpenR2 package directory +; doc/asterisk/ where you can find sample configurations for some countries. If you +; want to contribute your configs for a particular country send them to the e-mail +; of the primary OpenR2 developer that you can find in the AUTHORS file of the OpenR2 package + +; MFC/R2 variant. This depends on the OpenR2 supported variants +; A list of values can be found by executing the openr2 command r2test -l +; some valid values are: +; ar (Argentina) +; br (Brazil) +; mx (Mexico) +; ph (Philippines) +; itu (per ITU spec) +; mfcr2_variant=mx + +; Max amount of ANI to ask for +; mfcr2_max_ani=10 + +; Max amount of DNIS to ask for +; mfcr2_max_dnis=4 + +; whether or not to get the ANI before getting DNIS. +; some telcos require ANI first some others do not care +; if this go wrong, change this value +; mfcr2_get_ani_first=no + +; Caller Category to send +; national_subscriber +; national_priority_subscriber +; international_subscriber +; international_priority_subscriber +; collect_call +; usually national_subscriber works just fine +; you can change this setting from the dialplan +; by setting the variable MFCR2_CATEGORY +; (remember to set _MFCR2_CATEGORY from originating channels) +; MFCR2_CATEGORY will also be a variable available in your context +; on incoming calls set to the value received from the far end +; mfcr2_category=national_subscriber + +; Call logging is stored at the Asterisk +; logging directory specified in asterisk.conf +; plus mfcr2/ +; if you specify 'span1' here and asterisk.conf has +; as logging directory /var/log/asterisk then the full +; path to your MFC/R2 call logs will be /var/log/asterisk/mfcr2/span1 +; (the directory will be automatically created if not present already) +; remember to set mfcr2_call_files=yes +; mfcr2_logdir=span1 + +; whether or not to drop call files into mfcr2_logdir +; mfcr2_call_files=yes|no + +; MFC/R2 valid logging values are: all,error,warning,debug,notice,cas,mf,stack,nothing +; error,warning,debug and notice are self-descriptive +; 'cas' is for logging ABCD CAS tx and rx +; 'mf' is for logging of the Multi Frequency tones +; 'stack' is for very verbose output of the channel and context call stack, only useful +; if you are debugging a crash or want to learn how the library works. The stack logging +; will be only enabled if the openr2 library was compiled with -DOR2_TRACE_STACKS +; You can mix up values, like: loglevel=error,debug,mf to log just error, debug and +; multi frequency messages +; 'all' is a special value to log all the activity +; 'nothing' is a clean-up value, in case you want to not log any activity for +; a channel or group of channels +; BE AWARE that the level of output logged will ALSO depend on +; the value you have in logger.conf, if you disable output in logger.conf +; then it does not matter you specify 'all' here, nothing will be logged +; so logger.conf has the last word on what is going to be logged +; mfcr2_logging=all + +; MFC/R2 value in milliseconds for the MF timeout. Any negative value +; means 'default', smaller values than 500ms are not recommended +; and can cause malfunctioning. If you experience protocol error +; due to MF timeout try incrementing this value in 500ms steps +; mfcr2_mfback_timeout=-1 + +; MFC/R2 value in milliseconds for the metering pulse timeout. +; Metering pulses are sent by some telcos for some R2 variants +; during a call presumably for billing purposes to indicate costs, +; however this pulses use the same signal that is used to indicate +; call hangup, therefore a timeout is sometimes required to distinguish +; between a *real* hangup and a billing pulse that should not +; last more than 500ms, If you experience call drops after some +; minutes of being stablished try setting a value of some ms here, +; values greater than 500ms are not recommended. +; BE AWARE that choosing the proper protocol mfcr2_variant parameter +; implicitly sets a good recommended value for this timer, use this +; parameter only when you *really* want to override the default, otherwise +; just comment out this value or put a -1 +; Any negative value means 'default'. +; mfcr2_metering_pulse_timeout=-1 + +; Brazil uses a special calling party category for collect calls (llamadas por cobrar) +; instead of using the operator (as in Mexico). The R2 spec in Brazil says a special GB tone +; should be used to reject collect calls. If you want to ALLOW collect calls specify 'yes', +; if you want to BLOCK collect calls then say 'no'. Default is to block collect calls. +; (see also 'mfcr2_double_answer') +; mfcr2_allow_collect_calls=no + +; This feature is related but independent of mfcr2_allow_collect_calls +; Some PBX's require a double-answer process to block collect calls, if +; you ever have problems blocking collect calls using Group B signals (mfcr2_allow_collect_calls=no) +; then you may want to try with mfcr2_double_answer=yes, this will cause that every answer signal +; is changed by answer->clear back->answer (sort of a flash) +; (see also 'mfcr2_allow_collect_calls') +; mfcr2_double_answer=no + +; This feature allows to skip the use of Group B/II signals and go directly +; to the accepted state for incoming calls +; mfcr2_immediate_accept=no + +; You most likely dont need this feature. Default is yes. +; When this is set to yes, all calls that are offered (incoming calls) which +; DNIS is valid (exists in extensions.conf) and pass collect call validation +; will be accepted with a Group B tone (either call with charge or not, depending on mfcr2_charge_calls) +; with this set to 'no' then the call will NOT be accepted on offered, and the call will start its +; execution in extensions.conf without being accepted until the channel is answered (either with Answer() or +; any other application resulting in the channel being answered). +; This can be set to 'no' if your telco or PBX needs the hangup cause to be set accurately +; when this option is set to no you must explicitly accept the call with DAHDIAcceptR2Call +; or implicitly through the Answer() application. +; mfcr2_accept_on_offer=yes + +; Skip request of calling party category and ANI +; you need openr2 >= 1.2.0 to use this feature +; mfcr2_skip_category=no + +; WARNING: advanced users only! I really mean it +; this parameter is commented by default because +; YOU DON'T NEED IT UNLESS YOU REALLY GROK MFC/R2 +; READ COMMENTS on doc/r2proto.conf in openr2 package +; for more info +; mfcr2_advanced_protocol_file=/path/to/r2proto.conf + +; Brazil use a special signal to force the release of the line (hangup) from the +; backward perspective. When mfcr2_forced_release=no, the normal clear back signal +; will be sent on hangup, which is OK for all mfcr2 variants I know of, except for +; Brazilian variant, where the central will leave the line up for several seconds (30, 60) +; which sometimes is not what people really want. When mfcr2_forced_release=yes, a different +; signal will be sent to hangup the call indicating that the line should be released immediately +; mfcr2_forced_release=no + +; Whether or not report to the other end 'accept call with charge' +; This setting has no effect with most telecos, usually is safe +; leave the default (yes), but once in a while when interconnecting with +; old PBXs this may be useful. +; Concretely this affects the Group B signal used to accept calls +; The application DAHDIAcceptR2Call can also be used to decide this +; in the dial plan in a per-call basis instead of doing it here for all calls +; mfcr2_charge_calls=yes + +; ---------------- END of options to be used with signalling=mfcr2 + +; Configuration Sections +; ~~~~~~~~~~~~~~~~~~~~~~ +; You can also configure channels in a separate chan_dahdi.conf section. In +; this case the keyword 'channel' is not used. Instead the keyword +; 'dahdichan' is used (as in users.conf) - configuration is only processed +; in a section where the keyword dahdichan is used. It will only be +; processed in the end of the section. Thus the following section: +; +;[phones] +;echocancel = 64 +;dahdichan = 1-8 +;group = 1 +; +; Is somewhat equivalent to the following snippet in the section +; [channels]: +; +;echocancel = 64 +;group = 1 +;channel => 1-8 +; +; When starting a new section almost all of the configuration values are +; copied from their values at the end of the section [channels] in +; chan_dahdi.conf and [general] in users.conf - one section's configuration +; does not affect another one's. +; +; Instead of letting common configuration values "slide through" you can +; use configuration templates to easily keep the common part in one +; place and override where needed. +; +;[phones](!) +;echocancel = yes +;group = 0,4 +;callgroup = 3 +;pickupgroup = 3 +;threewaycalling = yes +;transfer = yes +;context = phones +;faxdetect = incoming +; +;[phone-1](phones) +;dahdichan = 1 +;callerid = My Name <501> +;mailbox = 501@mailboxes +; +; +;[fax](phones) +;dahdichan = 2 +;faxdetect = no +;context = fax +; +;[phone-3](phones) +;dahdichan = 3 +;pickupgroup = 3,4 + +;signalling = bri_net_ptmp +;switchtype = euroisdn +;channel => 2-3 +;;signalling = bri_net +;;channel => 4,5 +;signalling = bri_cpe +;switchtype = euroisdn +;channel => 7-8 +; + +signalling=fxo_ks +callerid="Analog Phone" <1> +mailbox=101 +;txgain=-30.0 +group=11 +context=from-pstn +channel => 1 +; +signalling=fxs_ks +callerid=asreceived +group=12 +context=from-pstn +channel => 2 + +signalling=bri_net_ptmp +;signalling=bri_cpe +overlapdial=yes +switchtype=euroisdn +callerid="ISDN Phone" <2> +context=from-isdn +group=21 +channel => 3-4 + +signalling=bri_net_ptmp +;signalling=bri_cpe_ptmp +overlapdial=yes +switchtype=euroisdn +callerid="Jean" <202> +context=from-isdn +group=22 +channel => 6-7 + +signalling=bri_net_ptmp +;signalling=bri_cpe +context=from-isdn +switchtype=euroisdn +group=23 +channel => 9-10 + +signalling=bri_net_ptmp +;signalling=bri_cpe_ptmp +context=from-isdn +switchtype=euroisdn +group=24 +channel => 12-13 diff --git a/asterisk-load-tests/call_and_hangup/tested/extensions.conf b/asterisk-load-tests/call_and_hangup/tested/extensions.conf new file mode 100644 index 0000000..440955d --- /dev/null +++ b/asterisk-load-tests/call_and_hangup/tested/extensions.conf @@ -0,0 +1,125 @@ +[from-internal] +; Include default context with common numbers +include => default +;exten = 2,1,While(1) +;exten = 2,n,Playback(/root/socialisme) +;exten = 2,n,EndWhile + +[from-sip] +exten = s,1,Dial(DAHDI/g11) + +[from-isdn] +; Include default context with common numbers +include => default + +[from-pstn] + +exten = s,1,Noop(${CALLERID} => ${EXTEN}) +;1 si on appelle un hello-worl, 103 si on appelle le FXS ? +;exten = s,n,Goto(test,1) +exten = s,n,Goto(103,1) + +exten = test,1,NoOp() +same = n,Answer() +same = n,Wait(1) +same = n,Playback(hello-world) +same = n,Wait(1) +same = n,Hangup() + +exten = 103,1,NoOp(Dial FXS port - this is intended to be a loop) +exten = 103,n,Dial(DAHDI/g11/${EXTEN}) + +include => default + +;exten = 2,1,Playback(/root/socialisme) + +[default] + +; FXS Phone +exten = 1,1,NoOp( Call 1 ) +exten = 1,n,Dial(DAHDI/g11) + +; FXO +exten = 8,1,NoOp( Call 8 ) +exten = 8,n,Dial(DAHDI/g12) + +; ISDN Phone +exten = 2,1,NoOp( Call 2 ) +exten = 2,n,Dial(DAHDI/g21) + +; Aastra IP Phone +exten = 3,1,NoOp( Call 3 ) +exten = 3, n,Dial(SIP/${EXTEN}) + +; vers XiVO +exten = _9X.,1,NoOp() +exten = _9X.,n,Dial(SIP/test-oh/${EXTEN:1}) + +; ISDN +exten = 4,1,NoOp( Call 4 ) +exten = 4,n,Dial(DAHDI/g22) + +; ISDN +exten = 5,1,NoOp( Call 5 ) +exten = 5,n,Dial(DAHDI/g23) + + +; ISDN +exten = 6,1,NoOp( Call 6 ) +exten = 6,n,Dial(DAHDI/g24) + +; Call via ISDN port #2 +exten = _7X.,1,NoOp( Call ${EXTEN:1} via port #2) +exten = _7X.,n,Dial(DAHDI/g22/${EXTEN:1}) + + +; Test sounds + +exten = 81,1,While(1) +exten = 81,n,Playback(/root/sounds/socialisme) +exten = 81,n,Sleep(1) +exten = 81,n,EndWhile + +exten = 82,1,While(1) +exten = 82,n,Playback(/root/sounds/ufo) +exten = 82,n,Sleep(1) +exten = 82,n,EndWhile + +exten = 83,1,While(1) +exten = 83,n,Playback(/root/sounds/bodenstandig2000_8k) +exten = 83,n,Sleep(1) +exten = 83,n,EndWhile + +exten = 84,1,While(1) +exten = 84,n,Playback(/root/sounds/Sinatra_8k) +exten = 84,n,Sleep(1) +exten = 84,n,EndWhile + +exten = 85,1,While(1) +exten = 85,n,Playback(/root/sounds/schnappi_8k) +exten = 85,n,Sleep(1) +exten = 85,n,EndWhile + +exten = 86,1,While(1) +; exten = 86,n,Set(CHANNEL(language)=fr) +exten = 86,n,Playback(tt-weasels) +exten = 86,n,Sleep(1) +exten = 86,n,EndWhile() + +exten = 87,1,While(1) +; exten = 87,n,Set(CHANNEL(language)=fr) +exten = 87,n,Playback(tt-monkeysintro) +exten = 87,n,Sleep(1) +exten = 87,n,EndWhile() + + + +exten = 666,1,While(1) +exten = 666,n,Playback(/root/sounds/schnappi_satan_8k) +exten = 666,n,Sleep(1) +exten = 666,n,EndWhile + +;exten = _1XX,1,Dial(SIP/test/${EXTEN}) + +[te] +exten = s,1,NoOp(${CALLERID} => ${EXTEN}) diff --git a/asterisk-load-tests/call_and_hangup/tested/system.conf b/asterisk-load-tests/call_and_hangup/tested/system.conf new file mode 100644 index 0000000..87456cf --- /dev/null +++ b/asterisk-load-tests/call_and_hangup/tested/system.conf @@ -0,0 +1,49 @@ +# Autogenerated by /usr/sbin/dahdi_genconf on Thu Dec 9 06:33:08 2010 +# If you edit this file and execute /usr/sbin/dahdi_genconf again, +# your manual changes will be LOST. +# Dahdi Configuration File +# +# This file is parsed by the Dahdi Configurator, dahdi_cfg +# +# Global data + +#loadzone = us +#defaultzone = us + + + +fxoks=1 +#echocanceller=mg2,1 +fxsks=2 +#echocanceller=mg2,3 + + + +span=2,0,0,ccs,ami,nt,term +bchan=3-4 +hardhdlc=5 + + +span=3,0,0,ccs,ami,nt,term +bchan=6-7 +hardhdlc=8 + + +span=4,0,0,ccs,ami,nt,term +bchan=9-10 +hardhdlc=11 + + +span=5,0,0,ccs,ami,nt,term +bchan=12-13 +hardhdlc=14 + +#fxoks=1 +#echocanceller=mg2,1 +#fxsks=2 +#echocanceller=mg2,3 + +loadzone = fr +defaultzone = fr + + diff --git a/asterisk-load-tests/full_IO/README b/asterisk-load-tests/full_IO/README new file mode 100644 index 0000000..facfc96 --- /dev/null +++ b/asterisk-load-tests/full_IO/README @@ -0,0 +1,46 @@ +# TODO: +# - write the conf files and the script.. +# - should probably remove the ssh key on PCB after the test +# - on error, get PCB serial number, IP, MAC, logs and conf files (PCB and XHD +# side) + +Objective +--------- +This will checks that all port are basically fonctioning. +It runs 3 tests: + * Set the PCB[T0] ports in TE mode and the XHD[T0] ones in NT and then initiate + the call from XHD, the PCB should call back. + * Then it sets ports in the other way (NT/TE) an send a new call from XHD. + * Finally checks the FXO and FXS ports. + +Needs: + * Both card on the same network (ssh connection) + * The ssh key of XHD in the PCB' `~/.ssh/authorized_keys' + +Setup +----- + +You need to connect the proto board (ref bellow as "PCB") to the testing +computer (ref bellow as "XHD") which embbed a Digium BRI card. + + ------------ ------------ + PCB T0 -|−−−−−−−−−|- T0 XHD + T0 -|−−−−−−−−−|- T0 + T0 -|−−−−−−−−−|- T0 + T0 -|−−−−−−−−−|- T0 + | | + FXS -|−−−−−−−−−|- FXO + FXO -|−−−−−−−−−|- FXS + ------------ ------------ + + +Running the test +---------------- +#FIXME +# +run the full_IO.sh script + + + + diff --git a/asterisk-load-tests/full_IO/pcb/chan_dahdi.conf b/asterisk-load-tests/full_IO/pcb/chan_dahdi.conf new file mode 100644 index 0000000..46dca53 --- /dev/null +++ b/asterisk-load-tests/full_IO/pcb/chan_dahdi.conf @@ -0,0 +1,65 @@ +; +; DAHDI Telephony Configuration file +; +; You need to restart Asterisk to re-configure the DAHDI channel + +[trunkgroups] +; Trunk groups are used for NFAS connections. + +[channels] +usecallerid=yes +callwaiting=yes +usecallingpres=yes +callwaitingcallerid=yes +threewaycalling=yes +transfer=yes +canpark=yes +cancallforward=yes +callreturn=yes +group=1 +callgroup=1 +pickupgroup=1 + + +signalling=fxo_ks +callerid="Analog Phone" <1> +overlapdial=yes +mailbox=101 +group=11 +context=from-pstn +channel => 1 + +signalling=fxs_ks +callerid=asreceived +overlapdial=yes +group=12 +context=from-pstn +channel => 2 + +signalling=bri_net_ptmp +switchtype=euroisdn +overlapdial=yes +context=from-isdn +group=21 +channel => 3-4 + +signalling=bri_net_ptmp +switchtype=euroisdn +context=from-isdn +overlapdial=yes +group=22 +channel => 6-7 + +signalling=bri_net_ptmp +context=from-isdn +switchtype=euroisdn +overlapdial=yes +group=23 +channel => 9-10 + +signalling=bri_net_ptmp +context=from-isdn +switchtype=euroisdn +overlapdial=yes +group=24 +channel => 12-13 diff --git a/asterisk-load-tests/full_IO/pcb/extensions.conf b/asterisk-load-tests/full_IO/pcb/extensions.conf new file mode 100644 index 0000000..50d9f14 --- /dev/null +++ b/asterisk-load-tests/full_IO/pcb/extensions.conf @@ -0,0 +1,80 @@ +[from-internal] +include => default + +[from-sip] +exten = s,1,Dial(DAHDI/g11) + +[from-isdn] +include => default + +[from-pstn] +include => default + +exten = 103,1,NoOp(Dial FXS port - this is intended to be a loop) +exten = 103,n,Dial(DAHDI/g11/${EXTEN}) + +[default] +; FXS port +exten = 11,1,NoOp( Call 11 ) +same = n,Dial(DAHDI/g11) +same = n,Goto(hangup) + +; FXO port +exten = 12,1,NoOp( Call 12 ) +same = n,Dial(DAHDI/g12) +same = n,Hangup() + +; ISDN port#1 +exten = _21.,1,NoOp( Call 21 ) +same = n,Dial(DAHDI/g21/${EXTEN:2}) +;same = n,Hangup() + +; ISDN port#2 +exten = _22.,1,NoOp( Call 22 ) +same = n,Dial(DAHDI/g22/${EXTEN:2}) +;same = n,Hangup() + +; ISDN port#3 +exten = _23.,1,NoOp( Call 23 ) +same = n,Dial(DAHDI/g23/${EXTEN:2}) +;same = n,Hangup() + +; ISDN port#4 +exten = _24.,1,NoOp( Call 24 ) +same = n,Dial(DAHDI/g24/${EXTEN:2}) +;same = n,Hangup() + +; Aastra IP Phone +exten = 3,1,NoOp( Call 3 ) +exten = 3, n,Dial(SIP/${EXTEN}) + +; vers XiVO +exten = _9X.,1,NoOp() +exten = _9X.,n,Dial(SIP/test-oh/${EXTEN:1}) + + +; Call via ISDN port #2 from ISDN phone +exten = _7X.,1,NoOp( Call ${EXTEN:1} via port #2) +exten = _7X.,n,Dial(DAHDI/g22/${EXTEN:1}) + + +; Test sounds +exten => 123,1,Answer() +exten => 123,2,Playback(spy-agent) +exten => 123,3,Hangup + +exten = 666,1,While(1) +exten = 666,n,Playback(/root/sounds/schnappi_satan_8k) +exten = 666,n,Sleep(1) +exten = 666,n,EndWhile + +exten = hangup,1,NoOp() +same = n,Answer() +same = n,Wait(3) +same = n,Hangup() + + +;exten = _1XX,1,Dial(SIP/test/${EXTEN}) + +[te] +exten = s,1,NoOp(${CALLERID} => ${EXTEN}) diff --git a/asterisk-load-tests/full_IO/pcb/sip.conf b/asterisk-load-tests/full_IO/pcb/sip.conf new file mode 100644 index 0000000..83b744e --- /dev/null +++ b/asterisk-load-tests/full_IO/pcb/sip.conf @@ -0,0 +1,686 @@ +; +; SIP Configuration example for Asterisk +; +; Syntax for specifying a SIP device in extensions.conf is +; SIP/devicename where devicename is defined in a section below. +; +; You may also use +; SIP/username@domain to call any SIP user on the Internet +; (Don't forget to enable DNS SRV records if you want to use this) +; +; If you define a SIP proxy as a peer below, you may call +; SIP/proxyhostname/user or SIP/user@proxyhostname +; where the proxyhostname is defined in a section below +; +; Useful CLI commands to check peers/users: +; sip show peers Show all SIP peers (including friends) +; sip show users Show all SIP users (including friends) +; sip show registry Show status of hosts we register with +; +; sip debug Show all SIP messages +; +; reload chan_sip.so Reload configuration file +; Active SIP peers will not be reconfigured +; + +[general] +context=from-sip ; Default context for incoming calls +;allowguest=no ; Allow or reject guest calls (default is yes) +allowoverlap=no ; Disable overlap dialing support. (Default is yes) +;allowtransfer=no ; Disable all transfers (unless enabled in peers or users) + ; Default is enabled +;realm=mydomain.tld ; Realm for digest authentication + ; defaults to "asterisk". If you set a system name in + ; asterisk.conf, it defaults to that system name + ; Realms MUST be globally unique according to RFC 3261 + ; Set this to your host name or domain name +bindport=5060 ; UDP Port to bind to (SIP standard port is 5060) + ; bindport is the local UDP port that Asterisk will listen on +bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all) +srvlookup=yes ; Enable DNS SRV lookups on outbound calls + ; Note: Asterisk only uses the first host + ; in SRV records + ; Disabling DNS SRV lookups disables the + ; ability to place SIP calls based on domain + ; names to some other SIP users on the Internet + +;domain=mydomain.tld ; Set default domain for this host + ; If configured, Asterisk will only allow + ; INVITE and REFER to non-local domains + ; Use "sip show domains" to list local domains +;pedantic=yes ; Enable checking of tags in headers, + ; international character conversions in URIs + ; and multiline formatted headers for strict + ; SIP compatibility (defaults to "no") + +; See doc/ip-tos.txt for a description of these parameters. +;tos_sip=cs3 ; Sets TOS for SIP packets. +;tos_audio=ef ; Sets TOS for RTP audio packets. +;tos_video=af41 ; Sets TOS for RTP video packets. + +;maxexpiry=3600 ; Maximum allowed time of incoming registrations + ; and subscriptions (seconds) +;minexpiry=60 ; Minimum length of registrations/subscriptions (default 60) +;defaultexpiry=120 ; Default length of incoming/outgoing registration +;t1min=100 ; Minimum roundtrip time for messages to monitored hosts + ; Defaults to 100 ms +;notifymimetype=text/plain ; Allow overriding of mime type in MWI NOTIFY +;checkmwi=10 ; Default time between mailbox checks for peers +;buggymwi=no ; Cisco SIP firmware doesn't support the MWI RFC + ; fully. Enable this option to not get error messages + ; when sending MWI to phones with this bug. +;vmexten=voicemail ; dialplan extension to reach mailbox sets the + ; Message-Account in the MWI notify message + ; defaults to "asterisk" +;disallow=all ; First disallow all codecs +;allow=ulaw ; Allow codecs in order of preference +;allow=ilbc ; see doc/rtp-packetization for framing options +; +; This option specifies a preference for which music on hold class this channel +; should listen to when put on hold if the music class has not been set on the +; channel with Set(CHANNEL(musicclass)=whatever) in the dialplan, and the peer +; channel putting this one on hold did not suggest a music class. +; +; This option may be specified globally, or on a per-user or per-peer basis. +; +;mohinterpret=default +; +; This option specifies which music on hold class to suggest to the peer channel +; when this channel places the peer on hold. It may be specified globally or on +; a per-user or per-peer basis. +; +;mohsuggest=default +; +;language=en ; Default language setting for all users/peers + ; This may also be set for individual users/peers +;relaxdtmf=yes ; Relax dtmf handling +;trustrpid = no ; If Remote-Party-ID should be trusted +;sendrpid = yes ; If Remote-Party-ID should be sent +;progressinband=never ; If we should generate in-band ringing always + ; use 'never' to never use in-band signalling, even in cases + ; where some buggy devices might not render it + ; Valid values: yes, no, never Default: never +;useragent=Asterisk PBX ; Allows you to change the user agent string +;promiscredir = no ; If yes, allows 302 or REDIR to non-local SIP address + ; Note that promiscredir when redirects are made to the + ; local system will cause loops since Asterisk is incapable + ; of performing a "hairpin" call. +;usereqphone = no ; If yes, ";user=phone" is added to uri that contains + ; a valid phone number +;dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833 + ; Other options: + ; info : SIP INFO messages + ; inband : Inband audio (requires 64 kbit codec -alaw, ulaw) + ; auto : Use rfc2833 if offered, inband otherwise + +;compactheaders = yes ; send compact sip headers. +; +;videosupport=yes ; Turn on support for SIP video. You need to turn this on + ; in the this section to get any video support at all. + ; You can turn it off on a per peer basis if the general + ; video support is enabled, but you can't enable it for + ; one peer only without enabling in the general section. +;maxcallbitrate=384 ; Maximum bitrate for video calls (default 384 kb/s) + ; Videosupport and maxcallbitrate is settable + ; for peers and users as well +;callevents=no ; generate manager events when sip ua + ; performs events (e.g. hold) +;alwaysauthreject = yes ; When an incoming INVITE or REGISTER is to be rejected, + ; for any reason, always reject with '401 Unauthorized' + ; instead of letting the requester know whether there was + ; a matching user or peer for their request + +;g726nonstandard = yes ; If the peer negotiates G726-32 audio, use AAL2 packing + ; order instead of RFC3551 packing order (this is required + ; for Sipura and Grandstream ATAs, among others). This is + ; contrary to the RFC3551 specification, the peer _should_ + ; be negotiating AAL2-G726-32 instead :-( + +;matchexterniplocally = yes ; Only substitute the externip or externhost setting if it matches + ; your localnet setting. Unless you have some sort of strange network + ; setup you will not need to enable this. + +; +; If regcontext is specified, Asterisk will dynamically create and destroy a +; NoOp priority 1 extension for a given peer who registers or unregisters with +; us and have a "regexten=" configuration item. +; Multiple contexts may be specified by separating them with '&'. The +; actual extension is the 'regexten' parameter of the registering peer or its +; name if 'regexten' is not provided. If more than one context is provided, +; the context must be specified within regexten by appending the desired +; context after '@'. More than one regexten may be supplied if they are +; separated by '&'. Patterns may be used in regexten. +; +;regcontext=sipregistrations +; +;--------------------------- RTP timers ---------------------------------------------------- +; These timers are currently used for both audio and video streams. The RTP timeouts +; are only applied to the audio channel. +; The settings are settable in the global section as well as per device +; +;rtptimeout=60 ; Terminate call if 60 seconds of no RTP or RTCP activity + ; on the audio channel + ; when we're not on hold. This is to be able to hangup + ; a call in the case of a phone disappearing from the net, + ; like a powerloss or grandma tripping over a cable. +;rtpholdtimeout=300 ; Terminate call if 300 seconds of no RTP or RTCP activity + ; on the audio channel + ; when we're on hold (must be > rtptimeout) +;rtpkeepalive= ; Send keepalives in the RTP stream to keep NAT open + ; (default is off - zero) +;--------------------------- SIP DEBUGGING --------------------------------------------------- +;sipdebug = yes ; Turn on SIP debugging by default, from + ; the moment the channel loads this configuration +;recordhistory=yes ; Record SIP history by default + ; (see sip history / sip no history) +;dumphistory=yes ; Dump SIP history at end of SIP dialogue + ; SIP history is output to the DEBUG logging channel + + +;--------------------------- STATUS NOTIFICATIONS (SUBSCRIPTIONS) ---------------------------- +; You can subscribe to the status of extensions with a "hint" priority +; (See extensions.conf.sample for examples) +; chan_sip support two major formats for notifications: dialog-info and SIMPLE +; +; You will get more detailed reports (busy etc) if you have a call limit set +; for a device. When the call limit is filled, we will indicate busy. Note that +; you need at least 2 in order to be able to do attended transfers. +; +; For queues, you will need this level of detail in status reporting, regardless +; if you use SIP subscriptions. Queues and manager use the same internal interface +; for reading status information. +; +; Note: Subscriptions does not work if you have a realtime dialplan and use the +; realtime switch. +; +;allowsubscribe=no ; Disable support for subscriptions. (Default is yes) +;subscribecontext = default ; Set a specific context for SUBSCRIBE requests + ; Useful to limit subscriptions to local extensions + ; Settable per peer/user also +;notifyringing = yes ; Notify subscriptions on RINGING state (default: no) +;notifyhold = yes ; Notify subscriptions on HOLD state (default: no) + ; Turning on notifyringing and notifyhold will add a lot + ; more database transactions if you are using realtime. +;limitonpeers = yes ; Apply call limits on peers only. This will improve + ; status notification when you are using type=friend + ; Inbound calls, that really apply to the user part + ; of a friend will now be added to and compared with + ; the peer limit instead of applying two call limits, + ; one for the peer and one for the user. + ; "sip show inuse" will only show active calls on + ; the peer side of a "type=friend" object if this + ; setting is turned on. + +;----------------------------------------- T.38 FAX PASSTHROUGH SUPPORT ----------------------- +; +; This setting is available in the [general] section as well as in device configurations. +; Setting this to yes, enables T.38 fax (UDPTL) passthrough on SIP to SIP calls, provided +; both parties have T38 support enabled in their Asterisk configuration +; This has to be enabled in the general section for all devices to work. You can then +; disable it on a per device basis. +; +; T.38 faxing only works in SIP to SIP calls, with no local or agent channel being used. +; +; t38pt_udptl = yes ; Default false +; +;----------------------------------------- OUTBOUND SIP REGISTRATIONS ------------------------ +; Asterisk can register as a SIP user agent to a SIP proxy (provider) +; Format for the register statement is: +; register => user[:secret[:authuser]]@host[:port][/extension] +; +; If no extension is given, the 's' extension is used. The extension needs to +; be defined in extensions.conf to be able to accept calls from this SIP proxy +; (provider). +; +; host is either a host name defined in DNS or the name of a section defined +; below. +; +; Examples: +; + +; XIVO XIVO XIVO + +; register => test-oh:toto@192.168.0.252 + +register => wg4xt2:29PUQE@192.168.17.252 + +; 41302 + +[test-oh] +type=friend +username=wg4xt2 +fromuser=41302 +secret=29PUQE +host=192.168.17.252 +nat=no + + +; +; This will pass incoming calls to the 's' extension +; +; +;register => 2345:password@sip_proxy/1234 +; +; Register 2345 at sip provider 'sip_proxy'. Calls from this provider +; connect to local extension 1234 in extensions.conf, default context, +; unless you configure a [sip_proxy] section below, and configure a +; context. +; Tip 1: Avoid assigning hostname to a sip.conf section like [provider.com] +; Tip 2: Use separate type=peer and type=user sections for SIP providers +; (instead of type=friend) if you have calls in both directions + +;registertimeout=20 ; retry registration calls every 20 seconds (default) +;registerattempts=10 ; Number of registration attempts before we give up + ; 0 = continue forever, hammering the other server + ; until it accepts the registration + ; Default is 0 tries, continue forever + +;----------------------------------------- NAT SUPPORT ------------------------ +; The externip, externhost and localnet settings are used if you use Asterisk +; behind a NAT device to communicate with services on the outside. + +;externip = 200.201.202.203 ; Address that we're going to put in outbound SIP + ; messages if we're behind a NAT + + ; The externip and localnet is used + ; when registering and communicating with other proxies + ; that we're registered with +;externhost=foo.dyndns.net ; Alternatively you can specify an + ; external host, and Asterisk will + ; perform DNS queries periodically. Not + ; recommended for production + ; environments! Use externip instead +;externrefresh=10 ; How often to refresh externhost if + ; used + ; You may add multiple local networks. A reasonable + ; set of defaults are: +;localnet=192.168.0.0/255.255.0.0; All RFC 1918 addresses are local networks +;localnet=10.0.0.0/255.0.0.0 ; Also RFC1918 +;localnet=172.16.0.0/12 ; Another RFC1918 with CIDR notation +;localnet=169.254.0.0/255.255.0.0 ;Zero conf local network + +; The nat= setting is used when Asterisk is on a public IP, communicating with +; devices hidden behind a NAT device (broadband router). If you have one-way +; audio problems, you usually have problems with your NAT configuration or your +; firewall's support of SIP+RTP ports. You configure Asterisk choice of RTP +; ports for incoming audio in rtp.conf +; +;nat=no ; Global NAT settings (Affects all peers and users) + ; yes = Always ignore info and assume NAT + ; no = Use NAT mode only according to RFC3581 (;rport) + ; never = Never attempt NAT mode or RFC3581 support + ; route = Assume NAT, don't send rport + ; (work around more UNIDEN bugs) + +;----------------------------------- MEDIA HANDLING -------------------------------- +; By default, Asterisk tries to re-invite the audio to an optimal path. If there's +; no reason for Asterisk to stay in the media path, the media will be redirected. +; This does not really work with in the case where Asterisk is outside and have +; clients on the inside of a NAT. In that case, you want to set canreinvite=nonat +; +;canreinvite=yes ; Asterisk by default tries to redirect the + ; RTP media stream (audio) to go directly from + ; the caller to the callee. Some devices do not + ; support this (especially if one of them is behind a NAT). + ; The default setting is YES. If you have all clients + ; behind a NAT, or for some other reason wants Asterisk to + ; stay in the audio path, you may want to turn this off. + + ; In Asterisk 1.4 this setting also affect direct RTP + ; at call setup (a new feature in 1.4 - setting up the + ; call directly between the endpoints instead of sending + ; a re-INVITE). + +;directrtpsetup=yes ; Enable the new experimental direct RTP setup. This sets up + ; the call directly with media peer-2-peer without re-invites. + ; Will not work for video and cases where the callee sends + ; RTP payloads and fmtp headers in the 200 OK that does not match the + ; callers INVITE. This will also fail if canreinvite is enabled when + ; the device is actually behind NAT. + +;canreinvite=nonat ; An additional option is to allow media path redirection + ; (reinvite) but only when the peer where the media is being + ; sent is known to not be behind a NAT (as the RTP core can + ; determine it based on the apparent IP address the media + ; arrives from). + +;canreinvite=update ; Yet a third option... use UPDATE for media path redirection, + ; instead of INVITE. This can be combined with 'nonat', as + ; 'canreinvite=update,nonat'. It implies 'yes'. + +;----------------------------------------- REALTIME SUPPORT ------------------------ +; For additional information on ARA, the Asterisk Realtime Architecture, +; please read realtime.txt and extconfig.txt in the /doc directory of the +; source code. +; +;rtcachefriends=yes ; Cache realtime friends by adding them to the internal list + ; just like friends added from the config file only on a + ; as-needed basis? (yes|no) + +;rtsavesysname=yes ; Save systemname in realtime database at registration + ; Default= no + +;rtupdate=yes ; Send registry updates to database using realtime? (yes|no) + ; If set to yes, when a SIP UA registers successfully, the ip address, + ; the origination port, the registration period, and the username of + ; the UA will be set to database via realtime. + ; If not present, defaults to 'yes'. +;rtautoclear=yes ; Auto-Expire friends created on the fly on the same schedule + ; as if it had just registered? (yes|no|) + ; If set to yes, when the registration expires, the friend will + ; vanish from the configuration until requested again. If set + ; to an integer, friends expire within this number of seconds + ; instead of the registration interval. + +;ignoreregexpire=yes ; Enabling this setting has two functions: + ; + ; For non-realtime peers, when their registration expires, the + ; information will _not_ be removed from memory or the Asterisk database + ; if you attempt to place a call to the peer, the existing information + ; will be used in spite of it having expired + ; + ; For realtime peers, when the peer is retrieved from realtime storage, + ; the registration information will be used regardless of whether + ; it has expired or not; if it expires while the realtime peer + ; is still in memory (due to caching or other reasons), the + ; information will not be removed from realtime storage + +;----------------------------------------- SIP DOMAIN SUPPORT ------------------------ +; Incoming INVITE and REFER messages can be matched against a list of 'allowed' +; domains, each of which can direct the call to a specific context if desired. +; By default, all domains are accepted and sent to the default context or the +; context associated with the user/peer placing the call. +; Domains can be specified using: +; domain=[,] +; Examples: +; domain=myasterisk.dom +; domain=customer.com,customer-context +; +; In addition, all the 'default' domains associated with a server should be +; added if incoming request filtering is desired. +; autodomain=yes +; +; To disallow requests for domains not serviced by this server: +; allowexternaldomains=no + +;domain=mydomain.tld,mydomain-incoming + ; Add domain and configure incoming context + ; for external calls to this domain +;domain=1.2.3.4 ; Add IP address as local domain + ; You can have several "domain" settings +;allowexternaldomains=no ; Disable INVITE and REFER to non-local domains + ; Default is yes +;autodomain=yes ; Turn this on to have Asterisk add local host + ; name and local IP to domain list. + +; fromdomain=mydomain.tld ; When making outbound SIP INVITEs to + ; non-peers, use your primary domain "identity" + ; for From: headers instead of just your IP + ; address. This is to be polite and + ; it may be a mandatory requirement for some + ; destinations which do not have a prior + ; account relationship with your server. + +;------------------------------ 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. + +; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". +;----------------------------------------------------------------------------------- + +[authentication] +; Global credentials for outbound calls, i.e. when a proxy challenges your +; Asterisk server for authentication. These credentials override +; any credentials in peer/register definition if realm is matched. +; +; This way, Asterisk can authenticate for outbound calls to other +; realms. We match realm on the proxy challenge and pick an set of +; credentials from this list +; Syntax: +; auth = :@ +; auth = #@ +; Example: +;auth=mark:topsecret@digium.com +; +; You may also add auth= statements to [peer] definitions +; Peer auth= override all other authentication settings if we match on realm + +;------------------------------------------------------------------------------ +; Users and peers have different settings available. Friends have all settings, +; since a friend is both a peer and a user +; +; User config options: Peer configuration: +; -------------------- ------------------- +; context context +; callingpres callingpres +; permit permit +; deny deny +; secret secret +; md5secret md5secret +; dtmfmode dtmfmode +; canreinvite canreinvite +; nat nat +; callgroup callgroup +; pickupgroup pickupgroup +; language language +; allow allow +; disallow disallow +; insecure insecure +; trustrpid trustrpid +; progressinband progressinband +; promiscredir promiscredir +; useclientcode useclientcode +; accountcode accountcode +; setvar setvar +; callerid callerid +; amaflags amaflags +; call-limit call-limit +; allowoverlap allowoverlap +; allowsubscribe allowsubscribe +; allowtransfer allowtransfer +; subscribecontext subscribecontext +; videosupport videosupport +; maxcallbitrate maxcallbitrate +; rfc2833compensate mailbox +; t38pt_usertpsource username +; template +; fromdomain +; regexten +; fromuser +; host +; port +; qualify +; defaultip +; rtptimeout +; rtpholdtimeout +; sendrpid +; outboundproxy +; rfc2833compensate +; t38pt_usertpsource + +;[sip_proxy] +; For incoming calls only. Example: FWD (Free World Dialup) +; We match on IP address of the proxy for incoming calls +; since we can not match on username (caller id) +;type=peer +;context=from-fwd +;host=fwd.pulver.com + +;[sip_proxy-out] +;type=peer ; we only want to call out, not be called +;secret=guessit +;username=yourusername ; Authentication user for outbound proxies +;fromuser=yourusername ; Many SIP providers require this! +;fromdomain=provider.sip.domain +;host=box.provider.com +;usereqphone=yes ; This provider requires ";user=phone" on URI +;call-limit=5 ; permit only 5 simultaneous outgoing calls to this peer +;outboundproxy=proxy.provider.domain ; send outbound signaling to this proxy, not directly to the peer + ; Call-limits will not be enforced on real-time peers, + ; since they are not stored in-memory +;port=80 ; The port number we want to connect to on the remote side + ; Also used as "defaultport" in combination with "defaultip" settings + +;------------------------------------------------------------------------------ +; Definitions of locally connected SIP devices +; +; type = user a device that authenticates to us by "from" field to place calls +; type = peer a device we place calls to or that calls us and we match by host +; type = friend two configurations (peer+user) in one +; +; For device names, we recommend using only a-z, numerics (0-9) and underscore +; +; For local phones, type=friend works most of the time +; +; If you have one-way audio, you probably have NAT problems. +; If Asterisk is on a public IP, and the phone is inside of a NAT device +; you will need to configure nat option for those phones. +; Also, turn on qualify=yes to keep the nat session open + +;[grandstream1] +;type=friend +;context=from-sip ; Where to start in the dialplan when this phone calls +;callerid=John Doe <1234> ; Full caller ID, to override the phones config + ; on incoming calls to Asterisk +;host=192.168.0.23 ; we have a static but private IP address + ; No registration allowed +;nat=no ; there is not NAT between phone and Asterisk +;canreinvite=yes ; allow RTP voice traffic to bypass Asterisk +;dtmfmode=info ; either RFC2833 or INFO for the BudgeTone +;call-limit=1 ; permit only 1 outgoing call and 1 incoming call at a time + ; from the phone to asterisk + ; 1 for the explicit peer, 1 for the explicit user, + ; remember that a friend equals 1 peer and 1 user in + ; memory + ; This will affect your subscriptions as well. + ; There is no combined call counter for a "friend" + ; so there's currently no way in sip.conf to limit + ; to one inbound or outbound call per phone. Use + ; the group counters in the dial plan for that. + ; +;mailbox=1234@default ; mailbox 1234 in voicemail context "default" +;disallow=all ; need to disallow=all before we can use allow= +;allow=ulaw ; Note: In user sections the order of codecs + ; listed with allow= does NOT matter! +;allow=alaw +;allow=g723.1 ; Asterisk only supports g723.1 pass-thru! +;allow=g729 ; Pass-thru only unless g729 license obtained +;callingpres=allowed_passed_screen ; Set caller ID presentation + ; See doc/callingpres.txt for more information + + +;[xlite1] +; Turn off silence suppression in X-Lite ("Transmit Silence"=YES)! +; Note that Xlite sends NAT keep-alive packets, so qualify=yes is not needed +;type=friend +;regexten=1234 ; When they register, create extension 1234 +;callerid="Jane Smith" <5678> +;host=dynamic ; This device needs to register +;nat=yes ; X-Lite is behind a NAT router +;canreinvite=no ; Typically set to NO if behind NAT +;disallow=all +;allow=gsm ; GSM consumes far less bandwidth than ulaw +;allow=ulaw +;allow=alaw +;mailbox=1234@default,1233@default ; Subscribe to status of multiple mailboxes + + +;[snom] +;type=friend ; Friends place calls and receive calls +;context=from-sip ; Context for incoming calls from this user +;secret=blah +;subscribecontext=localextensions ; Only allow SUBSCRIBE for local extensions +;language=de ; Use German prompts for this user +;host=dynamic ; This peer register with us +;dtmfmode=inband ; Choices are inband, rfc2833, or info +;defaultip=192.168.0.59 ; IP used until peer registers +;mailbox=1234@context,2345 ; Mailbox(-es) for message waiting indicator +;subscribemwi=yes ; Only send notifications if this phone + ; subscribes for mailbox notification +;vmexten=voicemail ; dialplan extension to reach mailbox + ; sets the Message-Account in the MWI notify message + ; defaults to global vmexten which defaults to "asterisk" +;disallow=all +;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw! + + +;[polycom] +;type=friend ; Friends place calls and receive calls +;context=from-sip ; Context for incoming calls from this user +;secret=blahpoly +;host=dynamic ; This peer register with us +;dtmfmode=rfc2833 ; Choices are inband, rfc2833, or info +;username=polly ; Username to use in INVITE until peer registers + ; Normally you do NOT need to set this parameter +;disallow=all +;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw! +;progressinband=no ; Polycom phones don't work properly with "never" + + +;[pingtel] +;type=friend +;secret=blah +;host=dynamic +;insecure=port ; Allow matching of peer by IP address without + ; matching port number +;insecure=invite ; Do not require authentication of incoming INVITEs +;insecure=port,invite ; (both) +;qualify=1000 ; Consider it down if it's 1 second to reply + ; Helps with NAT session + ; qualify=yes uses default value +; +; Call group and Pickup group should be in the range from 0 to 63 +; +;callgroup=1,3-4 ; We are in caller groups 1,3,4 +;pickupgroup=1,3-5 ; We can do call pick-p for call group 1,3,4,5 +;defaultip=192.168.0.60 ; IP address to use if peer has not registered +;deny=0.0.0.0/0.0.0.0 ; ACL: Control access to this account based on IP address +;permit=192.168.0.60/255.255.255.0 + +;[cisco1] +;type=friend +;secret=blah +;qualify=200 ; Qualify peer is no more than 200ms away +;nat=yes ; This phone may be natted + ; Send SIP and RTP to the IP address that packet is + ; received from instead of trusting SIP headers +;host=dynamic ; This device registers with us +;canreinvite=no ; Asterisk by default tries to redirect the + ; RTP media stream (audio) to go directly from + ; the caller to the callee. Some devices do not + ; support this (especially if one of them is + ; behind a NAT). +;defaultip=192.168.0.4 ; IP address to use until registration +;username=goran ; Username to use when calling this device before registration + ; Normally you do NOT need to set this parameter +;setvar=CUSTID=5678 ; Channel variable to be set for all calls from this device + +;[pre14-asterisk] +;type=friend +;secret=digium +;host=dynamic +;rfc2833compensate=yes ; Compensate for pre-1.4 DTMF transmission from another Asterisk machine. + ; You must have this turned on or DTMF reception will work improperly. +;t38pt_usertpsource=yes ; Use the source IP address of RTP as the destination IP address for UDPTL packets + ; if the nat option is enabled. If a single RTP packet is received Asterisk will know the + ; external IP address of the remote device. If port forwarding is done at the client side + ; then UDPTL will flow to the remote device. diff --git a/asterisk-load-tests/full_IO/pcb/system.conf b/asterisk-load-tests/full_IO/pcb/system.conf new file mode 100644 index 0000000..a9b6695 --- /dev/null +++ b/asterisk-load-tests/full_IO/pcb/system.conf @@ -0,0 +1,33 @@ +# Autogenerated by /usr/sbin/dahdi_genconf on Thu Dec 9 06:33:08 2010 +# If you edit this file and execute /usr/sbin/dahdi_genconf again, +# your manual changes will be LOST. +# Dahdi Configuration File +# +# This file is parsed by the Dahdi Configurator, dahdi_cfg +# +# Global data + +fxoks=1 +#echocanceller=mg2,1 +fxsks=2 +#echocanceller=mg2,3 + +span=2,0,0,ccs,ami,nt,term +bchan=3-4 +hardhdlc=5 + +span=3,0,0,ccs,ami,nt,term +bchan=6-7 +hardhdlc=8 + +span=4,0,0,ccs,ami,nt,term +bchan=9-10 +hardhdlc=11 + +span=5,0,0,ccs,ami,nt,term +bchan=12-13 +hardhdlc=14 + +loadzone = fr +defaultzone = fr + diff --git a/asterisk-load-tests/full_IO/xhd/chan_dahdi.conf b/asterisk-load-tests/full_IO/xhd/chan_dahdi.conf new file mode 100644 index 0000000..e076b91 --- /dev/null +++ b/asterisk-load-tests/full_IO/xhd/chan_dahdi.conf @@ -0,0 +1,79 @@ +; +; DAHDI Telephony Configuration file +; +[trunkgroups] + +[channels] +usecallerid=yes +callwaiting=yes +usecallingpres=yes +callwaitingcallerid=yes +threewaycalling=yes +transfer=yes +canpark=yes +cancallforward=yes +callreturn=yes +echocancel=yes +echocancelwhenbridged=yes +group=1 +callgroup=1 +pickupgroup=1 + +; Span 1: B4/0/1 "B4XXP (PCI) Card 0" (MASTER) +signalling=bri_cpe_ptmp +switchtype=euroisdn +overlapdial=yes +context=from-isdn +group=11 +channel => 1-2 + +; Span 2: B4/0/2 "B4XXP (PCI) Card 0" +signalling=bri_cpe_ptmp +switchtype=euroisdn +context=from-isdn +group=12 +overlapdial=yes +channel => 4-5 + +; Span 3: B4/0/3 "B4XXP (PCI) Card 0" +signalling=bri_cpe_ptmp +switchtype=euroisdn +context=from-isdn +group=13 +overlapdial=yes +channel => 7-8 + +; Span 4: B4/0/4 "B4XXP (PCI) Card 0" +signalling=bri_cpe_ptmp +switchtype=euroisdn +context=from-isdn +group=14 +overlapdial=yes +;layer1_presence=ignore +channel => 10-11 + +; line="13 WCTDM/4/0 FXOKS" +signalling=fxo_ks +callerid="Analog Phone" <1> +overlapdial=yes +mailbox=11 +group=6 +context=from-pstn +channel => 13 + +; line="14 WCTDM/4/1 FXOKS" +signalling=fxo_ks +callerid="Analog Phone" <1> +overlapdial=yes +mailbox=12 +group=5 +context=from-pstn +channel => 14 + +; line="15 WCTDM/4/2 FXSKS" +signalling=fxs_ks +callerid=asreceived +group=4 +context=from-pstn +channel => 15 + diff --git a/asterisk-load-tests/full_IO/xhd/conf.py b/asterisk-load-tests/full_IO/xhd/conf.py new file mode 100644 index 0000000..7e6b6d4 --- /dev/null +++ b/asterisk-load-tests/full_IO/xhd/conf.py @@ -0,0 +1,31 @@ +# -*- coding: UTF-8 -*- + +from __future__ import unicode_literals + +## global configuration + +sipp_remote_host = '127.0.0.1' + +sipp_local_ip = '127.0.0.1' +sipp_call_rate = 1.0 +sipp_pause_in_ms = 6000 +sipp_rate_period_in_ms = 18000 + sipp_pause_in_ms + +## scenarios configuration + +called_line = { + 'username': 'loadtester2', + 'bind_port': 5070, +} + +calling_line = { + 'username': 'loadtester1', + 'password': 'loadtester1', +} + +# scenarios.call_then_hangup.calling_line = calling_line +# calling trhough FXS port 1 to reach port FXO on pcb#4 - cf dialplan for 105 +scenarios.call_then_hangup.called_exten = '105' + +#scenarios.call_then_wait.calling_line = calling_line +scenarios.call_then_wait.called_exten = '102' diff --git a/asterisk-load-tests/full_IO/xhd/extensions.conf b/asterisk-load-tests/full_IO/xhd/extensions.conf new file mode 100644 index 0000000..7d862d2 --- /dev/null +++ b/asterisk-load-tests/full_IO/xhd/extensions.conf @@ -0,0 +1,76 @@ +[default] +; -- Carte Digium B410p +; appel via le port B410p BRI 1 +exten = _11.,1,NoOp() +same = n,Dial(DAHDI/g11/${EXTEN:2}) +same = n,Hangup() + +; appel via le port B410p BRI 2 +exten = _12.,1,NoOp() +same = n,Dial(DAHDI/g12/${EXTEN:2}) +same = n,Hangup() + +; appel via le port B410p BRI 3 +exten = _13.,1,NoOp() +same = n,Dial(DAHDI/g13/${EXTEN:2}) +same = n,Hangup() + +; appel via le port B410p BRI 4 +exten = _14.,1,NoOp() +;same = n,Goto(hangup,1) +same = n,Dial(DAHDI/g14/${EXTEN:2}) +same = n,Hangup() + +; -- Carte TDM400 +; appel via le port FXS 1 de la carte TDM400 +exten = 51,1,NoOp() +same = n,Dial(DAHDI/g6/${EXTEN:2}) +same = n,Hangup() + +; appel via le port FXS 2 de la carte TDM400 +exten = 52,1,NoOp() +same = n,Dial(DAHDI/g5/${EXTEN:2}) +same = n,Hangup() + +; appel via le port FXO 1 de la carte TDM400 +exten = 53,1,NoOp() +same = n,Dial(DAHDI/g4/${EXTEN:2}) +same = n,Hangup() + +exten = s,1,NoOp() +;same = n,Goto(wait-and-hangup,1) +same = n,Goto(call-loadtester2,1) + +exten = wait-and-hangup,1,NoOp() +same = n,Answer() +same = n,Wait(60) +same = n,Hangup() + +exten = call-loadtester2,1,NoOp() +same = n,Dial(SIP/loadtester2) +same = n,Hangup() + +exten = hangup,1,NoOp() +same = n,Answer() +same = n,Wait(10) +same = n,Hangup() + +[from-internal] +include => default + +[from-pstn] +include => default + +[from-isdn] +;include => default +exten => _X.,1,Answer + same => n,Echo + same => n,Hangup + +[loadtest] +exten => s,1,NoOp(Init call for test) +exten => s,n,Answer +exten => s,n,Playback(hello-world) +exten => s,n,Echo +exten => s,n,Hangup + diff --git a/asterisk-load-tests/full_IO/xhd/sip.conf b/asterisk-load-tests/full_IO/xhd/sip.conf new file mode 100644 index 0000000..98fad2d --- /dev/null +++ b/asterisk-load-tests/full_IO/xhd/sip.conf @@ -0,0 +1,1340 @@ +; +; SIP Configuration example for Asterisk +; +; Note: Please read the security documentation for Asterisk in order to +; understand the risks of installing Asterisk with the sample +; configuration. If your Asterisk is installed on a public +; IP address connected to the Internet, you will want to learn +; about the various security settings BEFORE you start +; Asterisk. +; +; Especially note the following settings: +; - allowguest (default enabled) +; - permit/deny - IP address filters +; - contactpermit/contactdeny - IP address filters for registrations +; - context - Which set of services you offer various users +; +; SIP dial strings +;----------------------------------------------------------- +; In the dialplan (extensions.conf) you can use several +; syntaxes for dialing SIP devices. +; SIP/devicename +; SIP/username@domain (SIP uri) +; SIP/username[:password[:md5secret[:authname[:transport]]]]@host[:port] +; SIP/devicename/extension +; SIP/devicename/extension/IPorHost +; SIP/username@domain//IPorHost +; +; +; Devicename +; devicename is defined as a peer in a section below. +; +; username@domain +; Call any SIP user on the Internet +; (Don't forget to enable DNS SRV records if you want to use this) +; +; devicename/extension +; If you define a SIP proxy as a peer below, you may call +; SIP/proxyhostname/user or SIP/user@proxyhostname +; where the proxyhostname is defined in a section below +; This syntax also works with ATA's with FXO ports +; +; SIP/username[:password[:md5secret[:authname]]]@host[:port] +; This form allows you to specify password or md5secret and authname +; without altering any authentication data in config. +; Examples: +; +; SIP/*98@mysipproxy +; SIP/sales:topsecret::account02@domain.com:5062 +; SIP/12345678::bc53f0ba8ceb1ded2b70e05c3f91de4f:myname@192.168.0.1 +; +; IPorHost +; The next server for this call regardless of domain/peer +; +; All of these dial strings specify the SIP request URI. +; In addition, you can specify a specific To: header by adding an +; exclamation mark after the dial string, like +; +; SIP/sales@mysipproxy!sales@edvina.net +; +; A new feature for 1.8 allows one to specify a host or IP address to use +; when routing the call. This is typically used in tandem with func_srv if +; multiple methods of reaching the same domain exist. The host or IP address +; is specified after the third slash in the dialstring. Examples: +; +; SIP/devicename/extension/IPorHost +; SIP/username@domain//IPorHost +; +; CLI Commands +; ------------------------------------------------------------- +; Useful CLI commands to check peers/users: +; sip show peers Show all SIP peers (including friends) +; sip show registry Show status of hosts we register with +; +; sip set debug on Show all SIP messages +; +; sip reload Reload configuration file +; sip show settings Show the current channel configuration +; +;------- Naming devices ------------------------------------------------------ +; +; When naming devices, make sure you understand how Asterisk matches calls +; that come in. +; 1. Asterisk checks the SIP From: address username and matches against +; names of devices with type=user +; The name is the text between square brackets [name] +; 2. Asterisk checks the From: addres and matches the list of devices +; with a type=peer +; 3. Asterisk checks the IP address (and port number) that the INVITE +; was sent from and matches against any devices with type=peer +; +; Don't mix extensions with the names of the devices. Devices need a unique +; name. The device name is *not* used as phone numbers. Phone numbers are +; anything you declare as an extension in the dialplan (extensions.conf). +; +; When setting up trunks, make sure there's no risk that any From: username +; (caller ID) will match any of your device names, because then Asterisk +; might match the wrong device. +; +; Note: The parameter "username" is not the username and in most cases is +; not needed at all. Check below. In later releases, it's renamed +; to "defaultuser" which is a better name, since it is used in +; combination with the "defaultip" setting. +;----------------------------------------------------------------------------- + +; ** Old configuration options ** +; The "call-limit" configuation option is considered old is replaced +; by new functionality. To enable callcounters, you use the new +; "callcounter" setting (for extension states in queue and subscriptions) +; You are encouraged to use the dialplan groupcount functionality +; to enforce call limits instead of using this channel-specific method. +; You can still set limits per device in sip.conf or in a database by using +; "setvar" to set variables that can be used in the dialplan for various limits. + +[general] +context=default ; Default context for incoming calls +canreinvite=no +;allowguest=no ; Allow or reject guest calls (default is yes) + ; If your Asterisk is connected to the Internet + ; and you have allowguest=yes + ; you want to check which services you offer everyone + ; out there, by enabling them in the default context (see below). +;match_auth_username=yes ; if available, match user entry using the + ; 'username' field from the authentication line + ; instead of the From: field. +allowoverlap=no ; Disable overlap dialing support. (Default is yes) +;allowtransfer=no ; Disable all transfers (unless enabled in peers or users) + ; Default is enabled. The Dial() options 't' and 'T' are not + ; related as to whether SIP transfers are allowed or not. +;realm=mydomain.tld ; Realm for digest authentication + ; defaults to "asterisk". If you set a system name in + ; asterisk.conf, it defaults to that system name + ; Realms MUST be globally unique according to RFC 3261 + ; Set this to your host name or domain name +;domainsasrealm=no ; Use domans list as realms + ; You can serve multiple Realms specifying several + ; 'domain=...' directives (see below). + ; In this case Realm will be based on request 'From'/'To' header + ; and should match one of domain names. + ; Otherwise default 'realm=...' will be used. + +; With the current situation, you can do one of four things: +; a) Listen on a specific IPv4 address. Example: bindaddr=192.0.2.1 +; b) Listen on a specific IPv6 address. Example: bindaddr=2001:db8::1 +; c) Listen on the IPv4 wildcard. Example: bindaddr=0.0.0.0 +; d) Listen on the IPv4 and IPv6 wildcards. Example: bindaddr=:: +; (You can choose independently for UDP, TCP, and TLS, by specifying different values for +; "udpbindaddr", "tcpbindaddr", and "tlsbindaddr".) +; (Note that using bindaddr=:: will show only a single IPv6 socket in netstat. +; IPv4 is supported at the same time using IPv4-mapped IPv6 addresses.) +; +; You may optionally add a port number. (The default is port 5060 for UDP and TCP, 5061 +; for TLS). +; IPv4 example: bindaddr=0.0.0.0:5062 +; IPv6 example: bindaddr=[::]:5062 +; +; The address family of the bound UDP address is used to determine how Asterisk performs +; DNS lookups. In cases a) and c) above, only A records are considered. In case b), only +; AAAA records are considered. In case d), both A and AAAA records are considered. Note, +; however, that Asterisk ignores all records except the first one. In case d), when both A +; and AAAA records are available, either an A or AAAA record will be first, and which one +; depends on the operating system. On systems using glibc, AAAA records are given +; priority. + +udpbindaddr=0.0.0.0 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all) + ; Optionally add a port number, 192.168.1.1:5062 (default is port 5060) + +; When a dialog is started with another SIP endpoint, the other endpoint +; should include an Allow header telling us what SIP methods the endpoint +; implements. However, some endpoints either do not include an Allow header +; or lie about what methods they implement. In the former case, Asterisk +; makes the assumption that the endpoint supports all known SIP methods. +; If you know that your SIP endpoint does not provide support for a specific +; method, then you may provide a comma-separated list of methods that your +; endpoint does not implement in the disallowed_methods option. Note that +; if your endpoint is truthful with its Allow header, then there is no need +; to set this option. This option may be set in the general section or may +; be set per endpoint. If this option is set both in the general section and +; in a peer section, then the peer setting completely overrides the general +; setting (i.e. the result is *not* the union of the two options). +; +; Note also that while Asterisk currently will parse an Allow header to learn +; what methods an endpoint supports, the only actual use for this currently +; is for determining if Asterisk may send connected line UPDATE requests. Its +; use may be expanded in the future. +; +; disallowed_methods = UPDATE + +; +; Note that the TCP and TLS support for chan_sip is currently considered +; experimental. Since it is new, all of the related configuration options are +; subject to change in any release. If they are changed, the changes will +; be reflected in this sample configuration file, as well as in the UPGRADE.txt file. +; +tcpenable=no ; Enable server for incoming TCP connections (default is no) +tcpbindaddr=0.0.0.0 ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces) + ; Optionally add a port number, 192.168.1.1:5062 (default is port 5060) + +;tlsenable=no ; Enable server for incoming TLS (secure) connections (default is no) +;tlsbindaddr=0.0.0.0 ; IP address for TLS server to bind to (0.0.0.0) binds to all interfaces) + ; Optionally add a port number, 192.168.1.1:5063 (default is port 5061) + ; Remember that the IP address must match the common name (hostname) in the + ; certificate, so you don't want to bind a TLS socket to multiple IP addresses. + ; For details how to construct a certificate for SIP see + ; http://tools.ietf.org/html/draft-ietf-sip-domain-certs + +srvlookup=yes ; Enable DNS SRV lookups on outbound calls + ; Note: Asterisk only uses the first host + ; in SRV records + ; Disabling DNS SRV lookups disables the + ; ability to place SIP calls based on domain + ; names to some other SIP users on the Internet + ; Specifying a port in a SIP peer definition or + ; when dialing outbound calls will supress SRV + ; lookups for that peer or call. + +;pedantic=yes ; Enable checking of tags in headers, + ; international character conversions in URIs + ; and multiline formatted headers for strict + ; SIP compatibility (defaults to "no") + +; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters. +;tos_sip=cs3 ; Sets TOS for SIP packets. +;tos_audio=ef ; Sets TOS for RTP audio packets. +;tos_video=af41 ; Sets TOS for RTP video packets. +;tos_text=af41 ; Sets TOS for RTP text packets. + +;cos_sip=3 ; Sets 802.1p priority for SIP packets. +;cos_audio=5 ; Sets 802.1p priority for RTP audio packets. +;cos_video=4 ; Sets 802.1p priority for RTP video packets. +;cos_text=3 ; Sets 802.1p priority for RTP text packets. + +;maxexpiry=3600 ; Maximum allowed time of incoming registrations + ; and subscriptions (seconds) +;minexpiry=60 ; Minimum length of registrations/subscriptions (default 60) +;defaultexpiry=120 ; Default length of incoming/outgoing registration +;mwiexpiry=3600 ; Expiry time for outgoing MWI subscriptions +;maxforwards=70 ; Setting for the SIP Max-Forwards: header (loop prevention) + ; Default value is 70 +;qualifyfreq=60 ; Qualification: How often to check for the host to be up in seconds + ; Set to low value if you use low timeout for NAT of UDP sessions + ; Default: 60 +;qualifygap=100 ; Number of milliseconds between each group of peers being qualified + ; Default: 100 +;qualifypeers=1 ; Number of peers in a group to be qualified at the same time + ; Default: 1 +;notifymimetype=text/plain ; Allow overriding of mime type in MWI NOTIFY +;buggymwi=no ; Cisco SIP firmware doesn't support the MWI RFC + ; fully. Enable this option to not get error messages + ; when sending MWI to phones with this bug. +;mwi_from=asterisk ; When sending MWI NOTIFY requests, use this setting in + ; the From: header as the "name" portion. Also fill the + ; "user" portion of the URI in the From: header with this + ; value if no fromuser is set + ; Default: empty +;vmexten=voicemail ; dialplan extension to reach mailbox sets the + ; Message-Account in the MWI notify message + ; defaults to "asterisk" + +;preferred_codec_only=yes ; Respond to a SIP invite with the single most preferred codec + ; rather than advertising all joint codec capabilities. This + ; limits the other side's codec choice to exactly what we prefer. + +;disallow=all ; First disallow all codecs +;allow=ulaw ; Allow codecs in order of preference +;allow=ilbc ; see doc/rtp-packetization for framing options +; +; This option specifies a preference for which music on hold class this channel +; should listen to when put on hold if the music class has not been set on the +; channel with Set(CHANNEL(musicclass)=whatever) in the dialplan, and the peer +; channel putting this one on hold did not suggest a music class. +; +; This option may be specified globally, or on a per-user or per-peer basis. +; +;mohinterpret=default +; +; This option specifies which music on hold class to suggest to the peer channel +; when this channel places the peer on hold. It may be specified globally or on +; a per-user or per-peer basis. +; +;mohsuggest=default +; +;parkinglot=plaza ; Sets the default parking lot for call parking + ; This may also be set for individual users/peers + ; Parkinglots are configured in features.conf +;language=en ; Default language setting for all users/peers + ; This may also be set for individual users/peers +;relaxdtmf=yes ; Relax dtmf handling +;trustrpid = no ; If Remote-Party-ID should be trusted +;sendrpid = yes ; If Remote-Party-ID should be sent (defaults to no) +;sendrpid = rpid ; Use the "Remote-Party-ID" header + ; to send the identity of the remote party + ; This is identical to sendrpid=yes +;sendrpid = pai ; Use the "P-Asserted-Identity" header + ; to send the identity of the remote party +;rpid_update = no ; In certain cases, the only method by which a connected line + ; change may be immediately transmitted is with a SIP UPDATE request. + ; If communicating with another Asterisk server, and you wish to be able + ; transmit such UPDATE messages to it, then you must enable this option. + ; Otherwise, we will have to wait until we can send a reinvite to + ; transmit the information. +;prematuremedia=no ; Some ISDN links send empty media frames before + ; the call is in ringing or progress state. The SIP + ; channel will then send 183 indicating early media + ; which will be empty - thus users get no ring signal. + ; Setting this to "yes" will stop any media before we have + ; call progress (meaning the SIP channel will not send 183 Session + ; Progress for early media). Default is "yes". Also make sure that + ; the SIP peer is configured with progressinband=never. + ; + ; In order for "noanswer" applications to work, you need to run + ; the progress() application in the priority before the app. + +;progressinband=never ; If we should generate in-band ringing always + ; use 'never' to never use in-band signalling, even in cases + ; where some buggy devices might not render it + ; Valid values: yes, no, never Default: never +;useragent=Asterisk PBX ; Allows you to change the user agent string + ; The default user agent string also contains the Asterisk + ; version. If you don't want to expose this, change the + ; useragent string. +;promiscredir = no ; If yes, allows 302 or REDIR to non-local SIP address + ; Note that promiscredir when redirects are made to the + ; local system will cause loops since Asterisk is incapable + ; of performing a "hairpin" call. +;usereqphone = no ; If yes, ";user=phone" is added to uri that contains + ; a valid phone number +;dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833 + ; Other options: + ; info : SIP INFO messages (application/dtmf-relay) + ; shortinfo : SIP INFO messages (application/dtmf) + ; inband : Inband audio (requires 64 kbit codec -alaw, ulaw) + ; auto : Use rfc2833 if offered, inband otherwise + +;compactheaders = yes ; send compact sip headers. +; +;videosupport=yes ; Turn on support for SIP video. You need to turn this + ; on in this section to get any video support at all. + ; You can turn it off on a per peer basis if the general + ; video support is enabled, but you can't enable it for + ; one peer only without enabling in the general section. + ; If you set videosupport to "always", then RTP ports will + ; always be set up for video, even on clients that don't + ; support it. This assists callfile-derived calls and + ; certain transferred calls to use always use video when + ; available. [yes|NO|always] + +;maxcallbitrate=384 ; Maximum bitrate for video calls (default 384 kb/s) + ; Videosupport and maxcallbitrate is settable + ; for peers and users as well +;callevents=no ; generate manager events when sip ua + ; performs events (e.g. hold) +;authfailureevents=no ; generate manager "peerstatus" events when peer can't + ; authenticate with Asterisk. Peerstatus will be "rejected". +;alwaysauthreject = yes ; When an incoming INVITE or REGISTER is to be rejected, + ; for any reason, always reject with an identical response + ; equivalent to valid username and invalid password/hash + ; instead of letting the requester know whether there was + ; a matching user or peer for their request. This reduces + ; the ability of an attacker to scan for valid SIP usernames. + +;g726nonstandard = yes ; If the peer negotiates G726-32 audio, use AAL2 packing + ; order instead of RFC3551 packing order (this is required + ; for Sipura and Grandstream ATAs, among others). This is + ; contrary to the RFC3551 specification, the peer _should_ + ; be negotiating AAL2-G726-32 instead :-( +;outboundproxy=proxy.provider.domain ; send outbound signaling to this proxy, not directly to the devices +;outboundproxy=proxy.provider.domain:8080 ; send outbound signaling to this proxy, not directly to the devices +;outboundproxy=proxy.provider.domain,force ; Send ALL outbound signalling to proxy, ignoring route: headers +;outboundproxy=tls://proxy.provider.domain ; same as '=proxy.provider.domain' except we try to connect with tls +; ; (could also be tcp,udp) - defining transports on the proxy line only +; ; applies for the global proxy, otherwise use the transport= option +;matchexternaddrlocally = yes ; Only substitute the externaddr or externhost setting if it matches + ; your localnet setting. Unless you have some sort of strange network + ; setup you will not need to enable this. + +;dynamic_exclude_static = yes ; Disallow all dynamic hosts from registering + ; as any IP address used for staticly defined + ; hosts. This helps avoid the configuration + ; error of allowing your users to register at + ; the same address as a SIP provider. + +;contactdeny=0.0.0.0/0.0.0.0 ; Use contactpermit and contactdeny to +;contactpermit=172.16.0.0/255.255.0.0 ; restrict at what IPs your users may + ; register their phones. + +;engine=asterisk ; RTP engine to use when communicating with the device + +; +; If regcontext is specified, Asterisk will dynamically create and destroy a +; NoOp priority 1 extension for a given peer who registers or unregisters with +; us and have a "regexten=" configuration item. +; Multiple contexts may be specified by separating them with '&'. The +; actual extension is the 'regexten' parameter of the registering peer or its +; name if 'regexten' is not provided. If more than one context is provided, +; the context must be specified within regexten by appending the desired +; context after '@'. More than one regexten may be supplied if they are +; separated by '&'. Patterns may be used in regexten. +; +;regcontext=sipregistrations +;regextenonqualify=yes ; Default "no" + ; If you have qualify on and the peer becomes unreachable + ; this setting will enforce inactivation of the regexten + ; extension for the peer + +; The shrinkcallerid function removes '(', ' ', ')', non-trailing '.', and '-' not +; in square brackets. For example, the caller id value 555.5555 becomes 5555555 +; when this option is enabled. Disabling this option results in no modification +; of the caller id value, which is necessary when the caller id represents something +; that must be preserved. This option can only be used in the [general] section. +; By default this option is on. +; +;shrinkcallerid=yes ; on by default + + +;use_q850_reason = no ; Default "no" + ; Set to yes add Reason header and use Reason header if it is available. +; +;------------------------ TLS settings ------------------------------------------------------------ +;tlscertfile= ; Certificate file (*.pem format only) to use for TLS connections + ; default is to look for "asterisk.pem" in current directory + +;tlsprivatekey= ; Private key file (*.pem format only) for TLS connections. + ; If no tlsprivatekey is specified, tlscertfile is searched for + ; for both public and private key. + +;tlscafile= +; If the server your connecting to uses a self signed certificate +; you should have their certificate installed here so the code can +; verify the authenticity of their certificate. + +;tlscadir= +; A directory full of CA certificates. The files must be named with +; the CA subject name hash value. +; (see man SSL_CTX_load_verify_locations for more info) + +;tlsdontverifyserver=[yes|no] +; If set to yes, don't verify the servers certificate when acting as +; a client. If you don't have the server's CA certificate you can +; set this and it will connect without requiring tlscafile to be set. +; Default is no. + +;tlscipher= +; A string specifying which SSL ciphers to use or not use +; A list of valid SSL cipher strings can be found at: +; http://www.openssl.org/docs/apps/ciphers.html#CIPHER_STRINGS +; +;tlsclientmethod=tlsv1 ; values include tlsv1, sslv3, sslv2. + ; Specify protocol for outbound client connections. + ; If left unspecified, the default is sslv2. +; +;--------------------------- SIP timers ---------------------------------------------------- +; These timers are used primarily in INVITE transactions. +; The default for Timer T1 is 500 ms or the measured run-trip time between +; Asterisk and the device if you have qualify=yes for the device. +; +;t1min=100 ; Minimum roundtrip time for messages to monitored hosts + ; Defaults to 100 ms +;timert1=500 ; Default T1 timer + ; Defaults to 500 ms or the measured round-trip + ; time to a peer (qualify=yes). +;timerb=32000 ; Call setup timer. If a provisional response is not received + ; in this amount of time, the call will autocongest + ; Defaults to 64*timert1 + +;--------------------------- RTP timers ---------------------------------------------------- +; These timers are currently used for both audio and video streams. The RTP timeouts +; are only applied to the audio channel. +; The settings are settable in the global section as well as per device +; +;rtptimeout=60 ; Terminate call if 60 seconds of no RTP or RTCP activity + ; on the audio channel + ; when we're not on hold. This is to be able to hangup + ; a call in the case of a phone disappearing from the net, + ; like a powerloss or grandma tripping over a cable. +;rtpholdtimeout=300 ; Terminate call if 300 seconds of no RTP or RTCP activity + ; on the audio channel + ; when we're on hold (must be > rtptimeout) +;rtpkeepalive= ; Send keepalives in the RTP stream to keep NAT open + ; (default is off - zero) + +;--------------------------- SIP Session-Timers (RFC 4028)------------------------------------ +; SIP Session-Timers provide an end-to-end keep-alive mechanism for active SIP sessions. +; This mechanism can detect and reclaim SIP channels that do not terminate through normal +; signaling procedures. Session-Timers can be configured globally or at a user/peer level. +; The operation of Session-Timers is driven by the following configuration parameters: +; +; * session-timers - Session-Timers feature operates in the following three modes: +; originate : Request and run session-timers always +; accept : Run session-timers only when requested by other UA +; refuse : Do not run session timers in any case +; The default mode of operation is 'accept'. +; * session-expires - Maximum session refresh interval in seconds. Defaults to 1800 secs. +; * session-minse - Minimum session refresh interval in seconds. Defualts to 90 secs. +; * session-refresher - The session refresher (uac|uas). Defaults to 'uas'. +; +;session-timers=originate +;session-expires=600 +;session-minse=90 +;session-refresher=uas +; +;--------------------------- SIP DEBUGGING --------------------------------------------------- +;sipdebug = yes ; Turn on SIP debugging by default, from + ; the moment the channel loads this configuration +;recordhistory=yes ; Record SIP history by default + ; (see sip history / sip no history) +;dumphistory=yes ; Dump SIP history at end of SIP dialogue + ; SIP history is output to the DEBUG logging channel + + +;--------------------------- STATUS NOTIFICATIONS (SUBSCRIPTIONS) ---------------------------- +; You can subscribe to the status of extensions with a "hint" priority +; (See extensions.conf.sample for examples) +; chan_sip support two major formats for notifications: dialog-info and SIMPLE +; +; You will get more detailed reports (busy etc) if you have a call counter enabled +; for a device. +; +; If you set the busylevel, we will indicate busy when we have a number of calls that +; matches the busylevel treshold. +; +; For queues, you will need this level of detail in status reporting, regardless +; if you use SIP subscriptions. Queues and manager use the same internal interface +; for reading status information. +; +; Note: Subscriptions does not work if you have a realtime dialplan and use the +; realtime switch. +; +;allowsubscribe=no ; Disable support for subscriptions. (Default is yes) +;subscribecontext = default ; Set a specific context for SUBSCRIBE requests + ; Useful to limit subscriptions to local extensions + ; Settable per peer/user also +;notifyringing = no ; Control whether subscriptions already INUSE get sent + ; RINGING when another call is sent (default: yes) +;notifyhold = yes ; Notify subscriptions on HOLD state (default: no) + ; Turning on notifyringing and notifyhold will add a lot + ; more database transactions if you are using realtime. +;notifycid = yes ; Control whether caller ID information is sent along with + ; dialog-info+xml notifications (supported by snom phones). + ; Note that this feature will only work properly when the + ; incoming call is using the same extension and context that + ; is being used as the hint for the called extension. This means + ; that it won't work when using subscribecontext for your sip + ; user or peer (if subscribecontext is different than context). + ; This is also limited to a single caller, meaning that if an + ; extension is ringing because multiple calls are incoming, + ; only one will be used as the source of caller ID. Specify + ; 'ignore-context' to ignore the called context when looking + ; for the caller's channel. The default value is 'no.' Setting + ; notifycid to 'ignore-context' also causes call-pickups attempted + ; via SNOM's NOTIFY mechanism to set the context for the call pickup + ; to PICKUPMARK. +;callcounter = yes ; Enable call counters on devices. This can be set per + ; device too. + +;----------------------------------------- T.38 FAX SUPPORT ---------------------------------- +; +; This setting is available in the [general] section as well as in device configurations. +; Setting this to yes enables T.38 FAX (UDPTL) on SIP calls; it defaults to off. +; +; t38pt_udptl = yes ; Enables T.38 with FEC error correction. +; t38pt_udptl = yes,fec ; Enables T.38 with FEC error correction. +; t38pt_udptl = yes,redundancy ; Enables T.38 with redundancy error correction. +; t38pt_udptl = yes,none ; Enables T.38 with no error correction. +; +; In some cases, T.38 endpoints will provide a T38FaxMaxDatagram value (during T.38 setup) that +; is based on an incorrect interpretation of the T.38 recommendation, and results in failures +; because Asterisk does not believe it can send T.38 packets of a reasonable size to that +; endpoint (Cisco media gateways are one example of this situation). In these cases, during a +; T.38 call you will see warning messages on the console/in the logs from the Asterisk UDPTL +; stack complaining about lack of buffer space to send T.38 FAX packets. If this occurs, you +; can set an override (globally, or on a per-device basis) to make Asterisk ignore the +; T38FaxMaxDatagram value specified by the other endpoint, and use a configured value instead. +; This can be done by appending 'maxdatagram=' to the t38pt_udptl configuration option, +; like this: +; +; t38pt_udptl = yes,fec,maxdatagram=400 ; Enables T.38 with FEC error correction and overrides +; ; the other endpoint's provided value to assume we can +; ; send 400 byte T.38 FAX packets to it. +; +; FAX detection will cause the SIP channel to jump to the 'fax' extension (if it exists) +; based one or more events being detected. The events that can be detected are an incoming +; CNG tone or an incoming T.38 re-INVITE request. +; +; faxdetect = yes ; Default 'no', 'yes' enables both CNG and T.38 detection +; faxdetect = cng ; Enables only CNG detection +; faxdetect = t38 ; Enables only T.38 detection +; +;----------------------------------------- OUTBOUND SIP REGISTRATIONS ------------------------ +; Asterisk can register as a SIP user agent to a SIP proxy (provider) +; Format for the register statement is: +; register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] + +;register => 666:666:666@tolapai + +; +; +; +; domain is either +; - domain in DNS +; - host name in DNS +; - the name of a peer defined below or in realtime +; The domain is where you register your username, so your SIP uri you are registering to +; is username@domain +; +; If no extension is given, the 's' extension is used. The extension needs to +; be defined in extensions.conf to be able to accept calls from this SIP proxy +; (provider). +; +; A similar effect can be achieved by adding a "callbackextension" option in a peer section. +; this is equivalent to having the following line in the general section: +; +; register => username:secret@host/callbackextension +; +; and more readable because you don't have to write the parameters in two places +; (note that the "port" is ignored - this is a bug that should be fixed). +; +; Note that a register= line doesn't mean that we will match the incoming call in any +; other way than described above. If you want to control where the call enters your +; dialplan, which context, you want to define a peer with the hostname of the provider's +; server. If the provider has multiple servers to place calls to your system, you need +; a peer for each server. +; +; Beginning with Asterisk version 1.6.2, the "user" portion of the register line may +; contain a port number. Since the logical separator between a host and port number is a +; ':' character, and this character is already used to separate between the optional "secret" +; and "authuser" portions of the line, there is a bit of a hoop to jump through if you wish +; to use a port here. That is, you must explicitly provide a "secret" and "authuser" even if +; they are blank. See the third example below for an illustration. +; +; +; Examples: +; +;register => 1234:password@mysipprovider.com +; +; This will pass incoming calls to the 's' extension +; +; +;register => 2345:password@sip_proxy/1234 +; +; Register 2345 at sip provider 'sip_proxy'. Calls from this provider +; connect to local extension 1234 in extensions.conf, default context, +; unless you configure a [sip_proxy] section below, and configure a +; context. +; Tip 1: Avoid assigning hostname to a sip.conf section like [provider.com] +; Tip 2: Use separate inbound and outbound sections for SIP providers +; (instead of type=friend) if you have calls in both directions +; +;register => 3456@mydomain:5082::@mysipprovider.com +; +; Note that in this example, the optional authuser and secret portions have +; been left blank because we have specified a port in the user section +; +;register => tls://username:xxxxxx@sip-tls-proxy.example.org +; +; The 'transport' part defaults to 'udp' but may also be 'tcp' or 'tls'. +; Using 'udp://' explicitly is also useful in case the username part +; contains a '/' ('user/name'). + +;registertimeout=20 ; retry registration calls every 20 seconds (default) +;registerattempts=10 ; Number of registration attempts before we give up + ; 0 = continue forever, hammering the other server + ; until it accepts the registration + ; Default is 0 tries, continue forever + +;----------------------------------------- OUTBOUND MWI SUBSCRIPTIONS ------------------------- +; Asterisk can subscribe to receive the MWI from another SIP server and store it locally for retrieval +; by other phones. +; Format for the mwi register statement is: +; mwi => user[:secret[:authuser]]@host[:port][/mailbox] +; +; Examples: +;mwi => 1234:password@mysipprovider.com/1234 +; +; MWI received will be stored in the 1234 mailbox of the SIP_Remote context. It can be used by other phones by following the below: +; mailbox=1234@SIP_Remote +;----------------------------------------- NAT SUPPORT ------------------------ +; +; WARNING: SIP operation behind a NAT is tricky and you really need +; to read and understand well the following section. +; +; When Asterisk is behind a NAT device, the "local" address (and port) that +; a socket is bound to has different values when seen from the inside or +; from the outside of the NATted network. Unfortunately this address must +; be communicated to the outside (e.g. in SIP and SDP messages), and in +; order to determine the correct value Asterisk needs to know: +; +; + whether it is talking to someone "inside" or "outside" of the NATted network. +; This is configured by assigning the "localnet" parameter with a list +; of network addresses that are considered "inside" of the NATted network. +; IF LOCALNET IS NOT SET, THE EXTERNAL ADDRESS WILL NOT BE SET CORRECTLY. +; Multiple entries are allowed, e.g. a reasonable set is the following: +; +; localnet=192.168.0.0/255.255.0.0 ; RFC 1918 addresses +; localnet=10.0.0.0/255.0.0.0 ; Also RFC1918 +; localnet=172.16.0.0/12 ; Another RFC1918 with CIDR notation +; localnet=169.254.0.0/255.255.0.0 ; Zero conf local network +; +; + the "externally visible" address and port number to be used when talking +; to a host outside the NAT. This information is derived by one of the +; following (mutually exclusive) config file parameters: +; +; a. "externaddr = hostname[:port]" specifies a static address[:port] to +; be used in SIP and SDP messages. +; The hostname is looked up only once, when [re]loading sip.conf . +; If a port number is not present, use the port specified in the "udpbindaddr" +; (which is not guaranteed to work correctly, because a NAT box might remap the +; port number as well as the address). +; This approach can be useful if you have a NAT device where you can +; configure the mapping statically. Examples: +; +; externaddr = 12.34.56.78 ; use this address. +; externaddr = 12.34.56.78:9900 ; use this address and port. +; externaddr = mynat.my.org:12600 ; Public address of my nat box. +; externtcpport = 9900 ; The externally mapped tcp port, when Asterisk is behind a static NAT or PAT. +; ; externtcpport will default to the externaddr or externhost port if either one is set. +; externtlsport = 12600 ; The externally mapped tls port, when Asterisk is behind a static NAT or PAT. +; ; externtlsport port will default to the RFC designated port of 5061. +; +; b. "externhost = hostname[:port]" is similar to "externaddr" except +; that the hostname is looked up every "externrefresh" seconds +; (default 10s). This can be useful when your NAT device lets you choose +; the port mapping, but the IP address is dynamic. +; Beware, you might suffer from service disruption when the name server +; resolution fails. Examples: +; +; externhost=foo.dyndns.net ; refreshed periodically +; externrefresh=180 ; change the refresh interval +; +; c. "stunaddr = stun.server[:port]" queries the STUN server specified +; as an argument to obtain the external address/port. +; Queries are also sent periodically every "externrefresh" seconds +; (as a side effect, sending the query also acts as a keepalive for +; the state entry on the nat box): +; +; stunaddr = foo.stun.com:3478 +; externrefresh = 15 +; +; NOTE: STUN is only implemented for IPv4. +; +; Note that at the moment all these mechanism work only for the SIP socket. +; The IP address discovered with externaddr/externhost/STUN is reused for +; media sessions as well, but the port numbers are not remapped so you +; may still experience problems. +; +; NOTE 1: in some cases, NAT boxes will use different port numbers in +; the internal<->external mapping. In these cases, the "externaddr" and +; "externhost" might not help you configure addresses properly, and you +; really need to use STUN. +; +; NOTE 2: when using "externaddr" or "externhost", the address part is +; also used as the external address for media sessions. Even if you +; use "stunaddr", STUN queries will be sent only from the SIP port, +; not from media sockets. Thus, the port information in the SDP may be wrong! +; +; In addition to the above, Asterisk has an additional "nat" parameter to +; address NAT-related issues in incoming SIP or media sessions. +; In particular, depending on the 'nat= ' settings described below, Asterisk +; may override the address/port information specified in the SIP/SDP messages, +; and use the information (sender address) supplied by the network stack instead. +; However, this is only useful if the external traffic can reach us. +; The following settings are allowed (both globally and in individual sections): +; +; nat = no ; Default. Use rport if the remote side says to use it. +; nat = force_rport ; Force rport to always be on. +; nat = yes ; Force rport to always be on and perform comedia RTP handling. +; nat = comedia ; Use rport if the remote side says to use it and perform comedia RTP handling. +; +; 'comedia RTP handling' refers to the technique of sending RTP to the port that the +; the other endpoint's RTP arrived from, and means 'connection-oriented media'. This is +; only partially related to RFC 4145 which was referred to as COMEDIA while it was in +; draft form. This method is used to accomodate endpoints that may be located behind +; NAT devices, and as such the port number they tell Asterisk to send RTP packets to +; for their media streams is not actual port number that will be used on the nearer +; side of the NAT. +; +; In addition to these settings, Asterisk *always* uses 'symmetric RTP' mode as defined by +; RFC 4961; Asterisk will always send RTP packets from the same port number it expects +; to receive them on. +; +; The IP address used for media (audio, video, and text) in the SDP can also be overridden by using +; the media_address configuration option. This is only applicable to the general section and +; can not be set per-user or per-peer. +; +; media_address = 172.16.42.1 + +;----------------------------------- MEDIA HANDLING -------------------------------- +; By default, Asterisk tries to re-invite media streams to an optimal path. If there's +; no reason for Asterisk to stay in the media path, the media will be redirected. +; This does not really work well in the case where Asterisk is outside and the +; clients are on the inside of a NAT. In that case, you want to set directmedia=nonat. +; +;directmedia=yes ; Asterisk by default tries to redirect the + ; RTP media stream to go directly from + ; the caller to the callee. Some devices do not + ; support this (especially if one of them is behind a NAT). + ; The default setting is YES. If you have all clients + ; behind a NAT, or for some other reason want Asterisk to + ; stay in the audio path, you may want to turn this off. + + ; This setting also affect direct RTP + ; at call setup (a new feature in 1.4 - setting up the + ; call directly between the endpoints instead of sending + ; a re-INVITE). + + ; Additionally this option does not disable all reINVITE operations. + ; It only controls Asterisk generating reINVITEs for the specific + ; purpose of setting up a direct media path. If a reINVITE is + ; needed to switch a media stream to inactive (when placed on + ; hold) or to T.38, it will still be done, regardless of this + ; setting. Note that direct T.38 is not supported. + +;directmedia=nonat ; An additional option is to allow media path redirection + ; (reinvite) but only when the peer where the media is being + ; sent is known to not be behind a NAT (as the RTP core can + ; determine it based on the apparent IP address the media + ; arrives from). + +;directmedia=update ; Yet a third option... use UPDATE for media path redirection, + ; instead of INVITE. This can be combined with 'nonat', as + ; 'directmedia=update,nonat'. It implies 'yes'. + +;directrtpsetup=yes ; Enable the new experimental direct RTP setup. This sets up + ; the call directly with media peer-2-peer without re-invites. + ; Will not work for video and cases where the callee sends + ; RTP payloads and fmtp headers in the 200 OK that does not match the + ; callers INVITE. This will also fail if directmedia is enabled when + ; the device is actually behind NAT. + +;directmediadeny=0.0.0.0/0 ; Use directmediapermit and directmediadeny to restrict +;directmediapermit=172.16.0.0/16; which peers should be able to pass directmedia to each other + ; (There is no default setting, this is just an example) + ; Use this if some of your phones are on IP addresses that + ; can not reach each other directly. This way you can force + ; RTP to always flow through asterisk in such cases. + +;ignoresdpversion=yes ; By default, Asterisk will honor the session version + ; number in SDP packets and will only modify the SDP + ; session if the version number changes. This option will + ; force asterisk to ignore the SDP session version number + ; and treat all SDP data as new data. This is required + ; for devices that send us non standard SDP packets + ; (observed with Microsoft OCS). By default this option is + ; off. + +;sdpsession=Asterisk PBX ; Allows you to change the SDP session name string, (s=) + ; Like the useragent parameter, the default user agent string + ; also contains the Asterisk version. +;sdpowner=root ; Allows you to change the username field in the SDP owner string, (o=) + ; This field MUST NOT contain spaces + +;----------------------------------------- REALTIME SUPPORT ------------------------ +; For additional information on ARA, the Asterisk Realtime Architecture, +; please read realtime.txt and extconfig.txt in the /doc directory of the +; source code. +; +;rtcachefriends=yes ; Cache realtime friends by adding them to the internal list + ; just like friends added from the config file only on a + ; as-needed basis? (yes|no) + +;rtsavesysname=yes ; Save systemname in realtime database at registration + ; Default= no + +;rtupdate=yes ; Send registry updates to database using realtime? (yes|no) + ; If set to yes, when a SIP UA registers successfully, the ip address, + ; the origination port, the registration period, and the username of + ; the UA will be set to database via realtime. + ; If not present, defaults to 'yes'. Note: realtime peers will + ; probably not function across reloads in the way that you expect, if + ; you turn this option off. +;rtautoclear=yes ; Auto-Expire friends created on the fly on the same schedule + ; as if it had just registered? (yes|no|) + ; If set to yes, when the registration expires, the friend will + ; vanish from the configuration until requested again. If set + ; to an integer, friends expire within this number of seconds + ; instead of the registration interval. + +;ignoreregexpire=yes ; Enabling this setting has two functions: + ; + ; For non-realtime peers, when their registration expires, the + ; information will _not_ be removed from memory or the Asterisk database + ; if you attempt to place a call to the peer, the existing information + ; will be used in spite of it having expired + ; + ; For realtime peers, when the peer is retrieved from realtime storage, + ; the registration information will be used regardless of whether + ; it has expired or not; if it expires while the realtime peer + ; is still in memory (due to caching or other reasons), the + ; information will not be removed from realtime storage + +;----------------------------------------- SIP DOMAIN SUPPORT ------------------------ +; Incoming INVITE and REFER messages can be matched against a list of 'allowed' +; domains, each of which can direct the call to a specific context if desired. +; By default, all domains are accepted and sent to the default context or the +; context associated with the user/peer placing the call. +; REGISTER to non-local domains will be automatically denied if a domain +; list is configured. +; +; Domains can be specified using: +; domain=[,] +; Examples: +; domain=myasterisk.dom +; domain=customer.com,customer-context +; +; In addition, all the 'default' domains associated with a server should be +; added if incoming request filtering is desired. +; autodomain=yes +; +; To disallow requests for domains not serviced by this server: +; allowexternaldomains=no + +;domain=mydomain.tld,mydomain-incoming + ; Add domain and configure incoming context + ; for external calls to this domain +;domain=1.2.3.4 ; Add IP address as local domain + ; You can have several "domain" settings +;allowexternaldomains=no ; Disable INVITE and REFER to non-local domains + ; Default is yes +;autodomain=yes ; Turn this on to have Asterisk add local host + ; name and local IP to domain list. + +; fromdomain=mydomain.tld ; When making outbound SIP INVITEs to + ; non-peers, use your primary domain "identity" + ; for From: headers instead of just your IP + ; address. This is to be polite and + ; it may be a mandatory requirement for some + ; destinations which do not have a prior + ; account relationship with your server. + +;------------------------------ Advice of Charge CONFIGURATION -------------------------- +; snom_aoc_enabled = yes; ; This options turns on and off support for sending AOC-D and + ; AOC-E to snom endpoints. This option can be used both in the + ; peer and global scope. The default for this option is off. + + +;------------------------------ 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". +;----------------------------------------------------------------------------------- + +[authentication] +; Global credentials for outbound calls, i.e. when a proxy challenges your +; Asterisk server for authentication. These credentials override +; any credentials in peer/register definition if realm is matched. +; +; This way, Asterisk can authenticate for outbound calls to other +; realms. We match realm on the proxy challenge and pick an set of +; credentials from this list +; Syntax: +; auth = :@ +; auth = #@ +; Example: +auth=666:666@tolapai +; +; You may also add auth= statements to [peer] definitions +; Peer auth= override all other authentication settings if we match on realm + +;------------------------------------------------------------------------------ +; DEVICE CONFIGURATION +; +; The SIP channel has two types of devices, the friend and the peer. +; * The type=friend is a device type that accepts both incoming and outbound calls, +; where Asterisk match on the From: username on incoming calls. +; (A synonym for friend is "user"). This is a type you use for your local +; SIP phones. +; * The type=peer also handles both incoming and outbound calls. On inbound calls, +; Asterisk only matches on IP/port, not on names. This is mostly used for SIP +; trunks. +; +; For device names, we recommend using only a-z, numerics (0-9) and underscore +; +; For local phones, type=friend works most of the time +; +; If you have one-way audio, you probably have NAT problems. +; If Asterisk is on a public IP, and the phone is inside of a NAT device +; you will need to configure nat option for those phones. +; Also, turn on qualify=yes to keep the nat session open +; +; Configuration options available +; -------------------- +; context +; callingpres +; permit +; deny +; secret +; md5secret +; remotesecret +; transport +; dtmfmode +; directmedia +; nat +; callgroup +; pickupgroup +; language +; allow +; disallow +; insecure +; trustrpid +; progressinband +; promiscredir +; useclientcode +; accountcode +; setvar +; callerid +; amaflags +; callcounter +; busylevel +; allowoverlap +; allowsubscribe +; allowtransfer +; ignoresdpversion +; subscribecontext +; template +; videosupport +; maxcallbitrate +; rfc2833compensate +; mailbox +; session-timers +; session-expires +; session-minse +; session-refresher +; t38pt_usertpsource +; regexten +; fromdomain +; fromuser +; host +; port +; qualify +; defaultip +; defaultuser +; rtptimeout +; rtpholdtimeout +; sendrpid +; outboundproxy +; rfc2833compensate +; callbackextension +; registertrying +; timert1 +; timerb +; qualifyfreq +; t38pt_usertpsource +; contactpermit ; Limit what a host may register as (a neat trick +; contactdeny ; is to register at the same IP as a SIP provider, +; ; then call oneself, and get redirected to that +; ; same location). +; directmediapermit +; directmediadeny +; unsolicited_mailbox +; use_q850_reason +; maxforwards + +;[sip_proxy] +; For incoming calls only. Example: FWD (Free World Dialup) +; We match on IP address of the proxy for incoming calls +; since we can not match on username (caller id) +;type=peer +;context=from-fwd +;host=fwd.pulver.com + +;[sip_proxy-out] +;type=peer ; we only want to call out, not be called +;remotesecret=guessit ; Our password to their service +;defaultuser=yourusername ; Authentication user for outbound proxies +;fromuser=yourusername ; Many SIP providers require this! +;fromdomain=provider.sip.domain +;host=box.provider.com +;transport=udp,tcp ; This sets the default transport type to udp for outgoing, and will +; ; accept both tcp and udp. The default transport type is only used for +; ; outbound messages until a Registration takes place. During the +; ; peer Registration the transport type may change to another supported +; ; type if the peer requests so. + +;usereqphone=yes ; This provider requires ";user=phone" on URI +;callcounter=yes ; Enable call counter +;busylevel=2 ; Signal busy at 2 or more calls +;outboundproxy=proxy.provider.domain ; send outbound signaling to this proxy, not directly to the peer +;port=80 ; The port number we want to connect to on the remote side + ; Also used as "defaultport" in combination with "defaultip" settings + +;--- sample definition for a provider +;[provider1] +;type=peer +;host=sip.provider1.com +;fromuser=4015552299 ; how your provider knows you +;remotesecret=youwillneverguessit ; The password we use to authenticate to them +;secret=gissadetdu ; The password they use to contact us +;callbackextension=123 ; Register with this server and require calls coming back to this extension +;transport=udp,tcp ; This sets the transport type to udp for outgoing, and will +; ; accept both tcp and udp. Default is udp. The first transport +; ; listed will always be used for outgoing connections. +;unsolicited_mailbox=4015552299 ; If the remote SIP server sends an unsolicited MWI NOTIFY message the new/old +; ; message count will be stored in the configured virtual mailbox. It can be used +; ; by any device supporting MWI by specifying @SIP_Remote as the +; ; mailbox. + +; +; Because you might have a large number of similar sections, it is generally +; convenient to use templates for the common parameters, and add them +; the the various sections. Examples are below, and we can even leave +; the templates uncommented as they will not harm: + +[basic-options](!) ; a template + dtmfmode=rfc2833 + context=from-office + type=friend + +[natted-phone](!,basic-options) ; another template inheriting basic-options + nat=yes + directmedia=no + host=dynamic + +[public-phone](!,basic-options) ; another template inheriting basic-options + nat=no + directmedia=yes + +[my-codecs](!) ; a template for my preferred codecs + disallow=all + allow=ilbc + allow=g729 + allow=gsm + allow=g723 + allow=ulaw + +[ulaw-phone](!) ; and another one for ulaw-only + disallow=all + allow=ulaw + +;[lol] +;context=default +;type=peer +;host=tolapai +;fromuser=lol +;secret=lol +; +; and finally instantiate a few phones +; +; [2133](natted-phone,my-codecs) +; secret = peekaboo +; [2134](natted-phone,ulaw-phone) +; secret = not_very_secret +; [2136](public-phone,ulaw-phone) +; secret = not_very_secret_either +; ... +; + +; Standard configurations not using templates look like this: +; +;[grandstream1] +;type=friend +;context=from-sip ; Where to start in the dialplan when this phone calls +;callerid=John Doe <1234> ; Full caller ID, to override the phones config + ; on incoming calls to Asterisk +;host=192.168.0.23 ; we have a static but private IP address + ; No registration allowed +;nat=no ; there is not NAT between phone and Asterisk +;directmedia=yes ; allow RTP voice traffic to bypass Asterisk +;dtmfmode=info ; either RFC2833 or INFO for the BudgeTone +;call-limit=1 ; permit only 1 outgoing call and 1 incoming call at a time + ; from the phone to asterisk (deprecated) + ; 1 for the explicit peer, 1 for the explicit user, + ; remember that a friend equals 1 peer and 1 user in + ; memory + ; There is no combined call counter for a "friend" + ; so there's currently no way in sip.conf to limit + ; to one inbound or outbound call per phone. Use + ; the group counters in the dial plan for that. + ; +;mailbox=1234@default ; mailbox 1234 in voicemail context "default" +;disallow=all ; need to disallow=all before we can use allow= +;allow=ulaw ; Note: In user sections the order of codecs + ; listed with allow= does NOT matter! +;allow=alaw +;allow=g723.1 ; Asterisk only supports g723.1 pass-thru! +;allow=g729 ; Pass-thru only unless g729 license obtained +;callingpres=allowed_passed_screen ; Set caller ID presentation + ; See README.callingpres for more information + +;[xlite1] +; Turn off silence suppression in X-Lite ("Transmit Silence"=YES)! +; Note that Xlite sends NAT keep-alive packets, so qualify=yes is not needed +;type=friend +;regexten=1234 ; When they register, create extension 1234 +;callerid="Jane Smith" <5678> +;host=dynamic ; This device needs to register +;nat=yes ; X-Lite is behind a NAT router +;directmedia=no ; Typically set to NO if behind NAT +;disallow=all +;allow=gsm ; GSM consumes far less bandwidth than ulaw +;allow=ulaw +;allow=alaw +;mailbox=1234@default,1233@default ; Subscribe to status of multiple mailboxes +;registertrying=yes ; Send a 100 Trying when the device registers. + +;[snom] +;type=friend ; Friends place calls and receive calls +;context=from-sip ; Context for incoming calls from this user +;secret=blah +;subscribecontext=localextensions ; Only allow SUBSCRIBE for local extensions +;language=de ; Use German prompts for this user +;host=dynamic ; This peer register with us +;dtmfmode=inband ; Choices are inband, rfc2833, or info +;defaultip=192.168.0.59 ; IP used until peer registers +;mailbox=1234@context,2345 ; Mailbox(-es) for message waiting indicator +;subscribemwi=yes ; Only send notifications if this phone + ; subscribes for mailbox notification +;vmexten=voicemail ; dialplan extension to reach mailbox + ; sets the Message-Account in the MWI notify message + ; defaults to global vmexten which defaults to "asterisk" +;disallow=all +;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw! + + +;[polycom] +;type=friend ; Friends place calls and receive calls +;context=from-sip ; Context for incoming calls from this user +;secret=blahpoly +;host=dynamic ; This peer register with us +;dtmfmode=rfc2833 ; Choices are inband, rfc2833, or info +;defaultuser=polly ; Username to use in INVITE until peer registers +;defaultip=192.168.40.123 + ; Normally you do NOT need to set this parameter +;disallow=all +;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw! +;progressinband=no ; Polycom phones don't work properly with "never" + + +;[pingtel] +;type=friend +;secret=blah +;host=dynamic +;insecure=port ; Allow matching of peer by IP address without + ; matching port number +;insecure=invite ; Do not require authentication of incoming INVITEs +;insecure=port,invite ; (both) +;qualify=1000 ; Consider it down if it's 1 second to reply + ; Helps with NAT session + ; qualify=yes uses default value +;qualifyfreq=60 ; Qualification: How often to check for the + ; host to be up in seconds + ; Set to low value if you use low timeout for + ; NAT of UDP sessions +; +; Call group and Pickup group should be in the range from 0 to 63 +; +;callgroup=1,3-4 ; We are in caller groups 1,3,4 +;pickupgroup=1,3-5 ; We can do call pick-p for call group 1,3,4,5 +;defaultip=192.168.0.60 ; IP address to use if peer has not registered +;deny=0.0.0.0/0.0.0.0 ; ACL: Control access to this account based on IP address +;permit=192.168.0.60/255.255.255.0 +;permit=192.168.0.60/24 ; we can also use CIDR notation for subnet masks +;permit=2001:db8::/32 ; IPv6 ACLs can be specified if desired. IPv6 ACLs + ; apply only to IPv6 addresses, and IPv4 ACLs apply + ; only to IPv4 addresses. + +;[cisco1] +;type=friend +;secret=blah +;qualify=200 ; Qualify peer is no more than 200ms away +;nat=yes ; This phone may be natted + ; Send SIP and RTP to the IP address that packet is + ; received from instead of trusting SIP headers +;host=dynamic ; This device registers with us +;directmedia=no ; Asterisk by default tries to redirect the + ; RTP media stream (audio) to go directly from + ; the caller to the callee. Some devices do not + ; support this (especially if one of them is + ; behind a NAT). +;defaultip=192.168.0.4 ; IP address to use until registration +;defaultuser=goran ; Username to use when calling this device before registration + ; Normally you do NOT need to set this parameter +;setvar=CUSTID=5678 ; Channel variable to be set for all calls from or to this device +;setvar=ATTENDED_TRANSFER_COMPLETE_SOUND=beep ; This channel variable will + ; cause the given audio file to + ; be played upon completion of + ; an attended transfer. + +;[pre14-asterisk] +;type=friend +;secret=digium +;host=dynamic +;rfc2833compensate=yes ; Compensate for pre-1.4 DTMF transmission from another Asterisk machine. + ; You must have this turned on or DTMF reception will work improperly. +;t38pt_usertpsource=yes ; Use the source IP address of RTP as the destination IP address for UDPTL packets + ; if the nat option is enabled. If a single RTP packet is received Asterisk will know the + ; external IP address of the remote device. If port forwarding is done at the client side + ; then UDPTL will flow to the remote device. + +[loadtester1] +transport = udp +directmedia = no +context = default +callerid = "Loadtester1" +secret = loadtester1 +type = friend + +[loadtester2] +transport = udp +directmedia = no +context = default +callerid = "Loadtester2" +secret = loadtester2 +type = friend +host = 127.0.0.1 +port = 5070 + +[phone1] +transport = udp +directmedia = no +context = default +callerid = "Phone 1" +secret = phone1 +type = friend +host = dynamic diff --git a/asterisk-load-tests/full_IO/xhd/system.conf b/asterisk-load-tests/full_IO/xhd/system.conf new file mode 100644 index 0000000..39837f3 --- /dev/null +++ b/asterisk-load-tests/full_IO/xhd/system.conf @@ -0,0 +1,44 @@ +# Autogenerated by /usr/sbin/dahdi_genconf on Fri Apr 20 18:08:28 2012 +# If you edit this file and execute /usr/sbin/dahdi_genconf again, +# your manual changes will be LOST. +# Dahdi Configuration File +# +# This file is parsed by the Dahdi Configurator, dahdi_cfg +# +# Span 1: B4/0/1 "B4XXP (PCI) Card 0 Span 1" (MASTER) +span=1,1,0,ccs,ami,te +bchan=1-2 +hardhdlc=3 +echocanceller=mg2,1-2 + +# Span 2: B4/0/2 "B4XXP (PCI) Card 0 Span 2" +span=2,2,0,ccs,ami,te +bchan=4-5 +hardhdlc=6 +echocanceller=mg2,4-5 + +# Span 3: B4/0/3 "B4XXP (PCI) Card 0 Span 3" +span=3,3,0,ccs,ami,te +bchan=7-8 +hardhdlc=9 +echocanceller=mg2,7-8 + +# Span 4: B4/0/4 "B4XXP (PCI) Card 0 Span 4" YELLOW +span=4,4,0,ccs,ami,te +bchan=10-11 +hardhdlc=12 +echocanceller=mg2,10-11 + +# Span 5: WCTDM/4 "Wildcard TDM400P REV I Board 5" +fxoks=13 +echocanceller=mg2,13 +fxoks=14 +echocanceller=mg2,14 +fxsks=15 +echocanceller=mg2,15 +# channel 16, WCTDM/4/3, no module. + +# Global data + +loadzone = us +defaultzone = us diff --git a/asterisk-load-tests/install.sh b/asterisk-load-tests/install.sh new file mode 100755 index 0000000..8544cfa --- /dev/null +++ b/asterisk-load-tests/install.sh @@ -0,0 +1,137 @@ +#!/bin/bash +# TODO: Check how to deal with anknown boards IP addresses + +FULL_TEST="1121122213231424511211" + +PCB="root@192.168.0." +ASTERISK_PATH="/etc/asterisk/" +DAHDI_PATH="/etc/dahdi/" + +XHD_HST="xivo-hardware-dev" +SCENARIO_PATH="/home/proformatique/load-tester/load-tester/scenarios/call-then-hangup/" +scenario_cmd="sipp -inf users.csv -sf scenario.xml -i 127.0.0.1 -r 1.0 -d 1000 -rp 9000 127.0.0.1" + + + +usage() +{ +cat << EOF +usage: $0 [OPTIONS] ADDRESS + +This script init a load_tester scenario and launch it. You should read the README file.. + +OPTIONS: + -h Show this message + -n=NUM The dial number, default is for the whole test + -u Update the config files on the target (PCB) and host (XHD) + +ADDRESS: + The IP address last byte of the targeted PCB + +EXAMPLE: + $ $0 -u -n=13231411 84 + +EOF +} + +exit_on_error() { + if [ ! $? -eq 0 ] + then + [ $# -gt 0 ] && echo $* + exit 1 + fi +} + +# +# Configure PCB and XHD +# +update() +{ + PCB="$PCB$BYTE" + scp pcb/system.conf $PCB:$DAHDI_PATH || exit_on_error "EE scp PCB" + scp pcb/extensions.conf $PCB:$ASTERISK_PATH || exit_on_error "EE scp PCB" + scp pcb/chan_dahdi.conf $PCB:$ASTERISK_PATH || exit_on_error "EE scp PCB" + ssh -T $PCB <<\EOI +dahdi_cfg +/etc/init.d/asterisk restart +exit +EOI + exit_on_error "EE dahdi and asterisk on PCB" + + sudo cp xhd/system.conf $DAHDI_PATH || exit_on_error "EE cp on XHD" + sudo cp xhd/extensions.conf $ASTERISK_PATH || exit_on_error "EE cp on XHD" + sudo cp xhd/chan_dahdi.conf $ASTERISK_PATH || exit_on_error "EE cp on XHD" + sudo dahdi_cfg || exit_on_error "EE dahdi_cfg XHD" + sudo /etc/init.d/asterisk stop || exit_on_error "EE asterisk stop XHD" + sleep 1 + sudo /etc/init.d/asterisk start || exit_on_error "EE asterisk start XHD" +} + + + +while getopts ":hn:u" OPTION +do + case $OPTION in + h) + usage + exit + ;; + n) + NUMBER=$OPTARG + ;; + u) + INIT=1 + ;; + ?) + usage + exit 1 + ;; + esac +done + +shift $(( OPTIND -1 )) + +if [ ! $# -eq 1 ] +then + echo "$0 needs one ADDRESS, exiting" + usage + exit 1 +fi + +BYTE=$* + +# +# Several checks +# +hstname=`hostname` +if [ ! $hstname = $XHD_HST ] +then + echo "This script is intended to be run from XHD, exiting" + exit 1 +fi + +if [ ! `which sipp` ] +then + echo "This script needs \`sipp' on your PATH, exiting" + exit 1 +fi + +if [ ! -d $SCENARIO_PATH ] +then + echo "Path not found:\`$SCENARIO_PATH', exiting" + exit 1 +fi + +[ -z $INIT ] || update +[ -z $NUMBER ] && NUMBER=$FULL_TEST + +# +# Running the test +# +echo Running the test... +H=$PWD +cd $SCENARIO_PATH +$scenario_cmd -s $NUMBER +cd $H + +exit 0 diff --git a/call_and_anwser_call/README b/call_and_anwser_call/README deleted file mode 100644 index bd02eb6..0000000 --- a/call_and_anwser_call/README +++ /dev/null @@ -1,10 +0,0 @@ -This is reported in redmine ticket 3582. - -1.Setup -1.1Hardware - -1.2.Software -Description -2.Running the test - -3. Results diff --git a/call_and_anwser_call/driver/conf.py b/call_and_anwser_call/driver/conf.py deleted file mode 100644 index 2fa1c59..0000000 --- a/call_and_anwser_call/driver/conf.py +++ /dev/null @@ -1,41 +0,0 @@ -# -*- coding: UTF-8 -*- - -from __future__ import unicode_literals - -## global configuration - -sipp_remote_host = '127.0.0.1' - -sipp_local_ip = '127.0.0.1' -sipp_call_rate = 1.0 -sipp_pause_in_ms = 3000 -sipp_rate_period_in_ms = 6000 + sipp_pause_in_ms - -## scenarios configuration - -called_line = { - 'username': 'loadtester2', - 'bind_port': 5070, -} - -calling_line = { - 'username': 'loadtester1', - 'password': 'loadtester1', -} - -#scenarios.call_and_answer_call.calling_line = calling_line -#scenarios.call_and_answer_call.called_line = called_line -scenarios.call_and_answer_call.called_exten = '2222232332' -#scenarios.call_and_answer_call.called_exten = '32' - -#scenarios.call_then_cancel_on_ringing.calling_line = calling_line -scenarios.call_then_cancel_on_ringing.called_exten = '105' -scenarios.call_then_cancel_on_ringing.sipp_pause_in_ms = 3000 -scenarios.call_then_cancel_on_ringing.sipp_rate_period_in_ms = 15000 - -# scenarios.call_then_hangup.calling_line = calling_line -# calling trhough FXS port 1 to reach port FXO on pcb#4 - cf dialplan for 105 -scenarios.call_then_hangup.called_exten = '105' - -#scenarios.call_then_wait.calling_line = calling_line -scenarios.call_then_wait.called_exten = '102' diff --git a/call_and_anwser_call/driver/extensions.conf b/call_and_anwser_call/driver/extensions.conf deleted file mode 100644 index 49141ef..0000000 --- a/call_and_anwser_call/driver/extensions.conf +++ /dev/null @@ -1,98 +0,0 @@ -[default] -;exten => _X.,1,NoOp(### Call from ${CALLERID} to ${EXTEN} ###) - -exten => _0.,1,Dial(SIP/${EXTEN:1}@tolapai) -exten => _1.,1,Dial(DAHDI/g11/${EXTEN:1}) -exten => _2.,1,Dial(DAHDI/g12/${EXTEN:1}) -exten => _3.,1,Dial(DAHDI/g13/${EXTEN:1}) -exten => _4.,1,Dial(DAHDI/g14/${EXTEN:1}) -exten => 5,1,Dial(DAHDI/g5) -exten => 6,1,Playback(hello-world) - -exten => 7,1,Answer -exten => 7,n,Echo - - -; appel via le port B410P BRI 1 -exten = _21.,1,NoOp() -same = n,Dial(DAHDI/g11/${EXTEN:2}) -same = n,Hangup() - -; appel via le port B410p BRI 2 -;exten = 22,1,NoOp() -;same = n,Dial(DAHDI/g12) -exten = _22.,1,NoOp() -same = n,Dial(DAHDI/g12/${EXTEN:2}) -same = n,Hangup() - -; appel via le port B410p BRI 3 -;exten = 23,1,NoOp() -;same = n,Dial(DAHDI/g13) -exten = _23.,1,NoOp() -same = n,Dial(DAHDI/g13/${EXTEN:2}) -same = n,Hangup() - -; appel via le port B410p BRI 4 -;exten = 24,1,NoOp() -;same = n,Dial(DAHDI/g14) -exten = _24.,1,NoOp() -same = n,Dial(DAHDI/g14/${EXTEN:2}) -same = n,Hangup() - -; appel via le port FXS 1 de la carte TDM400 -exten = 11,1,NoOp() -same = n,Dial(DAHDI/g4) -same = n,Hangup() - -; appel via le port FXS 2 de la carte TDM400 -exten = 12,1,NoOp() -same = n,Dial(DAHDI/g5) -same = n,Hangup() - -; appel via le port FXO 1 de la carte TDM400 -exten = 13,1,NoOp() -same = n,Dial(DAHDI/g6) -same = n,Hangup() - -exten = s,1,NoOp() -;same = n,Goto(wait-and-hangup,1) -same = n,Goto(call-loadtester2,1) - -exten = wait-and-hangup,1,NoOp() -same = n,Answer() -same = n,Wait(60) -same = n,Hangup() - -exten = call-loadtester2,1,NoOp() -same = n,Dial(SIP/loadtester2) -same = n,Hangup() - -exten = 32,1,NoOp() -same = n,Dial(SIP/loadtester2) -same = n,Hangup() - -exten = 108,1,NoOp() -same = n,Dial(SIP/phone1) -same = n,Hangup() - -exten = hangup,1,NoOp() -same = n,Answer() -same = n,Wait(10) -same = n,Hangup() - -[from-internal] -include => default - -[from-pstn] -include => default - -[lol] -include => default - -[loadtest] -exten => s,1,NoOp(Init call for test) -exten => s,n,Answer -exten => s,n,Playback(hello-world) -exten => s,n,Echo -exten => s,n,Hangup - diff --git a/call_and_anwser_call/driver/system.conf b/call_and_anwser_call/driver/system.conf deleted file mode 100644 index e237a47..0000000 --- a/call_and_anwser_call/driver/system.conf +++ /dev/null @@ -1,48 +0,0 @@ -# Autogenerated by /usr/sbin/dahdi_genconf on Fri Apr 20 18:08:28 2012 -# If you edit this file and execute /usr/sbin/dahdi_genconf again, -# your manual changes will be LOST. -# Dahdi Configuration File -# -# This file is parsed by the Dahdi Configurator, dahdi_cfg -# -# Span 1: B4/0/1 "B4XXP (PCI) Card 0 Span 1" (MASTER) -span=1,1,0,ccs,ami -# termtype: te -bchan=1-2 -hardhdlc=3 -echocanceller=mg2,1-2 - -# Span 2: B4/0/2 "B4XXP (PCI) Card 0 Span 2" -span=2,2,0,ccs,ami -# termtype: te -bchan=4-5 -hardhdlc=6 -echocanceller=mg2,4-5 - -# Span 3: B4/0/3 "B4XXP (PCI) Card 0 Span 3" -span=3,3,0,ccs,ami -# termtype: te -bchan=7-8 -hardhdlc=9 -echocanceller=mg2,7-8 - -# Span 4: B4/0/4 "B4XXP (PCI) Card 0 Span 4" YELLOW -span=4,4,0,ccs,ami -# termtype: te -bchan=10-11 -hardhdlc=12 -echocanceller=mg2,10-11 - -# Span 5: WCTDM/4 "Wildcard TDM400P REV I Board 5" -fxoks=13 -echocanceller=mg2,13 -fxoks=14 -echocanceller=mg2,14 -fxsks=15 -echocanceller=mg2,15 -# channel 16, WCTDM/4/3, no module. - -# Global data - -loadzone = us -defaultzone = us diff --git a/call_and_hangup/README b/call_and_hangup/README deleted file mode 100644 index f5cc226..0000000 --- a/call_and_hangup/README +++ /dev/null @@ -1,14 +0,0 @@ -This test was used for calling and hanging up ~30000 times between - -- a driver PC with a Digium B410P and a Digium TDP400P with two FXS modules and - one FXO module. -- a XiVO IPBX Open Hardware prototype (PCB version 4.0) with the FXO/FXS and - ISDN cards. - -The driver machine runs load-tester and calls the prototype through its FXS -port; the prototype then rings a phone. - -To reproduce: - -* Install files -* run load-tester with scenario call-then-cancel-on-ringing diff --git a/call_and_hangup/README_FR b/call_and_hangup/README_FR deleted file mode 100644 index c979ef3..0000000 --- a/call_and_hangup/README_FR +++ /dev/null @@ -1,11 +0,0 @@ -Ce test a été utilisé pour appeler (décrocher et raccrocher) 30 000 fois entre: - -- un pilote avec un Digium B410P et un Digium TDP400P avec deux modules FXS et un module FXO. -- un prototype XiVO IPBX Open Hardware (PCB version 4.0) avec le FXO/FXS et les cartes ISDN. - -La machine pilote lance load-tester et appelle le prototype à travers le port FXS. Le prototype fait alors sonner un téléphone. - -Pour le reproduire: - -* Installer les fichiers -* Mettre en marche le load-tester (chargement de test) avec le scénario "call-then-cancel-on-ringing". diff --git a/call_and_hangup/driver/conf.py b/call_and_hangup/driver/conf.py deleted file mode 100644 index 15214a2..0000000 --- a/call_and_hangup/driver/conf.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: UTF-8 -*- - -from __future__ import unicode_literals - -## global configuration - -sipp_remote_host = '127.0.0.1' - -sipp_local_ip = '127.0.0.1' -sipp_call_rate = 1.0 -sipp_pause_in_ms = 6000 -sipp_rate_period_in_ms = 18000 + sipp_pause_in_ms - -## scenarios configuration - -called_line = { - 'username': 'loadtester2', - 'bind_port': 5070, -} - -calling_line = { - 'username': 'loadtester1', - 'password': 'loadtester1', -} - -#scenarios.call_and_answer_call.calling_line = calling_line -#scenarios.call_and_answer_call.called_line = called_line -scenarios.call_and_answer_call.called_exten = 's' - -#scenarios.call_then_cancel_on_ringing.calling_line = calling_line -scenarios.call_then_cancel_on_ringing.called_exten = '105' -scenarios.call_then_cancel_on_ringing.sipp_pause_in_ms = 3000 -scenarios.call_then_cancel_on_ringing.sipp_rate_period_in_ms = 15000 - -# scenarios.call_then_hangup.calling_line = calling_line -# calling trhough FXS port 1 to reach port FXO on pcb#4 - cf dialplan for 105 -scenarios.call_then_hangup.called_exten = '105' - -#scenarios.call_then_wait.calling_line = calling_line -scenarios.call_then_wait.called_exten = '102' diff --git a/call_and_hangup/driver/dahdi-channels.conf b/call_and_hangup/driver/dahdi-channels.conf deleted file mode 100644 index 570d113..0000000 --- a/call_and_hangup/driver/dahdi-channels.conf +++ /dev/null @@ -1,57 +0,0 @@ -; Autogenerated by /usr/sbin/dahdi_genconf on Fri Apr 20 18:08:28 2012 -; If you edit this file and execute /usr/sbin/dahdi_genconf again, -; your manual changes will be LOST. -; Dahdi Channels Configurations (chan_dahdi.conf) -; -; This is not intended to be a complete chan_dahdi.conf. Rather, it is intended -; to be #include-d by /etc/chan_dahdi.conf that will include the global settings -; - -; Span 1: B4/0/1 "B4XXP (PCI) Card 0 Span 1" (MASTER) -group=0,11 -context=from-pstn -switchtype = euroisdn -signalling = bri_cpe_ptmp -channel => 1-2 - -group=0,12 -context=from-pstn -switchtype = euroisdn -signalling = bri_cpe_ptmp -channel => 4-5 -; Span 3: B4/0/3 "B4XXP (PCI) Card 0 Span 3" -group=0,13 -context=from-pstn -switchtype = euroisdn -signalling = bri_cpe_ptmp -channel => 7-8 -; Span 4: B4/0/4 "B4XXP (PCI) Card 0 Span 4" YELLOW -group=0,14 -context=from-pstn -switchtype = euroisdn -signalling = bri_cpe_ptmp -channel => 10-11 -; Span 5: WCTDM/4 "Wildcard TDM400P REV I Board 5" -;;; line="13 WCTDM/4/0 FXOKS" -signalling=fxo_ks -callerid="Channel 13" <4013> -mailbox=4013 -group=4 -context=from-internal -channel => 13 - -;;; line="14 WCTDM/4/1 FXOKS" -signalling=fxo_ks -callerid="Channel 14" <4014> -mailbox=4014 -group=5 -context=from-internal -channel => 14 - -;;; line="15 WCTDM/4/2 FXSKS" -signalling=fxs_ks -callerid=asreceived -group=6 -context=from-pstn -channel => 15 - diff --git a/call_and_hangup/driver/extensions.conf b/call_and_hangup/driver/extensions.conf deleted file mode 100644 index 772c5e4..0000000 --- a/call_and_hangup/driver/extensions.conf +++ /dev/null @@ -1,84 +0,0 @@ -[default] -;exten => _X.,1,NoOp(### Call from ${CALLERID} to ${EXTEN} ###) - -exten => _0.,1,Dial(SIP/${EXTEN:1}@tolapai) -exten => _1.,1,Dial(DAHDI/g11/${EXTEN:1}) -exten => _2.,1,Dial(DAHDI/g12/${EXTEN:1}) -exten => _3.,1,Dial(DAHDI/g13/${EXTEN:1}) -exten => _4.,1,Dial(DAHDI/g14/${EXTEN:1}) -exten => 5,1,Dial(DAHDI/g5) -exten => 6,1,Playback(hello-world) - -exten => 7,1,Answer -exten => 7,n,Echo - - -; appel via le port B410P BRI 1 -exten = 101,1,NoOp() -same = n,Dial(DAHDI/g11) -same = n,Hangup() - -; appel via le port B410p BRI 2 -exten = 102,1,NoOp() -same = n,Dial(DAHDI/g12) -same = n,Hangup() - -; appel via le port B410p BRI 3 -exten = 103,1,NoOp() -same = n,Dial(DAHDI/g13) -same = n,Hangup() - -; appel via le port B410p BRI 4 -exten = 104,1,NoOp() -same = n,Dial(DAHDI/g14) -same = n,Hangup() - -; appel via le port FXS 1 de la carte TDM400 -exten = 105,1,NoOp() -same = n,Dial(DAHDI/g4) -same = n,Hangup() - -; appel via le port FXS 2 de la carte TDM400 -exten = 106,1,NoOp() -same = n,Dial(DAHDI/g5) -same = n,Hangup() - -; appel via le port FXO 1 de la carte TDM400 -exten = 107,1,NoOp() -same = n,Dial(DAHDI/g6) -same = n,Hangup() - -exten = s,1,NoOp() -;same = n,Goto(wait-and-hangup,1) -same = n,Goto(call-loadtester2,1) - -exten = wait-and-hangup,1,NoOp() -same = n,Answer() -same = n,Wait(60) -same = n,Hangup() - -exten = call-loadtester2,1,NoOp() -same = n,Dial(SIP/loadtester2) -same = n,Hangup() - -exten = hangup,1,NoOp() -same = n,Answer() -same = n,Wait(10) -same = n,Hangup() - -[from-internal] -include => default - -[from-pstn] -include => default - -[lol] -include => default - -[loadtest] -exten => s,1,NoOp(Init call for test) -exten => s,n,Answer -exten => s,n,Playback(hello-world) -exten => s,n,Echo -exten => s,n,Hangup - diff --git a/call_and_hangup/driver/sip.conf b/call_and_hangup/driver/sip.conf deleted file mode 100644 index 98fad2d..0000000 --- a/call_and_hangup/driver/sip.conf +++ /dev/null @@ -1,1340 +0,0 @@ -; -; SIP Configuration example for Asterisk -; -; Note: Please read the security documentation for Asterisk in order to -; understand the risks of installing Asterisk with the sample -; configuration. If your Asterisk is installed on a public -; IP address connected to the Internet, you will want to learn -; about the various security settings BEFORE you start -; Asterisk. -; -; Especially note the following settings: -; - allowguest (default enabled) -; - permit/deny - IP address filters -; - contactpermit/contactdeny - IP address filters for registrations -; - context - Which set of services you offer various users -; -; SIP dial strings -;----------------------------------------------------------- -; In the dialplan (extensions.conf) you can use several -; syntaxes for dialing SIP devices. -; SIP/devicename -; SIP/username@domain (SIP uri) -; SIP/username[:password[:md5secret[:authname[:transport]]]]@host[:port] -; SIP/devicename/extension -; SIP/devicename/extension/IPorHost -; SIP/username@domain//IPorHost -; -; -; Devicename -; devicename is defined as a peer in a section below. -; -; username@domain -; Call any SIP user on the Internet -; (Don't forget to enable DNS SRV records if you want to use this) -; -; devicename/extension -; If you define a SIP proxy as a peer below, you may call -; SIP/proxyhostname/user or SIP/user@proxyhostname -; where the proxyhostname is defined in a section below -; This syntax also works with ATA's with FXO ports -; -; SIP/username[:password[:md5secret[:authname]]]@host[:port] -; This form allows you to specify password or md5secret and authname -; without altering any authentication data in config. -; Examples: -; -; SIP/*98@mysipproxy -; SIP/sales:topsecret::account02@domain.com:5062 -; SIP/12345678::bc53f0ba8ceb1ded2b70e05c3f91de4f:myname@192.168.0.1 -; -; IPorHost -; The next server for this call regardless of domain/peer -; -; All of these dial strings specify the SIP request URI. -; In addition, you can specify a specific To: header by adding an -; exclamation mark after the dial string, like -; -; SIP/sales@mysipproxy!sales@edvina.net -; -; A new feature for 1.8 allows one to specify a host or IP address to use -; when routing the call. This is typically used in tandem with func_srv if -; multiple methods of reaching the same domain exist. The host or IP address -; is specified after the third slash in the dialstring. Examples: -; -; SIP/devicename/extension/IPorHost -; SIP/username@domain//IPorHost -; -; CLI Commands -; ------------------------------------------------------------- -; Useful CLI commands to check peers/users: -; sip show peers Show all SIP peers (including friends) -; sip show registry Show status of hosts we register with -; -; sip set debug on Show all SIP messages -; -; sip reload Reload configuration file -; sip show settings Show the current channel configuration -; -;------- Naming devices ------------------------------------------------------ -; -; When naming devices, make sure you understand how Asterisk matches calls -; that come in. -; 1. Asterisk checks the SIP From: address username and matches against -; names of devices with type=user -; The name is the text between square brackets [name] -; 2. Asterisk checks the From: addres and matches the list of devices -; with a type=peer -; 3. Asterisk checks the IP address (and port number) that the INVITE -; was sent from and matches against any devices with type=peer -; -; Don't mix extensions with the names of the devices. Devices need a unique -; name. The device name is *not* used as phone numbers. Phone numbers are -; anything you declare as an extension in the dialplan (extensions.conf). -; -; When setting up trunks, make sure there's no risk that any From: username -; (caller ID) will match any of your device names, because then Asterisk -; might match the wrong device. -; -; Note: The parameter "username" is not the username and in most cases is -; not needed at all. Check below. In later releases, it's renamed -; to "defaultuser" which is a better name, since it is used in -; combination with the "defaultip" setting. -;----------------------------------------------------------------------------- - -; ** Old configuration options ** -; The "call-limit" configuation option is considered old is replaced -; by new functionality. To enable callcounters, you use the new -; "callcounter" setting (for extension states in queue and subscriptions) -; You are encouraged to use the dialplan groupcount functionality -; to enforce call limits instead of using this channel-specific method. -; You can still set limits per device in sip.conf or in a database by using -; "setvar" to set variables that can be used in the dialplan for various limits. - -[general] -context=default ; Default context for incoming calls -canreinvite=no -;allowguest=no ; Allow or reject guest calls (default is yes) - ; If your Asterisk is connected to the Internet - ; and you have allowguest=yes - ; you want to check which services you offer everyone - ; out there, by enabling them in the default context (see below). -;match_auth_username=yes ; if available, match user entry using the - ; 'username' field from the authentication line - ; instead of the From: field. -allowoverlap=no ; Disable overlap dialing support. (Default is yes) -;allowtransfer=no ; Disable all transfers (unless enabled in peers or users) - ; Default is enabled. The Dial() options 't' and 'T' are not - ; related as to whether SIP transfers are allowed or not. -;realm=mydomain.tld ; Realm for digest authentication - ; defaults to "asterisk". If you set a system name in - ; asterisk.conf, it defaults to that system name - ; Realms MUST be globally unique according to RFC 3261 - ; Set this to your host name or domain name -;domainsasrealm=no ; Use domans list as realms - ; You can serve multiple Realms specifying several - ; 'domain=...' directives (see below). - ; In this case Realm will be based on request 'From'/'To' header - ; and should match one of domain names. - ; Otherwise default 'realm=...' will be used. - -; With the current situation, you can do one of four things: -; a) Listen on a specific IPv4 address. Example: bindaddr=192.0.2.1 -; b) Listen on a specific IPv6 address. Example: bindaddr=2001:db8::1 -; c) Listen on the IPv4 wildcard. Example: bindaddr=0.0.0.0 -; d) Listen on the IPv4 and IPv6 wildcards. Example: bindaddr=:: -; (You can choose independently for UDP, TCP, and TLS, by specifying different values for -; "udpbindaddr", "tcpbindaddr", and "tlsbindaddr".) -; (Note that using bindaddr=:: will show only a single IPv6 socket in netstat. -; IPv4 is supported at the same time using IPv4-mapped IPv6 addresses.) -; -; You may optionally add a port number. (The default is port 5060 for UDP and TCP, 5061 -; for TLS). -; IPv4 example: bindaddr=0.0.0.0:5062 -; IPv6 example: bindaddr=[::]:5062 -; -; The address family of the bound UDP address is used to determine how Asterisk performs -; DNS lookups. In cases a) and c) above, only A records are considered. In case b), only -; AAAA records are considered. In case d), both A and AAAA records are considered. Note, -; however, that Asterisk ignores all records except the first one. In case d), when both A -; and AAAA records are available, either an A or AAAA record will be first, and which one -; depends on the operating system. On systems using glibc, AAAA records are given -; priority. - -udpbindaddr=0.0.0.0 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all) - ; Optionally add a port number, 192.168.1.1:5062 (default is port 5060) - -; When a dialog is started with another SIP endpoint, the other endpoint -; should include an Allow header telling us what SIP methods the endpoint -; implements. However, some endpoints either do not include an Allow header -; or lie about what methods they implement. In the former case, Asterisk -; makes the assumption that the endpoint supports all known SIP methods. -; If you know that your SIP endpoint does not provide support for a specific -; method, then you may provide a comma-separated list of methods that your -; endpoint does not implement in the disallowed_methods option. Note that -; if your endpoint is truthful with its Allow header, then there is no need -; to set this option. This option may be set in the general section or may -; be set per endpoint. If this option is set both in the general section and -; in a peer section, then the peer setting completely overrides the general -; setting (i.e. the result is *not* the union of the two options). -; -; Note also that while Asterisk currently will parse an Allow header to learn -; what methods an endpoint supports, the only actual use for this currently -; is for determining if Asterisk may send connected line UPDATE requests. Its -; use may be expanded in the future. -; -; disallowed_methods = UPDATE - -; -; Note that the TCP and TLS support for chan_sip is currently considered -; experimental. Since it is new, all of the related configuration options are -; subject to change in any release. If they are changed, the changes will -; be reflected in this sample configuration file, as well as in the UPGRADE.txt file. -; -tcpenable=no ; Enable server for incoming TCP connections (default is no) -tcpbindaddr=0.0.0.0 ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces) - ; Optionally add a port number, 192.168.1.1:5062 (default is port 5060) - -;tlsenable=no ; Enable server for incoming TLS (secure) connections (default is no) -;tlsbindaddr=0.0.0.0 ; IP address for TLS server to bind to (0.0.0.0) binds to all interfaces) - ; Optionally add a port number, 192.168.1.1:5063 (default is port 5061) - ; Remember that the IP address must match the common name (hostname) in the - ; certificate, so you don't want to bind a TLS socket to multiple IP addresses. - ; For details how to construct a certificate for SIP see - ; http://tools.ietf.org/html/draft-ietf-sip-domain-certs - -srvlookup=yes ; Enable DNS SRV lookups on outbound calls - ; Note: Asterisk only uses the first host - ; in SRV records - ; Disabling DNS SRV lookups disables the - ; ability to place SIP calls based on domain - ; names to some other SIP users on the Internet - ; Specifying a port in a SIP peer definition or - ; when dialing outbound calls will supress SRV - ; lookups for that peer or call. - -;pedantic=yes ; Enable checking of tags in headers, - ; international character conversions in URIs - ; and multiline formatted headers for strict - ; SIP compatibility (defaults to "no") - -; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters. -;tos_sip=cs3 ; Sets TOS for SIP packets. -;tos_audio=ef ; Sets TOS for RTP audio packets. -;tos_video=af41 ; Sets TOS for RTP video packets. -;tos_text=af41 ; Sets TOS for RTP text packets. - -;cos_sip=3 ; Sets 802.1p priority for SIP packets. -;cos_audio=5 ; Sets 802.1p priority for RTP audio packets. -;cos_video=4 ; Sets 802.1p priority for RTP video packets. -;cos_text=3 ; Sets 802.1p priority for RTP text packets. - -;maxexpiry=3600 ; Maximum allowed time of incoming registrations - ; and subscriptions (seconds) -;minexpiry=60 ; Minimum length of registrations/subscriptions (default 60) -;defaultexpiry=120 ; Default length of incoming/outgoing registration -;mwiexpiry=3600 ; Expiry time for outgoing MWI subscriptions -;maxforwards=70 ; Setting for the SIP Max-Forwards: header (loop prevention) - ; Default value is 70 -;qualifyfreq=60 ; Qualification: How often to check for the host to be up in seconds - ; Set to low value if you use low timeout for NAT of UDP sessions - ; Default: 60 -;qualifygap=100 ; Number of milliseconds between each group of peers being qualified - ; Default: 100 -;qualifypeers=1 ; Number of peers in a group to be qualified at the same time - ; Default: 1 -;notifymimetype=text/plain ; Allow overriding of mime type in MWI NOTIFY -;buggymwi=no ; Cisco SIP firmware doesn't support the MWI RFC - ; fully. Enable this option to not get error messages - ; when sending MWI to phones with this bug. -;mwi_from=asterisk ; When sending MWI NOTIFY requests, use this setting in - ; the From: header as the "name" portion. Also fill the - ; "user" portion of the URI in the From: header with this - ; value if no fromuser is set - ; Default: empty -;vmexten=voicemail ; dialplan extension to reach mailbox sets the - ; Message-Account in the MWI notify message - ; defaults to "asterisk" - -;preferred_codec_only=yes ; Respond to a SIP invite with the single most preferred codec - ; rather than advertising all joint codec capabilities. This - ; limits the other side's codec choice to exactly what we prefer. - -;disallow=all ; First disallow all codecs -;allow=ulaw ; Allow codecs in order of preference -;allow=ilbc ; see doc/rtp-packetization for framing options -; -; This option specifies a preference for which music on hold class this channel -; should listen to when put on hold if the music class has not been set on the -; channel with Set(CHANNEL(musicclass)=whatever) in the dialplan, and the peer -; channel putting this one on hold did not suggest a music class. -; -; This option may be specified globally, or on a per-user or per-peer basis. -; -;mohinterpret=default -; -; This option specifies which music on hold class to suggest to the peer channel -; when this channel places the peer on hold. It may be specified globally or on -; a per-user or per-peer basis. -; -;mohsuggest=default -; -;parkinglot=plaza ; Sets the default parking lot for call parking - ; This may also be set for individual users/peers - ; Parkinglots are configured in features.conf -;language=en ; Default language setting for all users/peers - ; This may also be set for individual users/peers -;relaxdtmf=yes ; Relax dtmf handling -;trustrpid = no ; If Remote-Party-ID should be trusted -;sendrpid = yes ; If Remote-Party-ID should be sent (defaults to no) -;sendrpid = rpid ; Use the "Remote-Party-ID" header - ; to send the identity of the remote party - ; This is identical to sendrpid=yes -;sendrpid = pai ; Use the "P-Asserted-Identity" header - ; to send the identity of the remote party -;rpid_update = no ; In certain cases, the only method by which a connected line - ; change may be immediately transmitted is with a SIP UPDATE request. - ; If communicating with another Asterisk server, and you wish to be able - ; transmit such UPDATE messages to it, then you must enable this option. - ; Otherwise, we will have to wait until we can send a reinvite to - ; transmit the information. -;prematuremedia=no ; Some ISDN links send empty media frames before - ; the call is in ringing or progress state. The SIP - ; channel will then send 183 indicating early media - ; which will be empty - thus users get no ring signal. - ; Setting this to "yes" will stop any media before we have - ; call progress (meaning the SIP channel will not send 183 Session - ; Progress for early media). Default is "yes". Also make sure that - ; the SIP peer is configured with progressinband=never. - ; - ; In order for "noanswer" applications to work, you need to run - ; the progress() application in the priority before the app. - -;progressinband=never ; If we should generate in-band ringing always - ; use 'never' to never use in-band signalling, even in cases - ; where some buggy devices might not render it - ; Valid values: yes, no, never Default: never -;useragent=Asterisk PBX ; Allows you to change the user agent string - ; The default user agent string also contains the Asterisk - ; version. If you don't want to expose this, change the - ; useragent string. -;promiscredir = no ; If yes, allows 302 or REDIR to non-local SIP address - ; Note that promiscredir when redirects are made to the - ; local system will cause loops since Asterisk is incapable - ; of performing a "hairpin" call. -;usereqphone = no ; If yes, ";user=phone" is added to uri that contains - ; a valid phone number -;dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833 - ; Other options: - ; info : SIP INFO messages (application/dtmf-relay) - ; shortinfo : SIP INFO messages (application/dtmf) - ; inband : Inband audio (requires 64 kbit codec -alaw, ulaw) - ; auto : Use rfc2833 if offered, inband otherwise - -;compactheaders = yes ; send compact sip headers. -; -;videosupport=yes ; Turn on support for SIP video. You need to turn this - ; on in this section to get any video support at all. - ; You can turn it off on a per peer basis if the general - ; video support is enabled, but you can't enable it for - ; one peer only without enabling in the general section. - ; If you set videosupport to "always", then RTP ports will - ; always be set up for video, even on clients that don't - ; support it. This assists callfile-derived calls and - ; certain transferred calls to use always use video when - ; available. [yes|NO|always] - -;maxcallbitrate=384 ; Maximum bitrate for video calls (default 384 kb/s) - ; Videosupport and maxcallbitrate is settable - ; for peers and users as well -;callevents=no ; generate manager events when sip ua - ; performs events (e.g. hold) -;authfailureevents=no ; generate manager "peerstatus" events when peer can't - ; authenticate with Asterisk. Peerstatus will be "rejected". -;alwaysauthreject = yes ; When an incoming INVITE or REGISTER is to be rejected, - ; for any reason, always reject with an identical response - ; equivalent to valid username and invalid password/hash - ; instead of letting the requester know whether there was - ; a matching user or peer for their request. This reduces - ; the ability of an attacker to scan for valid SIP usernames. - -;g726nonstandard = yes ; If the peer negotiates G726-32 audio, use AAL2 packing - ; order instead of RFC3551 packing order (this is required - ; for Sipura and Grandstream ATAs, among others). This is - ; contrary to the RFC3551 specification, the peer _should_ - ; be negotiating AAL2-G726-32 instead :-( -;outboundproxy=proxy.provider.domain ; send outbound signaling to this proxy, not directly to the devices -;outboundproxy=proxy.provider.domain:8080 ; send outbound signaling to this proxy, not directly to the devices -;outboundproxy=proxy.provider.domain,force ; Send ALL outbound signalling to proxy, ignoring route: headers -;outboundproxy=tls://proxy.provider.domain ; same as '=proxy.provider.domain' except we try to connect with tls -; ; (could also be tcp,udp) - defining transports on the proxy line only -; ; applies for the global proxy, otherwise use the transport= option -;matchexternaddrlocally = yes ; Only substitute the externaddr or externhost setting if it matches - ; your localnet setting. Unless you have some sort of strange network - ; setup you will not need to enable this. - -;dynamic_exclude_static = yes ; Disallow all dynamic hosts from registering - ; as any IP address used for staticly defined - ; hosts. This helps avoid the configuration - ; error of allowing your users to register at - ; the same address as a SIP provider. - -;contactdeny=0.0.0.0/0.0.0.0 ; Use contactpermit and contactdeny to -;contactpermit=172.16.0.0/255.255.0.0 ; restrict at what IPs your users may - ; register their phones. - -;engine=asterisk ; RTP engine to use when communicating with the device - -; -; If regcontext is specified, Asterisk will dynamically create and destroy a -; NoOp priority 1 extension for a given peer who registers or unregisters with -; us and have a "regexten=" configuration item. -; Multiple contexts may be specified by separating them with '&'. The -; actual extension is the 'regexten' parameter of the registering peer or its -; name if 'regexten' is not provided. If more than one context is provided, -; the context must be specified within regexten by appending the desired -; context after '@'. More than one regexten may be supplied if they are -; separated by '&'. Patterns may be used in regexten. -; -;regcontext=sipregistrations -;regextenonqualify=yes ; Default "no" - ; If you have qualify on and the peer becomes unreachable - ; this setting will enforce inactivation of the regexten - ; extension for the peer - -; The shrinkcallerid function removes '(', ' ', ')', non-trailing '.', and '-' not -; in square brackets. For example, the caller id value 555.5555 becomes 5555555 -; when this option is enabled. Disabling this option results in no modification -; of the caller id value, which is necessary when the caller id represents something -; that must be preserved. This option can only be used in the [general] section. -; By default this option is on. -; -;shrinkcallerid=yes ; on by default - - -;use_q850_reason = no ; Default "no" - ; Set to yes add Reason header and use Reason header if it is available. -; -;------------------------ TLS settings ------------------------------------------------------------ -;tlscertfile= ; Certificate file (*.pem format only) to use for TLS connections - ; default is to look for "asterisk.pem" in current directory - -;tlsprivatekey= ; Private key file (*.pem format only) for TLS connections. - ; If no tlsprivatekey is specified, tlscertfile is searched for - ; for both public and private key. - -;tlscafile= -; If the server your connecting to uses a self signed certificate -; you should have their certificate installed here so the code can -; verify the authenticity of their certificate. - -;tlscadir= -; A directory full of CA certificates. The files must be named with -; the CA subject name hash value. -; (see man SSL_CTX_load_verify_locations for more info) - -;tlsdontverifyserver=[yes|no] -; If set to yes, don't verify the servers certificate when acting as -; a client. If you don't have the server's CA certificate you can -; set this and it will connect without requiring tlscafile to be set. -; Default is no. - -;tlscipher= -; A string specifying which SSL ciphers to use or not use -; A list of valid SSL cipher strings can be found at: -; http://www.openssl.org/docs/apps/ciphers.html#CIPHER_STRINGS -; -;tlsclientmethod=tlsv1 ; values include tlsv1, sslv3, sslv2. - ; Specify protocol for outbound client connections. - ; If left unspecified, the default is sslv2. -; -;--------------------------- SIP timers ---------------------------------------------------- -; These timers are used primarily in INVITE transactions. -; The default for Timer T1 is 500 ms or the measured run-trip time between -; Asterisk and the device if you have qualify=yes for the device. -; -;t1min=100 ; Minimum roundtrip time for messages to monitored hosts - ; Defaults to 100 ms -;timert1=500 ; Default T1 timer - ; Defaults to 500 ms or the measured round-trip - ; time to a peer (qualify=yes). -;timerb=32000 ; Call setup timer. If a provisional response is not received - ; in this amount of time, the call will autocongest - ; Defaults to 64*timert1 - -;--------------------------- RTP timers ---------------------------------------------------- -; These timers are currently used for both audio and video streams. The RTP timeouts -; are only applied to the audio channel. -; The settings are settable in the global section as well as per device -; -;rtptimeout=60 ; Terminate call if 60 seconds of no RTP or RTCP activity - ; on the audio channel - ; when we're not on hold. This is to be able to hangup - ; a call in the case of a phone disappearing from the net, - ; like a powerloss or grandma tripping over a cable. -;rtpholdtimeout=300 ; Terminate call if 300 seconds of no RTP or RTCP activity - ; on the audio channel - ; when we're on hold (must be > rtptimeout) -;rtpkeepalive= ; Send keepalives in the RTP stream to keep NAT open - ; (default is off - zero) - -;--------------------------- SIP Session-Timers (RFC 4028)------------------------------------ -; SIP Session-Timers provide an end-to-end keep-alive mechanism for active SIP sessions. -; This mechanism can detect and reclaim SIP channels that do not terminate through normal -; signaling procedures. Session-Timers can be configured globally or at a user/peer level. -; The operation of Session-Timers is driven by the following configuration parameters: -; -; * session-timers - Session-Timers feature operates in the following three modes: -; originate : Request and run session-timers always -; accept : Run session-timers only when requested by other UA -; refuse : Do not run session timers in any case -; The default mode of operation is 'accept'. -; * session-expires - Maximum session refresh interval in seconds. Defaults to 1800 secs. -; * session-minse - Minimum session refresh interval in seconds. Defualts to 90 secs. -; * session-refresher - The session refresher (uac|uas). Defaults to 'uas'. -; -;session-timers=originate -;session-expires=600 -;session-minse=90 -;session-refresher=uas -; -;--------------------------- SIP DEBUGGING --------------------------------------------------- -;sipdebug = yes ; Turn on SIP debugging by default, from - ; the moment the channel loads this configuration -;recordhistory=yes ; Record SIP history by default - ; (see sip history / sip no history) -;dumphistory=yes ; Dump SIP history at end of SIP dialogue - ; SIP history is output to the DEBUG logging channel - - -;--------------------------- STATUS NOTIFICATIONS (SUBSCRIPTIONS) ---------------------------- -; You can subscribe to the status of extensions with a "hint" priority -; (See extensions.conf.sample for examples) -; chan_sip support two major formats for notifications: dialog-info and SIMPLE -; -; You will get more detailed reports (busy etc) if you have a call counter enabled -; for a device. -; -; If you set the busylevel, we will indicate busy when we have a number of calls that -; matches the busylevel treshold. -; -; For queues, you will need this level of detail in status reporting, regardless -; if you use SIP subscriptions. Queues and manager use the same internal interface -; for reading status information. -; -; Note: Subscriptions does not work if you have a realtime dialplan and use the -; realtime switch. -; -;allowsubscribe=no ; Disable support for subscriptions. (Default is yes) -;subscribecontext = default ; Set a specific context for SUBSCRIBE requests - ; Useful to limit subscriptions to local extensions - ; Settable per peer/user also -;notifyringing = no ; Control whether subscriptions already INUSE get sent - ; RINGING when another call is sent (default: yes) -;notifyhold = yes ; Notify subscriptions on HOLD state (default: no) - ; Turning on notifyringing and notifyhold will add a lot - ; more database transactions if you are using realtime. -;notifycid = yes ; Control whether caller ID information is sent along with - ; dialog-info+xml notifications (supported by snom phones). - ; Note that this feature will only work properly when the - ; incoming call is using the same extension and context that - ; is being used as the hint for the called extension. This means - ; that it won't work when using subscribecontext for your sip - ; user or peer (if subscribecontext is different than context). - ; This is also limited to a single caller, meaning that if an - ; extension is ringing because multiple calls are incoming, - ; only one will be used as the source of caller ID. Specify - ; 'ignore-context' to ignore the called context when looking - ; for the caller's channel. The default value is 'no.' Setting - ; notifycid to 'ignore-context' also causes call-pickups attempted - ; via SNOM's NOTIFY mechanism to set the context for the call pickup - ; to PICKUPMARK. -;callcounter = yes ; Enable call counters on devices. This can be set per - ; device too. - -;----------------------------------------- T.38 FAX SUPPORT ---------------------------------- -; -; This setting is available in the [general] section as well as in device configurations. -; Setting this to yes enables T.38 FAX (UDPTL) on SIP calls; it defaults to off. -; -; t38pt_udptl = yes ; Enables T.38 with FEC error correction. -; t38pt_udptl = yes,fec ; Enables T.38 with FEC error correction. -; t38pt_udptl = yes,redundancy ; Enables T.38 with redundancy error correction. -; t38pt_udptl = yes,none ; Enables T.38 with no error correction. -; -; In some cases, T.38 endpoints will provide a T38FaxMaxDatagram value (during T.38 setup) that -; is based on an incorrect interpretation of the T.38 recommendation, and results in failures -; because Asterisk does not believe it can send T.38 packets of a reasonable size to that -; endpoint (Cisco media gateways are one example of this situation). In these cases, during a -; T.38 call you will see warning messages on the console/in the logs from the Asterisk UDPTL -; stack complaining about lack of buffer space to send T.38 FAX packets. If this occurs, you -; can set an override (globally, or on a per-device basis) to make Asterisk ignore the -; T38FaxMaxDatagram value specified by the other endpoint, and use a configured value instead. -; This can be done by appending 'maxdatagram=' to the t38pt_udptl configuration option, -; like this: -; -; t38pt_udptl = yes,fec,maxdatagram=400 ; Enables T.38 with FEC error correction and overrides -; ; the other endpoint's provided value to assume we can -; ; send 400 byte T.38 FAX packets to it. -; -; FAX detection will cause the SIP channel to jump to the 'fax' extension (if it exists) -; based one or more events being detected. The events that can be detected are an incoming -; CNG tone or an incoming T.38 re-INVITE request. -; -; faxdetect = yes ; Default 'no', 'yes' enables both CNG and T.38 detection -; faxdetect = cng ; Enables only CNG detection -; faxdetect = t38 ; Enables only T.38 detection -; -;----------------------------------------- OUTBOUND SIP REGISTRATIONS ------------------------ -; Asterisk can register as a SIP user agent to a SIP proxy (provider) -; Format for the register statement is: -; register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] - -;register => 666:666:666@tolapai - -; -; -; -; domain is either -; - domain in DNS -; - host name in DNS -; - the name of a peer defined below or in realtime -; The domain is where you register your username, so your SIP uri you are registering to -; is username@domain -; -; If no extension is given, the 's' extension is used. The extension needs to -; be defined in extensions.conf to be able to accept calls from this SIP proxy -; (provider). -; -; A similar effect can be achieved by adding a "callbackextension" option in a peer section. -; this is equivalent to having the following line in the general section: -; -; register => username:secret@host/callbackextension -; -; and more readable because you don't have to write the parameters in two places -; (note that the "port" is ignored - this is a bug that should be fixed). -; -; Note that a register= line doesn't mean that we will match the incoming call in any -; other way than described above. If you want to control where the call enters your -; dialplan, which context, you want to define a peer with the hostname of the provider's -; server. If the provider has multiple servers to place calls to your system, you need -; a peer for each server. -; -; Beginning with Asterisk version 1.6.2, the "user" portion of the register line may -; contain a port number. Since the logical separator between a host and port number is a -; ':' character, and this character is already used to separate between the optional "secret" -; and "authuser" portions of the line, there is a bit of a hoop to jump through if you wish -; to use a port here. That is, you must explicitly provide a "secret" and "authuser" even if -; they are blank. See the third example below for an illustration. -; -; -; Examples: -; -;register => 1234:password@mysipprovider.com -; -; This will pass incoming calls to the 's' extension -; -; -;register => 2345:password@sip_proxy/1234 -; -; Register 2345 at sip provider 'sip_proxy'. Calls from this provider -; connect to local extension 1234 in extensions.conf, default context, -; unless you configure a [sip_proxy] section below, and configure a -; context. -; Tip 1: Avoid assigning hostname to a sip.conf section like [provider.com] -; Tip 2: Use separate inbound and outbound sections for SIP providers -; (instead of type=friend) if you have calls in both directions -; -;register => 3456@mydomain:5082::@mysipprovider.com -; -; Note that in this example, the optional authuser and secret portions have -; been left blank because we have specified a port in the user section -; -;register => tls://username:xxxxxx@sip-tls-proxy.example.org -; -; The 'transport' part defaults to 'udp' but may also be 'tcp' or 'tls'. -; Using 'udp://' explicitly is also useful in case the username part -; contains a '/' ('user/name'). - -;registertimeout=20 ; retry registration calls every 20 seconds (default) -;registerattempts=10 ; Number of registration attempts before we give up - ; 0 = continue forever, hammering the other server - ; until it accepts the registration - ; Default is 0 tries, continue forever - -;----------------------------------------- OUTBOUND MWI SUBSCRIPTIONS ------------------------- -; Asterisk can subscribe to receive the MWI from another SIP server and store it locally for retrieval -; by other phones. -; Format for the mwi register statement is: -; mwi => user[:secret[:authuser]]@host[:port][/mailbox] -; -; Examples: -;mwi => 1234:password@mysipprovider.com/1234 -; -; MWI received will be stored in the 1234 mailbox of the SIP_Remote context. It can be used by other phones by following the below: -; mailbox=1234@SIP_Remote -;----------------------------------------- NAT SUPPORT ------------------------ -; -; WARNING: SIP operation behind a NAT is tricky and you really need -; to read and understand well the following section. -; -; When Asterisk is behind a NAT device, the "local" address (and port) that -; a socket is bound to has different values when seen from the inside or -; from the outside of the NATted network. Unfortunately this address must -; be communicated to the outside (e.g. in SIP and SDP messages), and in -; order to determine the correct value Asterisk needs to know: -; -; + whether it is talking to someone "inside" or "outside" of the NATted network. -; This is configured by assigning the "localnet" parameter with a list -; of network addresses that are considered "inside" of the NATted network. -; IF LOCALNET IS NOT SET, THE EXTERNAL ADDRESS WILL NOT BE SET CORRECTLY. -; Multiple entries are allowed, e.g. a reasonable set is the following: -; -; localnet=192.168.0.0/255.255.0.0 ; RFC 1918 addresses -; localnet=10.0.0.0/255.0.0.0 ; Also RFC1918 -; localnet=172.16.0.0/12 ; Another RFC1918 with CIDR notation -; localnet=169.254.0.0/255.255.0.0 ; Zero conf local network -; -; + the "externally visible" address and port number to be used when talking -; to a host outside the NAT. This information is derived by one of the -; following (mutually exclusive) config file parameters: -; -; a. "externaddr = hostname[:port]" specifies a static address[:port] to -; be used in SIP and SDP messages. -; The hostname is looked up only once, when [re]loading sip.conf . -; If a port number is not present, use the port specified in the "udpbindaddr" -; (which is not guaranteed to work correctly, because a NAT box might remap the -; port number as well as the address). -; This approach can be useful if you have a NAT device where you can -; configure the mapping statically. Examples: -; -; externaddr = 12.34.56.78 ; use this address. -; externaddr = 12.34.56.78:9900 ; use this address and port. -; externaddr = mynat.my.org:12600 ; Public address of my nat box. -; externtcpport = 9900 ; The externally mapped tcp port, when Asterisk is behind a static NAT or PAT. -; ; externtcpport will default to the externaddr or externhost port if either one is set. -; externtlsport = 12600 ; The externally mapped tls port, when Asterisk is behind a static NAT or PAT. -; ; externtlsport port will default to the RFC designated port of 5061. -; -; b. "externhost = hostname[:port]" is similar to "externaddr" except -; that the hostname is looked up every "externrefresh" seconds -; (default 10s). This can be useful when your NAT device lets you choose -; the port mapping, but the IP address is dynamic. -; Beware, you might suffer from service disruption when the name server -; resolution fails. Examples: -; -; externhost=foo.dyndns.net ; refreshed periodically -; externrefresh=180 ; change the refresh interval -; -; c. "stunaddr = stun.server[:port]" queries the STUN server specified -; as an argument to obtain the external address/port. -; Queries are also sent periodically every "externrefresh" seconds -; (as a side effect, sending the query also acts as a keepalive for -; the state entry on the nat box): -; -; stunaddr = foo.stun.com:3478 -; externrefresh = 15 -; -; NOTE: STUN is only implemented for IPv4. -; -; Note that at the moment all these mechanism work only for the SIP socket. -; The IP address discovered with externaddr/externhost/STUN is reused for -; media sessions as well, but the port numbers are not remapped so you -; may still experience problems. -; -; NOTE 1: in some cases, NAT boxes will use different port numbers in -; the internal<->external mapping. In these cases, the "externaddr" and -; "externhost" might not help you configure addresses properly, and you -; really need to use STUN. -; -; NOTE 2: when using "externaddr" or "externhost", the address part is -; also used as the external address for media sessions. Even if you -; use "stunaddr", STUN queries will be sent only from the SIP port, -; not from media sockets. Thus, the port information in the SDP may be wrong! -; -; In addition to the above, Asterisk has an additional "nat" parameter to -; address NAT-related issues in incoming SIP or media sessions. -; In particular, depending on the 'nat= ' settings described below, Asterisk -; may override the address/port information specified in the SIP/SDP messages, -; and use the information (sender address) supplied by the network stack instead. -; However, this is only useful if the external traffic can reach us. -; The following settings are allowed (both globally and in individual sections): -; -; nat = no ; Default. Use rport if the remote side says to use it. -; nat = force_rport ; Force rport to always be on. -; nat = yes ; Force rport to always be on and perform comedia RTP handling. -; nat = comedia ; Use rport if the remote side says to use it and perform comedia RTP handling. -; -; 'comedia RTP handling' refers to the technique of sending RTP to the port that the -; the other endpoint's RTP arrived from, and means 'connection-oriented media'. This is -; only partially related to RFC 4145 which was referred to as COMEDIA while it was in -; draft form. This method is used to accomodate endpoints that may be located behind -; NAT devices, and as such the port number they tell Asterisk to send RTP packets to -; for their media streams is not actual port number that will be used on the nearer -; side of the NAT. -; -; In addition to these settings, Asterisk *always* uses 'symmetric RTP' mode as defined by -; RFC 4961; Asterisk will always send RTP packets from the same port number it expects -; to receive them on. -; -; The IP address used for media (audio, video, and text) in the SDP can also be overridden by using -; the media_address configuration option. This is only applicable to the general section and -; can not be set per-user or per-peer. -; -; media_address = 172.16.42.1 - -;----------------------------------- MEDIA HANDLING -------------------------------- -; By default, Asterisk tries to re-invite media streams to an optimal path. If there's -; no reason for Asterisk to stay in the media path, the media will be redirected. -; This does not really work well in the case where Asterisk is outside and the -; clients are on the inside of a NAT. In that case, you want to set directmedia=nonat. -; -;directmedia=yes ; Asterisk by default tries to redirect the - ; RTP media stream to go directly from - ; the caller to the callee. Some devices do not - ; support this (especially if one of them is behind a NAT). - ; The default setting is YES. If you have all clients - ; behind a NAT, or for some other reason want Asterisk to - ; stay in the audio path, you may want to turn this off. - - ; This setting also affect direct RTP - ; at call setup (a new feature in 1.4 - setting up the - ; call directly between the endpoints instead of sending - ; a re-INVITE). - - ; Additionally this option does not disable all reINVITE operations. - ; It only controls Asterisk generating reINVITEs for the specific - ; purpose of setting up a direct media path. If a reINVITE is - ; needed to switch a media stream to inactive (when placed on - ; hold) or to T.38, it will still be done, regardless of this - ; setting. Note that direct T.38 is not supported. - -;directmedia=nonat ; An additional option is to allow media path redirection - ; (reinvite) but only when the peer where the media is being - ; sent is known to not be behind a NAT (as the RTP core can - ; determine it based on the apparent IP address the media - ; arrives from). - -;directmedia=update ; Yet a third option... use UPDATE for media path redirection, - ; instead of INVITE. This can be combined with 'nonat', as - ; 'directmedia=update,nonat'. It implies 'yes'. - -;directrtpsetup=yes ; Enable the new experimental direct RTP setup. This sets up - ; the call directly with media peer-2-peer without re-invites. - ; Will not work for video and cases where the callee sends - ; RTP payloads and fmtp headers in the 200 OK that does not match the - ; callers INVITE. This will also fail if directmedia is enabled when - ; the device is actually behind NAT. - -;directmediadeny=0.0.0.0/0 ; Use directmediapermit and directmediadeny to restrict -;directmediapermit=172.16.0.0/16; which peers should be able to pass directmedia to each other - ; (There is no default setting, this is just an example) - ; Use this if some of your phones are on IP addresses that - ; can not reach each other directly. This way you can force - ; RTP to always flow through asterisk in such cases. - -;ignoresdpversion=yes ; By default, Asterisk will honor the session version - ; number in SDP packets and will only modify the SDP - ; session if the version number changes. This option will - ; force asterisk to ignore the SDP session version number - ; and treat all SDP data as new data. This is required - ; for devices that send us non standard SDP packets - ; (observed with Microsoft OCS). By default this option is - ; off. - -;sdpsession=Asterisk PBX ; Allows you to change the SDP session name string, (s=) - ; Like the useragent parameter, the default user agent string - ; also contains the Asterisk version. -;sdpowner=root ; Allows you to change the username field in the SDP owner string, (o=) - ; This field MUST NOT contain spaces - -;----------------------------------------- REALTIME SUPPORT ------------------------ -; For additional information on ARA, the Asterisk Realtime Architecture, -; please read realtime.txt and extconfig.txt in the /doc directory of the -; source code. -; -;rtcachefriends=yes ; Cache realtime friends by adding them to the internal list - ; just like friends added from the config file only on a - ; as-needed basis? (yes|no) - -;rtsavesysname=yes ; Save systemname in realtime database at registration - ; Default= no - -;rtupdate=yes ; Send registry updates to database using realtime? (yes|no) - ; If set to yes, when a SIP UA registers successfully, the ip address, - ; the origination port, the registration period, and the username of - ; the UA will be set to database via realtime. - ; If not present, defaults to 'yes'. Note: realtime peers will - ; probably not function across reloads in the way that you expect, if - ; you turn this option off. -;rtautoclear=yes ; Auto-Expire friends created on the fly on the same schedule - ; as if it had just registered? (yes|no|) - ; If set to yes, when the registration expires, the friend will - ; vanish from the configuration until requested again. If set - ; to an integer, friends expire within this number of seconds - ; instead of the registration interval. - -;ignoreregexpire=yes ; Enabling this setting has two functions: - ; - ; For non-realtime peers, when their registration expires, the - ; information will _not_ be removed from memory or the Asterisk database - ; if you attempt to place a call to the peer, the existing information - ; will be used in spite of it having expired - ; - ; For realtime peers, when the peer is retrieved from realtime storage, - ; the registration information will be used regardless of whether - ; it has expired or not; if it expires while the realtime peer - ; is still in memory (due to caching or other reasons), the - ; information will not be removed from realtime storage - -;----------------------------------------- SIP DOMAIN SUPPORT ------------------------ -; Incoming INVITE and REFER messages can be matched against a list of 'allowed' -; domains, each of which can direct the call to a specific context if desired. -; By default, all domains are accepted and sent to the default context or the -; context associated with the user/peer placing the call. -; REGISTER to non-local domains will be automatically denied if a domain -; list is configured. -; -; Domains can be specified using: -; domain=[,] -; Examples: -; domain=myasterisk.dom -; domain=customer.com,customer-context -; -; In addition, all the 'default' domains associated with a server should be -; added if incoming request filtering is desired. -; autodomain=yes -; -; To disallow requests for domains not serviced by this server: -; allowexternaldomains=no - -;domain=mydomain.tld,mydomain-incoming - ; Add domain and configure incoming context - ; for external calls to this domain -;domain=1.2.3.4 ; Add IP address as local domain - ; You can have several "domain" settings -;allowexternaldomains=no ; Disable INVITE and REFER to non-local domains - ; Default is yes -;autodomain=yes ; Turn this on to have Asterisk add local host - ; name and local IP to domain list. - -; fromdomain=mydomain.tld ; When making outbound SIP INVITEs to - ; non-peers, use your primary domain "identity" - ; for From: headers instead of just your IP - ; address. This is to be polite and - ; it may be a mandatory requirement for some - ; destinations which do not have a prior - ; account relationship with your server. - -;------------------------------ Advice of Charge CONFIGURATION -------------------------- -; snom_aoc_enabled = yes; ; This options turns on and off support for sending AOC-D and - ; AOC-E to snom endpoints. This option can be used both in the - ; peer and global scope. The default for this option is off. - - -;------------------------------ 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". -;----------------------------------------------------------------------------------- - -[authentication] -; Global credentials for outbound calls, i.e. when a proxy challenges your -; Asterisk server for authentication. These credentials override -; any credentials in peer/register definition if realm is matched. -; -; This way, Asterisk can authenticate for outbound calls to other -; realms. We match realm on the proxy challenge and pick an set of -; credentials from this list -; Syntax: -; auth = :@ -; auth = #@ -; Example: -auth=666:666@tolapai -; -; You may also add auth= statements to [peer] definitions -; Peer auth= override all other authentication settings if we match on realm - -;------------------------------------------------------------------------------ -; DEVICE CONFIGURATION -; -; The SIP channel has two types of devices, the friend and the peer. -; * The type=friend is a device type that accepts both incoming and outbound calls, -; where Asterisk match on the From: username on incoming calls. -; (A synonym for friend is "user"). This is a type you use for your local -; SIP phones. -; * The type=peer also handles both incoming and outbound calls. On inbound calls, -; Asterisk only matches on IP/port, not on names. This is mostly used for SIP -; trunks. -; -; For device names, we recommend using only a-z, numerics (0-9) and underscore -; -; For local phones, type=friend works most of the time -; -; If you have one-way audio, you probably have NAT problems. -; If Asterisk is on a public IP, and the phone is inside of a NAT device -; you will need to configure nat option for those phones. -; Also, turn on qualify=yes to keep the nat session open -; -; Configuration options available -; -------------------- -; context -; callingpres -; permit -; deny -; secret -; md5secret -; remotesecret -; transport -; dtmfmode -; directmedia -; nat -; callgroup -; pickupgroup -; language -; allow -; disallow -; insecure -; trustrpid -; progressinband -; promiscredir -; useclientcode -; accountcode -; setvar -; callerid -; amaflags -; callcounter -; busylevel -; allowoverlap -; allowsubscribe -; allowtransfer -; ignoresdpversion -; subscribecontext -; template -; videosupport -; maxcallbitrate -; rfc2833compensate -; mailbox -; session-timers -; session-expires -; session-minse -; session-refresher -; t38pt_usertpsource -; regexten -; fromdomain -; fromuser -; host -; port -; qualify -; defaultip -; defaultuser -; rtptimeout -; rtpholdtimeout -; sendrpid -; outboundproxy -; rfc2833compensate -; callbackextension -; registertrying -; timert1 -; timerb -; qualifyfreq -; t38pt_usertpsource -; contactpermit ; Limit what a host may register as (a neat trick -; contactdeny ; is to register at the same IP as a SIP provider, -; ; then call oneself, and get redirected to that -; ; same location). -; directmediapermit -; directmediadeny -; unsolicited_mailbox -; use_q850_reason -; maxforwards - -;[sip_proxy] -; For incoming calls only. Example: FWD (Free World Dialup) -; We match on IP address of the proxy for incoming calls -; since we can not match on username (caller id) -;type=peer -;context=from-fwd -;host=fwd.pulver.com - -;[sip_proxy-out] -;type=peer ; we only want to call out, not be called -;remotesecret=guessit ; Our password to their service -;defaultuser=yourusername ; Authentication user for outbound proxies -;fromuser=yourusername ; Many SIP providers require this! -;fromdomain=provider.sip.domain -;host=box.provider.com -;transport=udp,tcp ; This sets the default transport type to udp for outgoing, and will -; ; accept both tcp and udp. The default transport type is only used for -; ; outbound messages until a Registration takes place. During the -; ; peer Registration the transport type may change to another supported -; ; type if the peer requests so. - -;usereqphone=yes ; This provider requires ";user=phone" on URI -;callcounter=yes ; Enable call counter -;busylevel=2 ; Signal busy at 2 or more calls -;outboundproxy=proxy.provider.domain ; send outbound signaling to this proxy, not directly to the peer -;port=80 ; The port number we want to connect to on the remote side - ; Also used as "defaultport" in combination with "defaultip" settings - -;--- sample definition for a provider -;[provider1] -;type=peer -;host=sip.provider1.com -;fromuser=4015552299 ; how your provider knows you -;remotesecret=youwillneverguessit ; The password we use to authenticate to them -;secret=gissadetdu ; The password they use to contact us -;callbackextension=123 ; Register with this server and require calls coming back to this extension -;transport=udp,tcp ; This sets the transport type to udp for outgoing, and will -; ; accept both tcp and udp. Default is udp. The first transport -; ; listed will always be used for outgoing connections. -;unsolicited_mailbox=4015552299 ; If the remote SIP server sends an unsolicited MWI NOTIFY message the new/old -; ; message count will be stored in the configured virtual mailbox. It can be used -; ; by any device supporting MWI by specifying @SIP_Remote as the -; ; mailbox. - -; -; Because you might have a large number of similar sections, it is generally -; convenient to use templates for the common parameters, and add them -; the the various sections. Examples are below, and we can even leave -; the templates uncommented as they will not harm: - -[basic-options](!) ; a template - dtmfmode=rfc2833 - context=from-office - type=friend - -[natted-phone](!,basic-options) ; another template inheriting basic-options - nat=yes - directmedia=no - host=dynamic - -[public-phone](!,basic-options) ; another template inheriting basic-options - nat=no - directmedia=yes - -[my-codecs](!) ; a template for my preferred codecs - disallow=all - allow=ilbc - allow=g729 - allow=gsm - allow=g723 - allow=ulaw - -[ulaw-phone](!) ; and another one for ulaw-only - disallow=all - allow=ulaw - -;[lol] -;context=default -;type=peer -;host=tolapai -;fromuser=lol -;secret=lol -; -; and finally instantiate a few phones -; -; [2133](natted-phone,my-codecs) -; secret = peekaboo -; [2134](natted-phone,ulaw-phone) -; secret = not_very_secret -; [2136](public-phone,ulaw-phone) -; secret = not_very_secret_either -; ... -; - -; Standard configurations not using templates look like this: -; -;[grandstream1] -;type=friend -;context=from-sip ; Where to start in the dialplan when this phone calls -;callerid=John Doe <1234> ; Full caller ID, to override the phones config - ; on incoming calls to Asterisk -;host=192.168.0.23 ; we have a static but private IP address - ; No registration allowed -;nat=no ; there is not NAT between phone and Asterisk -;directmedia=yes ; allow RTP voice traffic to bypass Asterisk -;dtmfmode=info ; either RFC2833 or INFO for the BudgeTone -;call-limit=1 ; permit only 1 outgoing call and 1 incoming call at a time - ; from the phone to asterisk (deprecated) - ; 1 for the explicit peer, 1 for the explicit user, - ; remember that a friend equals 1 peer and 1 user in - ; memory - ; There is no combined call counter for a "friend" - ; so there's currently no way in sip.conf to limit - ; to one inbound or outbound call per phone. Use - ; the group counters in the dial plan for that. - ; -;mailbox=1234@default ; mailbox 1234 in voicemail context "default" -;disallow=all ; need to disallow=all before we can use allow= -;allow=ulaw ; Note: In user sections the order of codecs - ; listed with allow= does NOT matter! -;allow=alaw -;allow=g723.1 ; Asterisk only supports g723.1 pass-thru! -;allow=g729 ; Pass-thru only unless g729 license obtained -;callingpres=allowed_passed_screen ; Set caller ID presentation - ; See README.callingpres for more information - -;[xlite1] -; Turn off silence suppression in X-Lite ("Transmit Silence"=YES)! -; Note that Xlite sends NAT keep-alive packets, so qualify=yes is not needed -;type=friend -;regexten=1234 ; When they register, create extension 1234 -;callerid="Jane Smith" <5678> -;host=dynamic ; This device needs to register -;nat=yes ; X-Lite is behind a NAT router -;directmedia=no ; Typically set to NO if behind NAT -;disallow=all -;allow=gsm ; GSM consumes far less bandwidth than ulaw -;allow=ulaw -;allow=alaw -;mailbox=1234@default,1233@default ; Subscribe to status of multiple mailboxes -;registertrying=yes ; Send a 100 Trying when the device registers. - -;[snom] -;type=friend ; Friends place calls and receive calls -;context=from-sip ; Context for incoming calls from this user -;secret=blah -;subscribecontext=localextensions ; Only allow SUBSCRIBE for local extensions -;language=de ; Use German prompts for this user -;host=dynamic ; This peer register with us -;dtmfmode=inband ; Choices are inband, rfc2833, or info -;defaultip=192.168.0.59 ; IP used until peer registers -;mailbox=1234@context,2345 ; Mailbox(-es) for message waiting indicator -;subscribemwi=yes ; Only send notifications if this phone - ; subscribes for mailbox notification -;vmexten=voicemail ; dialplan extension to reach mailbox - ; sets the Message-Account in the MWI notify message - ; defaults to global vmexten which defaults to "asterisk" -;disallow=all -;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw! - - -;[polycom] -;type=friend ; Friends place calls and receive calls -;context=from-sip ; Context for incoming calls from this user -;secret=blahpoly -;host=dynamic ; This peer register with us -;dtmfmode=rfc2833 ; Choices are inband, rfc2833, or info -;defaultuser=polly ; Username to use in INVITE until peer registers -;defaultip=192.168.40.123 - ; Normally you do NOT need to set this parameter -;disallow=all -;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw! -;progressinband=no ; Polycom phones don't work properly with "never" - - -;[pingtel] -;type=friend -;secret=blah -;host=dynamic -;insecure=port ; Allow matching of peer by IP address without - ; matching port number -;insecure=invite ; Do not require authentication of incoming INVITEs -;insecure=port,invite ; (both) -;qualify=1000 ; Consider it down if it's 1 second to reply - ; Helps with NAT session - ; qualify=yes uses default value -;qualifyfreq=60 ; Qualification: How often to check for the - ; host to be up in seconds - ; Set to low value if you use low timeout for - ; NAT of UDP sessions -; -; Call group and Pickup group should be in the range from 0 to 63 -; -;callgroup=1,3-4 ; We are in caller groups 1,3,4 -;pickupgroup=1,3-5 ; We can do call pick-p for call group 1,3,4,5 -;defaultip=192.168.0.60 ; IP address to use if peer has not registered -;deny=0.0.0.0/0.0.0.0 ; ACL: Control access to this account based on IP address -;permit=192.168.0.60/255.255.255.0 -;permit=192.168.0.60/24 ; we can also use CIDR notation for subnet masks -;permit=2001:db8::/32 ; IPv6 ACLs can be specified if desired. IPv6 ACLs - ; apply only to IPv6 addresses, and IPv4 ACLs apply - ; only to IPv4 addresses. - -;[cisco1] -;type=friend -;secret=blah -;qualify=200 ; Qualify peer is no more than 200ms away -;nat=yes ; This phone may be natted - ; Send SIP and RTP to the IP address that packet is - ; received from instead of trusting SIP headers -;host=dynamic ; This device registers with us -;directmedia=no ; Asterisk by default tries to redirect the - ; RTP media stream (audio) to go directly from - ; the caller to the callee. Some devices do not - ; support this (especially if one of them is - ; behind a NAT). -;defaultip=192.168.0.4 ; IP address to use until registration -;defaultuser=goran ; Username to use when calling this device before registration - ; Normally you do NOT need to set this parameter -;setvar=CUSTID=5678 ; Channel variable to be set for all calls from or to this device -;setvar=ATTENDED_TRANSFER_COMPLETE_SOUND=beep ; This channel variable will - ; cause the given audio file to - ; be played upon completion of - ; an attended transfer. - -;[pre14-asterisk] -;type=friend -;secret=digium -;host=dynamic -;rfc2833compensate=yes ; Compensate for pre-1.4 DTMF transmission from another Asterisk machine. - ; You must have this turned on or DTMF reception will work improperly. -;t38pt_usertpsource=yes ; Use the source IP address of RTP as the destination IP address for UDPTL packets - ; if the nat option is enabled. If a single RTP packet is received Asterisk will know the - ; external IP address of the remote device. If port forwarding is done at the client side - ; then UDPTL will flow to the remote device. - -[loadtester1] -transport = udp -directmedia = no -context = default -callerid = "Loadtester1" -secret = loadtester1 -type = friend - -[loadtester2] -transport = udp -directmedia = no -context = default -callerid = "Loadtester2" -secret = loadtester2 -type = friend -host = 127.0.0.1 -port = 5070 - -[phone1] -transport = udp -directmedia = no -context = default -callerid = "Phone 1" -secret = phone1 -type = friend -host = dynamic diff --git a/call_and_hangup/driver/system.conf b/call_and_hangup/driver/system.conf deleted file mode 100644 index e237a47..0000000 --- a/call_and_hangup/driver/system.conf +++ /dev/null @@ -1,48 +0,0 @@ -# Autogenerated by /usr/sbin/dahdi_genconf on Fri Apr 20 18:08:28 2012 -# If you edit this file and execute /usr/sbin/dahdi_genconf again, -# your manual changes will be LOST. -# Dahdi Configuration File -# -# This file is parsed by the Dahdi Configurator, dahdi_cfg -# -# Span 1: B4/0/1 "B4XXP (PCI) Card 0 Span 1" (MASTER) -span=1,1,0,ccs,ami -# termtype: te -bchan=1-2 -hardhdlc=3 -echocanceller=mg2,1-2 - -# Span 2: B4/0/2 "B4XXP (PCI) Card 0 Span 2" -span=2,2,0,ccs,ami -# termtype: te -bchan=4-5 -hardhdlc=6 -echocanceller=mg2,4-5 - -# Span 3: B4/0/3 "B4XXP (PCI) Card 0 Span 3" -span=3,3,0,ccs,ami -# termtype: te -bchan=7-8 -hardhdlc=9 -echocanceller=mg2,7-8 - -# Span 4: B4/0/4 "B4XXP (PCI) Card 0 Span 4" YELLOW -span=4,4,0,ccs,ami -# termtype: te -bchan=10-11 -hardhdlc=12 -echocanceller=mg2,10-11 - -# Span 5: WCTDM/4 "Wildcard TDM400P REV I Board 5" -fxoks=13 -echocanceller=mg2,13 -fxoks=14 -echocanceller=mg2,14 -fxsks=15 -echocanceller=mg2,15 -# channel 16, WCTDM/4/3, no module. - -# Global data - -loadzone = us -defaultzone = us diff --git a/call_and_hangup/tested/chan_dahdi.conf b/call_and_hangup/tested/chan_dahdi.conf deleted file mode 100644 index ef4e637..0000000 --- a/call_and_hangup/tested/chan_dahdi.conf +++ /dev/null @@ -1,1459 +0,0 @@ -; -; DAHDI Telephony Configuration file -; -; You need to restart Asterisk to re-configure the DAHDI channel -; CLI> module reload chan_dahdi.so -; will reload the configuration file, but not all configuration options -; are re-configured during a reload (signalling, as well as PRI and -; SS7-related settings cannot be changed on a reload). -; -; This file documents many configuration variables. Normally unless you know -; what a variable means or that it should be changed, there's no reason to -; un-comment those lines. -; -; Examples below that are commented out (those lines that begin with a ';' but -; no space afterwards) typically show a value that is not the default value, -; but would make sense under certain circumstances. The default values are -; usually sane. Thus you should typically not touch them unless you know what -; they mean or you know you should change them. - -[trunkgroups] -; -; Trunk groups are used for NFAS connections. -; -; Group: Defines a trunk group. -; trunkgroup => ,[,...] -; -; trunkgroup is the numerical trunk group to create -; dchannel is the DAHDI channel which will have the -; d-channel for the trunk. -; backup1 is an optional list of backup d-channels. -; -;trunkgroup => 1,24,48 -;trunkgroup => 1,24 -; -; Spanmap: Associates a span with a trunk group -; spanmap => ,[,] -; -; dahdispan is the DAHDI 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 -; -; Context for calls. Defaults to 'default' -; -;context=incoming -; -; Switchtype: Only used for PRI. -; -; national: National ISDN 2 (default) -; dms100: Nortel DMS100 -; 4ess: AT&T 4ESS -; 5ess: Lucent 5ESS -; euroisdn: EuroISDN (common in Europe) -; ni1: Old National ISDN 1 -; qsig: Q.SIG -; -;switchtype=euroisdn -; -; MSNs for ISDN spans. Asterisk will listen for the listed numbers on -; incoming calls and ignore any calls not listed. -; Here you can give a comma separated list of numbers or dialplan extension -; patterns. An empty list disables MSN matching to allow any incoming call. -; Only set on PTMP CPE side of ISDN span if needed. -; The default is an empty list. -;msn= -; -; Some switches (AT&T especially) require network specific facility IE. -; Supported values are currently 'none', 'sdn', 'megacom', 'tollfreemegacom', 'accunet' -; -; nsf cannot be changed on a reload. -; -;nsf=none -; -;service_message_support=yes -; Enable service message support for channel. Must be set after switchtype. -; -; Dialing options for ISDN (i.e., Dial(DAHDI/g1/exten/options)): -; R Reverse Charge Indication -; Indicate to the called party that the call will be reverse charged. -; K(n) Keypad digits n -; Send out the specified digits as keypad digits. -; -; PRI Dialplan: The ISDN-level Type Of Number (TON) or numbering plan, used for -; the dialed number. For most installations, leaving this as 'unknown' (the -; default) works in the most cases. In some very unusual circumstances, you -; may need to set this to 'dynamic' or 'redundant'. Note that if you set one -; of the others, you will be unable to dial another class of numbers. For -; example, if you set 'national', you will be unable to dial local or -; international numbers. -; -; PRI Local Dialplan: Only RARELY used for PRI (sets the calling number's -; numbering plan). In North America, the typical use is sending the 10 digit -; callerID number and setting the prilocaldialplan to 'national' (the default). -; Only VERY rarely will you need to change this. -; -; Neither pridialplan nor prilocaldialplan can be changed on reload. -; -; unknown: Unknown -; private: Private ISDN -; local: Local ISDN -; national: National ISDN -; international: International ISDN -; dynamic: Dynamically selects the appropriate dialplan -; redundant: Same as dynamic, except that the underlying number is not -; changed (not common) -; -;pridialplan=unknown -;prilocaldialplan=national -; -; pridialplan may be also set at dialtime, by prefixing the dialled number with -; one of the following letters: -; U - Unknown -; I - International -; N - National -; L - Local (Net Specific) -; S - Subscriber -; V - Abbreviated -; R - Reserved (should probably never be used but is included for completeness) -; -; Additionally, you may also set the following NPI bits (also by prefixing the -; dialled string with one of the following letters): -; u - Unknown -; e - E.163/E.164 (ISDN/telephony) -; x - X.121 (Data) -; f - F.69 (Telex) -; n - National -; p - Private -; r - Reserved (should probably never be used but is included for completeness) -; -; You may also set the prilocaldialplan in the same way, but by prefixing the -; Caller*ID Number, rather than the dialled number. Please note that telcos -; which require this kind of additional manipulation of the TON/NPI are *rare*. -; Most telco PRIs will work fine simply by setting pridialplan to unknown or -; dynamic. -; -; -; PRI caller ID prefixes based on the given TON/NPI (dialplan) -; This is especially needed for EuroISDN E1-PRIs -; -; None of the prefix settings can be changed on reload. -; -; sample 1 for Germany -;internationalprefix = 00 -;nationalprefix = 0 -;localprefix = 0711 -;privateprefix = 07115678 -;unknownprefix = -; -; sample 2 for Germany -;internationalprefix = + -;nationalprefix = +49 -;localprefix = +49711 -;privateprefix = +497115678 -;unknownprefix = -; -; PRI resetinterval: sets the time in seconds between restart of unused -; B channels; defaults to 'never'. -; -;resetinterval = 3600 -; -; Overlap dialing mode (sending overlap digits) -; Cannot be changed on a reload. -; -; incoming: incoming direction only -; outgoing: outgoing direction only -; no: neither direction -; yes or both: both directions -; -;overlapdial=yes -; -; Allow inband audio (progress) when a call is DISCONNECTed by the far end of a PRI -; -;inbanddisconnect=yes -; -; Allow a held call to be transferred to the active call on disconnect. -; This is useful on BRI PTMP NT lines where an ISDN phone can simulate the -; transfer feature of an analog phone. -; The default is no. -;hold_disconnect_transfer=yes -; -; PRI Out of band indications. -; Enable this to report Busy and Congestion on a PRI using out-of-band -; notification. Inband indication, as used by Asterisk doesn't seem to work -; with all telcos. -; -; outofband: Signal Busy/Congestion out of band with RELEASE/DISCONNECT -; inband: Signal Busy/Congestion using in-band tones (default) -; -; priindication cannot be changed on a reload. -; -;priindication = outofband -; -; If you need to override the existing channels selection routine and force all -; PRI channels to be marked as exclusively selected, set this to yes. -; -; priexclusive cannot be changed on a reload. -; -;priexclusive = yes -; -; -; If you need to use the logical channel mapping with your Q.SIG PRI instead -; of the physical mapping you must use the qsigchannelmapping option. -; -; logical: Use the logical channel mapping -; physical: Use physical channel mapping (default) -; -;qsigchannelmapping=logical -; -; If you wish to ignore remote hold indications (and use MOH that is supplied over -; the B channel) enable this option. -; -;discardremoteholdretrieval=yes -; -; ISDN Timers -; All of the ISDN timers and counters that are used are configurable. Specify -; the timer name, and its value (in ms for timers). -; K: Layer 2 max number of outstanding unacknowledged I frames (default 7) -; N200: Layer 2 max number of retransmissions of a frame (default 3) -; T200: Layer 2 max time before retransmission of a frame (default 1000 ms) -; T203: Layer 2 max time without frames being exchanged (default 10000 ms) -; T305: Wait for DISCONNECT acknowledge (default 30000 ms) -; T308: Wait for RELEASE acknowledge (default 4000 ms) -; T309: Maintain active calls on Layer 2 disconnection (default -1, -; Asterisk clears calls) -; EuroISDN: 6000 to 12000 ms, according to (N200 + 1) x T200 + 2s -; May vary in other ISDN standards (Q.931 1993 : 90000 ms) -; T313: Wait for CONNECT acknowledge, CPE side only (default 3000 ms) -; -; T-RESPONSE: Maximum time to wait for a typical APDU response. (default 4000 ms) -; This is an implementation timer when the standard does not specify one. -; T-ACTIVATE: Request supervision timeout. (default 10000 ms) -; T-RETENTION: Maximum time to wait for user A to activate call-completion. (default 30000 ms) -; Used by ETSI PTP, ETSI PTMP, and Q.SIG as the cc_offer_timer. -; T-CCBS1: T-STATUS timer equivalent for CC user A status. (default 4000 ms) -; T-CCBS2: Maximum time the CCBS service will be active (default 45 min in ms) -; T-CCBS3: Maximum time to wait for user A to respond to user B availability. (default 20000 ms) -; T-CCBS5: Network B CCBS supervision timeout. (default 60 min in ms) -; T-CCBS6: Network A CCBS supervision timeout. (default 60 min in ms) -; T-CCNR2: Maximum time the CCNR service will be active (default 180 min in ms) -; T-CCNR5: Network B CCNR supervision timeout. (default 195 min in ms) -; T-CCNR6: Network A CCNR supervision timeout. (default 195 min in ms) -; CC-T1: Q.SIG CC request supervision timeout. (default 30000 ms) -; CCBS-T2: Q.SIG CCBS supervision timeout. (default 60 min in ms) -; CCNR-T2: Q.SIG CCNR supervision timeout. (default 195 min in ms) -; CC-T3: Q.SIG CC Maximum time to wait for user A to respond to user B availability. (default 30000 ms) -; -;pritimer => t200,1000 -;pritimer => t313,4000 -; -; CC PTMP recall mode: -; specific - Only the CC original party A can participate in the CC callback -; global - Other compatible endpoints on the PTMP line can be party A in the CC callback -; -; cc_ptmp_recall_mode cannot be changed on a reload. -; -;cc_ptmp_recall_mode = specific -; -; CC Q.SIG Party A (requester) retain signaling link option -; retain Require that the signaling link be retained. -; release Request that the signaling link be released. -; do_not_care The responder is free to choose if the signaling link will be retained. -; -;cc_qsig_signaling_link_req = retain -; -; CC Q.SIG Party B (responder) retain signaling link option -; retain Prefer that the signaling link be retained. -; release Prefer that the signaling link be released. -; -;cc_qsig_signaling_link_rsp = retain -; -; See ccss.conf.sample for more options. The timers described by ccss.conf.sample -; are not used by ISDN for the native protocol since they are defined by the -; standards and set by pritimer above. -; -; To enable transmission of facility-based ISDN supplementary services (such -; as caller name from CPE over facility), enable this option. -; Cannot be changed on a reload. -; -;facilityenable = yes -; - -; This option enables Advice of Charge pass-through between the ISDN PRI and -; Asterisk. This option can be set to any combination of 's', 'd', and 'e' which -; represent the different variants of Advice of Charge, AOC-S, AOC-D, and AOC-E. -; Advice of Charge pass-through is currently only supported for ETSI. Since most -; AOC messages are sent on facility messages, the 'facilityenable' option must -; also be enabled to fully support AOC pass-through. -; -;aoc_enable=s,d,e -; -; When this option is enabled, a hangup initiated by the ISDN PRI side of the -; asterisk channel will result in the channel delaying its hangup in an -; attempt to receive the final AOC-E message from its bridge. The delay -; period is configured as one half the T305 timer length. If the channel -; is not bridged the hangup will occur immediatly without delay. -; -;aoce_delayhangup=yes - -; pritimer cannot be changed on a reload. -; -; Signalling method. The default is "auto". Valid values: -; auto: Use the current value from DAHDI. -; em: E & M -; em_e1: E & M E1 -; em_w: E & M Wink -; featd: Feature Group D (The fake, Adtran style, DTMF) -; featdmf: Feature Group D (The real thing, MF (domestic, US)) -; featdmf_ta: Feature Group D (The real thing, MF (domestic, US)) through -; a Tandem Access point -; featb: Feature Group B (MF (domestic, US)) -; fgccama: Feature Group C-CAMA (DP DNIS, MF ANI) -; fgccamamf: Feature Group C-CAMA MF (MF DNIS, MF ANI) -; 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 -; bri_cpe: BRI PTP signalling, CPE side -; bri_net: BRI PTP signalling, Network side -; bri_cpe_ptmp: BRI PTMP signalling, CPE side -; bri_net_ptmp: BRI PTMP signalling, Network 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)) -; e911: E911 (MF) style signalling -; ss7: Signalling System 7 -; mfcr2: MFC/R2 Signalling. To specify the country variant see 'mfcr2_variant' -; -; 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) -; ss7: Signalling System 7 -; -; signalling of a channel can not be changed on a reload. -; -;signalling=fxo_ls -; -; If you have an outbound signalling format that is different from format -; specified above (but compatible), you can specify outbound signalling format, -; (see below). The 'signalling' format specified will be the inbound signalling -; format. If you only specify 'signalling', then it will be the format for -; both inbound and outbound. -; -; outsignalling can only be one of: -; em, em_e1, em_w, sf, sf_w, sf_featd, sf_featdmf, sf_featb, featd, -; featdmf, featdmf_ta, e911, fgccama, fgccamamf -; -; outsignalling cannot be changed on a reload. -; -;signalling=featdmf -; -;outsignalling=featb -; -; For Feature Group D Tandem access, to set the default CIC and OZZ use these -; parameters (Will not be updated on reload): -; -;defaultozz=0000 -;defaultcic=303 -; -; A variety of timing parameters can be specified as well -; The default values for those are "-1", which is to use the -; compile-time defaults of the DAHDI kernel modules. The timing -; parameters, (with the standard default from DAHDI): -; -; 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) -; -; None of them will update on a reload. -; -; How long generated tones (DTMF and MF) will be played on the channel -; (in milliseconds). -; -; This is a global, rather than a per-channel setting. It will not be -; updated on a reload. -; -;toneduration=100 -; -; Whether or not to do distinctive ring detection on FXO lines: -; -;usedistinctiveringdetection=yes -; -; enable dring detection after caller ID for those countries like Australia -; where the ring cadence is changed *after* the caller ID spill: -; -;distinctiveringaftercid=yes -; -; Whether or not to use caller ID: -; -usecallerid=yes -; -; Type of caller ID signalling in use -; bell = bell202 as used in US (default) -; v23 = v23 as used in the UK -; v23_jp = v23 as used in Japan -; dtmf = DTMF as used in Denmark, Sweden and Netherlands -; smdi = Use SMDI for caller ID. Requires SMDI to be enabled (usesmdi). -; -;cidsignalling=v23 -; -; What signals the start of caller ID -; ring = a ring signals the start (default) -; polarity = polarity reversal signals the start -; polarity_IN = polarity reversal signals the start, for India, -; for dtmf dialtone detection; using DTMF. -; (see doc/India-CID.txt) -; dtmf = causes monitor loop to look for dtmf energy on the -; incoming channel to initate cid acquisition -; -;cidstart=polarity -; -; When cidstart=dtmf, the energy level on the line used to trigger dtmf cid -; acquisition. This number is compared to the average over a packet of audio -; of the absolute values of 16 bit signed linear samples. The default is set -; to 256. The choice of 256 is arbitrary. The value you should select should -; be high enough to prevent false detections while low enough to insure that -; no dtmf spills are missed. -; -;dtmfcidlevel=256 -; -; Whether or not to hide outgoing caller ID (Override with *67 or *82) -; (If your dialplan doesn't catch it) -; -;hidecallerid=yes -; -; Enable if you need to hide just the name and not the number for legacy PBX use. -; Only applies to PRI channels. -;hidecalleridname=yes -; -; On UK analog lines, the caller hanging up determines the end of calls. So -; Asterisk hanging up the line may or may not end a call (DAHDI could just as -; easily be re-attaching to a prior incoming call that was not yet hung up). -; This option changes the hangup to wait for a dialtone on the line, before -; marking the line as once again available for use with outgoing calls. -;waitfordialtone=yes -; -; The following option enables receiving MWI on FXO lines. The default -; value is no. -; The mwimonitor can take the following values -; no - No mwimonitoring occurs. (default) -; yes - The same as specifying fsk -; fsk - the FXO line is monitored for MWI FSK spills -; fsk,rpas - the FXO line is monitored for MWI FSK spills preceded -; by a ring pulse alert signal. -; neon - The fxo line is monitored for the presence of NEON pulses -; indicating MWI. -; When detected, an internal Asterisk MWI event is generated so that any other -; part of Asterisk that cares about MWI state changes is notified, just as if -; the state change came from app_voicemail. -; For FSK MWI Spills, the energy level that must be seen before starting the -; MWI detection process can be set with 'mwilevel'. -; -;mwimonitor=no -;mwilevel=512 -; -; This option is used in conjunction with mwimonitor. This will get executed -; when incoming MWI state changes. The script is passed 2 arguments. The -; first is the corresponding mailbox, and the second is 1 or 0, indicating if -; there are messages waiting or not. -; -;mwimonitornotify=/usr/local/bin/dahdinotify.sh -; -; The following keyword 'mwisendtype' enables various VMWI methods on FXS lines (if supported). -; The default is to send FSK only. -; The following options are available; -; 'rpas' Ring Pulse Alert Signal, alerts intelligent phones that a FSK message is about to be sent. -; 'lrev' Line reversed to indicate messages waiting. -; 'hvdc' 90Vdc OnHook DC voltage to indicate messages waiting. -; 'hvac' or 'neon' 90Vac OnHook AC voltage to light Neon bulb. -; 'nofsk' Disables FSK MWI spills from being sent out. -; It is feasible that multiple options can be enabled. -;mwisendtype=rpas,lrev -; -; Whether or not to enable call waiting on internal extensions -; With this set to 'yes', busy extensions will hear the call-waiting -; tone, and can use hook-flash to switch between callers. The Dial() -; app will not return the "BUSY" result for extensions. -; -callwaiting=yes -; -; Configure the number of outstanding call waiting calls for internal ISDN -; endpoints before bouncing the calls as busy. This option is equivalent to -; the callwaiting option for analog ports. -; A call waiting call is a SETUP message with no B channel selected. -; The default is zero to disable call waiting for ISDN endpoints. -;max_call_waiting_calls=0 -; -; Allow incoming ISDN call waiting calls. -; A call waiting call is a SETUP message with no B channel selected. -;allow_call_waiting_calls=no -; -; Configure the ISDN span to indicate MWI for the list of mailboxes. -; You can give a comma separated list of up to 8 mailboxes per span. -; An empty list disables MWI. -; The default is an empty list. -;mwi_mailboxes=mailbox_number[@context]{,mailbox_number[@context]} -; -; Whether or not restrict outgoing caller ID (will be sent as ANI only, not -; available for the user) -; Mostly use with FXS ports -; Does nothing. Use hidecallerid instead. -; -;restrictcid=no -; -; Whether or not to use the caller ID presentation from the Asterisk channel -; for outgoing calls. -; See dialplan function CALLERID(pres) for more information. -; Only applies to PRI and SS7 channels. -; -usecallingpres=yes -; -; Some countries (UK) have ring tones with different ring tones (ring-ring), -; which means the caller ID needs to be set later on, and not just after -; the first ring, as per the default (1). -; -;sendcalleridafter = 2 -; -; -; Support caller ID on Call Waiting -; -callwaitingcallerid=yes -; -; Support three-way calling -; -threewaycalling=yes -; -; For FXS ports (either direct analog or over T1/E1): -; Support flash-hook call transfer (requires three way calling) -; Also enables call parking (overrides the 'canpark' parameter) -; -; For digital ports using ISDN PRI protocols: -; Support switch-side transfer (called 2BCT, RLT or other names) -; This setting must be enabled on both ports involved, and the -; 'facilityenable' setting must also be enabled to allow sending -; the transfer to the ISDN switch, since it sent in a FACILITY -; message. -; NOTE: This should be disabled for NT PTMP mode. Phones cannot -; have tromboned calls pushed down to them. -; -transfer=yes -; -; Allow call parking -; ('canpark=no' is overridden by 'transfer=yes') -; -canpark=yes -; -; Support call forward variable -; -cancallforward=yes -; -; Whether or not to support Call Return (*69, if your dialplan doesn't -; catch this first) -; -callreturn=yes -; -; 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 received 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. -; -; Note that when setting the number of taps, the number 256 does not translate -; to 256 ms of echo cancellation. echocancel=256 means 256 / 8 = 32 ms. -; -; Note that if any of your DAHDI cards have hardware echo cancellers, -; then this setting only turns them on and off; numeric settings will -; be treated as "yes". There are no special settings required for -; hardware echo cancellers; when present and enabled in their kernel -; modules, they take precedence over the software echo canceller compiled -; into DAHDI automatically. -; -; -echocancel=yes -; -; Some DAHDI echo cancellers (software and hardware) support adjustable -; parameters; these parameters can be supplied as additional options to -; the 'echocancel' setting. Note that Asterisk does not attempt to -; validate the parameters or their values, so if you supply an invalid -; parameter you will not know the specific reason it failed without -; checking the kernel message log for the error(s) put there by DAHDI. -; -;echocancel=128,param1=32,param2=0,param3=14 -; -; Generally, it is not necessary (and in fact undesirable) to echo cancel when -; the circuit path is entirely TDM. You may, however, change this behavior -; by enabling the echo canceller 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 -; DAHDI 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) -; -; WARNING: In some cases this option can make echo worse! If you are -; trying to debug an echo problem, it is worth checking to see if your echo -; is better with the option set to yes or no. Use whatever setting gives -; the best results. -; -; Note that these parameters do not apply to hardware echo cancellers. -; -;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) -; -; Gain Settings: increasing / decreasing the volume level on a channel. -; The values are in db (decibells). A positive number -; increases the volume level on a channel, and a -; negavive value decreases volume level. -; -; Dynamic Range Compression: you can also enable dynamic range compression -; on a channel. This will amplify quiet sounds while leaving -; louder sounds untouched. This is useful in situations where -; a linear gain setting would cause clipping. Acceptable values -; are in the range of 0.0 to around 6.0 with higher values -; causing more compression to be done. -; -; There are several independent gain settings: -; rxgain: gain for the rx (receive - into Asterisk) channel. Default: 0.0 -; txgain: gain for the tx (transmit - out of Asterisk Asterisk) channel. -; Default: 0.0 -; cid_rxgain: set the gain just for the caller ID sounds Asterisk -; emits. Default: 5.0 . -; rxdrc: dynamic range compression for the rx channel. Default: 0.0 -; txdrc: dynamic range compression for the tx channel. Default: 0.0 - -;rxgain=2.0 -;txgain=3.0 -; -;rxdrc=1.0 -;txdrc=4.0 -; -; Logical groups can be assigned to allow outgoing roll-over. Groups range -; from 0 to 63, and multiple groups can be specified. By default the -; channel is not a member of any group. -; -; Note that an explicit empty value for 'group' is invalid, and will not -; override a previous non-empty one. The same applies to callgroup and -; pickupgroup as well. -; -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. Groups range from 0 to 63. -; -callgroup=1 -pickupgroup=1 - -; Channel variable to be set for all calls from this channel -;setvar=CHANNEL=42 -;setvar=ATTENDED_TRANSFER_COMPLETE_SOUND=beep ; This channel variable will - ; cause the given audio file to - ; be played upon completion of - ; an attended transfer. - -; -; Specify whether the channel should be answered immediately or if the simple -; switch should provide dialtone, read digits, etc. -; Note: If immediate=yes the dialplan execution will always start at extension -; 's' priority 1 regardless of the dialed number! -; -;immediate=yes -; -; Specify whether flash-hook transfers to 'busy' channels should complete or -; return to the caller performing the transfer (default is yes). -; -;transfertobusy=no - -; Calls will have the party id user tag set to this string value. -; -;cid_tag= - -; With this set, you can automatically append the MSN of a party -; to the cid_tag. An '_' is used to separate the tag from the MSN. -; Applies to ISDN spans. -; Default is no. -; -; Table of what number is appended: -; outgoing incoming -; net dialed caller -; cpe caller dialed -; -;append_msn_to_cid_tag=no - -; caller ID can be set to "asreceived" or a specific number if you want to -; override it. Note that "asreceived" only applies to trunk interfaces. -; fullname sets just the -; -; fullname: sets just the name part. -; cid_number: sets just the number part: -; -;callerid = 123456 -; -;callerid = My Name <2564286000> -; Which can also be written as: -;cid_number = 2564286000 -;fullname = My Name -; -;callerid = asreceived -; -; should we use the caller ID from incoming call on DAHDI transfer? -; -;useincomingcalleridondahditransfer = yes -; -; 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 -; -; SMDI (Simplified Message Desk Interface) can be enabled on a per-channel -; basis if you would like that channel to behave like an SMDI message desk. -; The SMDI port specified should have already been defined in smdi.conf. The -; default port is /dev/ttyS0. -; -;usesmdi=yes -;smdiport=/dev/ttyS0 -; -; 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. This enables listening for -; the beep-beep busy pattern. -; -;busydetect=yes -; -; If busydetect is enabled, it is also possible to specify how many busy tones -; to wait for before hanging up. The default is 3, but it might be -; safer to set to 6 or even 8. Mind that the higher the number, the more -; time that will be needed to hangup a channel, but lowers the probability -; that you will get random hangups. -; -;busycount=6 -; -; If busydetect is enabled, it is also possible to specify the cadence of your -; busy signal. In many countries, it is 500msec on, 500msec off. Without -; busypattern specified, we'll accept any regular sound-silence pattern that -; repeats times as a busy signal. If you specify busypattern, -; then we'll further check the length of the sound (tone) and silence, which -; will further reduce the chance of a false positive. -; -;busypattern=500,500 -; -; NOTE: In make menuselect, you'll find further options to tweak the busy -; detector. If your country has a busy tone with the same length tone and -; silence (as many countries do), consider enabling the -; BUSYDETECT_COMPARE_TONE_AND_SILENCE option. -; -; To further detect which hangup tone your telco provider is sending, it is -; useful to use the ztmonitor utility to record the audio that main/dsp.c -; is receiving after the caller hangs up. -; -; For FXS (FXO signalled) ports -; switch the line polarity to signal the connected PBX that an outgoing -; call was answered by the remote party. -; For FXO (FXS signalled) ports -; watch for a polarity reversal to mark when a outgoing call is -; answered by the remote party. -; -;answeronpolarityswitch=yes -; -; For FXS (FXO signalled) ports -; switch the line polarity to signal the connected PBX that the current -; call was "hung up" by the remote party -; For FXO (FXS signalled) ports -; In some countries, a polarity reversal is used to signal the disconnect of a -; phone line. If the hanguponpolarityswitch option is selected, the call will -; be considered "hung up" on a polarity reversal. -; -;hanguponpolarityswitch=yes -; -; polarityonanswerdelay: minimal time period (ms) between the answer -; polarity switch and hangup polarity switch. -; (default: 600ms) -; -; 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". -; -; progzone also affects the pattern used for buzydetect (unless -; busypattern is set explicitly). The possible values are: -; us (default) -; ca (alias for 'us') -; cr (Costa Rica) -; br (Brazil, alias for 'cr') -; uk -; -; 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=yes -;progzone=uk -; -; Set the tonezone. Equivalent of the defaultzone settings in -; /etc/dahdi/system.conf. This sets the tone zone by number. -; Note that you'd still need to load tonezones (loadzone in -; /etc/dahdi/system.conf). -; The default is -1: not to set anything. -;tonezone = 0 ; 0 is US -; -; FXO (FXS signalled) devices must have a timeout to determine if there was a -; hangup before the line was answered. This value can be tweaked to shorten -; how long it takes before DAHDI considers a non-ringing line to have hungup. -; -; ringtimeout will not update on a reload. -; -;ringtimeout=8000 -; -; For FXO (FXS signalled) devices, whether to use pulse dial instead of DTMF -; Pulse digits from phones (FXS devices, FXO signalling) are always -; detected. -; -;pulsedial=yes -; -; For fax detection, uncomment one of the following lines. The default is *OFF* -; -;faxdetect=both -;faxdetect=incoming -;faxdetect=outgoing -;faxdetect=no -; -; When 'faxdetect' is used, one could use 'faxbuffers' to configure the DAHDI -; transmit buffer policy. The default is *OFF*. When this configuration -; option is used, the faxbuffer policy will be used for the life of the call -; after a fax tone is detected. The faxbuffer policy is reverted after the -; call is torn down. The sample below will result in 6 buffers and a full -; buffer policy. -; -;faxbuffers=>6,full -; -; This option specifies a preference for which music on hold class this channel -; should listen to when put on hold if the music class has not been set on the -; channel with Set(CHANNEL(musicclass)=whatever) in the dialplan, and the peer -; channel putting this one on hold did not suggest a music class. -; -; If this option is set to "passthrough", then the hold message will always be -; passed through as signalling instead of generating hold music locally. This -; setting is only valid when used on a channel that uses digital signalling. -; -; This option may be set globally or on a per-channel basis. -; -;mohinterpret=default -; -; This option specifies which music on hold class to suggest to the peer channel -; when this channel places the peer on hold. This option may be set globally, -; or on a per-channel basis. -; -;mohsuggest=default -; -; PRI channels can have an idle extension and a minunused number. So long as -; at least "minunused" channels are idle, chan_dahdi 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. -; -; Those settings cannot be changed on reload. -; -;idledial=6999 -;idleext=6999@dialout -;minunused=2 -;minidle=1 -; -; -; ignore_failed_channels: Continue even if some channels failed to configure. -; False by default, as if even a single channel failed to configure, it might -; mean other channels are misplaced and having them work may not be a good -; idea. If enabled (set to true), chan_dahdi will nevertheless attempt to -; configure other channels rather than giving up. This normally makes sense -; only if you use names (!) for DAHDI channels. -;ignore_failed_channels = true -; -; Configure jitter buffers in DAHDI (each one is 20ms, default is 4) -; This is set globally, rather than per-channel. -; -;jitterbuffers=4 -; -;------------------------------ JITTER BUFFER CONFIGURATION -------------------------- -; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a - ; DAHDI 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 DAHDI channel can't accept jitter, - ; thus an enabled jitterbuffer on the receive DAHDI side will always - ; be used if the sending side can create jitter. - -; 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 DAHDI - ; channel. Two implementations are currently available - "fixed" - ; (with size always equals to jbmax-size) 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". -;----------------------------------------------------------------------------------- -; -; 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 caller ID spill is -; to be placed. Also, if you define any custom cadences, the default cadences -; will be turned off. -; -; This setting is global, rather than per-channel. It will not update on -; a reload. -; -; 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. -; -; -;callerid="Green Phone"<(256) 428-6121> -;channel => 1 -;callerid="Black Phone"<(256) 428-6122> -;channel => 2 -;callerid="CallerID Phone" <(630) 372-1564> -;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 -;signaling=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 cannot be changed on a reload. -; -; switchtype = national -; signalling = pri_cpe -; group = 2 -; channel => 1-23 -; -; Alternatively, the number of the channel may be replaced with a relative -; path to a device file under /dev/dahdi . The final element of that file -; must be a number, though. The directory separator is '!', as we can't -; use '/' in a dial string. So if we have -; -; /dev/dahdi/span-name/pstn/00/1 -; /dev/dahdi/span-name/pstn/00/2 -; /dev/dahdi/span-name/pstn/00/3 -; /dev/dahdi/span-name/pstn/00/4 -; -; we could use: -;channel => span-name!pstn!00!1-4 -; -; or: -;channel => span-name!pstn!00!1,2,3,4 -; -; See also ignore_failed_channels above. - -; Used for distinctive 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. -; -; dringXrange is used to change the acceptable ranges for "tone offsets". Defaults to 10. -; Note: a range of 0 is NOT what you might expect - it instead forces it to the default. -; A range of -1 will force it to always match. -; Anything lower than -1 would presumably cause it to never match. -; -;dring1=95,0,0 -;dring1context=internal1 -;dring1range=10 -;dring2=325,95,0 -;dring2context=internal2 -;dring2range=10 -; If no pattern is matched here is where we go. -;context=default -;channel => 1 - -; AMI alarm event reporting -;reportalarms=channels -;Possible values are: -;channels - report each channel alarms (current behavior, default for backward compatibility) -;spans - report an "SpanAlarm" event when the span of any configured channel is alarmed -;all - report channel and span alarms (aggregated behavior) -;none - do not report any alarms. - -; ---------------- Options for use with signalling=ss7 ----------------- -; None of them can be changed by a reload. -; -; Variant of SS7 signalling: -; Options are itu and ansi -;ss7type = itu - -; SS7 Called Nature of Address Indicator -; -; unknown: Unknown -; subscriber: Subscriber -; national: National -; international: International -; dynamic: Dynamically selects the appropriate dialplan -; -;ss7_called_nai=dynamic -; -; SS7 Calling Nature of Address Indicator -; -; unknown: Unknown -; subscriber: Subscriber -; national: National -; international: International -; dynamic: Dynamically selects the appropriate dialplan -; -;ss7_calling_nai=dynamic -; -; -; sample 1 for Germany -;ss7_internationalprefix = 00 -;ss7_nationalprefix = 0 -;ss7_subscriberprefix = -;ss7_unknownprefix = -; - -; This option is used to disable automatic sending of ACM when the call is started -; in the dialplan. If you do use this option, you will need to use the Proceeding() -; application in the dialplan to send ACM. -;ss7_explictacm=yes - -; All settings apply to linkset 1 -;linkset = 1 - -; Point code of the linkset. For ITU, this is the decimal number -; format of the point code. For ANSI, this can either be in decimal -; number format or in the xxx-xxx-xxx format -;pointcode = 1 - -; Point code of node adjacent to this signalling link (Possibly the STP between you and -; your destination). Point code format follows the same rules as above. -;adjpointcode = 2 - -; Default point code that you would like to assign to outgoing messages (in case of -; routing through STPs, or using A links). Point code format follows the same rules -; as above. -;defaultdpc = 3 - -; Begin CIC (Circuit indication codes) count with this number -;cicbeginswith = 1 - -; What the MTP3 network indicator bits should be set to. Choices are -; national, national_spare, international, international_spare -;networkindicator=international - -; First signalling channel -;sigchan = 48 - -; Additional signalling channel for this linkset (So you can have a linkset -; with two signalling links in it). It seems like a silly way to do it, but -; for linksets with multiple signalling links, you add an additional sigchan -; line for every additional signalling link on the linkset. -;sigchan = 96 - -; Channels to associate with CICs on this linkset -;channel = 25-47 -; -; For more information on setting up SS7, see the README file in libss7 or -; the doc/ss7.txt file in the Asterisk source tree. -; ----------------- SS7 Options ---------------------------------------- - -; ---------------- Options for use with signalling=mfcr2 -------------- - -; MFC-R2 signaling has lots of variants from country to country and even sometimes -; minor variants inside the same country. The only mandatory parameters here are: -; mfcr2_variant, mfcr2_max_ani and mfcr2_max_dnis. -; IT IS RECOMMENDED that you leave the default values (leaving it commented) for the -; other parameters unless you have problems or you have been instructed to change some -; parameter. OpenR2 library uses the mfcr2_variant parameter to try to determine the -; best defaults for your country, also refer to the OpenR2 package directory -; doc/asterisk/ where you can find sample configurations for some countries. If you -; want to contribute your configs for a particular country send them to the e-mail -; of the primary OpenR2 developer that you can find in the AUTHORS file of the OpenR2 package - -; MFC/R2 variant. This depends on the OpenR2 supported variants -; A list of values can be found by executing the openr2 command r2test -l -; some valid values are: -; ar (Argentina) -; br (Brazil) -; mx (Mexico) -; ph (Philippines) -; itu (per ITU spec) -; mfcr2_variant=mx - -; Max amount of ANI to ask for -; mfcr2_max_ani=10 - -; Max amount of DNIS to ask for -; mfcr2_max_dnis=4 - -; whether or not to get the ANI before getting DNIS. -; some telcos require ANI first some others do not care -; if this go wrong, change this value -; mfcr2_get_ani_first=no - -; Caller Category to send -; national_subscriber -; national_priority_subscriber -; international_subscriber -; international_priority_subscriber -; collect_call -; usually national_subscriber works just fine -; you can change this setting from the dialplan -; by setting the variable MFCR2_CATEGORY -; (remember to set _MFCR2_CATEGORY from originating channels) -; MFCR2_CATEGORY will also be a variable available in your context -; on incoming calls set to the value received from the far end -; mfcr2_category=national_subscriber - -; Call logging is stored at the Asterisk -; logging directory specified in asterisk.conf -; plus mfcr2/ -; if you specify 'span1' here and asterisk.conf has -; as logging directory /var/log/asterisk then the full -; path to your MFC/R2 call logs will be /var/log/asterisk/mfcr2/span1 -; (the directory will be automatically created if not present already) -; remember to set mfcr2_call_files=yes -; mfcr2_logdir=span1 - -; whether or not to drop call files into mfcr2_logdir -; mfcr2_call_files=yes|no - -; MFC/R2 valid logging values are: all,error,warning,debug,notice,cas,mf,stack,nothing -; error,warning,debug and notice are self-descriptive -; 'cas' is for logging ABCD CAS tx and rx -; 'mf' is for logging of the Multi Frequency tones -; 'stack' is for very verbose output of the channel and context call stack, only useful -; if you are debugging a crash or want to learn how the library works. The stack logging -; will be only enabled if the openr2 library was compiled with -DOR2_TRACE_STACKS -; You can mix up values, like: loglevel=error,debug,mf to log just error, debug and -; multi frequency messages -; 'all' is a special value to log all the activity -; 'nothing' is a clean-up value, in case you want to not log any activity for -; a channel or group of channels -; BE AWARE that the level of output logged will ALSO depend on -; the value you have in logger.conf, if you disable output in logger.conf -; then it does not matter you specify 'all' here, nothing will be logged -; so logger.conf has the last word on what is going to be logged -; mfcr2_logging=all - -; MFC/R2 value in milliseconds for the MF timeout. Any negative value -; means 'default', smaller values than 500ms are not recommended -; and can cause malfunctioning. If you experience protocol error -; due to MF timeout try incrementing this value in 500ms steps -; mfcr2_mfback_timeout=-1 - -; MFC/R2 value in milliseconds for the metering pulse timeout. -; Metering pulses are sent by some telcos for some R2 variants -; during a call presumably for billing purposes to indicate costs, -; however this pulses use the same signal that is used to indicate -; call hangup, therefore a timeout is sometimes required to distinguish -; between a *real* hangup and a billing pulse that should not -; last more than 500ms, If you experience call drops after some -; minutes of being stablished try setting a value of some ms here, -; values greater than 500ms are not recommended. -; BE AWARE that choosing the proper protocol mfcr2_variant parameter -; implicitly sets a good recommended value for this timer, use this -; parameter only when you *really* want to override the default, otherwise -; just comment out this value or put a -1 -; Any negative value means 'default'. -; mfcr2_metering_pulse_timeout=-1 - -; Brazil uses a special calling party category for collect calls (llamadas por cobrar) -; instead of using the operator (as in Mexico). The R2 spec in Brazil says a special GB tone -; should be used to reject collect calls. If you want to ALLOW collect calls specify 'yes', -; if you want to BLOCK collect calls then say 'no'. Default is to block collect calls. -; (see also 'mfcr2_double_answer') -; mfcr2_allow_collect_calls=no - -; This feature is related but independent of mfcr2_allow_collect_calls -; Some PBX's require a double-answer process to block collect calls, if -; you ever have problems blocking collect calls using Group B signals (mfcr2_allow_collect_calls=no) -; then you may want to try with mfcr2_double_answer=yes, this will cause that every answer signal -; is changed by answer->clear back->answer (sort of a flash) -; (see also 'mfcr2_allow_collect_calls') -; mfcr2_double_answer=no - -; This feature allows to skip the use of Group B/II signals and go directly -; to the accepted state for incoming calls -; mfcr2_immediate_accept=no - -; You most likely dont need this feature. Default is yes. -; When this is set to yes, all calls that are offered (incoming calls) which -; DNIS is valid (exists in extensions.conf) and pass collect call validation -; will be accepted with a Group B tone (either call with charge or not, depending on mfcr2_charge_calls) -; with this set to 'no' then the call will NOT be accepted on offered, and the call will start its -; execution in extensions.conf without being accepted until the channel is answered (either with Answer() or -; any other application resulting in the channel being answered). -; This can be set to 'no' if your telco or PBX needs the hangup cause to be set accurately -; when this option is set to no you must explicitly accept the call with DAHDIAcceptR2Call -; or implicitly through the Answer() application. -; mfcr2_accept_on_offer=yes - -; Skip request of calling party category and ANI -; you need openr2 >= 1.2.0 to use this feature -; mfcr2_skip_category=no - -; WARNING: advanced users only! I really mean it -; this parameter is commented by default because -; YOU DON'T NEED IT UNLESS YOU REALLY GROK MFC/R2 -; READ COMMENTS on doc/r2proto.conf in openr2 package -; for more info -; mfcr2_advanced_protocol_file=/path/to/r2proto.conf - -; Brazil use a special signal to force the release of the line (hangup) from the -; backward perspective. When mfcr2_forced_release=no, the normal clear back signal -; will be sent on hangup, which is OK for all mfcr2 variants I know of, except for -; Brazilian variant, where the central will leave the line up for several seconds (30, 60) -; which sometimes is not what people really want. When mfcr2_forced_release=yes, a different -; signal will be sent to hangup the call indicating that the line should be released immediately -; mfcr2_forced_release=no - -; Whether or not report to the other end 'accept call with charge' -; This setting has no effect with most telecos, usually is safe -; leave the default (yes), but once in a while when interconnecting with -; old PBXs this may be useful. -; Concretely this affects the Group B signal used to accept calls -; The application DAHDIAcceptR2Call can also be used to decide this -; in the dial plan in a per-call basis instead of doing it here for all calls -; mfcr2_charge_calls=yes - -; ---------------- END of options to be used with signalling=mfcr2 - -; Configuration Sections -; ~~~~~~~~~~~~~~~~~~~~~~ -; You can also configure channels in a separate chan_dahdi.conf section. In -; this case the keyword 'channel' is not used. Instead the keyword -; 'dahdichan' is used (as in users.conf) - configuration is only processed -; in a section where the keyword dahdichan is used. It will only be -; processed in the end of the section. Thus the following section: -; -;[phones] -;echocancel = 64 -;dahdichan = 1-8 -;group = 1 -; -; Is somewhat equivalent to the following snippet in the section -; [channels]: -; -;echocancel = 64 -;group = 1 -;channel => 1-8 -; -; When starting a new section almost all of the configuration values are -; copied from their values at the end of the section [channels] in -; chan_dahdi.conf and [general] in users.conf - one section's configuration -; does not affect another one's. -; -; Instead of letting common configuration values "slide through" you can -; use configuration templates to easily keep the common part in one -; place and override where needed. -; -;[phones](!) -;echocancel = yes -;group = 0,4 -;callgroup = 3 -;pickupgroup = 3 -;threewaycalling = yes -;transfer = yes -;context = phones -;faxdetect = incoming -; -;[phone-1](phones) -;dahdichan = 1 -;callerid = My Name <501> -;mailbox = 501@mailboxes -; -; -;[fax](phones) -;dahdichan = 2 -;faxdetect = no -;context = fax -; -;[phone-3](phones) -;dahdichan = 3 -;pickupgroup = 3,4 - -;signalling = bri_net_ptmp -;switchtype = euroisdn -;channel => 2-3 -;;signalling = bri_net -;;channel => 4,5 -;signalling = bri_cpe -;switchtype = euroisdn -;channel => 7-8 -; - -signalling=fxo_ks -callerid="Analog Phone" <1> -mailbox=101 -;txgain=-30.0 -group=11 -context=from-pstn -channel => 1 -; -signalling=fxs_ks -callerid=asreceived -group=12 -context=from-pstn -channel => 2 - -signalling=bri_net_ptmp -;signalling=bri_cpe -overlapdial=yes -switchtype=euroisdn -callerid="ISDN Phone" <2> -context=from-isdn -group=21 -channel => 3-4 - -signalling=bri_net_ptmp -;signalling=bri_cpe_ptmp -overlapdial=yes -switchtype=euroisdn -callerid="Jean" <202> -context=from-isdn -group=22 -channel => 6-7 - -signalling=bri_net_ptmp -;signalling=bri_cpe -context=from-isdn -switchtype=euroisdn -group=23 -channel => 9-10 - -signalling=bri_net_ptmp -;signalling=bri_cpe_ptmp -context=from-isdn -switchtype=euroisdn -group=24 -channel => 12-13 diff --git a/call_and_hangup/tested/extensions.conf b/call_and_hangup/tested/extensions.conf deleted file mode 100644 index 440955d..0000000 --- a/call_and_hangup/tested/extensions.conf +++ /dev/null @@ -1,125 +0,0 @@ -[from-internal] -; Include default context with common numbers -include => default -;exten = 2,1,While(1) -;exten = 2,n,Playback(/root/socialisme) -;exten = 2,n,EndWhile - -[from-sip] -exten = s,1,Dial(DAHDI/g11) - -[from-isdn] -; Include default context with common numbers -include => default - -[from-pstn] - -exten = s,1,Noop(${CALLERID} => ${EXTEN}) -;1 si on appelle un hello-worl, 103 si on appelle le FXS ? -;exten = s,n,Goto(test,1) -exten = s,n,Goto(103,1) - -exten = test,1,NoOp() -same = n,Answer() -same = n,Wait(1) -same = n,Playback(hello-world) -same = n,Wait(1) -same = n,Hangup() - -exten = 103,1,NoOp(Dial FXS port - this is intended to be a loop) -exten = 103,n,Dial(DAHDI/g11/${EXTEN}) - -include => default - -;exten = 2,1,Playback(/root/socialisme) - -[default] - -; FXS Phone -exten = 1,1,NoOp( Call 1 ) -exten = 1,n,Dial(DAHDI/g11) - -; FXO -exten = 8,1,NoOp( Call 8 ) -exten = 8,n,Dial(DAHDI/g12) - -; ISDN Phone -exten = 2,1,NoOp( Call 2 ) -exten = 2,n,Dial(DAHDI/g21) - -; Aastra IP Phone -exten = 3,1,NoOp( Call 3 ) -exten = 3, n,Dial(SIP/${EXTEN}) - -; vers XiVO -exten = _9X.,1,NoOp() -exten = _9X.,n,Dial(SIP/test-oh/${EXTEN:1}) - -; ISDN -exten = 4,1,NoOp( Call 4 ) -exten = 4,n,Dial(DAHDI/g22) - -; ISDN -exten = 5,1,NoOp( Call 5 ) -exten = 5,n,Dial(DAHDI/g23) - - -; ISDN -exten = 6,1,NoOp( Call 6 ) -exten = 6,n,Dial(DAHDI/g24) - -; Call via ISDN port #2 -exten = _7X.,1,NoOp( Call ${EXTEN:1} via port #2) -exten = _7X.,n,Dial(DAHDI/g22/${EXTEN:1}) - - -; Test sounds - -exten = 81,1,While(1) -exten = 81,n,Playback(/root/sounds/socialisme) -exten = 81,n,Sleep(1) -exten = 81,n,EndWhile - -exten = 82,1,While(1) -exten = 82,n,Playback(/root/sounds/ufo) -exten = 82,n,Sleep(1) -exten = 82,n,EndWhile - -exten = 83,1,While(1) -exten = 83,n,Playback(/root/sounds/bodenstandig2000_8k) -exten = 83,n,Sleep(1) -exten = 83,n,EndWhile - -exten = 84,1,While(1) -exten = 84,n,Playback(/root/sounds/Sinatra_8k) -exten = 84,n,Sleep(1) -exten = 84,n,EndWhile - -exten = 85,1,While(1) -exten = 85,n,Playback(/root/sounds/schnappi_8k) -exten = 85,n,Sleep(1) -exten = 85,n,EndWhile - -exten = 86,1,While(1) -; exten = 86,n,Set(CHANNEL(language)=fr) -exten = 86,n,Playback(tt-weasels) -exten = 86,n,Sleep(1) -exten = 86,n,EndWhile() - -exten = 87,1,While(1) -; exten = 87,n,Set(CHANNEL(language)=fr) -exten = 87,n,Playback(tt-monkeysintro) -exten = 87,n,Sleep(1) -exten = 87,n,EndWhile() - - - -exten = 666,1,While(1) -exten = 666,n,Playback(/root/sounds/schnappi_satan_8k) -exten = 666,n,Sleep(1) -exten = 666,n,EndWhile - -;exten = _1XX,1,Dial(SIP/test/${EXTEN}) - -[te] -exten = s,1,NoOp(${CALLERID} => ${EXTEN}) diff --git a/call_and_hangup/tested/system.conf b/call_and_hangup/tested/system.conf deleted file mode 100644 index 87456cf..0000000 --- a/call_and_hangup/tested/system.conf +++ /dev/null @@ -1,49 +0,0 @@ -# Autogenerated by /usr/sbin/dahdi_genconf on Thu Dec 9 06:33:08 2010 -# If you edit this file and execute /usr/sbin/dahdi_genconf again, -# your manual changes will be LOST. -# Dahdi Configuration File -# -# This file is parsed by the Dahdi Configurator, dahdi_cfg -# -# Global data - -#loadzone = us -#defaultzone = us - - - -fxoks=1 -#echocanceller=mg2,1 -fxsks=2 -#echocanceller=mg2,3 - - - -span=2,0,0,ccs,ami,nt,term -bchan=3-4 -hardhdlc=5 - - -span=3,0,0,ccs,ami,nt,term -bchan=6-7 -hardhdlc=8 - - -span=4,0,0,ccs,ami,nt,term -bchan=9-10 -hardhdlc=11 - - -span=5,0,0,ccs,ami,nt,term -bchan=12-13 -hardhdlc=14 - -#fxoks=1 -#echocanceller=mg2,1 -#fxsks=2 -#echocanceller=mg2,3 - -loadzone = fr -defaultzone = fr - - diff --git a/full_IO/README b/full_IO/README deleted file mode 100644 index facfc96..0000000 --- a/full_IO/README +++ /dev/null @@ -1,46 +0,0 @@ -# TODO: -# - write the conf files and the script.. -# - should probably remove the ssh key on PCB after the test -# - on error, get PCB serial number, IP, MAC, logs and conf files (PCB and XHD -# side) - -Objective ---------- -This will checks that all port are basically fonctioning. -It runs 3 tests: - * Set the PCB[T0] ports in TE mode and the XHD[T0] ones in NT and then initiate - the call from XHD, the PCB should call back. - * Then it sets ports in the other way (NT/TE) an send a new call from XHD. - * Finally checks the FXO and FXS ports. - -Needs: - * Both card on the same network (ssh connection) - * The ssh key of XHD in the PCB' `~/.ssh/authorized_keys' - -Setup ------ - -You need to connect the proto board (ref bellow as "PCB") to the testing -computer (ref bellow as "XHD") which embbed a Digium BRI card. - - ------------ ------------ - PCB T0 -|−−−−−−−−−|- T0 XHD - T0 -|−−−−−−−−−|- T0 - T0 -|−−−−−−−−−|- T0 - T0 -|−−−−−−−−−|- T0 - | | - FXS -|−−−−−−−−−|- FXO - FXO -|−−−−−−−−−|- FXS - ------------ ------------ - - -Running the test ----------------- -#FIXME -# -run the full_IO.sh script - - - - diff --git a/full_IO/full_IO.sh b/full_IO/full_IO.sh deleted file mode 100755 index 8544cfa..0000000 --- a/full_IO/full_IO.sh +++ /dev/null @@ -1,137 +0,0 @@ -#!/bin/bash -# TODO: Check how to deal with anknown boards IP addresses - -FULL_TEST="1121122213231424511211" - -PCB="root@192.168.0." -ASTERISK_PATH="/etc/asterisk/" -DAHDI_PATH="/etc/dahdi/" - -XHD_HST="xivo-hardware-dev" -SCENARIO_PATH="/home/proformatique/load-tester/load-tester/scenarios/call-then-hangup/" -scenario_cmd="sipp -inf users.csv -sf scenario.xml -i 127.0.0.1 -r 1.0 -d 1000 -rp 9000 127.0.0.1" - - - -usage() -{ -cat << EOF -usage: $0 [OPTIONS] ADDRESS - -This script init a load_tester scenario and launch it. You should read the README file.. - -OPTIONS: - -h Show this message - -n=NUM The dial number, default is for the whole test - -u Update the config files on the target (PCB) and host (XHD) - -ADDRESS: - The IP address last byte of the targeted PCB - -EXAMPLE: - $ $0 -u -n=13231411 84 - -EOF -} - -exit_on_error() { - if [ ! $? -eq 0 ] - then - [ $# -gt 0 ] && echo $* - exit 1 - fi -} - -# -# Configure PCB and XHD -# -update() -{ - PCB="$PCB$BYTE" - scp pcb/system.conf $PCB:$DAHDI_PATH || exit_on_error "EE scp PCB" - scp pcb/extensions.conf $PCB:$ASTERISK_PATH || exit_on_error "EE scp PCB" - scp pcb/chan_dahdi.conf $PCB:$ASTERISK_PATH || exit_on_error "EE scp PCB" - ssh -T $PCB <<\EOI -dahdi_cfg -/etc/init.d/asterisk restart -exit -EOI - exit_on_error "EE dahdi and asterisk on PCB" - - sudo cp xhd/system.conf $DAHDI_PATH || exit_on_error "EE cp on XHD" - sudo cp xhd/extensions.conf $ASTERISK_PATH || exit_on_error "EE cp on XHD" - sudo cp xhd/chan_dahdi.conf $ASTERISK_PATH || exit_on_error "EE cp on XHD" - sudo dahdi_cfg || exit_on_error "EE dahdi_cfg XHD" - sudo /etc/init.d/asterisk stop || exit_on_error "EE asterisk stop XHD" - sleep 1 - sudo /etc/init.d/asterisk start || exit_on_error "EE asterisk start XHD" -} - - - -while getopts ":hn:u" OPTION -do - case $OPTION in - h) - usage - exit - ;; - n) - NUMBER=$OPTARG - ;; - u) - INIT=1 - ;; - ?) - usage - exit 1 - ;; - esac -done - -shift $(( OPTIND -1 )) - -if [ ! $# -eq 1 ] -then - echo "$0 needs one ADDRESS, exiting" - usage - exit 1 -fi - -BYTE=$* - -# -# Several checks -# -hstname=`hostname` -if [ ! $hstname = $XHD_HST ] -then - echo "This script is intended to be run from XHD, exiting" - exit 1 -fi - -if [ ! `which sipp` ] -then - echo "This script needs \`sipp' on your PATH, exiting" - exit 1 -fi - -if [ ! -d $SCENARIO_PATH ] -then - echo "Path not found:\`$SCENARIO_PATH', exiting" - exit 1 -fi - -[ -z $INIT ] || update -[ -z $NUMBER ] && NUMBER=$FULL_TEST - -# -# Running the test -# -echo Running the test... -H=$PWD -cd $SCENARIO_PATH -$scenario_cmd -s $NUMBER -cd $H - -exit 0 diff --git a/full_IO/pcb/chan_dahdi.conf b/full_IO/pcb/chan_dahdi.conf deleted file mode 100644 index 46dca53..0000000 --- a/full_IO/pcb/chan_dahdi.conf +++ /dev/null @@ -1,65 +0,0 @@ -; -; DAHDI Telephony Configuration file -; -; You need to restart Asterisk to re-configure the DAHDI channel - -[trunkgroups] -; Trunk groups are used for NFAS connections. - -[channels] -usecallerid=yes -callwaiting=yes -usecallingpres=yes -callwaitingcallerid=yes -threewaycalling=yes -transfer=yes -canpark=yes -cancallforward=yes -callreturn=yes -group=1 -callgroup=1 -pickupgroup=1 - - -signalling=fxo_ks -callerid="Analog Phone" <1> -overlapdial=yes -mailbox=101 -group=11 -context=from-pstn -channel => 1 - -signalling=fxs_ks -callerid=asreceived -overlapdial=yes -group=12 -context=from-pstn -channel => 2 - -signalling=bri_net_ptmp -switchtype=euroisdn -overlapdial=yes -context=from-isdn -group=21 -channel => 3-4 - -signalling=bri_net_ptmp -switchtype=euroisdn -context=from-isdn -overlapdial=yes -group=22 -channel => 6-7 - -signalling=bri_net_ptmp -context=from-isdn -switchtype=euroisdn -overlapdial=yes -group=23 -channel => 9-10 - -signalling=bri_net_ptmp -context=from-isdn -switchtype=euroisdn -overlapdial=yes -group=24 -channel => 12-13 diff --git a/full_IO/pcb/extensions.conf b/full_IO/pcb/extensions.conf deleted file mode 100644 index 50d9f14..0000000 --- a/full_IO/pcb/extensions.conf +++ /dev/null @@ -1,80 +0,0 @@ -[from-internal] -include => default - -[from-sip] -exten = s,1,Dial(DAHDI/g11) - -[from-isdn] -include => default - -[from-pstn] -include => default - -exten = 103,1,NoOp(Dial FXS port - this is intended to be a loop) -exten = 103,n,Dial(DAHDI/g11/${EXTEN}) - -[default] -; FXS port -exten = 11,1,NoOp( Call 11 ) -same = n,Dial(DAHDI/g11) -same = n,Goto(hangup) - -; FXO port -exten = 12,1,NoOp( Call 12 ) -same = n,Dial(DAHDI/g12) -same = n,Hangup() - -; ISDN port#1 -exten = _21.,1,NoOp( Call 21 ) -same = n,Dial(DAHDI/g21/${EXTEN:2}) -;same = n,Hangup() - -; ISDN port#2 -exten = _22.,1,NoOp( Call 22 ) -same = n,Dial(DAHDI/g22/${EXTEN:2}) -;same = n,Hangup() - -; ISDN port#3 -exten = _23.,1,NoOp( Call 23 ) -same = n,Dial(DAHDI/g23/${EXTEN:2}) -;same = n,Hangup() - -; ISDN port#4 -exten = _24.,1,NoOp( Call 24 ) -same = n,Dial(DAHDI/g24/${EXTEN:2}) -;same = n,Hangup() - -; Aastra IP Phone -exten = 3,1,NoOp( Call 3 ) -exten = 3, n,Dial(SIP/${EXTEN}) - -; vers XiVO -exten = _9X.,1,NoOp() -exten = _9X.,n,Dial(SIP/test-oh/${EXTEN:1}) - - -; Call via ISDN port #2 from ISDN phone -exten = _7X.,1,NoOp( Call ${EXTEN:1} via port #2) -exten = _7X.,n,Dial(DAHDI/g22/${EXTEN:1}) - - -; Test sounds -exten => 123,1,Answer() -exten => 123,2,Playback(spy-agent) -exten => 123,3,Hangup - -exten = 666,1,While(1) -exten = 666,n,Playback(/root/sounds/schnappi_satan_8k) -exten = 666,n,Sleep(1) -exten = 666,n,EndWhile - -exten = hangup,1,NoOp() -same = n,Answer() -same = n,Wait(3) -same = n,Hangup() - - -;exten = _1XX,1,Dial(SIP/test/${EXTEN}) - -[te] -exten = s,1,NoOp(${CALLERID} => ${EXTEN}) diff --git a/full_IO/pcb/sip.conf b/full_IO/pcb/sip.conf deleted file mode 100644 index 83b744e..0000000 --- a/full_IO/pcb/sip.conf +++ /dev/null @@ -1,686 +0,0 @@ -; -; SIP Configuration example for Asterisk -; -; Syntax for specifying a SIP device in extensions.conf is -; SIP/devicename where devicename is defined in a section below. -; -; You may also use -; SIP/username@domain to call any SIP user on the Internet -; (Don't forget to enable DNS SRV records if you want to use this) -; -; If you define a SIP proxy as a peer below, you may call -; SIP/proxyhostname/user or SIP/user@proxyhostname -; where the proxyhostname is defined in a section below -; -; Useful CLI commands to check peers/users: -; sip show peers Show all SIP peers (including friends) -; sip show users Show all SIP users (including friends) -; sip show registry Show status of hosts we register with -; -; sip debug Show all SIP messages -; -; reload chan_sip.so Reload configuration file -; Active SIP peers will not be reconfigured -; - -[general] -context=from-sip ; Default context for incoming calls -;allowguest=no ; Allow or reject guest calls (default is yes) -allowoverlap=no ; Disable overlap dialing support. (Default is yes) -;allowtransfer=no ; Disable all transfers (unless enabled in peers or users) - ; Default is enabled -;realm=mydomain.tld ; Realm for digest authentication - ; defaults to "asterisk". If you set a system name in - ; asterisk.conf, it defaults to that system name - ; Realms MUST be globally unique according to RFC 3261 - ; Set this to your host name or domain name -bindport=5060 ; UDP Port to bind to (SIP standard port is 5060) - ; bindport is the local UDP port that Asterisk will listen on -bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all) -srvlookup=yes ; Enable DNS SRV lookups on outbound calls - ; Note: Asterisk only uses the first host - ; in SRV records - ; Disabling DNS SRV lookups disables the - ; ability to place SIP calls based on domain - ; names to some other SIP users on the Internet - -;domain=mydomain.tld ; Set default domain for this host - ; If configured, Asterisk will only allow - ; INVITE and REFER to non-local domains - ; Use "sip show domains" to list local domains -;pedantic=yes ; Enable checking of tags in headers, - ; international character conversions in URIs - ; and multiline formatted headers for strict - ; SIP compatibility (defaults to "no") - -; See doc/ip-tos.txt for a description of these parameters. -;tos_sip=cs3 ; Sets TOS for SIP packets. -;tos_audio=ef ; Sets TOS for RTP audio packets. -;tos_video=af41 ; Sets TOS for RTP video packets. - -;maxexpiry=3600 ; Maximum allowed time of incoming registrations - ; and subscriptions (seconds) -;minexpiry=60 ; Minimum length of registrations/subscriptions (default 60) -;defaultexpiry=120 ; Default length of incoming/outgoing registration -;t1min=100 ; Minimum roundtrip time for messages to monitored hosts - ; Defaults to 100 ms -;notifymimetype=text/plain ; Allow overriding of mime type in MWI NOTIFY -;checkmwi=10 ; Default time between mailbox checks for peers -;buggymwi=no ; Cisco SIP firmware doesn't support the MWI RFC - ; fully. Enable this option to not get error messages - ; when sending MWI to phones with this bug. -;vmexten=voicemail ; dialplan extension to reach mailbox sets the - ; Message-Account in the MWI notify message - ; defaults to "asterisk" -;disallow=all ; First disallow all codecs -;allow=ulaw ; Allow codecs in order of preference -;allow=ilbc ; see doc/rtp-packetization for framing options -; -; This option specifies a preference for which music on hold class this channel -; should listen to when put on hold if the music class has not been set on the -; channel with Set(CHANNEL(musicclass)=whatever) in the dialplan, and the peer -; channel putting this one on hold did not suggest a music class. -; -; This option may be specified globally, or on a per-user or per-peer basis. -; -;mohinterpret=default -; -; This option specifies which music on hold class to suggest to the peer channel -; when this channel places the peer on hold. It may be specified globally or on -; a per-user or per-peer basis. -; -;mohsuggest=default -; -;language=en ; Default language setting for all users/peers - ; This may also be set for individual users/peers -;relaxdtmf=yes ; Relax dtmf handling -;trustrpid = no ; If Remote-Party-ID should be trusted -;sendrpid = yes ; If Remote-Party-ID should be sent -;progressinband=never ; If we should generate in-band ringing always - ; use 'never' to never use in-band signalling, even in cases - ; where some buggy devices might not render it - ; Valid values: yes, no, never Default: never -;useragent=Asterisk PBX ; Allows you to change the user agent string -;promiscredir = no ; If yes, allows 302 or REDIR to non-local SIP address - ; Note that promiscredir when redirects are made to the - ; local system will cause loops since Asterisk is incapable - ; of performing a "hairpin" call. -;usereqphone = no ; If yes, ";user=phone" is added to uri that contains - ; a valid phone number -;dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833 - ; Other options: - ; info : SIP INFO messages - ; inband : Inband audio (requires 64 kbit codec -alaw, ulaw) - ; auto : Use rfc2833 if offered, inband otherwise - -;compactheaders = yes ; send compact sip headers. -; -;videosupport=yes ; Turn on support for SIP video. You need to turn this on - ; in the this section to get any video support at all. - ; You can turn it off on a per peer basis if the general - ; video support is enabled, but you can't enable it for - ; one peer only without enabling in the general section. -;maxcallbitrate=384 ; Maximum bitrate for video calls (default 384 kb/s) - ; Videosupport and maxcallbitrate is settable - ; for peers and users as well -;callevents=no ; generate manager events when sip ua - ; performs events (e.g. hold) -;alwaysauthreject = yes ; When an incoming INVITE or REGISTER is to be rejected, - ; for any reason, always reject with '401 Unauthorized' - ; instead of letting the requester know whether there was - ; a matching user or peer for their request - -;g726nonstandard = yes ; If the peer negotiates G726-32 audio, use AAL2 packing - ; order instead of RFC3551 packing order (this is required - ; for Sipura and Grandstream ATAs, among others). This is - ; contrary to the RFC3551 specification, the peer _should_ - ; be negotiating AAL2-G726-32 instead :-( - -;matchexterniplocally = yes ; Only substitute the externip or externhost setting if it matches - ; your localnet setting. Unless you have some sort of strange network - ; setup you will not need to enable this. - -; -; If regcontext is specified, Asterisk will dynamically create and destroy a -; NoOp priority 1 extension for a given peer who registers or unregisters with -; us and have a "regexten=" configuration item. -; Multiple contexts may be specified by separating them with '&'. The -; actual extension is the 'regexten' parameter of the registering peer or its -; name if 'regexten' is not provided. If more than one context is provided, -; the context must be specified within regexten by appending the desired -; context after '@'. More than one regexten may be supplied if they are -; separated by '&'. Patterns may be used in regexten. -; -;regcontext=sipregistrations -; -;--------------------------- RTP timers ---------------------------------------------------- -; These timers are currently used for both audio and video streams. The RTP timeouts -; are only applied to the audio channel. -; The settings are settable in the global section as well as per device -; -;rtptimeout=60 ; Terminate call if 60 seconds of no RTP or RTCP activity - ; on the audio channel - ; when we're not on hold. This is to be able to hangup - ; a call in the case of a phone disappearing from the net, - ; like a powerloss or grandma tripping over a cable. -;rtpholdtimeout=300 ; Terminate call if 300 seconds of no RTP or RTCP activity - ; on the audio channel - ; when we're on hold (must be > rtptimeout) -;rtpkeepalive= ; Send keepalives in the RTP stream to keep NAT open - ; (default is off - zero) -;--------------------------- SIP DEBUGGING --------------------------------------------------- -;sipdebug = yes ; Turn on SIP debugging by default, from - ; the moment the channel loads this configuration -;recordhistory=yes ; Record SIP history by default - ; (see sip history / sip no history) -;dumphistory=yes ; Dump SIP history at end of SIP dialogue - ; SIP history is output to the DEBUG logging channel - - -;--------------------------- STATUS NOTIFICATIONS (SUBSCRIPTIONS) ---------------------------- -; You can subscribe to the status of extensions with a "hint" priority -; (See extensions.conf.sample for examples) -; chan_sip support two major formats for notifications: dialog-info and SIMPLE -; -; You will get more detailed reports (busy etc) if you have a call limit set -; for a device. When the call limit is filled, we will indicate busy. Note that -; you need at least 2 in order to be able to do attended transfers. -; -; For queues, you will need this level of detail in status reporting, regardless -; if you use SIP subscriptions. Queues and manager use the same internal interface -; for reading status information. -; -; Note: Subscriptions does not work if you have a realtime dialplan and use the -; realtime switch. -; -;allowsubscribe=no ; Disable support for subscriptions. (Default is yes) -;subscribecontext = default ; Set a specific context for SUBSCRIBE requests - ; Useful to limit subscriptions to local extensions - ; Settable per peer/user also -;notifyringing = yes ; Notify subscriptions on RINGING state (default: no) -;notifyhold = yes ; Notify subscriptions on HOLD state (default: no) - ; Turning on notifyringing and notifyhold will add a lot - ; more database transactions if you are using realtime. -;limitonpeers = yes ; Apply call limits on peers only. This will improve - ; status notification when you are using type=friend - ; Inbound calls, that really apply to the user part - ; of a friend will now be added to and compared with - ; the peer limit instead of applying two call limits, - ; one for the peer and one for the user. - ; "sip show inuse" will only show active calls on - ; the peer side of a "type=friend" object if this - ; setting is turned on. - -;----------------------------------------- T.38 FAX PASSTHROUGH SUPPORT ----------------------- -; -; This setting is available in the [general] section as well as in device configurations. -; Setting this to yes, enables T.38 fax (UDPTL) passthrough on SIP to SIP calls, provided -; both parties have T38 support enabled in their Asterisk configuration -; This has to be enabled in the general section for all devices to work. You can then -; disable it on a per device basis. -; -; T.38 faxing only works in SIP to SIP calls, with no local or agent channel being used. -; -; t38pt_udptl = yes ; Default false -; -;----------------------------------------- OUTBOUND SIP REGISTRATIONS ------------------------ -; Asterisk can register as a SIP user agent to a SIP proxy (provider) -; Format for the register statement is: -; register => user[:secret[:authuser]]@host[:port][/extension] -; -; If no extension is given, the 's' extension is used. The extension needs to -; be defined in extensions.conf to be able to accept calls from this SIP proxy -; (provider). -; -; host is either a host name defined in DNS or the name of a section defined -; below. -; -; Examples: -; - -; XIVO XIVO XIVO - -; register => test-oh:toto@192.168.0.252 - -register => wg4xt2:29PUQE@192.168.17.252 - -; 41302 - -[test-oh] -type=friend -username=wg4xt2 -fromuser=41302 -secret=29PUQE -host=192.168.17.252 -nat=no - - -; -; This will pass incoming calls to the 's' extension -; -; -;register => 2345:password@sip_proxy/1234 -; -; Register 2345 at sip provider 'sip_proxy'. Calls from this provider -; connect to local extension 1234 in extensions.conf, default context, -; unless you configure a [sip_proxy] section below, and configure a -; context. -; Tip 1: Avoid assigning hostname to a sip.conf section like [provider.com] -; Tip 2: Use separate type=peer and type=user sections for SIP providers -; (instead of type=friend) if you have calls in both directions - -;registertimeout=20 ; retry registration calls every 20 seconds (default) -;registerattempts=10 ; Number of registration attempts before we give up - ; 0 = continue forever, hammering the other server - ; until it accepts the registration - ; Default is 0 tries, continue forever - -;----------------------------------------- NAT SUPPORT ------------------------ -; The externip, externhost and localnet settings are used if you use Asterisk -; behind a NAT device to communicate with services on the outside. - -;externip = 200.201.202.203 ; Address that we're going to put in outbound SIP - ; messages if we're behind a NAT - - ; The externip and localnet is used - ; when registering and communicating with other proxies - ; that we're registered with -;externhost=foo.dyndns.net ; Alternatively you can specify an - ; external host, and Asterisk will - ; perform DNS queries periodically. Not - ; recommended for production - ; environments! Use externip instead -;externrefresh=10 ; How often to refresh externhost if - ; used - ; You may add multiple local networks. A reasonable - ; set of defaults are: -;localnet=192.168.0.0/255.255.0.0; All RFC 1918 addresses are local networks -;localnet=10.0.0.0/255.0.0.0 ; Also RFC1918 -;localnet=172.16.0.0/12 ; Another RFC1918 with CIDR notation -;localnet=169.254.0.0/255.255.0.0 ;Zero conf local network - -; The nat= setting is used when Asterisk is on a public IP, communicating with -; devices hidden behind a NAT device (broadband router). If you have one-way -; audio problems, you usually have problems with your NAT configuration or your -; firewall's support of SIP+RTP ports. You configure Asterisk choice of RTP -; ports for incoming audio in rtp.conf -; -;nat=no ; Global NAT settings (Affects all peers and users) - ; yes = Always ignore info and assume NAT - ; no = Use NAT mode only according to RFC3581 (;rport) - ; never = Never attempt NAT mode or RFC3581 support - ; route = Assume NAT, don't send rport - ; (work around more UNIDEN bugs) - -;----------------------------------- MEDIA HANDLING -------------------------------- -; By default, Asterisk tries to re-invite the audio to an optimal path. If there's -; no reason for Asterisk to stay in the media path, the media will be redirected. -; This does not really work with in the case where Asterisk is outside and have -; clients on the inside of a NAT. In that case, you want to set canreinvite=nonat -; -;canreinvite=yes ; Asterisk by default tries to redirect the - ; RTP media stream (audio) to go directly from - ; the caller to the callee. Some devices do not - ; support this (especially if one of them is behind a NAT). - ; The default setting is YES. If you have all clients - ; behind a NAT, or for some other reason wants Asterisk to - ; stay in the audio path, you may want to turn this off. - - ; In Asterisk 1.4 this setting also affect direct RTP - ; at call setup (a new feature in 1.4 - setting up the - ; call directly between the endpoints instead of sending - ; a re-INVITE). - -;directrtpsetup=yes ; Enable the new experimental direct RTP setup. This sets up - ; the call directly with media peer-2-peer without re-invites. - ; Will not work for video and cases where the callee sends - ; RTP payloads and fmtp headers in the 200 OK that does not match the - ; callers INVITE. This will also fail if canreinvite is enabled when - ; the device is actually behind NAT. - -;canreinvite=nonat ; An additional option is to allow media path redirection - ; (reinvite) but only when the peer where the media is being - ; sent is known to not be behind a NAT (as the RTP core can - ; determine it based on the apparent IP address the media - ; arrives from). - -;canreinvite=update ; Yet a third option... use UPDATE for media path redirection, - ; instead of INVITE. This can be combined with 'nonat', as - ; 'canreinvite=update,nonat'. It implies 'yes'. - -;----------------------------------------- REALTIME SUPPORT ------------------------ -; For additional information on ARA, the Asterisk Realtime Architecture, -; please read realtime.txt and extconfig.txt in the /doc directory of the -; source code. -; -;rtcachefriends=yes ; Cache realtime friends by adding them to the internal list - ; just like friends added from the config file only on a - ; as-needed basis? (yes|no) - -;rtsavesysname=yes ; Save systemname in realtime database at registration - ; Default= no - -;rtupdate=yes ; Send registry updates to database using realtime? (yes|no) - ; If set to yes, when a SIP UA registers successfully, the ip address, - ; the origination port, the registration period, and the username of - ; the UA will be set to database via realtime. - ; If not present, defaults to 'yes'. -;rtautoclear=yes ; Auto-Expire friends created on the fly on the same schedule - ; as if it had just registered? (yes|no|) - ; If set to yes, when the registration expires, the friend will - ; vanish from the configuration until requested again. If set - ; to an integer, friends expire within this number of seconds - ; instead of the registration interval. - -;ignoreregexpire=yes ; Enabling this setting has two functions: - ; - ; For non-realtime peers, when their registration expires, the - ; information will _not_ be removed from memory or the Asterisk database - ; if you attempt to place a call to the peer, the existing information - ; will be used in spite of it having expired - ; - ; For realtime peers, when the peer is retrieved from realtime storage, - ; the registration information will be used regardless of whether - ; it has expired or not; if it expires while the realtime peer - ; is still in memory (due to caching or other reasons), the - ; information will not be removed from realtime storage - -;----------------------------------------- SIP DOMAIN SUPPORT ------------------------ -; Incoming INVITE and REFER messages can be matched against a list of 'allowed' -; domains, each of which can direct the call to a specific context if desired. -; By default, all domains are accepted and sent to the default context or the -; context associated with the user/peer placing the call. -; Domains can be specified using: -; domain=[,] -; Examples: -; domain=myasterisk.dom -; domain=customer.com,customer-context -; -; In addition, all the 'default' domains associated with a server should be -; added if incoming request filtering is desired. -; autodomain=yes -; -; To disallow requests for domains not serviced by this server: -; allowexternaldomains=no - -;domain=mydomain.tld,mydomain-incoming - ; Add domain and configure incoming context - ; for external calls to this domain -;domain=1.2.3.4 ; Add IP address as local domain - ; You can have several "domain" settings -;allowexternaldomains=no ; Disable INVITE and REFER to non-local domains - ; Default is yes -;autodomain=yes ; Turn this on to have Asterisk add local host - ; name and local IP to domain list. - -; fromdomain=mydomain.tld ; When making outbound SIP INVITEs to - ; non-peers, use your primary domain "identity" - ; for From: headers instead of just your IP - ; address. This is to be polite and - ; it may be a mandatory requirement for some - ; destinations which do not have a prior - ; account relationship with your server. - -;------------------------------ 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. - -; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". -;----------------------------------------------------------------------------------- - -[authentication] -; Global credentials for outbound calls, i.e. when a proxy challenges your -; Asterisk server for authentication. These credentials override -; any credentials in peer/register definition if realm is matched. -; -; This way, Asterisk can authenticate for outbound calls to other -; realms. We match realm on the proxy challenge and pick an set of -; credentials from this list -; Syntax: -; auth = :@ -; auth = #@ -; Example: -;auth=mark:topsecret@digium.com -; -; You may also add auth= statements to [peer] definitions -; Peer auth= override all other authentication settings if we match on realm - -;------------------------------------------------------------------------------ -; Users and peers have different settings available. Friends have all settings, -; since a friend is both a peer and a user -; -; User config options: Peer configuration: -; -------------------- ------------------- -; context context -; callingpres callingpres -; permit permit -; deny deny -; secret secret -; md5secret md5secret -; dtmfmode dtmfmode -; canreinvite canreinvite -; nat nat -; callgroup callgroup -; pickupgroup pickupgroup -; language language -; allow allow -; disallow disallow -; insecure insecure -; trustrpid trustrpid -; progressinband progressinband -; promiscredir promiscredir -; useclientcode useclientcode -; accountcode accountcode -; setvar setvar -; callerid callerid -; amaflags amaflags -; call-limit call-limit -; allowoverlap allowoverlap -; allowsubscribe allowsubscribe -; allowtransfer allowtransfer -; subscribecontext subscribecontext -; videosupport videosupport -; maxcallbitrate maxcallbitrate -; rfc2833compensate mailbox -; t38pt_usertpsource username -; template -; fromdomain -; regexten -; fromuser -; host -; port -; qualify -; defaultip -; rtptimeout -; rtpholdtimeout -; sendrpid -; outboundproxy -; rfc2833compensate -; t38pt_usertpsource - -;[sip_proxy] -; For incoming calls only. Example: FWD (Free World Dialup) -; We match on IP address of the proxy for incoming calls -; since we can not match on username (caller id) -;type=peer -;context=from-fwd -;host=fwd.pulver.com - -;[sip_proxy-out] -;type=peer ; we only want to call out, not be called -;secret=guessit -;username=yourusername ; Authentication user for outbound proxies -;fromuser=yourusername ; Many SIP providers require this! -;fromdomain=provider.sip.domain -;host=box.provider.com -;usereqphone=yes ; This provider requires ";user=phone" on URI -;call-limit=5 ; permit only 5 simultaneous outgoing calls to this peer -;outboundproxy=proxy.provider.domain ; send outbound signaling to this proxy, not directly to the peer - ; Call-limits will not be enforced on real-time peers, - ; since they are not stored in-memory -;port=80 ; The port number we want to connect to on the remote side - ; Also used as "defaultport" in combination with "defaultip" settings - -;------------------------------------------------------------------------------ -; Definitions of locally connected SIP devices -; -; type = user a device that authenticates to us by "from" field to place calls -; type = peer a device we place calls to or that calls us and we match by host -; type = friend two configurations (peer+user) in one -; -; For device names, we recommend using only a-z, numerics (0-9) and underscore -; -; For local phones, type=friend works most of the time -; -; If you have one-way audio, you probably have NAT problems. -; If Asterisk is on a public IP, and the phone is inside of a NAT device -; you will need to configure nat option for those phones. -; Also, turn on qualify=yes to keep the nat session open - -;[grandstream1] -;type=friend -;context=from-sip ; Where to start in the dialplan when this phone calls -;callerid=John Doe <1234> ; Full caller ID, to override the phones config - ; on incoming calls to Asterisk -;host=192.168.0.23 ; we have a static but private IP address - ; No registration allowed -;nat=no ; there is not NAT between phone and Asterisk -;canreinvite=yes ; allow RTP voice traffic to bypass Asterisk -;dtmfmode=info ; either RFC2833 or INFO for the BudgeTone -;call-limit=1 ; permit only 1 outgoing call and 1 incoming call at a time - ; from the phone to asterisk - ; 1 for the explicit peer, 1 for the explicit user, - ; remember that a friend equals 1 peer and 1 user in - ; memory - ; This will affect your subscriptions as well. - ; There is no combined call counter for a "friend" - ; so there's currently no way in sip.conf to limit - ; to one inbound or outbound call per phone. Use - ; the group counters in the dial plan for that. - ; -;mailbox=1234@default ; mailbox 1234 in voicemail context "default" -;disallow=all ; need to disallow=all before we can use allow= -;allow=ulaw ; Note: In user sections the order of codecs - ; listed with allow= does NOT matter! -;allow=alaw -;allow=g723.1 ; Asterisk only supports g723.1 pass-thru! -;allow=g729 ; Pass-thru only unless g729 license obtained -;callingpres=allowed_passed_screen ; Set caller ID presentation - ; See doc/callingpres.txt for more information - - -;[xlite1] -; Turn off silence suppression in X-Lite ("Transmit Silence"=YES)! -; Note that Xlite sends NAT keep-alive packets, so qualify=yes is not needed -;type=friend -;regexten=1234 ; When they register, create extension 1234 -;callerid="Jane Smith" <5678> -;host=dynamic ; This device needs to register -;nat=yes ; X-Lite is behind a NAT router -;canreinvite=no ; Typically set to NO if behind NAT -;disallow=all -;allow=gsm ; GSM consumes far less bandwidth than ulaw -;allow=ulaw -;allow=alaw -;mailbox=1234@default,1233@default ; Subscribe to status of multiple mailboxes - - -;[snom] -;type=friend ; Friends place calls and receive calls -;context=from-sip ; Context for incoming calls from this user -;secret=blah -;subscribecontext=localextensions ; Only allow SUBSCRIBE for local extensions -;language=de ; Use German prompts for this user -;host=dynamic ; This peer register with us -;dtmfmode=inband ; Choices are inband, rfc2833, or info -;defaultip=192.168.0.59 ; IP used until peer registers -;mailbox=1234@context,2345 ; Mailbox(-es) for message waiting indicator -;subscribemwi=yes ; Only send notifications if this phone - ; subscribes for mailbox notification -;vmexten=voicemail ; dialplan extension to reach mailbox - ; sets the Message-Account in the MWI notify message - ; defaults to global vmexten which defaults to "asterisk" -;disallow=all -;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw! - - -;[polycom] -;type=friend ; Friends place calls and receive calls -;context=from-sip ; Context for incoming calls from this user -;secret=blahpoly -;host=dynamic ; This peer register with us -;dtmfmode=rfc2833 ; Choices are inband, rfc2833, or info -;username=polly ; Username to use in INVITE until peer registers - ; Normally you do NOT need to set this parameter -;disallow=all -;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw! -;progressinband=no ; Polycom phones don't work properly with "never" - - -;[pingtel] -;type=friend -;secret=blah -;host=dynamic -;insecure=port ; Allow matching of peer by IP address without - ; matching port number -;insecure=invite ; Do not require authentication of incoming INVITEs -;insecure=port,invite ; (both) -;qualify=1000 ; Consider it down if it's 1 second to reply - ; Helps with NAT session - ; qualify=yes uses default value -; -; Call group and Pickup group should be in the range from 0 to 63 -; -;callgroup=1,3-4 ; We are in caller groups 1,3,4 -;pickupgroup=1,3-5 ; We can do call pick-p for call group 1,3,4,5 -;defaultip=192.168.0.60 ; IP address to use if peer has not registered -;deny=0.0.0.0/0.0.0.0 ; ACL: Control access to this account based on IP address -;permit=192.168.0.60/255.255.255.0 - -;[cisco1] -;type=friend -;secret=blah -;qualify=200 ; Qualify peer is no more than 200ms away -;nat=yes ; This phone may be natted - ; Send SIP and RTP to the IP address that packet is - ; received from instead of trusting SIP headers -;host=dynamic ; This device registers with us -;canreinvite=no ; Asterisk by default tries to redirect the - ; RTP media stream (audio) to go directly from - ; the caller to the callee. Some devices do not - ; support this (especially if one of them is - ; behind a NAT). -;defaultip=192.168.0.4 ; IP address to use until registration -;username=goran ; Username to use when calling this device before registration - ; Normally you do NOT need to set this parameter -;setvar=CUSTID=5678 ; Channel variable to be set for all calls from this device - -;[pre14-asterisk] -;type=friend -;secret=digium -;host=dynamic -;rfc2833compensate=yes ; Compensate for pre-1.4 DTMF transmission from another Asterisk machine. - ; You must have this turned on or DTMF reception will work improperly. -;t38pt_usertpsource=yes ; Use the source IP address of RTP as the destination IP address for UDPTL packets - ; if the nat option is enabled. If a single RTP packet is received Asterisk will know the - ; external IP address of the remote device. If port forwarding is done at the client side - ; then UDPTL will flow to the remote device. diff --git a/full_IO/pcb/system.conf b/full_IO/pcb/system.conf deleted file mode 100644 index a9b6695..0000000 --- a/full_IO/pcb/system.conf +++ /dev/null @@ -1,33 +0,0 @@ -# Autogenerated by /usr/sbin/dahdi_genconf on Thu Dec 9 06:33:08 2010 -# If you edit this file and execute /usr/sbin/dahdi_genconf again, -# your manual changes will be LOST. -# Dahdi Configuration File -# -# This file is parsed by the Dahdi Configurator, dahdi_cfg -# -# Global data - -fxoks=1 -#echocanceller=mg2,1 -fxsks=2 -#echocanceller=mg2,3 - -span=2,0,0,ccs,ami,nt,term -bchan=3-4 -hardhdlc=5 - -span=3,0,0,ccs,ami,nt,term -bchan=6-7 -hardhdlc=8 - -span=4,0,0,ccs,ami,nt,term -bchan=9-10 -hardhdlc=11 - -span=5,0,0,ccs,ami,nt,term -bchan=12-13 -hardhdlc=14 - -loadzone = fr -defaultzone = fr - diff --git a/full_IO/xhd/chan_dahdi.conf b/full_IO/xhd/chan_dahdi.conf deleted file mode 100644 index e076b91..0000000 --- a/full_IO/xhd/chan_dahdi.conf +++ /dev/null @@ -1,79 +0,0 @@ -; -; DAHDI Telephony Configuration file -; -[trunkgroups] - -[channels] -usecallerid=yes -callwaiting=yes -usecallingpres=yes -callwaitingcallerid=yes -threewaycalling=yes -transfer=yes -canpark=yes -cancallforward=yes -callreturn=yes -echocancel=yes -echocancelwhenbridged=yes -group=1 -callgroup=1 -pickupgroup=1 - -; Span 1: B4/0/1 "B4XXP (PCI) Card 0" (MASTER) -signalling=bri_cpe_ptmp -switchtype=euroisdn -overlapdial=yes -context=from-isdn -group=11 -channel => 1-2 - -; Span 2: B4/0/2 "B4XXP (PCI) Card 0" -signalling=bri_cpe_ptmp -switchtype=euroisdn -context=from-isdn -group=12 -overlapdial=yes -channel => 4-5 - -; Span 3: B4/0/3 "B4XXP (PCI) Card 0" -signalling=bri_cpe_ptmp -switchtype=euroisdn -context=from-isdn -group=13 -overlapdial=yes -channel => 7-8 - -; Span 4: B4/0/4 "B4XXP (PCI) Card 0" -signalling=bri_cpe_ptmp -switchtype=euroisdn -context=from-isdn -group=14 -overlapdial=yes -;layer1_presence=ignore -channel => 10-11 - -; line="13 WCTDM/4/0 FXOKS" -signalling=fxo_ks -callerid="Analog Phone" <1> -overlapdial=yes -mailbox=11 -group=6 -context=from-pstn -channel => 13 - -; line="14 WCTDM/4/1 FXOKS" -signalling=fxo_ks -callerid="Analog Phone" <1> -overlapdial=yes -mailbox=12 -group=5 -context=from-pstn -channel => 14 - -; line="15 WCTDM/4/2 FXSKS" -signalling=fxs_ks -callerid=asreceived -group=4 -context=from-pstn -channel => 15 - diff --git a/full_IO/xhd/conf.py b/full_IO/xhd/conf.py deleted file mode 100644 index 7e6b6d4..0000000 --- a/full_IO/xhd/conf.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: UTF-8 -*- - -from __future__ import unicode_literals - -## global configuration - -sipp_remote_host = '127.0.0.1' - -sipp_local_ip = '127.0.0.1' -sipp_call_rate = 1.0 -sipp_pause_in_ms = 6000 -sipp_rate_period_in_ms = 18000 + sipp_pause_in_ms - -## scenarios configuration - -called_line = { - 'username': 'loadtester2', - 'bind_port': 5070, -} - -calling_line = { - 'username': 'loadtester1', - 'password': 'loadtester1', -} - -# scenarios.call_then_hangup.calling_line = calling_line -# calling trhough FXS port 1 to reach port FXO on pcb#4 - cf dialplan for 105 -scenarios.call_then_hangup.called_exten = '105' - -#scenarios.call_then_wait.calling_line = calling_line -scenarios.call_then_wait.called_exten = '102' diff --git a/full_IO/xhd/extensions.conf b/full_IO/xhd/extensions.conf deleted file mode 100644 index 7d862d2..0000000 --- a/full_IO/xhd/extensions.conf +++ /dev/null @@ -1,76 +0,0 @@ -[default] -; -- Carte Digium B410p -; appel via le port B410p BRI 1 -exten = _11.,1,NoOp() -same = n,Dial(DAHDI/g11/${EXTEN:2}) -same = n,Hangup() - -; appel via le port B410p BRI 2 -exten = _12.,1,NoOp() -same = n,Dial(DAHDI/g12/${EXTEN:2}) -same = n,Hangup() - -; appel via le port B410p BRI 3 -exten = _13.,1,NoOp() -same = n,Dial(DAHDI/g13/${EXTEN:2}) -same = n,Hangup() - -; appel via le port B410p BRI 4 -exten = _14.,1,NoOp() -;same = n,Goto(hangup,1) -same = n,Dial(DAHDI/g14/${EXTEN:2}) -same = n,Hangup() - -; -- Carte TDM400 -; appel via le port FXS 1 de la carte TDM400 -exten = 51,1,NoOp() -same = n,Dial(DAHDI/g6/${EXTEN:2}) -same = n,Hangup() - -; appel via le port FXS 2 de la carte TDM400 -exten = 52,1,NoOp() -same = n,Dial(DAHDI/g5/${EXTEN:2}) -same = n,Hangup() - -; appel via le port FXO 1 de la carte TDM400 -exten = 53,1,NoOp() -same = n,Dial(DAHDI/g4/${EXTEN:2}) -same = n,Hangup() - -exten = s,1,NoOp() -;same = n,Goto(wait-and-hangup,1) -same = n,Goto(call-loadtester2,1) - -exten = wait-and-hangup,1,NoOp() -same = n,Answer() -same = n,Wait(60) -same = n,Hangup() - -exten = call-loadtester2,1,NoOp() -same = n,Dial(SIP/loadtester2) -same = n,Hangup() - -exten = hangup,1,NoOp() -same = n,Answer() -same = n,Wait(10) -same = n,Hangup() - -[from-internal] -include => default - -[from-pstn] -include => default - -[from-isdn] -;include => default -exten => _X.,1,Answer - same => n,Echo - same => n,Hangup - -[loadtest] -exten => s,1,NoOp(Init call for test) -exten => s,n,Answer -exten => s,n,Playback(hello-world) -exten => s,n,Echo -exten => s,n,Hangup - diff --git a/full_IO/xhd/sip.conf b/full_IO/xhd/sip.conf deleted file mode 100644 index 98fad2d..0000000 --- a/full_IO/xhd/sip.conf +++ /dev/null @@ -1,1340 +0,0 @@ -; -; SIP Configuration example for Asterisk -; -; Note: Please read the security documentation for Asterisk in order to -; understand the risks of installing Asterisk with the sample -; configuration. If your Asterisk is installed on a public -; IP address connected to the Internet, you will want to learn -; about the various security settings BEFORE you start -; Asterisk. -; -; Especially note the following settings: -; - allowguest (default enabled) -; - permit/deny - IP address filters -; - contactpermit/contactdeny - IP address filters for registrations -; - context - Which set of services you offer various users -; -; SIP dial strings -;----------------------------------------------------------- -; In the dialplan (extensions.conf) you can use several -; syntaxes for dialing SIP devices. -; SIP/devicename -; SIP/username@domain (SIP uri) -; SIP/username[:password[:md5secret[:authname[:transport]]]]@host[:port] -; SIP/devicename/extension -; SIP/devicename/extension/IPorHost -; SIP/username@domain//IPorHost -; -; -; Devicename -; devicename is defined as a peer in a section below. -; -; username@domain -; Call any SIP user on the Internet -; (Don't forget to enable DNS SRV records if you want to use this) -; -; devicename/extension -; If you define a SIP proxy as a peer below, you may call -; SIP/proxyhostname/user or SIP/user@proxyhostname -; where the proxyhostname is defined in a section below -; This syntax also works with ATA's with FXO ports -; -; SIP/username[:password[:md5secret[:authname]]]@host[:port] -; This form allows you to specify password or md5secret and authname -; without altering any authentication data in config. -; Examples: -; -; SIP/*98@mysipproxy -; SIP/sales:topsecret::account02@domain.com:5062 -; SIP/12345678::bc53f0ba8ceb1ded2b70e05c3f91de4f:myname@192.168.0.1 -; -; IPorHost -; The next server for this call regardless of domain/peer -; -; All of these dial strings specify the SIP request URI. -; In addition, you can specify a specific To: header by adding an -; exclamation mark after the dial string, like -; -; SIP/sales@mysipproxy!sales@edvina.net -; -; A new feature for 1.8 allows one to specify a host or IP address to use -; when routing the call. This is typically used in tandem with func_srv if -; multiple methods of reaching the same domain exist. The host or IP address -; is specified after the third slash in the dialstring. Examples: -; -; SIP/devicename/extension/IPorHost -; SIP/username@domain//IPorHost -; -; CLI Commands -; ------------------------------------------------------------- -; Useful CLI commands to check peers/users: -; sip show peers Show all SIP peers (including friends) -; sip show registry Show status of hosts we register with -; -; sip set debug on Show all SIP messages -; -; sip reload Reload configuration file -; sip show settings Show the current channel configuration -; -;------- Naming devices ------------------------------------------------------ -; -; When naming devices, make sure you understand how Asterisk matches calls -; that come in. -; 1. Asterisk checks the SIP From: address username and matches against -; names of devices with type=user -; The name is the text between square brackets [name] -; 2. Asterisk checks the From: addres and matches the list of devices -; with a type=peer -; 3. Asterisk checks the IP address (and port number) that the INVITE -; was sent from and matches against any devices with type=peer -; -; Don't mix extensions with the names of the devices. Devices need a unique -; name. The device name is *not* used as phone numbers. Phone numbers are -; anything you declare as an extension in the dialplan (extensions.conf). -; -; When setting up trunks, make sure there's no risk that any From: username -; (caller ID) will match any of your device names, because then Asterisk -; might match the wrong device. -; -; Note: The parameter "username" is not the username and in most cases is -; not needed at all. Check below. In later releases, it's renamed -; to "defaultuser" which is a better name, since it is used in -; combination with the "defaultip" setting. -;----------------------------------------------------------------------------- - -; ** Old configuration options ** -; The "call-limit" configuation option is considered old is replaced -; by new functionality. To enable callcounters, you use the new -; "callcounter" setting (for extension states in queue and subscriptions) -; You are encouraged to use the dialplan groupcount functionality -; to enforce call limits instead of using this channel-specific method. -; You can still set limits per device in sip.conf or in a database by using -; "setvar" to set variables that can be used in the dialplan for various limits. - -[general] -context=default ; Default context for incoming calls -canreinvite=no -;allowguest=no ; Allow or reject guest calls (default is yes) - ; If your Asterisk is connected to the Internet - ; and you have allowguest=yes - ; you want to check which services you offer everyone - ; out there, by enabling them in the default context (see below). -;match_auth_username=yes ; if available, match user entry using the - ; 'username' field from the authentication line - ; instead of the From: field. -allowoverlap=no ; Disable overlap dialing support. (Default is yes) -;allowtransfer=no ; Disable all transfers (unless enabled in peers or users) - ; Default is enabled. The Dial() options 't' and 'T' are not - ; related as to whether SIP transfers are allowed or not. -;realm=mydomain.tld ; Realm for digest authentication - ; defaults to "asterisk". If you set a system name in - ; asterisk.conf, it defaults to that system name - ; Realms MUST be globally unique according to RFC 3261 - ; Set this to your host name or domain name -;domainsasrealm=no ; Use domans list as realms - ; You can serve multiple Realms specifying several - ; 'domain=...' directives (see below). - ; In this case Realm will be based on request 'From'/'To' header - ; and should match one of domain names. - ; Otherwise default 'realm=...' will be used. - -; With the current situation, you can do one of four things: -; a) Listen on a specific IPv4 address. Example: bindaddr=192.0.2.1 -; b) Listen on a specific IPv6 address. Example: bindaddr=2001:db8::1 -; c) Listen on the IPv4 wildcard. Example: bindaddr=0.0.0.0 -; d) Listen on the IPv4 and IPv6 wildcards. Example: bindaddr=:: -; (You can choose independently for UDP, TCP, and TLS, by specifying different values for -; "udpbindaddr", "tcpbindaddr", and "tlsbindaddr".) -; (Note that using bindaddr=:: will show only a single IPv6 socket in netstat. -; IPv4 is supported at the same time using IPv4-mapped IPv6 addresses.) -; -; You may optionally add a port number. (The default is port 5060 for UDP and TCP, 5061 -; for TLS). -; IPv4 example: bindaddr=0.0.0.0:5062 -; IPv6 example: bindaddr=[::]:5062 -; -; The address family of the bound UDP address is used to determine how Asterisk performs -; DNS lookups. In cases a) and c) above, only A records are considered. In case b), only -; AAAA records are considered. In case d), both A and AAAA records are considered. Note, -; however, that Asterisk ignores all records except the first one. In case d), when both A -; and AAAA records are available, either an A or AAAA record will be first, and which one -; depends on the operating system. On systems using glibc, AAAA records are given -; priority. - -udpbindaddr=0.0.0.0 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all) - ; Optionally add a port number, 192.168.1.1:5062 (default is port 5060) - -; When a dialog is started with another SIP endpoint, the other endpoint -; should include an Allow header telling us what SIP methods the endpoint -; implements. However, some endpoints either do not include an Allow header -; or lie about what methods they implement. In the former case, Asterisk -; makes the assumption that the endpoint supports all known SIP methods. -; If you know that your SIP endpoint does not provide support for a specific -; method, then you may provide a comma-separated list of methods that your -; endpoint does not implement in the disallowed_methods option. Note that -; if your endpoint is truthful with its Allow header, then there is no need -; to set this option. This option may be set in the general section or may -; be set per endpoint. If this option is set both in the general section and -; in a peer section, then the peer setting completely overrides the general -; setting (i.e. the result is *not* the union of the two options). -; -; Note also that while Asterisk currently will parse an Allow header to learn -; what methods an endpoint supports, the only actual use for this currently -; is for determining if Asterisk may send connected line UPDATE requests. Its -; use may be expanded in the future. -; -; disallowed_methods = UPDATE - -; -; Note that the TCP and TLS support for chan_sip is currently considered -; experimental. Since it is new, all of the related configuration options are -; subject to change in any release. If they are changed, the changes will -; be reflected in this sample configuration file, as well as in the UPGRADE.txt file. -; -tcpenable=no ; Enable server for incoming TCP connections (default is no) -tcpbindaddr=0.0.0.0 ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces) - ; Optionally add a port number, 192.168.1.1:5062 (default is port 5060) - -;tlsenable=no ; Enable server for incoming TLS (secure) connections (default is no) -;tlsbindaddr=0.0.0.0 ; IP address for TLS server to bind to (0.0.0.0) binds to all interfaces) - ; Optionally add a port number, 192.168.1.1:5063 (default is port 5061) - ; Remember that the IP address must match the common name (hostname) in the - ; certificate, so you don't want to bind a TLS socket to multiple IP addresses. - ; For details how to construct a certificate for SIP see - ; http://tools.ietf.org/html/draft-ietf-sip-domain-certs - -srvlookup=yes ; Enable DNS SRV lookups on outbound calls - ; Note: Asterisk only uses the first host - ; in SRV records - ; Disabling DNS SRV lookups disables the - ; ability to place SIP calls based on domain - ; names to some other SIP users on the Internet - ; Specifying a port in a SIP peer definition or - ; when dialing outbound calls will supress SRV - ; lookups for that peer or call. - -;pedantic=yes ; Enable checking of tags in headers, - ; international character conversions in URIs - ; and multiline formatted headers for strict - ; SIP compatibility (defaults to "no") - -; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters. -;tos_sip=cs3 ; Sets TOS for SIP packets. -;tos_audio=ef ; Sets TOS for RTP audio packets. -;tos_video=af41 ; Sets TOS for RTP video packets. -;tos_text=af41 ; Sets TOS for RTP text packets. - -;cos_sip=3 ; Sets 802.1p priority for SIP packets. -;cos_audio=5 ; Sets 802.1p priority for RTP audio packets. -;cos_video=4 ; Sets 802.1p priority for RTP video packets. -;cos_text=3 ; Sets 802.1p priority for RTP text packets. - -;maxexpiry=3600 ; Maximum allowed time of incoming registrations - ; and subscriptions (seconds) -;minexpiry=60 ; Minimum length of registrations/subscriptions (default 60) -;defaultexpiry=120 ; Default length of incoming/outgoing registration -;mwiexpiry=3600 ; Expiry time for outgoing MWI subscriptions -;maxforwards=70 ; Setting for the SIP Max-Forwards: header (loop prevention) - ; Default value is 70 -;qualifyfreq=60 ; Qualification: How often to check for the host to be up in seconds - ; Set to low value if you use low timeout for NAT of UDP sessions - ; Default: 60 -;qualifygap=100 ; Number of milliseconds between each group of peers being qualified - ; Default: 100 -;qualifypeers=1 ; Number of peers in a group to be qualified at the same time - ; Default: 1 -;notifymimetype=text/plain ; Allow overriding of mime type in MWI NOTIFY -;buggymwi=no ; Cisco SIP firmware doesn't support the MWI RFC - ; fully. Enable this option to not get error messages - ; when sending MWI to phones with this bug. -;mwi_from=asterisk ; When sending MWI NOTIFY requests, use this setting in - ; the From: header as the "name" portion. Also fill the - ; "user" portion of the URI in the From: header with this - ; value if no fromuser is set - ; Default: empty -;vmexten=voicemail ; dialplan extension to reach mailbox sets the - ; Message-Account in the MWI notify message - ; defaults to "asterisk" - -;preferred_codec_only=yes ; Respond to a SIP invite with the single most preferred codec - ; rather than advertising all joint codec capabilities. This - ; limits the other side's codec choice to exactly what we prefer. - -;disallow=all ; First disallow all codecs -;allow=ulaw ; Allow codecs in order of preference -;allow=ilbc ; see doc/rtp-packetization for framing options -; -; This option specifies a preference for which music on hold class this channel -; should listen to when put on hold if the music class has not been set on the -; channel with Set(CHANNEL(musicclass)=whatever) in the dialplan, and the peer -; channel putting this one on hold did not suggest a music class. -; -; This option may be specified globally, or on a per-user or per-peer basis. -; -;mohinterpret=default -; -; This option specifies which music on hold class to suggest to the peer channel -; when this channel places the peer on hold. It may be specified globally or on -; a per-user or per-peer basis. -; -;mohsuggest=default -; -;parkinglot=plaza ; Sets the default parking lot for call parking - ; This may also be set for individual users/peers - ; Parkinglots are configured in features.conf -;language=en ; Default language setting for all users/peers - ; This may also be set for individual users/peers -;relaxdtmf=yes ; Relax dtmf handling -;trustrpid = no ; If Remote-Party-ID should be trusted -;sendrpid = yes ; If Remote-Party-ID should be sent (defaults to no) -;sendrpid = rpid ; Use the "Remote-Party-ID" header - ; to send the identity of the remote party - ; This is identical to sendrpid=yes -;sendrpid = pai ; Use the "P-Asserted-Identity" header - ; to send the identity of the remote party -;rpid_update = no ; In certain cases, the only method by which a connected line - ; change may be immediately transmitted is with a SIP UPDATE request. - ; If communicating with another Asterisk server, and you wish to be able - ; transmit such UPDATE messages to it, then you must enable this option. - ; Otherwise, we will have to wait until we can send a reinvite to - ; transmit the information. -;prematuremedia=no ; Some ISDN links send empty media frames before - ; the call is in ringing or progress state. The SIP - ; channel will then send 183 indicating early media - ; which will be empty - thus users get no ring signal. - ; Setting this to "yes" will stop any media before we have - ; call progress (meaning the SIP channel will not send 183 Session - ; Progress for early media). Default is "yes". Also make sure that - ; the SIP peer is configured with progressinband=never. - ; - ; In order for "noanswer" applications to work, you need to run - ; the progress() application in the priority before the app. - -;progressinband=never ; If we should generate in-band ringing always - ; use 'never' to never use in-band signalling, even in cases - ; where some buggy devices might not render it - ; Valid values: yes, no, never Default: never -;useragent=Asterisk PBX ; Allows you to change the user agent string - ; The default user agent string also contains the Asterisk - ; version. If you don't want to expose this, change the - ; useragent string. -;promiscredir = no ; If yes, allows 302 or REDIR to non-local SIP address - ; Note that promiscredir when redirects are made to the - ; local system will cause loops since Asterisk is incapable - ; of performing a "hairpin" call. -;usereqphone = no ; If yes, ";user=phone" is added to uri that contains - ; a valid phone number -;dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833 - ; Other options: - ; info : SIP INFO messages (application/dtmf-relay) - ; shortinfo : SIP INFO messages (application/dtmf) - ; inband : Inband audio (requires 64 kbit codec -alaw, ulaw) - ; auto : Use rfc2833 if offered, inband otherwise - -;compactheaders = yes ; send compact sip headers. -; -;videosupport=yes ; Turn on support for SIP video. You need to turn this - ; on in this section to get any video support at all. - ; You can turn it off on a per peer basis if the general - ; video support is enabled, but you can't enable it for - ; one peer only without enabling in the general section. - ; If you set videosupport to "always", then RTP ports will - ; always be set up for video, even on clients that don't - ; support it. This assists callfile-derived calls and - ; certain transferred calls to use always use video when - ; available. [yes|NO|always] - -;maxcallbitrate=384 ; Maximum bitrate for video calls (default 384 kb/s) - ; Videosupport and maxcallbitrate is settable - ; for peers and users as well -;callevents=no ; generate manager events when sip ua - ; performs events (e.g. hold) -;authfailureevents=no ; generate manager "peerstatus" events when peer can't - ; authenticate with Asterisk. Peerstatus will be "rejected". -;alwaysauthreject = yes ; When an incoming INVITE or REGISTER is to be rejected, - ; for any reason, always reject with an identical response - ; equivalent to valid username and invalid password/hash - ; instead of letting the requester know whether there was - ; a matching user or peer for their request. This reduces - ; the ability of an attacker to scan for valid SIP usernames. - -;g726nonstandard = yes ; If the peer negotiates G726-32 audio, use AAL2 packing - ; order instead of RFC3551 packing order (this is required - ; for Sipura and Grandstream ATAs, among others). This is - ; contrary to the RFC3551 specification, the peer _should_ - ; be negotiating AAL2-G726-32 instead :-( -;outboundproxy=proxy.provider.domain ; send outbound signaling to this proxy, not directly to the devices -;outboundproxy=proxy.provider.domain:8080 ; send outbound signaling to this proxy, not directly to the devices -;outboundproxy=proxy.provider.domain,force ; Send ALL outbound signalling to proxy, ignoring route: headers -;outboundproxy=tls://proxy.provider.domain ; same as '=proxy.provider.domain' except we try to connect with tls -; ; (could also be tcp,udp) - defining transports on the proxy line only -; ; applies for the global proxy, otherwise use the transport= option -;matchexternaddrlocally = yes ; Only substitute the externaddr or externhost setting if it matches - ; your localnet setting. Unless you have some sort of strange network - ; setup you will not need to enable this. - -;dynamic_exclude_static = yes ; Disallow all dynamic hosts from registering - ; as any IP address used for staticly defined - ; hosts. This helps avoid the configuration - ; error of allowing your users to register at - ; the same address as a SIP provider. - -;contactdeny=0.0.0.0/0.0.0.0 ; Use contactpermit and contactdeny to -;contactpermit=172.16.0.0/255.255.0.0 ; restrict at what IPs your users may - ; register their phones. - -;engine=asterisk ; RTP engine to use when communicating with the device - -; -; If regcontext is specified, Asterisk will dynamically create and destroy a -; NoOp priority 1 extension for a given peer who registers or unregisters with -; us and have a "regexten=" configuration item. -; Multiple contexts may be specified by separating them with '&'. The -; actual extension is the 'regexten' parameter of the registering peer or its -; name if 'regexten' is not provided. If more than one context is provided, -; the context must be specified within regexten by appending the desired -; context after '@'. More than one regexten may be supplied if they are -; separated by '&'. Patterns may be used in regexten. -; -;regcontext=sipregistrations -;regextenonqualify=yes ; Default "no" - ; If you have qualify on and the peer becomes unreachable - ; this setting will enforce inactivation of the regexten - ; extension for the peer - -; The shrinkcallerid function removes '(', ' ', ')', non-trailing '.', and '-' not -; in square brackets. For example, the caller id value 555.5555 becomes 5555555 -; when this option is enabled. Disabling this option results in no modification -; of the caller id value, which is necessary when the caller id represents something -; that must be preserved. This option can only be used in the [general] section. -; By default this option is on. -; -;shrinkcallerid=yes ; on by default - - -;use_q850_reason = no ; Default "no" - ; Set to yes add Reason header and use Reason header if it is available. -; -;------------------------ TLS settings ------------------------------------------------------------ -;tlscertfile= ; Certificate file (*.pem format only) to use for TLS connections - ; default is to look for "asterisk.pem" in current directory - -;tlsprivatekey= ; Private key file (*.pem format only) for TLS connections. - ; If no tlsprivatekey is specified, tlscertfile is searched for - ; for both public and private key. - -;tlscafile= -; If the server your connecting to uses a self signed certificate -; you should have their certificate installed here so the code can -; verify the authenticity of their certificate. - -;tlscadir= -; A directory full of CA certificates. The files must be named with -; the CA subject name hash value. -; (see man SSL_CTX_load_verify_locations for more info) - -;tlsdontverifyserver=[yes|no] -; If set to yes, don't verify the servers certificate when acting as -; a client. If you don't have the server's CA certificate you can -; set this and it will connect without requiring tlscafile to be set. -; Default is no. - -;tlscipher= -; A string specifying which SSL ciphers to use or not use -; A list of valid SSL cipher strings can be found at: -; http://www.openssl.org/docs/apps/ciphers.html#CIPHER_STRINGS -; -;tlsclientmethod=tlsv1 ; values include tlsv1, sslv3, sslv2. - ; Specify protocol for outbound client connections. - ; If left unspecified, the default is sslv2. -; -;--------------------------- SIP timers ---------------------------------------------------- -; These timers are used primarily in INVITE transactions. -; The default for Timer T1 is 500 ms or the measured run-trip time between -; Asterisk and the device if you have qualify=yes for the device. -; -;t1min=100 ; Minimum roundtrip time for messages to monitored hosts - ; Defaults to 100 ms -;timert1=500 ; Default T1 timer - ; Defaults to 500 ms or the measured round-trip - ; time to a peer (qualify=yes). -;timerb=32000 ; Call setup timer. If a provisional response is not received - ; in this amount of time, the call will autocongest - ; Defaults to 64*timert1 - -;--------------------------- RTP timers ---------------------------------------------------- -; These timers are currently used for both audio and video streams. The RTP timeouts -; are only applied to the audio channel. -; The settings are settable in the global section as well as per device -; -;rtptimeout=60 ; Terminate call if 60 seconds of no RTP or RTCP activity - ; on the audio channel - ; when we're not on hold. This is to be able to hangup - ; a call in the case of a phone disappearing from the net, - ; like a powerloss or grandma tripping over a cable. -;rtpholdtimeout=300 ; Terminate call if 300 seconds of no RTP or RTCP activity - ; on the audio channel - ; when we're on hold (must be > rtptimeout) -;rtpkeepalive= ; Send keepalives in the RTP stream to keep NAT open - ; (default is off - zero) - -;--------------------------- SIP Session-Timers (RFC 4028)------------------------------------ -; SIP Session-Timers provide an end-to-end keep-alive mechanism for active SIP sessions. -; This mechanism can detect and reclaim SIP channels that do not terminate through normal -; signaling procedures. Session-Timers can be configured globally or at a user/peer level. -; The operation of Session-Timers is driven by the following configuration parameters: -; -; * session-timers - Session-Timers feature operates in the following three modes: -; originate : Request and run session-timers always -; accept : Run session-timers only when requested by other UA -; refuse : Do not run session timers in any case -; The default mode of operation is 'accept'. -; * session-expires - Maximum session refresh interval in seconds. Defaults to 1800 secs. -; * session-minse - Minimum session refresh interval in seconds. Defualts to 90 secs. -; * session-refresher - The session refresher (uac|uas). Defaults to 'uas'. -; -;session-timers=originate -;session-expires=600 -;session-minse=90 -;session-refresher=uas -; -;--------------------------- SIP DEBUGGING --------------------------------------------------- -;sipdebug = yes ; Turn on SIP debugging by default, from - ; the moment the channel loads this configuration -;recordhistory=yes ; Record SIP history by default - ; (see sip history / sip no history) -;dumphistory=yes ; Dump SIP history at end of SIP dialogue - ; SIP history is output to the DEBUG logging channel - - -;--------------------------- STATUS NOTIFICATIONS (SUBSCRIPTIONS) ---------------------------- -; You can subscribe to the status of extensions with a "hint" priority -; (See extensions.conf.sample for examples) -; chan_sip support two major formats for notifications: dialog-info and SIMPLE -; -; You will get more detailed reports (busy etc) if you have a call counter enabled -; for a device. -; -; If you set the busylevel, we will indicate busy when we have a number of calls that -; matches the busylevel treshold. -; -; For queues, you will need this level of detail in status reporting, regardless -; if you use SIP subscriptions. Queues and manager use the same internal interface -; for reading status information. -; -; Note: Subscriptions does not work if you have a realtime dialplan and use the -; realtime switch. -; -;allowsubscribe=no ; Disable support for subscriptions. (Default is yes) -;subscribecontext = default ; Set a specific context for SUBSCRIBE requests - ; Useful to limit subscriptions to local extensions - ; Settable per peer/user also -;notifyringing = no ; Control whether subscriptions already INUSE get sent - ; RINGING when another call is sent (default: yes) -;notifyhold = yes ; Notify subscriptions on HOLD state (default: no) - ; Turning on notifyringing and notifyhold will add a lot - ; more database transactions if you are using realtime. -;notifycid = yes ; Control whether caller ID information is sent along with - ; dialog-info+xml notifications (supported by snom phones). - ; Note that this feature will only work properly when the - ; incoming call is using the same extension and context that - ; is being used as the hint for the called extension. This means - ; that it won't work when using subscribecontext for your sip - ; user or peer (if subscribecontext is different than context). - ; This is also limited to a single caller, meaning that if an - ; extension is ringing because multiple calls are incoming, - ; only one will be used as the source of caller ID. Specify - ; 'ignore-context' to ignore the called context when looking - ; for the caller's channel. The default value is 'no.' Setting - ; notifycid to 'ignore-context' also causes call-pickups attempted - ; via SNOM's NOTIFY mechanism to set the context for the call pickup - ; to PICKUPMARK. -;callcounter = yes ; Enable call counters on devices. This can be set per - ; device too. - -;----------------------------------------- T.38 FAX SUPPORT ---------------------------------- -; -; This setting is available in the [general] section as well as in device configurations. -; Setting this to yes enables T.38 FAX (UDPTL) on SIP calls; it defaults to off. -; -; t38pt_udptl = yes ; Enables T.38 with FEC error correction. -; t38pt_udptl = yes,fec ; Enables T.38 with FEC error correction. -; t38pt_udptl = yes,redundancy ; Enables T.38 with redundancy error correction. -; t38pt_udptl = yes,none ; Enables T.38 with no error correction. -; -; In some cases, T.38 endpoints will provide a T38FaxMaxDatagram value (during T.38 setup) that -; is based on an incorrect interpretation of the T.38 recommendation, and results in failures -; because Asterisk does not believe it can send T.38 packets of a reasonable size to that -; endpoint (Cisco media gateways are one example of this situation). In these cases, during a -; T.38 call you will see warning messages on the console/in the logs from the Asterisk UDPTL -; stack complaining about lack of buffer space to send T.38 FAX packets. If this occurs, you -; can set an override (globally, or on a per-device basis) to make Asterisk ignore the -; T38FaxMaxDatagram value specified by the other endpoint, and use a configured value instead. -; This can be done by appending 'maxdatagram=' to the t38pt_udptl configuration option, -; like this: -; -; t38pt_udptl = yes,fec,maxdatagram=400 ; Enables T.38 with FEC error correction and overrides -; ; the other endpoint's provided value to assume we can -; ; send 400 byte T.38 FAX packets to it. -; -; FAX detection will cause the SIP channel to jump to the 'fax' extension (if it exists) -; based one or more events being detected. The events that can be detected are an incoming -; CNG tone or an incoming T.38 re-INVITE request. -; -; faxdetect = yes ; Default 'no', 'yes' enables both CNG and T.38 detection -; faxdetect = cng ; Enables only CNG detection -; faxdetect = t38 ; Enables only T.38 detection -; -;----------------------------------------- OUTBOUND SIP REGISTRATIONS ------------------------ -; Asterisk can register as a SIP user agent to a SIP proxy (provider) -; Format for the register statement is: -; register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] - -;register => 666:666:666@tolapai - -; -; -; -; domain is either -; - domain in DNS -; - host name in DNS -; - the name of a peer defined below or in realtime -; The domain is where you register your username, so your SIP uri you are registering to -; is username@domain -; -; If no extension is given, the 's' extension is used. The extension needs to -; be defined in extensions.conf to be able to accept calls from this SIP proxy -; (provider). -; -; A similar effect can be achieved by adding a "callbackextension" option in a peer section. -; this is equivalent to having the following line in the general section: -; -; register => username:secret@host/callbackextension -; -; and more readable because you don't have to write the parameters in two places -; (note that the "port" is ignored - this is a bug that should be fixed). -; -; Note that a register= line doesn't mean that we will match the incoming call in any -; other way than described above. If you want to control where the call enters your -; dialplan, which context, you want to define a peer with the hostname of the provider's -; server. If the provider has multiple servers to place calls to your system, you need -; a peer for each server. -; -; Beginning with Asterisk version 1.6.2, the "user" portion of the register line may -; contain a port number. Since the logical separator between a host and port number is a -; ':' character, and this character is already used to separate between the optional "secret" -; and "authuser" portions of the line, there is a bit of a hoop to jump through if you wish -; to use a port here. That is, you must explicitly provide a "secret" and "authuser" even if -; they are blank. See the third example below for an illustration. -; -; -; Examples: -; -;register => 1234:password@mysipprovider.com -; -; This will pass incoming calls to the 's' extension -; -; -;register => 2345:password@sip_proxy/1234 -; -; Register 2345 at sip provider 'sip_proxy'. Calls from this provider -; connect to local extension 1234 in extensions.conf, default context, -; unless you configure a [sip_proxy] section below, and configure a -; context. -; Tip 1: Avoid assigning hostname to a sip.conf section like [provider.com] -; Tip 2: Use separate inbound and outbound sections for SIP providers -; (instead of type=friend) if you have calls in both directions -; -;register => 3456@mydomain:5082::@mysipprovider.com -; -; Note that in this example, the optional authuser and secret portions have -; been left blank because we have specified a port in the user section -; -;register => tls://username:xxxxxx@sip-tls-proxy.example.org -; -; The 'transport' part defaults to 'udp' but may also be 'tcp' or 'tls'. -; Using 'udp://' explicitly is also useful in case the username part -; contains a '/' ('user/name'). - -;registertimeout=20 ; retry registration calls every 20 seconds (default) -;registerattempts=10 ; Number of registration attempts before we give up - ; 0 = continue forever, hammering the other server - ; until it accepts the registration - ; Default is 0 tries, continue forever - -;----------------------------------------- OUTBOUND MWI SUBSCRIPTIONS ------------------------- -; Asterisk can subscribe to receive the MWI from another SIP server and store it locally for retrieval -; by other phones. -; Format for the mwi register statement is: -; mwi => user[:secret[:authuser]]@host[:port][/mailbox] -; -; Examples: -;mwi => 1234:password@mysipprovider.com/1234 -; -; MWI received will be stored in the 1234 mailbox of the SIP_Remote context. It can be used by other phones by following the below: -; mailbox=1234@SIP_Remote -;----------------------------------------- NAT SUPPORT ------------------------ -; -; WARNING: SIP operation behind a NAT is tricky and you really need -; to read and understand well the following section. -; -; When Asterisk is behind a NAT device, the "local" address (and port) that -; a socket is bound to has different values when seen from the inside or -; from the outside of the NATted network. Unfortunately this address must -; be communicated to the outside (e.g. in SIP and SDP messages), and in -; order to determine the correct value Asterisk needs to know: -; -; + whether it is talking to someone "inside" or "outside" of the NATted network. -; This is configured by assigning the "localnet" parameter with a list -; of network addresses that are considered "inside" of the NATted network. -; IF LOCALNET IS NOT SET, THE EXTERNAL ADDRESS WILL NOT BE SET CORRECTLY. -; Multiple entries are allowed, e.g. a reasonable set is the following: -; -; localnet=192.168.0.0/255.255.0.0 ; RFC 1918 addresses -; localnet=10.0.0.0/255.0.0.0 ; Also RFC1918 -; localnet=172.16.0.0/12 ; Another RFC1918 with CIDR notation -; localnet=169.254.0.0/255.255.0.0 ; Zero conf local network -; -; + the "externally visible" address and port number to be used when talking -; to a host outside the NAT. This information is derived by one of the -; following (mutually exclusive) config file parameters: -; -; a. "externaddr = hostname[:port]" specifies a static address[:port] to -; be used in SIP and SDP messages. -; The hostname is looked up only once, when [re]loading sip.conf . -; If a port number is not present, use the port specified in the "udpbindaddr" -; (which is not guaranteed to work correctly, because a NAT box might remap the -; port number as well as the address). -; This approach can be useful if you have a NAT device where you can -; configure the mapping statically. Examples: -; -; externaddr = 12.34.56.78 ; use this address. -; externaddr = 12.34.56.78:9900 ; use this address and port. -; externaddr = mynat.my.org:12600 ; Public address of my nat box. -; externtcpport = 9900 ; The externally mapped tcp port, when Asterisk is behind a static NAT or PAT. -; ; externtcpport will default to the externaddr or externhost port if either one is set. -; externtlsport = 12600 ; The externally mapped tls port, when Asterisk is behind a static NAT or PAT. -; ; externtlsport port will default to the RFC designated port of 5061. -; -; b. "externhost = hostname[:port]" is similar to "externaddr" except -; that the hostname is looked up every "externrefresh" seconds -; (default 10s). This can be useful when your NAT device lets you choose -; the port mapping, but the IP address is dynamic. -; Beware, you might suffer from service disruption when the name server -; resolution fails. Examples: -; -; externhost=foo.dyndns.net ; refreshed periodically -; externrefresh=180 ; change the refresh interval -; -; c. "stunaddr = stun.server[:port]" queries the STUN server specified -; as an argument to obtain the external address/port. -; Queries are also sent periodically every "externrefresh" seconds -; (as a side effect, sending the query also acts as a keepalive for -; the state entry on the nat box): -; -; stunaddr = foo.stun.com:3478 -; externrefresh = 15 -; -; NOTE: STUN is only implemented for IPv4. -; -; Note that at the moment all these mechanism work only for the SIP socket. -; The IP address discovered with externaddr/externhost/STUN is reused for -; media sessions as well, but the port numbers are not remapped so you -; may still experience problems. -; -; NOTE 1: in some cases, NAT boxes will use different port numbers in -; the internal<->external mapping. In these cases, the "externaddr" and -; "externhost" might not help you configure addresses properly, and you -; really need to use STUN. -; -; NOTE 2: when using "externaddr" or "externhost", the address part is -; also used as the external address for media sessions. Even if you -; use "stunaddr", STUN queries will be sent only from the SIP port, -; not from media sockets. Thus, the port information in the SDP may be wrong! -; -; In addition to the above, Asterisk has an additional "nat" parameter to -; address NAT-related issues in incoming SIP or media sessions. -; In particular, depending on the 'nat= ' settings described below, Asterisk -; may override the address/port information specified in the SIP/SDP messages, -; and use the information (sender address) supplied by the network stack instead. -; However, this is only useful if the external traffic can reach us. -; The following settings are allowed (both globally and in individual sections): -; -; nat = no ; Default. Use rport if the remote side says to use it. -; nat = force_rport ; Force rport to always be on. -; nat = yes ; Force rport to always be on and perform comedia RTP handling. -; nat = comedia ; Use rport if the remote side says to use it and perform comedia RTP handling. -; -; 'comedia RTP handling' refers to the technique of sending RTP to the port that the -; the other endpoint's RTP arrived from, and means 'connection-oriented media'. This is -; only partially related to RFC 4145 which was referred to as COMEDIA while it was in -; draft form. This method is used to accomodate endpoints that may be located behind -; NAT devices, and as such the port number they tell Asterisk to send RTP packets to -; for their media streams is not actual port number that will be used on the nearer -; side of the NAT. -; -; In addition to these settings, Asterisk *always* uses 'symmetric RTP' mode as defined by -; RFC 4961; Asterisk will always send RTP packets from the same port number it expects -; to receive them on. -; -; The IP address used for media (audio, video, and text) in the SDP can also be overridden by using -; the media_address configuration option. This is only applicable to the general section and -; can not be set per-user or per-peer. -; -; media_address = 172.16.42.1 - -;----------------------------------- MEDIA HANDLING -------------------------------- -; By default, Asterisk tries to re-invite media streams to an optimal path. If there's -; no reason for Asterisk to stay in the media path, the media will be redirected. -; This does not really work well in the case where Asterisk is outside and the -; clients are on the inside of a NAT. In that case, you want to set directmedia=nonat. -; -;directmedia=yes ; Asterisk by default tries to redirect the - ; RTP media stream to go directly from - ; the caller to the callee. Some devices do not - ; support this (especially if one of them is behind a NAT). - ; The default setting is YES. If you have all clients - ; behind a NAT, or for some other reason want Asterisk to - ; stay in the audio path, you may want to turn this off. - - ; This setting also affect direct RTP - ; at call setup (a new feature in 1.4 - setting up the - ; call directly between the endpoints instead of sending - ; a re-INVITE). - - ; Additionally this option does not disable all reINVITE operations. - ; It only controls Asterisk generating reINVITEs for the specific - ; purpose of setting up a direct media path. If a reINVITE is - ; needed to switch a media stream to inactive (when placed on - ; hold) or to T.38, it will still be done, regardless of this - ; setting. Note that direct T.38 is not supported. - -;directmedia=nonat ; An additional option is to allow media path redirection - ; (reinvite) but only when the peer where the media is being - ; sent is known to not be behind a NAT (as the RTP core can - ; determine it based on the apparent IP address the media - ; arrives from). - -;directmedia=update ; Yet a third option... use UPDATE for media path redirection, - ; instead of INVITE. This can be combined with 'nonat', as - ; 'directmedia=update,nonat'. It implies 'yes'. - -;directrtpsetup=yes ; Enable the new experimental direct RTP setup. This sets up - ; the call directly with media peer-2-peer without re-invites. - ; Will not work for video and cases where the callee sends - ; RTP payloads and fmtp headers in the 200 OK that does not match the - ; callers INVITE. This will also fail if directmedia is enabled when - ; the device is actually behind NAT. - -;directmediadeny=0.0.0.0/0 ; Use directmediapermit and directmediadeny to restrict -;directmediapermit=172.16.0.0/16; which peers should be able to pass directmedia to each other - ; (There is no default setting, this is just an example) - ; Use this if some of your phones are on IP addresses that - ; can not reach each other directly. This way you can force - ; RTP to always flow through asterisk in such cases. - -;ignoresdpversion=yes ; By default, Asterisk will honor the session version - ; number in SDP packets and will only modify the SDP - ; session if the version number changes. This option will - ; force asterisk to ignore the SDP session version number - ; and treat all SDP data as new data. This is required - ; for devices that send us non standard SDP packets - ; (observed with Microsoft OCS). By default this option is - ; off. - -;sdpsession=Asterisk PBX ; Allows you to change the SDP session name string, (s=) - ; Like the useragent parameter, the default user agent string - ; also contains the Asterisk version. -;sdpowner=root ; Allows you to change the username field in the SDP owner string, (o=) - ; This field MUST NOT contain spaces - -;----------------------------------------- REALTIME SUPPORT ------------------------ -; For additional information on ARA, the Asterisk Realtime Architecture, -; please read realtime.txt and extconfig.txt in the /doc directory of the -; source code. -; -;rtcachefriends=yes ; Cache realtime friends by adding them to the internal list - ; just like friends added from the config file only on a - ; as-needed basis? (yes|no) - -;rtsavesysname=yes ; Save systemname in realtime database at registration - ; Default= no - -;rtupdate=yes ; Send registry updates to database using realtime? (yes|no) - ; If set to yes, when a SIP UA registers successfully, the ip address, - ; the origination port, the registration period, and the username of - ; the UA will be set to database via realtime. - ; If not present, defaults to 'yes'. Note: realtime peers will - ; probably not function across reloads in the way that you expect, if - ; you turn this option off. -;rtautoclear=yes ; Auto-Expire friends created on the fly on the same schedule - ; as if it had just registered? (yes|no|) - ; If set to yes, when the registration expires, the friend will - ; vanish from the configuration until requested again. If set - ; to an integer, friends expire within this number of seconds - ; instead of the registration interval. - -;ignoreregexpire=yes ; Enabling this setting has two functions: - ; - ; For non-realtime peers, when their registration expires, the - ; information will _not_ be removed from memory or the Asterisk database - ; if you attempt to place a call to the peer, the existing information - ; will be used in spite of it having expired - ; - ; For realtime peers, when the peer is retrieved from realtime storage, - ; the registration information will be used regardless of whether - ; it has expired or not; if it expires while the realtime peer - ; is still in memory (due to caching or other reasons), the - ; information will not be removed from realtime storage - -;----------------------------------------- SIP DOMAIN SUPPORT ------------------------ -; Incoming INVITE and REFER messages can be matched against a list of 'allowed' -; domains, each of which can direct the call to a specific context if desired. -; By default, all domains are accepted and sent to the default context or the -; context associated with the user/peer placing the call. -; REGISTER to non-local domains will be automatically denied if a domain -; list is configured. -; -; Domains can be specified using: -; domain=[,] -; Examples: -; domain=myasterisk.dom -; domain=customer.com,customer-context -; -; In addition, all the 'default' domains associated with a server should be -; added if incoming request filtering is desired. -; autodomain=yes -; -; To disallow requests for domains not serviced by this server: -; allowexternaldomains=no - -;domain=mydomain.tld,mydomain-incoming - ; Add domain and configure incoming context - ; for external calls to this domain -;domain=1.2.3.4 ; Add IP address as local domain - ; You can have several "domain" settings -;allowexternaldomains=no ; Disable INVITE and REFER to non-local domains - ; Default is yes -;autodomain=yes ; Turn this on to have Asterisk add local host - ; name and local IP to domain list. - -; fromdomain=mydomain.tld ; When making outbound SIP INVITEs to - ; non-peers, use your primary domain "identity" - ; for From: headers instead of just your IP - ; address. This is to be polite and - ; it may be a mandatory requirement for some - ; destinations which do not have a prior - ; account relationship with your server. - -;------------------------------ Advice of Charge CONFIGURATION -------------------------- -; snom_aoc_enabled = yes; ; This options turns on and off support for sending AOC-D and - ; AOC-E to snom endpoints. This option can be used both in the - ; peer and global scope. The default for this option is off. - - -;------------------------------ 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". -;----------------------------------------------------------------------------------- - -[authentication] -; Global credentials for outbound calls, i.e. when a proxy challenges your -; Asterisk server for authentication. These credentials override -; any credentials in peer/register definition if realm is matched. -; -; This way, Asterisk can authenticate for outbound calls to other -; realms. We match realm on the proxy challenge and pick an set of -; credentials from this list -; Syntax: -; auth = :@ -; auth = #@ -; Example: -auth=666:666@tolapai -; -; You may also add auth= statements to [peer] definitions -; Peer auth= override all other authentication settings if we match on realm - -;------------------------------------------------------------------------------ -; DEVICE CONFIGURATION -; -; The SIP channel has two types of devices, the friend and the peer. -; * The type=friend is a device type that accepts both incoming and outbound calls, -; where Asterisk match on the From: username on incoming calls. -; (A synonym for friend is "user"). This is a type you use for your local -; SIP phones. -; * The type=peer also handles both incoming and outbound calls. On inbound calls, -; Asterisk only matches on IP/port, not on names. This is mostly used for SIP -; trunks. -; -; For device names, we recommend using only a-z, numerics (0-9) and underscore -; -; For local phones, type=friend works most of the time -; -; If you have one-way audio, you probably have NAT problems. -; If Asterisk is on a public IP, and the phone is inside of a NAT device -; you will need to configure nat option for those phones. -; Also, turn on qualify=yes to keep the nat session open -; -; Configuration options available -; -------------------- -; context -; callingpres -; permit -; deny -; secret -; md5secret -; remotesecret -; transport -; dtmfmode -; directmedia -; nat -; callgroup -; pickupgroup -; language -; allow -; disallow -; insecure -; trustrpid -; progressinband -; promiscredir -; useclientcode -; accountcode -; setvar -; callerid -; amaflags -; callcounter -; busylevel -; allowoverlap -; allowsubscribe -; allowtransfer -; ignoresdpversion -; subscribecontext -; template -; videosupport -; maxcallbitrate -; rfc2833compensate -; mailbox -; session-timers -; session-expires -; session-minse -; session-refresher -; t38pt_usertpsource -; regexten -; fromdomain -; fromuser -; host -; port -; qualify -; defaultip -; defaultuser -; rtptimeout -; rtpholdtimeout -; sendrpid -; outboundproxy -; rfc2833compensate -; callbackextension -; registertrying -; timert1 -; timerb -; qualifyfreq -; t38pt_usertpsource -; contactpermit ; Limit what a host may register as (a neat trick -; contactdeny ; is to register at the same IP as a SIP provider, -; ; then call oneself, and get redirected to that -; ; same location). -; directmediapermit -; directmediadeny -; unsolicited_mailbox -; use_q850_reason -; maxforwards - -;[sip_proxy] -; For incoming calls only. Example: FWD (Free World Dialup) -; We match on IP address of the proxy for incoming calls -; since we can not match on username (caller id) -;type=peer -;context=from-fwd -;host=fwd.pulver.com - -;[sip_proxy-out] -;type=peer ; we only want to call out, not be called -;remotesecret=guessit ; Our password to their service -;defaultuser=yourusername ; Authentication user for outbound proxies -;fromuser=yourusername ; Many SIP providers require this! -;fromdomain=provider.sip.domain -;host=box.provider.com -;transport=udp,tcp ; This sets the default transport type to udp for outgoing, and will -; ; accept both tcp and udp. The default transport type is only used for -; ; outbound messages until a Registration takes place. During the -; ; peer Registration the transport type may change to another supported -; ; type if the peer requests so. - -;usereqphone=yes ; This provider requires ";user=phone" on URI -;callcounter=yes ; Enable call counter -;busylevel=2 ; Signal busy at 2 or more calls -;outboundproxy=proxy.provider.domain ; send outbound signaling to this proxy, not directly to the peer -;port=80 ; The port number we want to connect to on the remote side - ; Also used as "defaultport" in combination with "defaultip" settings - -;--- sample definition for a provider -;[provider1] -;type=peer -;host=sip.provider1.com -;fromuser=4015552299 ; how your provider knows you -;remotesecret=youwillneverguessit ; The password we use to authenticate to them -;secret=gissadetdu ; The password they use to contact us -;callbackextension=123 ; Register with this server and require calls coming back to this extension -;transport=udp,tcp ; This sets the transport type to udp for outgoing, and will -; ; accept both tcp and udp. Default is udp. The first transport -; ; listed will always be used for outgoing connections. -;unsolicited_mailbox=4015552299 ; If the remote SIP server sends an unsolicited MWI NOTIFY message the new/old -; ; message count will be stored in the configured virtual mailbox. It can be used -; ; by any device supporting MWI by specifying @SIP_Remote as the -; ; mailbox. - -; -; Because you might have a large number of similar sections, it is generally -; convenient to use templates for the common parameters, and add them -; the the various sections. Examples are below, and we can even leave -; the templates uncommented as they will not harm: - -[basic-options](!) ; a template - dtmfmode=rfc2833 - context=from-office - type=friend - -[natted-phone](!,basic-options) ; another template inheriting basic-options - nat=yes - directmedia=no - host=dynamic - -[public-phone](!,basic-options) ; another template inheriting basic-options - nat=no - directmedia=yes - -[my-codecs](!) ; a template for my preferred codecs - disallow=all - allow=ilbc - allow=g729 - allow=gsm - allow=g723 - allow=ulaw - -[ulaw-phone](!) ; and another one for ulaw-only - disallow=all - allow=ulaw - -;[lol] -;context=default -;type=peer -;host=tolapai -;fromuser=lol -;secret=lol -; -; and finally instantiate a few phones -; -; [2133](natted-phone,my-codecs) -; secret = peekaboo -; [2134](natted-phone,ulaw-phone) -; secret = not_very_secret -; [2136](public-phone,ulaw-phone) -; secret = not_very_secret_either -; ... -; - -; Standard configurations not using templates look like this: -; -;[grandstream1] -;type=friend -;context=from-sip ; Where to start in the dialplan when this phone calls -;callerid=John Doe <1234> ; Full caller ID, to override the phones config - ; on incoming calls to Asterisk -;host=192.168.0.23 ; we have a static but private IP address - ; No registration allowed -;nat=no ; there is not NAT between phone and Asterisk -;directmedia=yes ; allow RTP voice traffic to bypass Asterisk -;dtmfmode=info ; either RFC2833 or INFO for the BudgeTone -;call-limit=1 ; permit only 1 outgoing call and 1 incoming call at a time - ; from the phone to asterisk (deprecated) - ; 1 for the explicit peer, 1 for the explicit user, - ; remember that a friend equals 1 peer and 1 user in - ; memory - ; There is no combined call counter for a "friend" - ; so there's currently no way in sip.conf to limit - ; to one inbound or outbound call per phone. Use - ; the group counters in the dial plan for that. - ; -;mailbox=1234@default ; mailbox 1234 in voicemail context "default" -;disallow=all ; need to disallow=all before we can use allow= -;allow=ulaw ; Note: In user sections the order of codecs - ; listed with allow= does NOT matter! -;allow=alaw -;allow=g723.1 ; Asterisk only supports g723.1 pass-thru! -;allow=g729 ; Pass-thru only unless g729 license obtained -;callingpres=allowed_passed_screen ; Set caller ID presentation - ; See README.callingpres for more information - -;[xlite1] -; Turn off silence suppression in X-Lite ("Transmit Silence"=YES)! -; Note that Xlite sends NAT keep-alive packets, so qualify=yes is not needed -;type=friend -;regexten=1234 ; When they register, create extension 1234 -;callerid="Jane Smith" <5678> -;host=dynamic ; This device needs to register -;nat=yes ; X-Lite is behind a NAT router -;directmedia=no ; Typically set to NO if behind NAT -;disallow=all -;allow=gsm ; GSM consumes far less bandwidth than ulaw -;allow=ulaw -;allow=alaw -;mailbox=1234@default,1233@default ; Subscribe to status of multiple mailboxes -;registertrying=yes ; Send a 100 Trying when the device registers. - -;[snom] -;type=friend ; Friends place calls and receive calls -;context=from-sip ; Context for incoming calls from this user -;secret=blah -;subscribecontext=localextensions ; Only allow SUBSCRIBE for local extensions -;language=de ; Use German prompts for this user -;host=dynamic ; This peer register with us -;dtmfmode=inband ; Choices are inband, rfc2833, or info -;defaultip=192.168.0.59 ; IP used until peer registers -;mailbox=1234@context,2345 ; Mailbox(-es) for message waiting indicator -;subscribemwi=yes ; Only send notifications if this phone - ; subscribes for mailbox notification -;vmexten=voicemail ; dialplan extension to reach mailbox - ; sets the Message-Account in the MWI notify message - ; defaults to global vmexten which defaults to "asterisk" -;disallow=all -;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw! - - -;[polycom] -;type=friend ; Friends place calls and receive calls -;context=from-sip ; Context for incoming calls from this user -;secret=blahpoly -;host=dynamic ; This peer register with us -;dtmfmode=rfc2833 ; Choices are inband, rfc2833, or info -;defaultuser=polly ; Username to use in INVITE until peer registers -;defaultip=192.168.40.123 - ; Normally you do NOT need to set this parameter -;disallow=all -;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw! -;progressinband=no ; Polycom phones don't work properly with "never" - - -;[pingtel] -;type=friend -;secret=blah -;host=dynamic -;insecure=port ; Allow matching of peer by IP address without - ; matching port number -;insecure=invite ; Do not require authentication of incoming INVITEs -;insecure=port,invite ; (both) -;qualify=1000 ; Consider it down if it's 1 second to reply - ; Helps with NAT session - ; qualify=yes uses default value -;qualifyfreq=60 ; Qualification: How often to check for the - ; host to be up in seconds - ; Set to low value if you use low timeout for - ; NAT of UDP sessions -; -; Call group and Pickup group should be in the range from 0 to 63 -; -;callgroup=1,3-4 ; We are in caller groups 1,3,4 -;pickupgroup=1,3-5 ; We can do call pick-p for call group 1,3,4,5 -;defaultip=192.168.0.60 ; IP address to use if peer has not registered -;deny=0.0.0.0/0.0.0.0 ; ACL: Control access to this account based on IP address -;permit=192.168.0.60/255.255.255.0 -;permit=192.168.0.60/24 ; we can also use CIDR notation for subnet masks -;permit=2001:db8::/32 ; IPv6 ACLs can be specified if desired. IPv6 ACLs - ; apply only to IPv6 addresses, and IPv4 ACLs apply - ; only to IPv4 addresses. - -;[cisco1] -;type=friend -;secret=blah -;qualify=200 ; Qualify peer is no more than 200ms away -;nat=yes ; This phone may be natted - ; Send SIP and RTP to the IP address that packet is - ; received from instead of trusting SIP headers -;host=dynamic ; This device registers with us -;directmedia=no ; Asterisk by default tries to redirect the - ; RTP media stream (audio) to go directly from - ; the caller to the callee. Some devices do not - ; support this (especially if one of them is - ; behind a NAT). -;defaultip=192.168.0.4 ; IP address to use until registration -;defaultuser=goran ; Username to use when calling this device before registration - ; Normally you do NOT need to set this parameter -;setvar=CUSTID=5678 ; Channel variable to be set for all calls from or to this device -;setvar=ATTENDED_TRANSFER_COMPLETE_SOUND=beep ; This channel variable will - ; cause the given audio file to - ; be played upon completion of - ; an attended transfer. - -;[pre14-asterisk] -;type=friend -;secret=digium -;host=dynamic -;rfc2833compensate=yes ; Compensate for pre-1.4 DTMF transmission from another Asterisk machine. - ; You must have this turned on or DTMF reception will work improperly. -;t38pt_usertpsource=yes ; Use the source IP address of RTP as the destination IP address for UDPTL packets - ; if the nat option is enabled. If a single RTP packet is received Asterisk will know the - ; external IP address of the remote device. If port forwarding is done at the client side - ; then UDPTL will flow to the remote device. - -[loadtester1] -transport = udp -directmedia = no -context = default -callerid = "Loadtester1" -secret = loadtester1 -type = friend - -[loadtester2] -transport = udp -directmedia = no -context = default -callerid = "Loadtester2" -secret = loadtester2 -type = friend -host = 127.0.0.1 -port = 5070 - -[phone1] -transport = udp -directmedia = no -context = default -callerid = "Phone 1" -secret = phone1 -type = friend -host = dynamic diff --git a/full_IO/xhd/system.conf b/full_IO/xhd/system.conf deleted file mode 100644 index 39837f3..0000000 --- a/full_IO/xhd/system.conf +++ /dev/null @@ -1,44 +0,0 @@ -# Autogenerated by /usr/sbin/dahdi_genconf on Fri Apr 20 18:08:28 2012 -# If you edit this file and execute /usr/sbin/dahdi_genconf again, -# your manual changes will be LOST. -# Dahdi Configuration File -# -# This file is parsed by the Dahdi Configurator, dahdi_cfg -# -# Span 1: B4/0/1 "B4XXP (PCI) Card 0 Span 1" (MASTER) -span=1,1,0,ccs,ami,te -bchan=1-2 -hardhdlc=3 -echocanceller=mg2,1-2 - -# Span 2: B4/0/2 "B4XXP (PCI) Card 0 Span 2" -span=2,2,0,ccs,ami,te -bchan=4-5 -hardhdlc=6 -echocanceller=mg2,4-5 - -# Span 3: B4/0/3 "B4XXP (PCI) Card 0 Span 3" -span=3,3,0,ccs,ami,te -bchan=7-8 -hardhdlc=9 -echocanceller=mg2,7-8 - -# Span 4: B4/0/4 "B4XXP (PCI) Card 0 Span 4" YELLOW -span=4,4,0,ccs,ami,te -bchan=10-11 -hardhdlc=12 -echocanceller=mg2,10-11 - -# Span 5: WCTDM/4 "Wildcard TDM400P REV I Board 5" -fxoks=13 -echocanceller=mg2,13 -fxoks=14 -echocanceller=mg2,14 -fxsks=15 -echocanceller=mg2,15 -# channel 16, WCTDM/4/3, no module. - -# Global data - -loadzone = us -defaultzone = us -- cgit v1.2.3