--- /dev/null
+all:
+
+deb:
+ dpkg-buildpackage -rfakeroot -tc
+
+clean:
+
+install: install-conf
+
+install-conf:
+ mkdir -p $(DESTDIR)/etc/asterisk/auf
+ cp etc-asterisk/* $(DESTDIR)/etc/asterisk/
+
--- /dev/null
+reload: iax.local.auto extensions.local.auto sip.local.auto voicemail.local.auto /srv/www/ipphones/utilisateurs
+ # /etc/init.d/asterisk reload
+ touch reload
+
+iax.local.auto : utilisateurs ast-conf
+ perl -w ./ast-conf iax <utilisateurs >$@
+
+
+voicemail.local.auto : utilisateurs ast-conf
+ perl -w ./ast-conf voicemail <utilisateurs >$@
+
+sip.local.auto : utilisateurs ast-conf
+ perl -w ./ast-conf sip <utilisateurs >$@
+
+extensions.local.auto : utilisateurs ast-conf
+ perl -w ./ast-conf ext <utilisateurs >$@
+
+/srv/www/ipphones/utilisateurs : utilisateurs ast-conf
+ perl -w ./ast-conf autoconf <utilisateurs >utilisateurs-autoconf
+ mv utilisateurs-autoconf $@
--- /dev/null
+#!/usr/bin/perl -w
+# -*-cperl-*-
+# $Id$
+################################################################################
+
+# fichier pour recuperer le prefixe local (pour peupler le champ
+# callerid)
+my $conf_asterisk="/etc/asterisk/auf/extensions-globals.local";
+
+# fichier ou on stocke les infos pour le cgi d'autoconf
+my $autoconf_old="/srv/www/ipphones/utilisateurs";
+
+################################################################################
+
+use strict;
+use Switch;
+
+sub table_iax($$$$$);
+sub table_sip($$$$$);
+sub table_ext($$);
+sub table_voicemail($$$$);
+sub table_autoconf($$);
+sub usage();
+
+my %anciennes_extensions=();
+
+# type de table a generer
+my $table=(@ARGV ? $ARGV[0] : "undef");
+my $tables_connues="(iax|sip|ext|autoconf|voicemail)";
+
+usage() unless ($table =~ /^$tables_connues$/);
+
+my $PREFIXE=0;
+
+# lire la conf'
+open CONF,"$conf_asterisk" or die "$conf_asterisk : $!";
+while(<CONF>)
+ {
+ $PREFIXE = $1 if(/^AUFPREFIXLOCAL\s*=\s*(\d+)/);
+ }
+close CONF;
+
+die "il manque la variable AUFPREFIXLOCAL dans $conf_asterisk" unless ($PREFIXE);
+
+print ";\n;\n; ATTENTION. LA CREATION DE CE FICHIER EST AUTOMATIQUE. MODIFIER LE FICHIER 'utilisateurs'\n; PUIS LANCER UN 'make'\n;\n;\n"
+ unless ($table eq "autoconf");
+
+while(<STDIN>)
+{
+ chomp;
+
+ # passer les lignes vides
+ next if(/^\s*$/);
+
+ my ($ext,$ip,$username,$fullname,$pass,$passmail)=split(/,/);
+
+ die "pas de mot de passe ?" unless(defined($pass));
+
+ $ip = "dynamic" unless($ip);
+
+ switch ($table) {
+ case "iax" { table_iax($ext,$username,$fullname,$pass,$ip);}
+ case "sip" { table_sip($ext,$username,$fullname,$pass,$ip);}
+ case "ext" { table_ext($ext,$username);}
+ case "autoconf" { table_autoconf($ext,$username);}
+ case "voicemail" { table_voicemail($ext,$username,$fullname,$passmail);}
+ else
+ {
+ }
+ }
+}
+
+# a changer pour la table "iax" : fixer l'ip quand elle est connue
+sub table_iax($$$$$)
+{
+ my ($ext,$username,$fullname,$pass,$ip) = @_;
+
+ my $HOST= ($ip ne "dynamic" ? "defaultip=$ip":"");
+
+ print <<EOT ;
+[$username]
+type=friend
+callerid="$fullname" <$PREFIXE$ext>
+mailbox=$ext\@AUF
+user=$username
+secret=$pass
+context=AUF
+host=dynamic
+disallow=all
+allow=ulaw
+$HOST
+
+EOT
+
+}
+
+
+# a changer pour la table "iax" : fixer l'ip quand elle est connue
+sub table_sip($$$$$)
+{
+ my ($ext,$username,$fullname,$pass,$ip) = @_;
+
+ print <<EOT ;
+[$username]
+type=friend
+callerid="$fullname" <$PREFIXE$ext>
+mailbox=$ext\@default
+username=$username
+secret=$pass
+context=AUF
+host=dynamic
+disallow=all
+allow=ulaw
+
+EOT
+
+}
+
+sub table_ext($$)
+{
+ my ($ext,$username) = @_;
+ print <<EOT ;
+exten => $ext,1,Macro(AUFDial,$username)
+EOT
+
+}
+
+sub table_voicemail($$$$)
+{
+ my ($ext,$username,$fullname,$passmail) = @_;
+ print <<EOT ;
+$ext=>-$passmail,$fullname,$username\@auf.org
+EOT
+
+}
+
+sub table_autoconf($$)
+{
+ my ($ext,$username) = @_;
+ my ($old_ext,$version) = ancienne_extension($username);
+
+ # on utlisate l'extension "globale" pour configurer les telephones
+ $ext = "$PREFIXE$ext";
+
+ $version ++ if($ext != $old_ext);
+ print "$username $ext $version\n";
+}
+
+sub usage()
+ {
+ print STDERR "usage : $0 $tables_connues <utilisateurs\n";
+ exit 1;
+ }
+
+# retourne le numero de version de cette extension
+sub ancienne_extension($)
+{
+ my ($utilisateur) = @_;
+ my ($ext,$version) = (0,0);
+
+ unless(%anciennes_extensions)
+ {
+ if(open FILE,"$autoconf_old")
+ {
+ while(<FILE>)
+ {
+ my ($user,$ext,$version)=("undef","0","0");
+ my @ligne = split(/\s+/);
+
+ $user = $ligne[0] if (@ligne > 0);
+ $ext = $ligne[1] if (@ligne > 1);
+ $version = $ligne[2] if (@ligne > 2);
+ $anciennes_extensions{$user}="$ext,$version";
+ }
+ close FILE;
+ }
+ $anciennes_extensions{"init"}="fait";
+ }
+ ($ext,$version) = split(/,/,$anciennes_extensions{$utilisateur}) if (defined($anciennes_extensions{$utilisateur}));
+ return ($ext,$version);
+}
--- /dev/null
+107,10.196.1.98,jerome.santini,Jerome Santini,motdepasse,CODEVOICEMAL
--- /dev/null
+#!/usr/bin/perl -w
+
+################################################################################
+# CONFIGURATION
+################################################################################
+
+# a deplacer dans un fichier de conf "ipphones.conf" dans le repertoire courant
+
+my $dir = "/srv/www/ipphones";
+my $firmware_re = '^ipphone5-(\d{3})-auf(\d{1,2}).bin';
+my $base_conf = "base.cfg";
+my $utilisateurs = "utilisateurs";
+
+my $debug=0;
+
+################################################################################
+use strict;
+sub current_firmware();
+sub configuration_version($);
+sub version_file($);
+sub version_extension($);
+sub extension_utilisateur($);
+sub texte_a_envoyer($);
+sub fichier_a_envoyer($);
+sub envoyer_texte();
+
+my $req = $ENV{QUERY_STRING};
+
+my $texte_retour = "";
+
+my ($type,$file) = split(/=/,$req);
+
+die "type : $type" unless($type =~ m/^(set|cfg)$/);
+die "file : $file" unless($file =~ m/^[a-z][.-a-z]*/);
+
+print "$type/$file\n" if($debug);
+
+chdir($dir);
+
+if($type eq "set")
+{
+my $firmware = current_firmware();
+my $configuration = configuration_version($file);
+
+texte_a_envoyer(<<EOT);
+BIN $firmware
+CFG $file.cfg:$configuration
+END
+EOT
+}
+elsif($type eq "cfg")
+{
+ texte_a_envoyer("[SETTING]\n");
+
+ # balancer le fichier general, s'il existe
+ if(version_file("$base_conf"))
+ {
+ texte_a_envoyer("##\n## FICHIER : $base_conf\n##\n");
+ fichier_a_envoyer("$base_conf")
+ }
+
+ # quelle extension pour cette personne ?
+ if(my $extension = extension_utilisateur($file))
+ {
+ texte_a_envoyer("phonenumber = $extension\n");
+ }
+ # balancer le fichier specifique, s'il existe
+ if(version_file("$file.cfg"))
+ {
+ texte_a_envoyer("##\n## FICHIER : $file.cfg\n##\n");
+ fichier_a_envoyer("$file.cfg") ;
+ }
+ texte_a_envoyer("[END]\n");
+}
+
+envoyer_texte();
+
+exit 0;
+
+
+################################################################################
+# FONCTIONS UTILITAIRES
+################################################################################
+
+sub version_firmware($)
+{
+ my ($nom_firmware) = @_;
+ my $retour = '00000';
+ if($nom_firmware =~ /$firmware_re/)
+ {
+ $retour = sprintf("%d%02d",$1,$2);
+ }
+ return ($retour);
+}
+
+# trouver le firmware le plus recent
+sub current_firmware()
+{
+ my $retour="erreur";
+ open LS,"ls|" or die "ls: $!";
+ my @firmware = sort { version_firmware($a) cmp version_firmware($b); } (grep {/$firmware_re/} <LS>);
+ close LS;
+ if(@firmware && $firmware[$#firmware] =~ /$firmware_re/)
+ {
+ my $nom_firmware = $firmware[$#firmware];
+ chomp $nom_firmware;
+ $retour = "$nom_firmware:".version_firmware($nom_firmware);
+ }
+ return $retour;
+}
+
+# retourne le numero de serie d'un fichier de conf
+# zero si le fichier n'existe pas
+sub version_file($)
+{
+ my ($file) = @_;
+ my $retour=0;
+
+ print "FILE:$file\n" if($debug);
+
+ if(open FILE,$file)
+ {
+ while(<FILE>)
+ {
+ $retour = $1 if(/#\s*SERIE\s*:\s*(\d+)/);
+ }
+ close FILE;
+ }
+ return $retour;
+}
+
+# retourne le numero de serie associe a une extension
+# 0 si pas de numero de version
+sub version_extension($)
+{
+ my ($utilisateur) = @_;
+
+ my $version = 0;
+ if(open(FILE,"$utilisateurs"))
+ {
+ while(<FILE>)
+ {
+ $version = $1 if(/^$utilisateur\s+\d+\s+(\d+)/);
+ }
+ close FILE;
+ }
+ return $version;
+}
+
+# Calculer la version associee a un utilisateur
+sub configuration_version($)
+{
+ my $retour = 0;
+ my ($user) = @_;
+
+ $retour = version_file($base_conf) + version_file("$user.cfg");
+ $retour += version_extension($user);
+}
+
+
+# retourne l'extension associee a un utilisateurs, si le fichier $utilisateurs existe bien
+# et zero si pas d'info disponible
+sub extension_utilisateur($)
+{
+ my ($utilisateur) = @_;
+ my $extension = 0;
+ if(open(FILE,"$utilisateurs"))
+ {
+ while(<FILE>)
+ {
+ $extension = $1 if(/^$utilisateur\s+(\d+)/);
+ }
+ close FILE;
+ }
+ return $extension;
+}
+
+################################################################################
+# CGI !!
+
+# a ajouter au texte de reponse a la requete
+sub texte_a_envoyer($)
+{
+ $texte_retour .= $_[0];
+}
+
+sub fichier_a_envoyer($)
+{
+ my ($fichier) = @_;
+ open FILE,$fichier or die "$fichier : $!";
+ map {texte_a_envoyer($_)} (grep {! /^(#.*|\s*)$/} <FILE>);
+ close FILE;
+}
+
+# reponse effective a la requete : balancer tout ce qui a ete accumule via a_envoyer()
+sub envoyer_texte()
+{
+ my $longueur = length($texte_retour);
+ print "Content-Length: $longueur\nContent-Type: text/plain\n\n";
+ print $texte_retour;
+}
--- /dev/null
+#\r
+# Configuration de base pour tous les postes\r
+#\r
+# NUMERO DE SERIE DE LA CONFIGURATION : doit être incrémenté à chaque\r
+# modification\r
+#\r
+# Attention ! Laisser cette ligne en commentaire !!\r
+# SERIE:4\r
+\r
+# Paramètres protocoles IAX2\r
+#############################\r
+\r
+protocol = iax2\r
+service = 1\r
+\r
+# serviceaddr : adresse du serveur IAX2 (asterisk)\r
+serviceaddr = voip.sn.auf\r
+registerttl = 120\r
+# phonenumber: numéro de téléphone de l'appareil (format 00paysnuméro)\r
+# phonenumber = 002211221\r
+# account : nom du compte IAX\r
+# account = thomas.noel\r
+# pin : mot de passe du compte IAX\r
+# pin = zutdezut\r
+# localport = 4569\r
+# dmtf : 0=inband audio, 1=outband signal\r
+dtmf = 1\r
+remotedialplan = 0\r
+# phonenumber = 00999\r
+\r
+# Paramètres système\r
+#####################\r
+\r
+deviceattr = 1\r
+\r
+## Mise à jour automatique au démarrage\r
+# upgradetype : 0=disable, 1=all, 2=mac, 3=pppid, 4=account, 5=phonenumber\r
+upgradetype = 4\r
+upgradeaddr = http://ipphones.sn.auf\r
+\r
+## Heure\r
+\r
+# sntpip : adresse IP du serveur NTP\r
+sntpip = 213.154.65.66\r
+# timezone : fuseau horaire, voir l'interface web pour la liste complete\r
+timezone = 26\r
+# daylight : suivre l'heure d'été (0/1)\r
+daylight = 0\r
+\r
+## Debug\r
+# Laisser à "no check" sauf si vous savez ce que vous faites\r
+# debug : 0=disable, 1=output, 2=output all, 3=remote debug, 4=no check\r
+debug = 4\r
+\r
+\r
+vlan = 0\r
+vlanid = 0\r
+\r
+## IPv4\r
+\r
+# iptype : type de configuration IP : 0=static, 1=dhcp, 2=pppoe, 3=modem\r
+\r
+# iptype=0\r
+# ip = 192.168.1.100\r
+# subnetmask = 255.255.255.0\r
+# router = 192.168.1.1\r
+# dns = 192.168.1.1\r
+# dns2 = 192.168.1.2\r
+\r
+iptype=1\r
+\r
+# iptype=2\r
+# pppid = \r
+# ppppin = \r
+# dns = 192.168.1.1\r
+# dns2 = 192.168.1.2\r
+\r
+# iptype=3\r
+# pppid = \r
+# ppppin = \r
+\r
+\r
+# Paramètres audio\r
+###################\r
+\r
+# codecs : 0=g729, 1=g7231, 2=g711u, 3=g711a, 4=gsm, 5=iLBDC, 6=null\r
+codec1 = 2\r
+codec2 = 6\r
+codec3 = 6\r
+codec4 = 6\r
+codec5 = 6\r
+codec6 = 6\r
+\r
+# Voice Activity Detection\r
+vad = 1\r
+# Automatic Gain Control\r
+agc = 0\r
+# Audio Echo Canceller\r
+aec = 1\r
+\r
+audioframes = 2\r
+jittersize = 0\r
+\r
+# ilbcpayload : spécifique au codec ILBC\r
+ilbcpayload = 97\r
+# 6.3k : haute résolution pour le codec g.723.1 (0/1)\r
+6.3k = 1\r
+\r
+## Volumes\r
+# Combiné\r
+handsetin = 7\r
+handsetout = 20\r
+# Mode mains libres\r
+speakerin = 12\r
+speakerout = 20\r
+\r
+## Sonnerie\r
+# ringtype : 0=dtmf, 1=not disturb, 2=user define, 3=advanced\r
+ringtype = 0\r
+\r
+# Paramètres de numérotation\r
+#############################\r
+\r
+# dialplan : 0=disable, 1=enable, 2=dialnum, 3=prefix, 4=hotline\r
+dialplan = 0\r
+dialnumber = \r
+dddcode = 10\r
+iddcode = \r
+iddprefix = \r
+dddprefix = \r
+# innerline : 0=disable, 1=enable, 2=omit prefix\r
+innerline = 0\r
+innerlineprefix = \r
+\r
+# très important : permet de recevoir un appel alors qu'on est déjà en communication \r
+callwaiting = 1\r
+fwdnumber = \r
+fwdpoweroff = 0\r
+fwdnoanswer = 0\r
+fwdalways = 0\r
+fwdbusy = 0\r
+answer = 30\r
+digitmap = 0\r
+\r
--- /dev/null
+<VirtualHost *>
+ ServerName ipphones.sn.auf
+ RewriteEngine on
+ RewriteRule ^/(.*)\.(set|cfg)$ /autoconfig?$2=$1 [passthrough]
+ ScriptAlias /autoconfig /srv/www/ipphones/autoconfig-username.cgi
+ DocumentRoot /srv/www/ipphones
+</VirtualHost>
--- /dev/null
+oulimata.dieye 002211101 0
+michel.guerrero 002211102 0
+janine.magnier 002211103 0
+diaw.diagne 002211104 0
+abdelkader.galy 002211105 0
+fanta.badji 002211106 0
+jerome.santini 002221107 7
+francois.sambou 002211109 0
+aminata.sakho 002211110 0
+josette.shaje-tshiluila 002211116 0
+matel.kane 002211118 0
+fabar.sane 002211123 0
+thioro.sow 002211124 0
+balla.fall 002211202 0
+zoser.biziki 002211203 0
+thomas.noel 002211206 0
+cheikh.fall 002211217 0
+bienvenu.gbedeko 002211219 0
+jean-pierre.salleras 002211222 0
+faustina.mekui-biyoo 002211223 0
--- /dev/null
+#!/bin/bash
+# $Id$
+
+# pour faire le bilan des version de firmware et de configuration pour les telephones connus
+
+WWW=/srv/www/ipphones
+BASE=$WWW/base.cfg
+UTILISATEURS=/etc/asterisk/auf/utilisateurs
+VERSIONS=$WWW/utilisateurs
+
+# retourne le username associe a une ip
+username_ip () {
+ grep ",$1," $UTILISATEURS|cut -d, -f 3
+}
+
+
+version_fichier () {
+ if [ -f $1 ] ; then
+ sed 's/^.*SERIE *: *\([0-9]*\).*$/\1/p;d' $1
+ else
+ echo 0
+ fi
+}
+
+# retourne la version de conf' associe a un utilisateur particulier
+version_username () {
+ version_ext=$(grep "^$1 " $VERSIONS |cut -d ' ' -f 3)
+ version_cfg=$(version_fichier "$WWW/$user.cfg")
+ echo $(($version_ext + $version_cfg))
+}
+
+VERSION_BASE=$(version_fichier $BASE)
+
+ echo " IP Version telephone Serveur"
+
+# pour verifier la version du firmware sur les telephones connus :
+cut -d, -f 2 /etc/asterisk/auf/utilisateurs|egrep -v '^\s*$'|sort -n|
+while read ip
+ do
+ user=$(username_ip $ip)
+ version=$(( $(version_username $user) + $VERSION_BASE))
+ VERSION=$(wget -qO - http://$ip|grep AUF|sed 's|.*<TITLE>||;s|</TITLE>.*||')
+ printf "%-12s | %24s | CFG%02d |\n" "$ip" "$VERSION" "$version"
+done
--- /dev/null
+asterisk-config-auf
+-------------------
+
+Configuration spécifique à l'AUF pour Asterisk.
+
+Ce paquet installe des versions de base des fichiers /etc/asterisk/*.conf
+qui font des #inclure.
+
+Il créée aussi des fichiers dans /etc/asterisk/auf/ par défaut pour la gestion
+des clients :
+ /etc/asterisk/auf/iax.local : comptes IAX2
+ /etc/asterisk/auf/sip.local : comptes IAX2
+ /etc/asterisk/auf/extensions.local : numérotation associée.
+
+Ce sont ces fichiers (et aucun autre) qu'il faut configurer pour ajouter des
+postes téléphoniques locaux à l'implantatin.
+
+
+Le reste de la configuration (gestion des connexions inter-implantation) est
+contenu dans le paquet asterisk-config-auf-connexions. C'est ce paquet, plus
+petit, qui changera à chaque nouveau noeud ajouté.
+
+ -- Thomas NOEL <thomas.noel@auf.org>, Tue, 13 Dec 2005 15:45:34 +0100
--- /dev/null
+asterisk-config-auf (1.4-24) unstable; urgency=low
+
+ * rtp.conf: SIP n'utilisera rtp qu'entre 61001/udp et 62000/udp, pour ceux
+ qui veulent laisser passer SIP sur leur pare-feu sans passer par
+ sip_conntrack (qui ne marche sans doute pas toujours vu les "n" façons de
+ faire du SIP et des annonces rtp avec)
+ * iax.conf : on retire ilbc et speex des codecs autorisés, ils posent encore
+ des soucis (notamment pas de liaison ilbc<->ulaw et autres joyeusetés)
+
+ -- Thomas Noel <thomas.noel@auf.org> Wed, 27 Feb 2008 16:21:05 +0000
+
+asterisk-config-auf (1.4-23) unstable; urgency=low
+
+ * sip.conf : ajout peer SIP vers le pont in2p3
+ * extensions.conf : *341 appelle le pont in2p3
+ * sip.conf : par defaut "dtmfmode=auto" et autorisation des codecs video
+ h263p et h264
+
+ -- Thomas Noel <thomas.noel@auf.org> Wed, 27 Feb 2008 15:28:41 +0000
+
+asterisk-config-auf (1.4-22) unstable; urgency=low
+
+ * debian/config: un petit 2>/dev/null pour éviter un message pas joli lors
+ d'une installation fraiche (sans conséquence)
+ * debian/control: Architecture: all voyons Thomas mais mais mais
+
+ -- Thomas Noel <thomas.noel@auf.org> Tue, 26 Feb 2008 18:47:12 +0000
+
+asterisk-config-auf (1.4-21) unstable; urgency=low
+
+ * debian/templates: dans la vie, l'essentiel, c'est d'insister. Et aussi de
+ ne pas utiliser debconf quand ça sert à rien, si j'avais su j'aurais pas
+ venu et tout ça
+
+ -- Thomas Noel <thomas.noel@auf.org> Tue, 26 Feb 2008 16:43:56 +0000
+
+asterisk-config-auf (1.4-20) unstable; urgency=low
+
+ * debian/templates: dans le genre detail qui tue, un "." oublié au début
+ d'une ligne d'un templates debconf... et boum...
+
+ -- Thomas Noel <thomas.noel@auf.org> Tue, 26 Feb 2008 16:35:08 +0000
+
+asterisk-config-auf (1.4-19) unstable; urgency=low
+
+ * debian/config: cette fois ça devrait marcher, avec un message plus clair
+ notamment en cas de première installation d'Asterisk (message moins
+ alarmant)
+
+ -- Thomas Noel <thomas.noel@auf.org> Tue, 26 Feb 2008 15:59:47 +0000
+
+asterisk-config-auf (1.4-18) unstable; urgency=low
+
+ * debian/config: aucune question a poser si aucune cle privee...
+
+ -- Thomas Noel <thomas.noel@auf.org> Tue, 26 Feb 2008 15:47:32 +0000
+
+asterisk-config-auf (1.4-17) unstable; urgency=low
+
+ * etc-asterisk/manager.conf : activation de l'AMI par defaut sur
+ 127.0.0.1:5038/tcp, pour de futures operations... Sur 127.0.0.1 le
+ risque de sécurité est minimal.
+
+ -- Thomas Noel <thomas.noel@auf.org> Tue, 26 Feb 2008 09:52:17 +0000
+
+asterisk-config-auf (1.4-16) unstable; urgency=low
+
+ * etc-asterisk/iaxprov.conf: j'ajoute ce fichier, car il suit un nouveau format
+ au moins pour la variable "tos". Ca evite les warnings qui se produisent
+ si on laisse trainer le fichier de 1.2. NOTE : ce fichier ne sert a RIEN,
+ c'est pour du matos iax du 18eme siecle.
+
+ -- Thomas Noel <thomas.noel@auf.org> Wed, 20 Feb 2008 18:49:10 +0000
+
+asterisk-config-auf (1.4-15) unstable; urgency=low
+
+ * debian/config: mkdir -p /usr/share/asterisk/keys avant toute autre, pour
+ etre sur qu'il existe...
+
+ -- Thomas Noel <thomas.noel@auf.org> Wed, 20 Feb 2008 18:22:45 +0000
+
+asterisk-config-auf (1.4-14) unstable; urgency=low
+
+ * debian/control: dependance sur asterisk-app-conference 2.0 car
+ extensions.conf utilise une syntaxe pour cette version (plus de /S).
+ Effet de bord interessant : devrait aider un "aptitude install asterisk"
+ a faire l'upgrade depuis 1.2 directement.
+ * debian/control: mise a jour description (c'est quoi ast-moh-auf)
+
+ -- Thomas Noel <thomas.noel@auf.org> Wed, 20 Feb 2008 15:03:37 +0000
+
+asterisk-config-auf (1.4-13) unstable; urgency=low
+
+ * debian/config: copie des clés vers /usr/share, ça se passe maintenant ici...
+ C'est beurk ? JE SAIS ! Espérons que ça marche en tout cas, parce que
+ je fatigue un peu à étudier le processus d'upgrade dpkg dans les détails
+
+ -- Thomas Noel <thomas.noel@auf.org> Tue, 19 Feb 2008 16:39:15 +0000
+
+asterisk-config-auf (1.4-12) unstable; urgency=low
+
+ * debian/preinst: retiré, c'est pas le bon endroit pour migrer les clefs
+ vers /usr/share
+ * extensions.conf: nouvelle syntaxe pour passer en français : Set(CHANNEL(language)=fr)
+ * extensions.conf: retrait du flag /S pour Conference(), il n'a plus le même
+ sens avec app-conference 2.0
+
+ -- Thomas Noel <thomas.noel@auf.org> Tue, 19 Feb 2008 15:59:38 +0000
+
+asterisk-config-auf (1.4-11) unstable; urgency=low
+
+ * etc-asterisk/zapata.conf : ajouté, avec seulement un include
+ * debian/postinst : creation d'un auf/zapata.local s'il n'existe pas (pour
+ ne pas faire planter l'include de zapata.conf)
+
+ -- Thomas Noel <thomas.noel@auf.org> Tue, 19 Feb 2008 12:11:57 +0000
+
+asterisk-config-auf (1.4-10) unstable; urgency=low
+
+ * debian/preinst: en cas d'upgrade, copie des clefs vers /usr/share
+
+ -- Thomas Noel <thomas.noel@auf.org> Tue, 19 Feb 2008 12:02:09 +0000
+
+asterisk-config-auf (1.4-9) unstable; urgency=low
+
+ * debian/templates, debian/config : clefs dans /usr/share/asterisk/keys (et
+ non plus dans /var/lib/asterisk/keys)
+
+ -- Thomas Noel <thomas.noel@auf.org> Tue, 19 Feb 2008 10:42:12 +0000
+
+asterisk-config-auf (1.4-8) unstable; urgency=low
+
+ * debian/config: tente d'etre le plus ruse possible pour deviner le nom
+ d'implantation voip et le nom de la cle
+ * debian/templates: quelqeus precisions lors des messages affiches à
+ l'écran...
+ * debian/postinst: par defaut, AUFAUTH="auf-ville:[auf-ville]"
+
+ -- Thomas Noel <thomas.noel@auf.org> Mon, 18 Feb 2008 18:23:24 +0000
+
+asterisk-config-auf (1.4-7) unstable; urgency=low
+
+ * debian/postinst: adduser synchro avec celui d'asterisk 1.4
+
+ -- Thomas Noel <thomas.noel@auf.org> Mon, 18 Feb 2008 15:46:35 +0000
+
+asterisk-config-auf (1.4-6) unstable; urgency=low
+
+ * extensions.conf : on utilise DPickup a la place de Pickup. Pickup etait
+ dans asterisk 1.2-auf la version "bristuff". Dans asterisk 1.4 Pickup
+ reste le Pickup original d'asterisk (avec la notion de groupe, à
+ re-tester) et la version de bristuff s'appelle DPickup.
+ * extensions.conf : "writeprotect=yes" au debut. Le fichier appartient à
+ root donc asterisk ne pourra de toute façon pas le modifier, mais avec
+ writeprotect=yes on a encore une petite protection en plus.
+ * res_snmp.conf : on n'active pas snmp par défaut avant d'avoir bien
+ compris comment ça marche (il faut un snmpd avec agentx activé et tout
+ le toutim, ce n'est pas super super clair)
+
+ -- Thomas Noel <thomas.noel@auf.org> Fri, 8 Feb 2008 09:32:23 +0000
+
+asterisk-config-auf (1.4-5) unstable; urgency=low
+
+ * etc-asterisk/manager.conf : inclure de "auf/manager.local" et non pas .conf...
+ * etc-asterisk/modules.conf : noload res_smdi.so (vraiment inutile pour nous)
+
+ -- Thomas Noel <thomas.noel@auf.org> Wed, 30 Jan 2008 16:09:39 +0000
+
+asterisk-config-auf (1.4-4) unstable; urgency=low
+
+ * debian/postinst: erreur dans les fichiers .local par défaut, les
+ commentaires dans un fichiers asterisk commencent avec un ; et
+ non pas un # ... je fatigue...
+
+ -- Thomas Noel <thomas.noel@auf.org> Wed, 30 Jan 2008 15:38:39 +0000
+
+asterisk-config-auf (1.4-3) unstable; urgency=low
+
+ * debian/postinst: creation de fichier auf/*.local vides car asterisk 1.4
+ annonce (dans les logs) que leur absence fera peut-être un jour planter
+ asterisk... on croit rever mais non, on est vraiment devant un troupeau de
+ gros gros gros nazes
+ * debian/config: quand l'implantation s'appelle "auf-ville" (valeur par défaut)
+ alors on pose forcément la question (db_input high ...)
+
+ -- Thomas Noel <thomas.noel@auf.org> Wed, 30 Jan 2008 15:17:40 +0000
+
+asterisk-config-auf (1.4-2) unstable; urgency=low
+
+ * debian/templates : URL correcte pour le wiki
+ * modules.conf : mise a jour pour ast 1.4 (liste de tous les modules
+ "noload-ables")
+
+ -- Thomas Noel <thomas.noel@auf.org> Wed, 30 Jan 2008 10:43:10 +0000
+
+asterisk-config-auf (1.4-1) unstable; urgency=low
+
+ * adaptation des fichiers pour asterisk 1.4 (ouf....)
+
+ -- Thomas Noel <thomas.noel@auf.org> Tue, 29 Jan 2008 12:48:00 +0000
+
+asterisk-config-auf (1.0-71) unstable; urgency=low
+
+ * extensions.conf : ajout du *15 pour choisir sa sonnerie sur
+ les IP Phones 5
+
+ -- Thomas NOEL <thomas.noel@auf.org> Fri, 9 Feb 2007 13:10:45 +0000
+
+asterisk-config-auf (1.0-70) unstable; urgency=low
+
+ * iax.conf : forcejitterbuffer=yes car les ipphones ne gèrent
+ pas les jitter (on fait plus confiance à Asterisk sur ça)
+ Jitter un peu plus poussés (1500ms de buffer, en espérant
+ que ça casse pas tout)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 6 Feb 2007 18:14:51 +0000
+
+asterisk-config-auf (1.0-69) unstable; urgency=low
+
+ * voicemail.conf : assistance-informatique (at) auf.org comme adresse de
+ courriel d'expédition des messages voicemail
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 6 Feb 2007 17:28:22 +0000
+
+asterisk-config-auf (1.0-68) unstable; urgency=low
+
+ * ajout dependance sur asterisk-moh-auf
+
+ -- Thomas NOEL <thomas.noel@auf.org> Mon, 29 Jan 2007 12:29:20 +0000
+
+asterisk-config-auf (1.0-67) unstable; urgency=low
+
+ * extensions.conf : #include "auf/extensions-macros.local"
+ * voicemail.conf : le courriel rappelle qu'il faut composer *66
+
+ -- Thomas NOEL <thomas.noel@auf.org> Fri, 19 Jan 2007 18:26:33 +0000
+
+asterisk-config-auf (1.0-66) unstable; urgency=low
+
+ * extensions.conf : include "auf/extensions-final.local" à la
+ fin, pour permettre des surcharges finales... peut-être utile...
+
+ -- Thomas NOEL <thomas.noel@auf.org> Fri, 19 Jan 2007 14:37:05 +0000
+
+asterisk-config-auf (1.0-65) unstable; urgency=low
+
+ * features.conf : transferdigittimeout repassé à 3 secondes (est-ce assez
+ long ou finalement trop court ?...)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Fri, 19 Jan 2007 14:34:04 +0000
+
+asterisk-config-auf (1.0-64) unstable; urgency=low
+
+ * ajout dependance sur asterisk-app-conference
+
+ -- Thomas NOEL <thomas.noel@auf.org> Fri, 19 Jan 2007 10:21:37 +0000
+
+asterisk-config-auf (1.0-63) unstable; urgency=low
+
+ * extensions.conf: amélioration AUFAutoConference ; options hH
+ dans le Dial de "AUFDial" (permet de couper un appel en cours avec *10)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Fri, 19 Jan 2007 10:15:05 +0000
+
+asterisk-config-auf (1.0-62) unstable; urgency=low
+
+ * nouveau plan d'adressage : on casse tout. Cohérence avec le
+ firmware 1.56-14 de l'ipphone5
+
+ -- Thomas NOEL <thomas.noel@auf.org> Thu, 18 Jan 2007 20:08:34 +0000
+
+asterisk-config-auf (1.0-61) unstable; urgency=low
+
+ * suppression zapata.conf qui sera toujours spécifique
+ * mise à jour contrib (auf-conf)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Thu, 18 Jan 2007 08:48:59 +0000
+
+asterisk-config-auf (1.0-60) unstable; urgency=low
+
+ * premiere version pour un mode conference un peu plus automatique...
+ mais pas génialement ergonomique ;)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Fri, 12 Jan 2007 17:47:26 +0000
+
+asterisk-config-auf (1.0-59) unstable; urgency=low
+
+ * contrib/ast-conf : gestion du sip.local séparée
+
+ -- Thomas NOEL <thomas.noel@auf.org> Fri, 12 Jan 2007 09:27:36 +0000
+
+asterisk-config-auf (1.0-58) unstable; urgency=low
+
+ * integration de "contrib" dans /usr/share/doc/asterisk-config-auf
+ (merci Jérôme !)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Thu, 11 Jan 2007 17:45:49 +0000
+
+asterisk-config-auf (1.0-57) unstable; urgency=low
+
+ * postinst : ne plus faire de chmod trop bourrins sur /etc/asterisk/auf/*
+ * modules.conf : noload pour func_odbc (oui oui, on se prépare pour le
+ futur backport de 1.2.14...)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Thu, 11 Jan 2007 11:08:14 +0000
+
+asterisk-config-auf (1.0-56) unstable; urgency=low
+
+ * extensions.conf : activation pickup = 89nnn prend un appel qui sonne sur
+ le poste nnn
+ * extensions.conf : force le passage en langue française un peu partout
+ (sinon des fois le père Asterisk il finit par passer en english... et j'ai
+ pas trouvé la variable globale pour ça)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 10 Jan 2007 21:07:39 +0000
+
+asterisk-config-auf (1.0-55) unstable; urgency=low
+
+ * extensions.conf : activation parking
+ * features.conf : ## pour le transfert aveugle (au lieu de # par défaut)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 10 Jan 2007 19:44:51 +0000
+
+asterisk-config-auf (1.0-54) unstable; urgency=low
+
+ * features.conf : laisser 5 secondes à la personne pour composer le numéro
+ du correspondant lors d'un transfert. Les bips lors d'un transferts
+ deviennent des mots ("transfert" ou "abandon") (et petite reorganisation
+ du fichier pour couronner le tout)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 10 Jan 2007 19:17:10 +0000
+
+asterisk-config-auf (1.0-53) unstable; urgency=low
+
+ * iax.conf : incominglimit=2 : un téléphone IP peut recevoir deux appels en
+ même temps
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 10 Jan 2007 16:10:46 +0000
+
+asterisk-config-auf (1.0-52) unstable; urgency=low
+
+ * musiconhold.conf : uniquement en mode "natif" (il faudra un autre
+ paquet asterisk-musiconhold-auf un prochain jour, avec de jolies
+ musiques libres en gsm et uLaw.... si qqun sait ou attraper des
+ mp3 libres pour de la zique d'ascenceur, je prends)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 10 Jan 2007 12:53:48 +0000
+
+asterisk-config-auf (1.0-51) unstable; urgency=low
+
+ * retrait de la dependance sur asterisk-app-conference pour l'instant
+ * extconfig.conf : retrait du #include qui provoque un warning bizarre
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 10 Jan 2007 12:43:15 +0000
+
+asterisk-config-auf (1.0-50) unstable; urgency=low
+
+ * debian/control: nouvelle dépendance sur asterisk-app-conference et mise à
+ jour de la description
+ * extensions.local: 87nnn pour les conférences (au lieu de 77nnn) : je vais
+ mettre les services avec des numéros qui commencent par "8"
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 10 Jan 2007 10:30:42 +0000
+
+asterisk-config-auf (1.0-49) unstable; urgency=low
+
+ * extensions.conf : 77nnn pour accéder à la conférence nnn
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 9 Jan 2007 18:27:55 +0000
+
+asterisk-config-auf (1.0-48) unstable; urgency=low
+
+ * grosse erreur dans postinst... désolé... :(
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 9 Jan 2007 18:10:53 +0000
+
+asterisk-config-auf (1.0-47) unstable; urgency=low
+
+ * postinst : creation d'un sip.local avec un plus bel exemple.
+ Création d'un iax.local indépendant (n'est plus un lien symbolique)
+ avec le "user=...." (qui n'est pas dans sip.local, enfin je sais
+ plus, je suis un peu trop fatigué pour faire bien, faut que j'arrete
+ pour aujourd'hui)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 9 Jan 2007 18:04:28 +0000
+
+asterisk-config-auf (1.0-46) unstable; urgency=low
+
+ * postinst : creation d'un extension.local avec des exemples
+ utilisant AUFDial
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 9 Jan 2007 17:49:45 +0000
+
+asterisk-config-auf (1.0-45) unstable; urgency=low
+
+ * Gros nettoyage de la configuration par défaut
+ * Nettoyage extensions.conf
+ * postinst: mise en place boites vocales (/etc/asterisk/auf/voicemail.local)
+ et ne touche pas à iax.local s'il existe sans sip.local à coté...
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 9 Jan 2007 17:15:35 +0000
+
+asterisk-config-auf (1.0-44) unstable; urgency=low
+
+ * modules.conf : refonte, desactivation de modules qui seront a priori
+ toujours inutiles a l'AUF (ael, odbc, pgsql, mgcp, alsa, oss, phone,
+ skinny, g729)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 9 Jan 2007 15:07:48 +0000
+
+asterisk-config-auf (1.0-43) unstable; urgency=low
+
+ * extensions.conf : le bon nom est MACRO_EXTEN, avec un _ ... joli typo...
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 9 Jan 2007 09:37:13 +0000
+
+asterisk-config-auf (1.0-42) unstable; urgency=low
+
+ * extensions.conf : bug sur macro AUFDial, doit contacter les voicemail
+ sur le contexte @AUF
+
+ -- Thomas NOEL <thomas.noel@auf.org> Mon, 8 Jan 2007 18:20:17 +0000
+
+asterisk-config-auf (1.0-41) unstable; urgency=low
+
+ * extensions.conf : macro AUFConference, contexte AUF-echo et
+ AUF-boitesvocales (début de mise en place des boites vocales)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Mon, 8 Jan 2007 18:12:04 +0000
+
+asterisk-config-auf (1.0-40) unstable; urgency=low
+
+ * macro AUFDial, version 1.0beta qui marche apparement, a tester plus à fond
+
+ -- Thomas NOEL <thomas.noel@auf.org> Mon, 8 Jan 2007 17:28:52 +0000
+
+asterisk-config-auf (1.0-39) unstable; urgency=low
+
+ * iax.conf : register max carrément descendu à 120s (asterisk reload
+ oublie les reg IAX si iax.conf a bougé, pas génial ça)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Thu, 4 Jan 2007 16:22:07 +0000
+
+asterisk-config-auf (1.0-38) unstable; urgency=low
+
+ * features.conf : activation de fonctionnalité (transfer, parking, etc)
+ * iax.conf : retour du register à 300s (5 minutes)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 21 Nov 2006 10:38:14 +0000
+
+asterisk-config-auf (1.0-37) unstable; urgency=low
+
+ * iax.conf : register jusqu'a 3600, modif dans l'ordre des codecs
+ (gsm et ulaw sont les deux premiers)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Thu, 16 Nov 2006 11:30:09 +0000
+
+asterisk-config-auf (1.0-36) unstable; urgency=low
+
+ * modules.conf : suppression de tout ce qui est ODBC (fait planter le
+ backport 1.9, j'ai pas le temps de faire plus intelligent ce soir)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Sun, 18 Jun 2006 22:45:48 +0000
+
+asterisk-config-auf (1.0-35) unstable; urgency=low
+
+ * dependance sur asterisk-prompt-fr pour que tout le monde parle la France
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 13 Jun 2006 11:47:34 +0000
+
+asterisk-config-auf (1.0-34) unstable; urgency=low
+
+ * finalement non : local avant global, car il n'y a pas d'ecrasement
+
+ -- Thomas NOEL <thomas.noel@auf.org> Fri, 2 Jun 2006 11:43:11 +0000
+
+asterisk-config-auf (1.0-33) unstable; urgency=low
+
+ * inversion include extensions.conf : global puis local
+ (pour que les locales puissent avoir la priorite)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Fri, 2 Jun 2006 10:29:56 +0000
+
+asterisk-config-auf (1.0-32) unstable; urgency=low
+
+ * voicemail.conf: un peu de tuning, francisation...
+
+ -- Thomas NOEL <thomas.noel@auf.org> Fri, 28 Apr 2006 17:18:38 +0000
+
+asterisk-config-auf (1.0-31) unstable; urgency=low
+
+ * iax.conf: maxregexpire=120 ; pb avec IP qui changent, il faut laisser une
+ petite valeur ; et c'est sans doute aussi bon pour le conntracking (?)
+ * extensions.conf : version alpha d'une macro AUFDial
+
+ -- Thomas NOEL <thomas.noel@auf.org> Fri, 28 Apr 2006 09:18:53 +0000
+
+asterisk-config-auf (1.0-30) unstable; urgency=low
+
+ * iax.conf : registration, delai max = 3600s.
+ * iax.conf : suppression du forcejitter
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 26 Apr 2006 10:45:40 +0000
+
+asterisk-config-auf (1.0-29) unstable; urgency=low
+
+ * ulaw ajoute dans iax.conf et sip.conf pour permettre les clients locaux en
+ G711u (softphone ou ipphones)
+ * Nouvel ordre des codecs : ilbx, gsm, speex, ulaw, h261, h263
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 25 Apr 2006 16:46:13 +0000
+
+asterisk-config-auf (1.0-28) unstable; urgency=low
+
+ * Ordre des codecs : ilbc, gsm, speex, h261, h263
+
+ -- Thomas NOEL <thomas.noel@auf.org> Sat, 11 Mar 2006 10:15:48 +0000
+
+asterisk-config-auf (1.0-27) unstable; urgency=low
+
+ * ajout authorisation "ilbc" sur sip et iax (mais pas encore le choix par
+ defaut)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Fri, 17 Feb 2006 12:02:07 +0000
+
+asterisk-config-auf (1.0-26) unstable; urgency=low
+
+ * iax.conf : tentative avec les "jitter"
+ * iax.conf, sip.conf : desactivation du codec speex (marche trop mal)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 25 Jan 2006 17:29:02 +0100
+
+asterisk-config-auf (1.0-25) unstable; urgency=low
+
+ * sip.conf, iax.conf: ajout de allow=speex en premier codec
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 20 Dec 2005 12:03:25 +0100
+
+asterisk-config-auf (1.0-24) unstable; urgency=low
+
+ * debian/postfix: AUFPREFIXLEN calculé "en dur"... Penser à retester avec
+ les prochaines versions d'asterisk (1.2.2 ?...)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Thu, 15 Dec 2005 15:21:07 +0100
+
+asterisk-config-auf (1.0-23) unstable; urgency=low
+
+ * Makefile: copie de tout etc-asterisk et pas seulement les .conf
+ (nécessaire au moins pour extensions.ael)
+
+ -- Thomas NOEL <thomas.noel@auf.org> Thu, 15 Dec 2005 14:59:40 +0100
+
+asterisk-config-auf (1.0-22) unstable; urgency=low
+
+ * etc-asterisk/zapata.conf: commentaire sur ligne de config qui génèrent
+ des warning
+ * etc-asterisk/indications.conf : country=fr par défaut (je sais pas
+ si c'est pertinent mais bon...)
+ * debian/postinst: ajout de l'option callerid pour les comptes
+
+ -- Thomas NOEL <thomas.noel@auf.org> Thu, 15 Dec 2005 14:56:54 +0100
+
+asterisk-config-auf (1.0-21) unstable; urgency=low
+
+ * README.Debian : un peu plus clair
+
+ -- Thomas NOEL <thomas.noel@auf.org> Thu, 15 Dec 2005 10:53:05 +0100
+
+asterisk-config-auf (1.0-20) unstable; urgency=low
+
+ * debian/postinst: pas de chown/chmod sur /var/run/asterisk et autres
+ repertoires pas forcément présents à l'installation "from scratch"
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 15:49:29 +0100
+
+asterisk-config-auf (1.0-19) unstable; urgency=low
+
+ * debian/config: debconf prefix en priorité low
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 13:19:37 +0100
+
+asterisk-config-auf (1.0-18) unstable; urgency=low
+
+ * chmod/chown sur /etc/asterisk/auf/* ; mais ça ne sera vraiment efficace
+ que lorsque le paquet asterisk ne remettra pas des sales droits partout
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 12:39:44 +0100
+
+asterisk-config-auf (1.0-17) unstable; urgency=low
+
+ * typo...
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 12:34:11 +0100
+
+asterisk-config-auf (1.0-16) unstable; urgency=low
+
+ * un-peu-partout: renommage en auf/*.local et auf/*.global
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 12:26:22 +0100
+
+asterisk-config-auf (1.0-15) unstable; urgency=low
+
+ * un-peu-partout: fichiers AUF dans /etc/asterisk/auf/
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 11:53:06 +0100
+
+asterisk-config-auf (1.0-14) unstable; urgency=low
+
+ * debian/templates: indications sur la règle de nommage auf-ville
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 11:32:08 +0100
+
+asterisk-config-auf (1.0-13) unstable; urgency=low
+
+ * debian/postinst: /etc/init.d/asterisk reload lancé seulement s'il
+ existe...
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 11:18:02 +0100
+
+asterisk-config-auf (1.0-12) unstable; urgency=low
+
+ * debian/postinst: adduser asterisk...
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 11:04:59 +0100
+
+asterisk-config-auf (1.0-11) unstable; urgency=low
+
+ * debian/config: On devine l'implantation, mais pas la clé, c'est mieux.
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 10:34:48 +0100
+
+asterisk-config-auf (1.0-10) unstable; urgency=low
+
+ * un-peu-partout : renommage des fichiers de configuration specifique en
+ AUF-LOCAL-* et AUF-GLOBAL-*. Modification des #include correspondants.
+ * debian/config: si un fichier cle privee existe et que c'est la premiere
+ configuration, on suppose que ce fichier porte le nom de l'implantation.
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 10:21:58 +0100
+
+asterisk-config-auf (1.0-9) unstable; urgency=low
+
+ * debian/postinst,config: pas d'alerte si RUNASTERISK=no, on
+ le voit lors du "asterisk reload"
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 01:06:41 +0100
+
+asterisk-config-auf (1.0-8) unstable; urgency=low
+
+ * debian/postinst: ajout d'un "/etc/init.d/asterisk reload" après mise à
+ jour des fichiers.
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 00:48:45 +0100
+
+asterisk-config-auf (1.0-7) unstable; urgency=low
+
+ * debian/postinst: chown / chmod des fichiers de config
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 00:37:03 +0100
+
+asterisk-config-auf (1.0-6) unstable; urgency=low
+
+ * debian/control: description plus détaillée du paquet
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 00:19:24 +0100
+
+asterisk-config-auf (1.0-5) unstable; urgency=low
+
+ * etc-asterisk/iax.conf,sip.conf,extensions.conf: ajout des #inclure
+ * debian/postinst: ajout creation AUF-clients-extensions.conf
+ * debian/config,postinst: ajout de plein de commentaires
+
+ -- Thomas NOEL <thomas.noel@auf.org> Wed, 14 Dec 2005 00:11:55 +0100
+
+asterisk-config-auf (1.0-4) unstable; urgency=low
+
+ * ssssspliit : config de base dans asterisk-config-auf et
+ clés publiques et liaisons IAX + exten dans
+ asterisk-config-auf-connexions
+ * debian/control: dépend de asterisk-config-auf-connexions
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 13 Dec 2005 20:56:24 +0100
+
+asterisk-config-auf (1.0-3) unstable; urgency=low
+
+ * debian/templates, debian/config, debian/postinst: ajout debconf
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 13 Dec 2005 19:35:40 +0100
+
+asterisk-config-auf (1.0-2) unstable; urgency=low
+
+ * debian/postinst
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 13 Dec 2005 16:29:20 +0100
+
+asterisk-config-auf (1.0-1) unstable; urgency=low
+
+ * Je me lance... merci dh_make !
+
+ -- Thomas NOEL <thomas.noel@auf.org> Tue, 13 Dec 2005 15:59:27 +0100
+
--- /dev/null
+#!/bin/sh
+
+set -e
+
+# migration vers /usr/share pour asterisk 1.4 : on copie les *.key
+# et les *.pub correspondantes de /var/lib vers /usr/share
+# NOTE : OUI JE SAIS, ce n'est sans doute pas le bon endroit pour
+# faire ça, mais dans preinst ça marche pas alors je fatigue alors
+# je le fais pas, et puis si vous êtes pas content devenez d'abord
+# developpeur Debian et après revenez me voir.
+mkdir -m 0755 -p /usr/share/asterisk/keys/ && cd /var/lib/asterisk/keys 2> /dev/null && if ls *.key > /dev/null 2>&1; then
+ for KEY in *.key
+ do
+ # si la clé privée n'existe pas dans /usr/share, on la copie
+ if [ ! -e /usr/share/asterisk/keys/$KEY ]
+ then
+ # echo "asterisk1.4 : cp /var/lib/asterisk/keys/$KEY /usr/share/asterisk/keys/$KEY"
+ cp -a $KEY /usr/share/asterisk/keys/ || true
+ # clé publique correspondante, sera copiée si elle existe dans /var/lib
+ # et si elle n'existe pas dans /usr/share/
+ PUB=`basename $KEY .key`.pub
+ if [ -e $PUB -a ! -e /usr/share/asterisk/keys/$PUB ]
+ then
+ # echo "asterisk1.4 : cp /var/lib/asterisk/keys/$PUB /usr/share/asterisk/keys/$PUB"
+ cp -a $PUB /usr/share/asterisk/keys/ || true
+ fi
+ fi
+ done
+fi
+
+# lancement de notre ami debconf
+. /usr/share/debconf/confmodule
+
+#
+# D'abord on tente de deviner les valeurs
+#
+
+# Pour le prefixe, le monde entier utilise 00 sauf quelques
+# peuples sauvages
+PREFIXE=00
+# par defaut
+IMPLANTATION=auf-ville
+
+# Si une cle privee existe, elle porte sans doute le nom
+# de l'implantation...
+KEYFILE=`ls /usr/share/asterisk/keys/*.key 2> /dev/null | tail -1`
+if [ x$KEYFILE != x ]; then
+ IMPLANTATION=`basename $KEYFILE .key`
+else
+ # aucune clé : on arrete les frais ici avec un petit message expliquant le pb
+ db_input high asterisk-config-auf/pasdeclef || true
+ db_go || true
+ exit 0
+fi
+
+#
+# On charge le fichier de configuration, s’il existe.
+#
+
+CONFIGFILE=/etc/asterisk/auf/extensions-globals.local
+if [ -e $CONFIGFILE ]; then
+ # Recupere les donnees de connexion (AUFAUTH)
+ AUFAUTH=`cat $CONFIGFILE | grep -m1 -e "^ *AUFAUTH=" | cut -f2 -d=`
+ # on ne les prend en compte que si elles different des
+ # valeurs par defaut
+ if [ x"$AUFAUTH" != x"auf-ville:[auf-ville]" ]; then
+ IMPLANTATION=`echo $AUFAUTH | cut -f1 -d:`
+ CLEF=`echo $AUFAUTH | cut -f2 -d: | tr -d "[]"`
+ fi
+ # Recupere le prefixe (PREFIXE)
+ PREFIXE=`cat $CONFIGFILE | grep -m1 -e "^ *AUFPREFIX=" | cut -f2 -d=`
+fi
+
+# on stocke de prefixe, qu'il soit celui par défaut (00) ou
+# bien celui indiqué dans le fichier de configuration
+db_set asterisk-config-auf/prefixe $PREFIXE
+# idem pour le nom de l'implantation voip et la cle
+db_set asterisk-config-auf/implantation $IMPLANTATION
+
+
+#
+# QUESTION 1 : Nom de l'implantation
+#
+if [ x${IMPLANTATION} = x -o x${IMPLANTATION} == "xauf-ville" ]
+then
+ db_input high asterisk-config-auf/implantation || true
+else
+ db_input low asterisk-config-auf/implantation || true
+fi
+
+#
+# QUESTION 2 (niveau low) : Nom du fichier clé
+#
+
+# s'il n'y avait pas de fichier de configuration par défaut
+# alors la cle portera le nom de l'implantation
+if [ x$CLEF == x -o x$CLEF == "xauf-ville" ]; then
+ db_get asterisk-config-auf/implantation
+ CLEF="$RET"
+ db_set asterisk-config-auf/clef $CLEF
+fi
+# on demande le nom de la clé uniquement en priorité basse
+db_input low asterisk-config-auf/clef || true
+
+#
+# ALERTE : afficher une alerte si le fichier de la cle n'existe pas !
+#
+db_get asterisk-config-auf/clef
+CLEF="$RET"
+if [ ! -e /usr/share/asterisk/keys/${CLEF}.key ]; then
+ db_input high asterisk-config-auf/pasdeclef || true
+fi
+
+#
+# QUESTION 3 : Prefixe pour l'international
+#
+db_input low asterisk-config-auf/prefixe || true
+
+# fin
+
+db_go || true
+
--- /dev/null
+Source: asterisk-config-auf
+Section: comm
+Priority: optional
+Maintainer: Thomas NOEL <thomas.noel@auf.org>
+Build-Depends: debhelper (>= 4.0.0), make
+Standards-Version: 3.6.1
+
+Package: asterisk-config-auf
+Architecture: all
+Provides: asterisk-config-custom
+Conflicts: asterisk-config
+Depends: asterisk-config-auf-connexions, asterisk-prompt-fr, asterisk-app-conference (>= 2.0), asterisk-moh-auf, ${shlibs:Depends}, ${misc:Depends}
+Description: Configuration d'Asterisk pour l'AUF - partie locale
+ Configuration d'Asterisk pour le systeme VoIP de l'AUF
+ .
+ Contient les fichiers /etc/asterisk/*.conf adaptées à l'AUF, principalement
+ "extensions.conf", "iax.conf", "sip.conf" avec des #include des fichiers
+ situés dans /etc/asterisk/auf/
+ .
+ Lors de sa première installation, ce paquet construit des modèles pour:
+ /etc/asterisk/auf/iax.local et sip.local : comptes clients locaux
+ /etc/asterisk/auf/voicemail.local : boites vocales associées
+ /etc/asterisk/auf/extensions.local : les numéros de téléphone associés
+ .
+ Ce paquet dépend du paquet asterisk-config-auf-connexions, qui contient les
+ paramètres de connexion entre les serveurs de l'AUF.
+ .
+ Il dépend aussi de :
+ - asterisk-prompt-fr : une voix française, notamment pour les systèmes de
+ boite vocale et de conférences
+ - asterisk-app-conference : application Conference()
+ - asterisk-moh-auf: musiques d'attente
+
--- /dev/null
+This package was debianized by Thomas NOEL <thomas.noel@auf.org> on
+Tue, 13 Dec 2005 15:45:34 +0100.
+
+It was downloaded from <fill in ftp site>
+
+Copyright Holder: <put author(s) name and email here>
+
+License:
+
+<Put the license of the package here>
--- /dev/null
+#! /bin/sh
+# postinst script for asterisk-config-auf
+#
+# see: dh_installdeb(1)
+
+
+set -e
+. /usr/share/debconf/confmodule
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+
+ # extrait du postinst general a tous les paquets asterisk...
+
+ # add asterisk user and add it to dialout and audio groups
+ if ! getent passwd asterisk > /dev/null ; then
+ echo 'Adding system user for Asterisk' 1>&2
+ adduser --system --group --quiet \
+ --home /var/lib/asterisk \
+ --no-create-home --disabled-login \
+ --gecos "Asterisk PBX daemon" \
+ asterisk
+ for group in dialout audio; do
+ if groups asterisk | grep -w -q -v $group; then
+ adduser asterisk $group
+ fi
+ done
+ fi
+
+ # création du répertoire spécifique configs AUF
+ test -d /etc/asterisk/auf || mkdir -p /etc/asterisk/auf
+
+ chown -R root:asterisk /etc/asterisk
+ chmod 0755 /etc/asterisk
+ chmod 0755 /etc/asterisk/auf
+ chmod 0640 /etc/asterisk/*.conf 2> /dev/null || true
+ #chmod 0640 /etc/asterisk/auf/* 2> /dev/null || true
+
+ # Génère auf/sip.local s'il n'existe pas.
+ CONFIGFILE=/etc/asterisk/auf/sip.local
+ if [ ! -e $CONFIGFILE ]; then
+ cat << EOF > $CONFIGFILE
+; $CONFIGFILE est inclu par sip.conf
+;
+; Pour chaque utilisateur, faire une entree en adaptant le modele ci dessous
+; NB: "Prenom NOM" doit faire au plus 16 caractères, uniquement en ASCII (pas d'accent) afin
+; de bien s'afficher sur le IP Phone 5 (ecran LCD de 16 caractères ASCII)
+; NB: <nnnnnn> est le numéro avec le préfixe international, uniquement des chiffres, sans espace
+; NB: mailbox=nnn@AUF doit être en conformité avec la référence du compte dans voicemail.local
+; NB: disallow=all & allow=ulaw : impose le codec "ulaw" uniquement, on peut changer cela pour certains clients
+;
+; [prenom.nom]
+; type=friend
+; callerid="Prenom NOM" <nnnnnnn>
+; secret=motdepasse
+; context=AUF
+; mailbox=nnn@AUF
+; host=dynamic
+; disallow=all
+; allow=ulaw
+
+; A SUPPRIMER ! UNIQUEMENT POUR PREMIERS TESTS !
+[test]
+type=friend
+callerid="Compte TEST" <100>
+secret=test
+context=AUF
+mailbox=100@AUF
+host=dynamic
+disallow=all
+allow=ulaw
+
+EOF
+ fi
+ chown root:asterisk $CONFIGFILE
+ chmod 640 $CONFIGFILE
+
+ # Génère auf/iax.local s'il n'existe pas.
+ CONFIGFILE=/etc/asterisk/auf/iax.local
+ if [ ! -e $CONFIGFILE ]; then
+ cat << EOF > $CONFIGFILE
+; $CONFIGFILE est inclu par iax.conf
+;
+; Pour chaque utilisateur, faire une entree en adaptant le modele ci dessous
+; NB: "Prenom NOM" doit faire au plus 16 caractères, uniquement en ASCII (pas d'accent) afin
+; de bien s'afficher sur le IP Phone 5 (ecran LCD de 16 caractères ASCII)
+; NB: <nnnnnn> est le numéro avec le préfixe international, uniquement des chiffres, sans espace
+; NB: mailbox=nnn@AUF doit être en conformité avec la référence du compte dans voicemail.local
+; NB: disallow=all & allow=ulaw : impose le codec "ulaw" uniquement, on peut changer cela pour certains clients
+;
+; [prenom.nom]
+; type=friend
+; callerid="Prenom NOM" <nnnnnnn>
+; user=prenom.nom
+; secret=motdepasse
+; context=AUF
+; mailbox=nnn@AUF
+; host=dynamic
+; disallow=all
+; allow=ulaw
+
+; A SUPPRIMER ! UNIQUEMENT POUR PREMIERS TESTS !
+[test]
+type=friend
+callerid="Compte TEST" <100>
+user=test
+secret=test
+context=AUF
+mailbox=100@AUF
+host=dynamic
+disallow=all
+allow=ulaw
+
+EOF
+ fi
+ chown root:asterisk $CONFIGFILE
+ chmod 640 $CONFIGFILE
+
+ # génère un auf/voicemail.local s'il n'existe pas
+ CONFIGFILE=/etc/asterisk/auf/voicemail.local
+ if [ ! -e $CONFIGFILE ]; then
+ cat << EOF > $CONFIGFILE
+;
+; auf/voicemail.local : surcharge de /etc/asterisk/voicemail.conf
+;
+; Indiquez ici votre fuseau horaire local (voir la liste dans /usr/share/zoneinfo
+[zonemessages](+)
+fuseaulocal=Africa/Dakar|'vm-received' Q 'digits/at' kM
+
+; Boites locales
+[AUF]
+tz=fuseaulocal
+; Format : no_de_la_boite => mot_de_passe,Prenom Nom,prenom.nom@auf.org
+; * no_de_la_boite : prendre le numéro de telephone local de la personne
+; * le mot de passe doit être un nombre (par exemple 3 ou 4 chiffres)
+; * NB : en attendant qu'on trouve comment faire, mettre un "-" devant le mot
+; de passe pour indiquer qu'il n'est pas modifiable par l'utilisateur.
+; Exemple :
+; 206 => -0808,Thomas NOEL,thomas.noel@auf.org
+;
+EOF
+ fi
+ chown root:asterisk $CONFIGFILE
+ chmod 640 $CONFIGFILE
+
+ # Génère auf/extensions.local s'il n'existe pas.
+ CONFIGFILE=/etc/asterisk/auf/extensions.local
+ if [ ! -e $CONFIGFILE ]; then
+ cat << EOF > $CONFIGFILE
+; $CONFIGFILE
+; Fichier inclu dans le contexte [AUF-local] de /etc/asterisk/extensions.conf
+;
+; Pour chaque utilisateur, faire une entree en modifiant "numero" et
+; "prenom.nom" (et RIEN d'autre) dans le modele ci dessous
+
+; Modele :
+; exten => numero,1,Macro(AUFDial,prenom.nom)
+; Exemple :
+; exten => 206,1,Macro(AUFDial,thomas.noel)
+
+; A SUPPRIMER ! UNIQUEMENT POUR PREMIERS TESTS !
+exten => 100,1,Macro(AUFDial,test);
+
+EOF
+ fi
+
+ chown root:asterisk $CONFIGFILE
+ chmod 640 $CONFIGFILE
+
+ #
+ # a partir de maintenant on travaille sur auf/extensions-globals.local
+ #
+
+ CONFIGFILE=/etc/asterisk/auf/extensions-globals.local
+
+ # Génère auf/extensions-globals.local s’il n’existe pas.
+ if [ ! -e $CONFIGFILE ]; then
+ cat << EOF > $CONFIGFILE
+; $CONFIGFILE
+; Fichier est inclu dans la section [globals] de extensions.conf
+;
+; NE MODIFIEZ PAS CE FICHIER DIRECTEMENT ! Il est généré depuis les
+; résultats de réponses debconf !
+; Pour modifier ces valeurs, faites "dpkg-reconfigure -plow asterisk-config-auf"
+
+; Authentification pour se connecter a d'autres serveurs
+; format : AUFAUTH=implantation:[clefprivee]
+AUFAUTH=auf-ville:[auf-ville]
+
+; Prefixe pour avoir l'international
+AUFPREFIX=00
+
+; Longueur du prefixe
+AUFPREFIXLEN=2
+
+EOF
+ fi
+
+ #
+ # Partie "debconf" pour la gestion de auf/extensions-globals.local
+ #
+
+ # Substitue les valeurs par celles dans la base de données de debconf.
+ db_get asterisk-config-auf/implantation
+ IMPLANTATION="$RET"
+ db_get asterisk-config-auf/clef
+ CLEF="$RET"
+ db_get asterisk-config-auf/prefixe
+ PREFIXE="$RET"
+
+ AUFAUTH=$IMPLANTATION":["$CLEF"]"
+ AUFPREFIX=$PREFIXE
+ AUFPREFIXLEN=`echo -n $AUFPREFIX | wc -c`
+
+ # On remplace les valeurs dans le fichier de configuration
+ # (d'abord un "cp" pour garder les bons droits)
+ cp -a -f $CONFIGFILE $CONFIGFILE.postinst.tmp
+ sed -e "s/^ *AUFAUTH=.*/AUFAUTH=$AUFAUTH/" \
+ -e "s/^ *AUFPREFIX=.*/AUFPREFIX=$AUFPREFIX/" \
+ -e "s/^ *AUFPREFIXLEN=.*/AUFPREFIXLEN=$AUFPREFIXLEN/" \
+ < $CONFIGFILE > $CONFIGFILE.postinst.tmp
+ mv -f $CONFIGFILE.postinst.tmp $CONFIGFILE
+
+ chown root:asterisk $CONFIGFILE
+ chmod 0640 $CONFIGFILE
+
+ # mon ami asterisk m'annonce que les include de fichiers non existant feront
+ # prochainement planter asterisk... MERCI ASTERISK SALE MERDE A POUX QUI PUE
+ for confbase in dundi enum extensions-macros extensions-final manager meetme modules musiconhold queues users zapata
+ do
+ conffile=/etc/asterisk/auf/${confbase}.local
+ if [ ! -e ${conffile} ]
+ then
+ confglobal=`echo ${confbase} | cut -f1 -d-`
+ echo "; ${conffile}" > ${conffile}
+ echo "; Partie locale AUF, incluse par /etc/asterisk/${confglobal}.conf" >> ${conffile}
+ echo "; Attention a la coherence : verifier l'endroit ou est fait le #include" >> ${conffile}
+ echo "" >> ${conffile}
+ chown root:asterisk ${conffile}
+ chmod 0640 ${conffile}
+ fi
+ done
+
+ #chown root:asterisk /etc/asterisk/auf/* || true
+ #chmod 0640 /etc/asterisk/auf/* || true
+
+ if [ -x /etc/init.d/asterisk ]; then
+ /etc/init.d/asterisk reload || true
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
--- /dev/null
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+export DH_ALWAYS_EXCLUDE=.svn
+
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+ CFLAGS += -O2
+endif
+
+configure: configure-stamp
+configure-stamp:
+ dh_testdir
+ # Add here commands to configure the package.
+
+ touch configure-stamp
+
+
+build: build-stamp
+
+build-stamp: configure-stamp
+ dh_testdir
+
+ # Add here commands to compile the package.
+ $(MAKE)
+ #docbook-to-man debian/asterisk-config-auf.sgml > asterisk-config-auf.1
+
+ touch build-stamp
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp configure-stamp
+
+ # Add here commands to clean up after the build process.
+ -$(MAKE) clean
+
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/asterisk-config-auf.
+ $(MAKE) install DESTDIR=$(CURDIR)/debian/asterisk-config-auf
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs
+ dh_installdocs
+ dh_installexamples
+# dh_install
+# dh_installmenu
+ dh_installdebconf
+# dh_installlogrotate
+# dh_installemacsen
+# dh_installpam
+# dh_installmime
+# dh_installinit
+# dh_installcron
+# dh_installinfo
+ dh_installman
+ dh_link
+ dh_strip
+ dh_compress
+ dh_fixperms
+# dh_perl
+# dh_python
+# dh_makeshlibs
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
--- /dev/null
+Template: asterisk-config-auf/implantation
+Type: string
+Default: auf-ville
+Description: Nom de votre noeud VoIP
+ Indiquez ici le nom de votre noeud VoIP.
+ Ce nom sera utilisé lors des connexions aux serveurs distants.
+ .
+ La règle AUF est d'utiliser le format "auf-ville", ou "auf-implantation" s'il
+ y a plusieurs serveurs AUF VoIP dans la ville.
+
+Template: asterisk-config-auf/clef
+Type: string
+Default: auf-ville
+Description: Nom de votre cle privee
+ Indiquez ici le nom de votre cle privée.
+ .
+ Il s'agit du nom du fichier dans /usr/share/asterisk/keys/,
+ sans le .key final. Si vous n'avez pas encore généré votre clé,
+ simplifiez-vous la vie en donnant un nom identique à celui de
+ votre noeud (par exemple auf-ville). Il suffira ensuite de générer la clé en
+ lui donnant ce nom.
+
+Template: asterisk-config-auf/pasdeclef
+Type: note
+Description: Fichier clé privée Asterisk introuvable
+ La clé privée est introuvable dans /usr/share/asterisk/keys/. Vous devez
+ disposer d'une paire clé publique + clé privée pour vous connecter aux autres
+ serveurs Asterisk de l'AUF.
+ .
+ Si vous n'avez pas encore généré vos clés pour Asterisk, ce message est
+ normal. Dans ce cas, consultez la procédure d'installation d'Asterisk «version
+ AUF» sur http://wiki.auf.org/wikiteki/Asterisk
+
+Template: asterisk-config-auf/prefixe
+Type: string
+Default: 00
+Description: Préfixe pour les appels internationaux
+ Indiquez le préfixe à utiliser pour les appels internationaux, c'est-à-dire
+ la suite de chiffres à taper avant le numéro du pays. En général c'est "00".
+ .
+ Deux règles à suivre :
+ - utilisez un préfixe auquel vos utilisateurs sont déjà habitués (typiquement, 00) ;
+ - faites attention à ce que ce prefixe ne soit pas en conflit avec votre numérotation nationale.
--- /dev/null
+;
+; Sample ADSI Configuration file
+;
+[intro]
+alignment = center
+greeting => Welcome to the
+greeting => Asterisk
+greeting => Open Source PBX
--- /dev/null
+;
+; Voice over Frame Relay (Adtran style)
+;
+; Configuration file
+
+[interfaces]
+;
+; Default language
+;
+;language=en
+;
+; Lines for which we are the user termination. They accept incoming
+; and outgoing calls. We use the default context on the first 8 lines
+; used by internal phones.
+;
+context=default
+;user => voice00
+;user => voice01
+;user => voice02
+;user => voice03
+;user => voice04
+;user => voice05
+;user => voice06
+;user => voice07
+; Calls on 16 and 17 come from the outside world, so they get
+; a little bit special treatment
+context=remote
+;user => voice16
+;user => voice17
+;
+; Next we have lines which we only accept calls on, and typically
+; do not send outgoing calls on (i.e. these are where we are the
+; network termination)
+;
+;network => voice08
+;network => voice09
+;network => voice10
+;network => voice11
+;network => voice12
--- /dev/null
+;
+; Agent configuration
+;
+
+[general]
+;
+; Define whether callbacklogins should be stored in astdb for
+; persistence. Persistent logins will be reloaded after
+; Asterisk restarts.
+;
+persistentagents=yes
+
+; Enable or disable a single extension from logging in as multiple agents.
+; The default value is "yes".
+;multiplelogin=yes
+
+[agents]
+;
+; Define maxlogintries to allow agent to try max logins before
+; failed.
+; default to 3
+;
+;maxlogintries=5
+;
+;
+; Define autologoff times if appropriate. This is how long
+; the phone has to ring with no answer before the agent is
+; automatically logged off (in seconds)
+;
+;autologoff=15
+;
+; Define autologoffunavail to have agents automatically logged
+; out when the extension that they are at returns a CHANUNAVAIL
+; status when a call is attempted to be sent there.
+; Default is "no".
+;
+;autologoffunavail=yes
+;
+; Define ackcall to require an acknowledgement by '#' when
+; an agent logs in using agentcallbacklogin. Default is "no".
+;
+;ackcall=no
+;
+; Define endcall to allow an agent to hangup a call by '*'.
+; Default is "yes". Set this to "no" to ignore '*'.
+;
+;endcall=yes
+;
+; Define wrapuptime. This is the minimum amount of time when
+; after disconnecting before the caller can receive a new call
+; note this is in milliseconds.
+;
+;wrapuptime=5000
+;
+; Define the default musiconhold for agents
+; musiconhold => music_class
+;
+;musiconhold => default
+;
+; Define the default good bye sound file for agents
+; default to vm-goodbye
+;
+;agentgoodbye => goodbye_file
+;
+; Define updatecdr. This is whether or not to change the source
+; channel in the CDR record for this call to agent/agent_id so
+; that we know which agent generates the call
+;
+;updatecdr=no
+;
+; Group memberships for agents (may change in mid-file)
+;
+;group=3
+;group=1,2
+;group=
+;
+; --------------------------------------------------
+; This section is devoted to recording agent's calls
+; The keywords are global to the chan_agent channel driver
+;
+; Enable recording calls addressed to agents. It's turned off by default.
+;recordagentcalls=yes
+;
+; The format to be used to record the calls: wav, gsm, wav49.
+; By default its "wav".
+;recordformat=gsm
+;
+; The text to be added to the name of the recording. Allows forming a url link.
+;urlprefix=http://localhost/calls/
+;
+; The optional directory to save the conversations in. The default is
+; /var/spool/asterisk/monitor
+;savecallsin=/var/calls
+;
+; An optional custom beep sound file to play to always-connected agents.
+;custom_beep=beep
+;
+; --------------------------------------------------
+;
+; This section contains the agent definitions, in the form:
+;
+; agent => agentid,agentpassword,name
+;
+;agent => 1001,4321,Mark Spencer
+;agent => 1002,4321,Will Meadows
--- /dev/null
+;
+; alarmreceiver.conf
+;
+; Sample configuration file for the Asterisk alarm receiver application.
+;
+
+
+[general]
+
+;
+; Specify a timestamp format for the metadata section of the event files
+; Default is %a %b %d, %Y @ %H:%M:%S %Z
+
+timestampformat = %a %b %d, %Y @ %H:%M:%S %Z
+
+;
+; Specify a command to execute when the caller hangs up
+;
+; Default is none
+;
+
+;eventcmd = yourprogram -yourargs ...
+
+;
+; Specify a spool directory for the event files. This setting is required
+; if you want the app to be useful. Event files written to the spool
+; directory will be of the template event-XXXXXX, where XXXXXX is a random
+; and unique alphanumeric string.
+;
+; Default is none, and the events will be dropped on the floor.
+;
+
+eventspooldir = /tmp
+
+;
+; The alarmreceiver app can either log the events one-at-a-time to individual
+; files in the spool directory, or it can store them until the caller
+; disconnects and write them all to one file.
+;
+; The default setting for logindividualevents is no.
+;
+
+logindividualevents = no
+
+;
+; The timeout for receiving the first DTMF digit is adjustable from 1000 msec.
+; to 10000 msec. The default is 2000 msec. Note: if you wish to test the
+; receiver by entering digits manually, set this to a reasonable time out
+; like 10000 milliseconds.
+
+fdtimeout = 2000
+
+;
+; The timeout for receiving subsequent DTMF digits is adjustable from
+; 110 msec. to 4000 msec. The default is 200 msec. Note: if you wish to test
+; the receiver by entering digits manually, set this to a reasonable time out
+; like 4000 milliseconds.
+;
+
+sdtimeout = 200
+
+;
+; The loudness of the ACK and Kissoff tones is adjustable from 100 to 8192.
+; The default is 8192. This shouldn't need to be messed with, but is included
+; just in case there are problems with signal levels.
+;
+
+loudness = 8192
+
+;
+; The db-family setting allows the user to capture statistics on the number of
+; calls, and the errors the alarm receiver sees. The default is for no
+; db-family name to be defined and the database logging to be turned off.
+;
+
+;db-family = yourfamily:
+
+;
+; End of alarmreceiver.conf
+;
--- /dev/null
+;
+; Answering Machine Detection Configuration
+;
+
+[general]
+initial_silence = 2500 ; Maximum silence duration before the greeting.
+ ; If exceeded then MACHINE.
+greeting = 1500 ; Maximum length of a greeting. If exceeded then MACHINE.
+after_greeting_silence = 800 ; Silence after detecting a greeting.
+ ; If exceeded then HUMAN
+total_analysis_time = 5000 ; Maximum time allowed for the algorithm to decide
+ ; on a HUMAN or MACHINE
+min_word_length = 100 ; Minimum duration of Voice to considered as a word
+between_words_silence = 50 ; Minimum duration of silence after a word to consider
+ ; the audio what follows as a new word
+maximum_number_of_words = 3 ; Maximum number of words in the greeting.
+ ; If exceeded then MACHINE
+silence_threshold = 256
--- /dev/null
+;
+; Asterisk Call Detail Record engine configuration
+;
+; CDR is Call Detail Record, which provides logging services via a variety of
+; pluggable backend modules. Detailed call information can be recorded to
+; databases, files, etc. Useful for billing, fraud prevention, compliance with
+; Sarbanes-Oxley aka The Enron Act, QOS evaluations, and more.
+;
+
+[general]
+
+; Define whether or not to use CDR logging. Setting this to "no" will override
+; any loading of backend CDR modules. Default is "yes".
+;enable=yes
+
+; Define whether or not to log unanswered calls. Setting this to "yes" will
+; report every attempt to ring a phone in dialing attempts, when it was not
+; answered. For example, if you try to dial 3 extensions, and this option is "yes",
+; you will get 3 CDR's, one for each phone that was rung. Default is "no". Some
+; find this information horribly useless. Others find it very valuable. Note, in "yes"
+; mode, you will see one CDR, with one of the call targets on one side, and the originating
+; channel on the other, and then one CDR for each channel attempted. This may seem
+; redundant, but cannot be helped.
+;unanswered = no
+
+; Define the CDR batch mode, where instead of posting the CDR at the end of
+; every call, the data will be stored in a buffer to help alleviate load on the
+; asterisk server. Default is "no".
+;
+; WARNING WARNING WARNING
+; Use of batch mode may result in data loss after unsafe asterisk termination
+; ie. software crash, power failure, kill -9, etc.
+; WARNING WARNING WARNING
+;
+;batch=no
+
+; Define the maximum number of CDRs to accumulate in the buffer before posting
+; them to the backend engines. 'batch' must be set to 'yes'. Default is 100.
+;size=100
+
+; Define the maximum time to accumulate CDRs in the buffer before posting them
+; to the backend engines. If this time limit is reached, then it will post the
+; records, regardless of the value defined for 'size'. 'batch' must be set to
+; 'yes'. Note that time is in seconds. Default is 300 (5 minutes).
+;time=300
+
+; The CDR engine uses the internal asterisk scheduler to determine when to post
+; records. Posting can either occur inside the scheduler thread, or a new
+; thread can be spawned for the submission of every batch. For small batches,
+; it might be acceptable to just use the scheduler thread, so set this to "yes".
+; For large batches, say anything over size=10, a new thread is recommended, so
+; set this to "no". Default is "no".
+;scheduleronly=no
+
+; When shutting down asterisk, you can block until the CDRs are submitted. If
+; you don't, then data will likely be lost. You can always check the size of
+; the CDR batch buffer with the CLI "cdr status" command. To enable blocking on
+; submission of CDR data during asterisk shutdown, set this to "yes". Default
+; is "yes".
+;safeshutdown=yes
+
+; Normally, CDR's are not closed out until after all extensions are finished
+; executing. By enabling this option, the CDR will be ended before executing
+; the "h" extension so that CDR values such as "end" and "billsec" may be
+; retrieved inside of of this extension.
+;endbeforehexten=no
+
+;
+;
+; CHOOSING A CDR "BACKEND" (what kind of output to generate)
+;
+; To choose a backend, you have to make sure either the right category is
+; defined in this file, or that the appropriate config file exists, and has the
+; proper definitions in it. If there are any problems, usually, the entry will
+; silently ignored, and you get no output.
+;
+; Also, please note that you can generate CDR records in as many formats as you
+; wish. If you configure 5 different CDR formats, then each event will be logged
+; in 5 different places! In the example config files, all formats are commented
+; out except for the cdr-csv format.
+;
+; Here are all the possible back ends:
+;
+; csv, custom, manager, odbc, pgsql, radius, sqlite, tds
+; (also, mysql is available via the asterisk-addons, due to licensing
+; requirements)
+; (please note, also, that other backends can be created, by creating
+; a new backend module in the source cdr/ directory!)
+;
+; Some of the modules required to provide these backends will not build or install
+; unless some dependency requirements are met. Examples of this are pgsql, odbc,
+; etc. If you are not getting output as you would expect, the first thing to do
+; is to run the command "make menuselect", and check what modules are available,
+; by looking in the "2. Call Detail Recording" option in the main menu. If your
+; backend is marked with XXX, you know that the "configure" command could not find
+; the required libraries for that option.
+;
+; To get CDRs to be logged to the plain-jane /var/log/asterisk/cdr-csv/Master.csv
+; file, define the [csv] category in this file. No database necessary. The example
+; config files are set up to provide this kind of output by default.
+;
+; To get custom csv CDR records, make sure the cdr_custom.conf file
+; is present, and contains the proper [mappings] section. The advantage to
+; using this backend, is that you can define which fields to output, and in
+; what order. By default, the example configs are set up to mimic the cdr-csv
+; output. If you don't make any changes to the mappings, you are basically generating
+; the same thing as cdr-csv, but expending more CPU cycles to do so!
+;
+; To get manager events generated, make sure the cdr_manager.conf file exists,
+; and the [general] section is defined, with the single variable 'enabled = yes'.
+;
+; For odbc, make sure all the proper libs are installed, that "make menuselect"
+; shows that the modules are available, and the cdr_odbc.conf file exists, and
+; has a [global] section with the proper variables defined.
+;
+; For pgsql, make sure all the proper libs are installed, that "make menuselect"
+; shows that the modules are available, and the cdr_pgsql.conf file exists, and
+; has a [global] section with the proper variables defined.
+;
+; For logging to radius databases, make sure all the proper libs are installed, that
+; "make menuselect" shows that the modules are available, and the [radius]
+; category is defined in this file, and in that section, make sure the 'radiuscfg'
+; variable is properly pointing to an existing radiusclient.conf file.
+;
+; For logging to sqlite databases, make sure the 'cdr.db' file exists in the log directory,
+; which is usually /var/log/asterisk. Of course, the proper libraries should be available
+; during the 'configure' operation.
+;
+; For tds logging, make sure the proper libraries are available during the 'configure'
+; phase, and that cdr_tds.conf exists and is properly set up with a [global] category.
+;
+; Also, remember, that if you wish to log CDR info to a database, you will have to define
+; a specific table in that databse to make things work! See the doc directory for more details
+; on how to create this table in each database.
+;
+
+[csv]
+usegmtime=yes ; log date/time in GMT. Default is "no"
+loguniqueid=yes ; log uniqueid. Default is "no
+loguserfield=no ; log user field. Default is "no
+
+;[radius]
+;usegmtime=yes ; log date/time in GMT
+;loguniqueid=yes ; log uniqueid
+;loguserfield=yes ; log user field
+; Set this to the location of the radiusclient-ng configuration file
+; The default is /etc/radiusclient-ng/radiusclient.conf
+;radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf
--- /dev/null
+;
+; Mappings for custom config file
+;
+; to get your csv output in a format tailored to your liking, uncomment the following
+; and look for the output in the cdr-custom/Master.csv file (usually in /var/log/asterisk).
+;
+;
+;[mappings]
+;Master.csv => "${CDR(clid)}","${CDR(src)}","${CDR(dst)}","${CDR(dcontext)}","${CDR(channel)}","${CDR(dstchannel)}","${CDR(lastapp)}","${CDR(lastdata)}","${CDR(start)}","${CDR(answer)}","${CDR(end)}","${CDR(duration)}","${CDR(billsec)}","${CDR(disposition)}","${CDR(amaflags)}","${CDR(accountcode)}","${CDR(uniqueid)}","${CDR(userfield)}"
+
--- /dev/null
+;
+; Asterisk Call Management CDR
+;
+[general]
+enabled = no
+
--- /dev/null
+[speex]
+; CBR encoding quality [0..10]
+; used only when vbr = false
+quality => 8
+
+; codec complexity [0..10]
+; tradeoff between cpu/quality
+complexity => 8
+
+; perceptual enhancement [true / false]
+; improves clarity of decoded speech
+enhancement => true
+
+; voice activity detection [true / false]
+; reduces bitrate when no voice detected, used only for CBR
+; (implicit in VBR/ABR)
+vad => true
+
+; variable bit rate [true / false]
+; uses bit rate proportionate to voice complexity
+vbr => true
+
+; available bit rate [bps, 0 = off]
+; encoding quality modulated to match this target bit rate
+; not recommended with dtx or pp_vad - may cause bandwidth spikes
+abr => 0
+
+; VBR encoding quality [0-10]
+; floating-point values allowed
+vbr_quality => 8
+
+; discontinuous transmission [true / false]
+; stops transmitting completely when silence is detected
+; pp_vad is far more effective but more CPU intensive
+dtx => false
+
+; preprocessor configuration
+; these options only affect Speex v1.1.8 or newer
+
+; enable preprocessor [true / false]
+; allows dsp functionality below but incurs CPU overhead
+preprocess => true
+
+; preproc voice activity detection [true / false]
+; more advanced equivalent of DTX, based on voice frequencies
+pp_vad => true
+
+; preproc automatic gain control [true / false]
+pp_agc => false
+pp_agc_level => 8000
+
+; preproc denoiser [true / false]
+pp_denoise => true
+
+; preproc dereverb [true / false]
+pp_dereverb => false
+pp_dereverb_decay => 0.4
+pp_dereverb_level => 0.3
+
+
+[plc]
+; for all codecs which do not support native PLC
+; this determines whether to perform generic PLC
+; there is a minor performance penalty for this
+genericplc => true
--- /dev/null
+[general]
+;enable=yes ; enable creation of managed DNS lookups
+ ; default is 'no'
+;refreshinterval=1200 ; refresh managed DNS lookups every <n> seconds
+ ; default is 300 (5 minutes)
\ No newline at end of file
--- /dev/null
+;
+; DUNDi configuration file
+;
+; For more information about DUNDi, see http://www.dundi.com
+;
+;
+[general]
+;
+; The "general" section contains general parameters relating
+; to the operation of the dundi client and server.
+;
+; The first part should be your complete contact information
+; should someone else in your peer group need to contact you.
+;
+;department=Your Department
+;organization=AUF
+;locality=Your City
+;stateprov=ST
+;country=US
+;email=voip@auf.org
+;phone=+12565551212
+;
+;
+; Specify bind address and port number. Default is
+; 4520
+;
+;bindaddr=0.0.0.0
+;port=4520
+;
+; Our entity identifier (Should generally be the MAC address of the
+; machine it's running on. Defaults to the first eth address, but you
+; can override it here, as long as you set it to the MAC of *something*
+; you own!)
+;
+;entityid=00:07:E9:3B:76:60
+;
+; Peers shall cache our query responses for the specified time,
+; given in seconds. Default is 3600.
+;
+;cachetime=3600
+;
+; This defines the max depth in which to search the DUNDi system.
+; Note that the maximum time that we will wait for a response is
+; (2000 + 200 * ttl) ms.
+;
+ttl=32
+;
+; If we don't get ACK to our DPDISCOVER within 2000ms, and autokill is set
+; to yes, then we cancel the whole thing (that's enough time for one
+; retransmission only). This is used to keep things from stalling for a long
+; time for a host that is not available, but would be ill advised for bad
+; connections. In addition to 'yes' or 'no' you can also specify a number
+; of milliseconds. See 'qualify' for individual peers to turn on for just
+; a specific peer.
+;
+autokill=yes
+;
+; pbx_dundi creates a rotating key called "secret", under the family
+; 'secretpath'. The default family is dundi (resulting in
+; the key being held at dundi/secret).
+;
+;secretpath=dundi
+;
+; The 'storehistory' option (also changeable at runtime with
+; 'dundi store history' and 'dundi no store history') will
+; cause the DUNDi engine to keep track of the last several
+; queries and the amount of time each query took to execute
+; for the purpose of tracking slow nodes. This option is
+; off by default due to performance impacts.
+;
+;storehistory=yes
+
+[mappings]
+;
+; The "mappings" section maps DUNDi contexts
+; to contexts on the local asterisk system. Remember
+; that numbers that are made available under the e164
+; DUNDi context are regulated by the DUNDi General Peering
+; Agreement (GPA) if you are a member of the DUNDi E.164
+; Peering System.
+;
+; dundi_context => local_context,weight,tech,dest[,options]]
+;
+; 'dundi_context' is the name of the context being requested
+; within the DUNDi request
+;
+; 'local_context' is the name of the context on the local system
+; in which numbers can be looked up for which responses shall be given.
+;
+; 'weight' is the weight to use for the responses provided from this
+; mapping. The number must be >= 0 and < 60000. Since it is totally
+; valid to receive multiple responses to a query, responses received
+; with a lower weight are tried first. Note that the weight has a
+; special meaning in the e164 context - see the GPA for more details.
+;
+; 'tech' is the technology to use (IAX, SIP, H323)
+;
+; 'dest' is the destination to supply for reaching that number. The
+; following variables can be used in the destination string and will
+; be automatically substituted:
+; ${NUMBER}: The number being requested
+; ${IPADDR}: The IP address to connect to
+; ${SECRET}: The current rotating secret key to be used
+;
+; Further options may include:
+;
+; nounsolicited: No unsolicited calls of any type permitted via this
+; route
+; nocomunsolicit: No commercial unsolicited calls permitted via
+; this route
+; residential: This number is known to be a residence
+; commercial: This number is known to be a business
+; mobile: This number is known to be a mobile phone
+; nocomunsolicit: No commercial unsolicited calls permitted via
+; this route
+; nopartial: Do not search for partial matches
+;
+; There *must* exist an entry in mappings for DUNDi to respond
+; to any request, although it may be empty.
+;
+;e164 => dundi-e164-canonical,0,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial
+;e164 => dundi-e164-customers,100,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial
+;e164 => dundi-e164-via-pstn,400,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial
+
+;digexten => default,0,IAX2,guest@lappy/${NUMBER}
+;asdf =>
+
+
+;
+;
+; The remaining sections represent the peers
+; that we fundamentally trust. The section name
+; represents the name and optionally at a specific
+; DUNDi context if you want the trust to be established
+; for only a specific DUNDi context.
+;
+; inkey - What key they will be authenticating to us with
+;
+; outkey - What key we use to authenticate to them
+;
+; host - What their host is
+;
+; order - What search order to use. May be 'primary', 'secondary',
+; 'tertiary' or 'quartiary'. In large systems, it is beneficial
+; to only query one up-stream host in order to maximize caching
+; value. Adding one with primary and one with secondary gives you
+; redundancy without sacrificing performance.
+;
+; include - Includes this peer when searching a particular context
+; for lookup (set "all" to perform all lookups with that
+; host. This is also the context in which peers are permitted
+; to precache.
+;
+; noinclude - Disincludes this peer when searching a particular context
+; for lookup (set "all" to perform no lookups with that
+; host.
+;
+; permit - Permits this peer to search a given DUNDi context on
+; the local system. Set "all" to permit this host to
+; lookup all contexts. This is also a context for which
+; we will create/forward PRECACHE commands.
+;
+; deny - Denies this peer to search a given DUNDi context on
+; the local system. Set "all" to deny this host to
+; lookup all contexts.
+;
+; model - inbound, outbound, or symmetric for whether we receive
+; requests only, transmit requests only, or do both.
+;
+; precache - Utilize/Permit precaching with this peer (to pre
+; cache means to provide an answer when no request
+; was made and is used so that machines with few
+; routes can push those routes up a to a higher level).
+; outgoing means we send precache routes to this peer,
+; incoming means we permit this peer to send us
+; precache routes. symmetric means we do both.
+;
+; Note: You cannot mix symmetric/outbound model with symmetric/inbound
+; precache, nor can you mix symmetric/inbound model with symmetric/outbound
+; precache.
+;
+;
+; The '*' peer is special and matches an unspecified entity
+;
+
+;
+; Sample Primary e164 DUNDi peer
+;
+;[00:50:8B:F3:75:BB]
+;model = symmetric
+;host = 64.215.96.114
+;inkey = digium
+;outkey = misery
+;include = e164
+;permit = e164
+;qualify = yes
+
+;
+; Sample Secondary e164 DUNDi peer
+;
+;[00:A0:C9:96:92:84]
+;model = symmetric
+;host = misery.digium.com
+;inkey = misery
+;outkey = ourkey
+;include = e164
+;permit = e164
+;qualify = yes
+;order = secondary
+
+;
+; Sample "push mode" downstream host
+;
+;[00:0C:76:96:75:28]
+;model = inbound
+;host = dynamic
+;precache = inbound
+;inkey = littleguy
+;outkey = ourkey
+;include = e164 ; In this case used only for precaching
+;permit = e164
+;qualify = yes
+
+;
+; Sample "push mode" upstream host
+;
+;[00:07:E9:3B:76:60]
+;model = outbound
+;precache = outbound
+;host = 216.207.245.34
+;register = yes
+;inkey = dhcp34
+;permit = all ; In this case used only for precaching
+;include = all
+;qualify = yes
+;outkey=foo
+
+;[*]
+;
+
+#include "auf/dundi.local"
+
--- /dev/null
+;
+; ENUM Configuration for resolving phone numbers over DNS
+;
+; Sample config for Asterisk
+; This file is reloaded at "module reload enum" in the CLI
+;
+[general]
+;
+; The search list for domains may be customized. Domains are searched
+; in the order they are listed here.
+;
+search => e164.arpa
+;
+; If you'd like to use the E.164.org public ENUM registry in addition
+; to the official e164.arpa one, uncomment the following line
+;
+;search => e164.org
+;
+; As there are more H323 drivers available you have to select to which
+; drive a H323 URI will map. Default is "H323".
+;
+;h323driver => H323
+
+#include "auf/enum.local"
+
--- /dev/null
+;
+; Static and realtime external configuration
+; engine configuration
+;
+; Please read doc/extconfig.txt for basic table
+; formatting information.
+;
+[settings]
+;
+; Static configuration files:
+;
+; file.conf => driver,database[,table]
+;
+; maps a particular configuration file to the given
+; database driver, database and table (or uses the
+; name of the file as the table if not specified)
+;
+;uncomment to load queues.conf via the odbc engine.
+;
+;queues.conf => odbc,asterisk,ast_config
+;
+; The following files CANNOT be loaded from Realtime storage:
+; asterisk.conf
+; extconfig.conf (this file)
+; logger.conf
+;
+; Additionally, the following files cannot be loaded from
+; Realtime storage unless the storage driver is loaded
+; early using 'preload' statements in modules.conf:
+; manager.conf
+; cdr.conf
+; rtp.conf
+;
+;
+; Realtime configuration engine
+;
+; maps a particular family of realtime
+; configuration to a given database driver,
+; database and table (or uses the name of
+; the family if the table is not specified
+;
+;example => odbc,asterisk,alttable
+;
+; "odbc" is shown in the examples below, but is not the only valid realtime
+; engine. There is:
+; odbc ... res_config_odbc
+; pgsql ... res_config_pgsql
+; mysql ... res_config_mysql (available from asterisk-addons)
+;
+;iaxusers => odbc,asterisk
+;iaxpeers => odbc,asterisk
+;sipusers => odbc,asterisk
+;sippeers => odbc,asterisk
+;voicemail => odbc,asterisk
+;extensions => odbc,asterisk
+;queues => odbc,asterisk
+;queue_members => odbc,asterisk
+
+; #include "auf/extconfig.local"
+; include mis en commentaire car provoque le warning suivant (dans Asterisk 1.2)
+; voip-test*CLI> reload extconfig
+; == Parsing '/etc/asterisk/extconfig.conf': Found
+; Jan 10 12:39:34 WARNING[9289]: config.c:938 ast_config_internal_load: Maximum Include level (1) exceeded
+;
+
--- /dev/null
+; extensions.conf - the Asterisk dial plan
+;
+; Static extension configuration file, used by
+; the pbx_config module. This is where you configure all your
+; inbound and outbound calls in Asterisk.
+;
+; This configuration file is reloaded
+; - With the "dialplan reload" command in the CLI
+; - With the "reload" command (that reloads everything) in the CLI
+
+;
+; The "General" category is for certain variables.
+;
+[general]
+;
+; If static is set to no, or omitted, then the pbx_config will rewrite
+; this file when extensions are modified. Remember that all comments
+; made in the file will be lost when that happens.
+;
+; XXX Not yet implemented XXX
+;
+static=yes
+;
+; if static=yes and writeprotect=no, you can save dialplan by
+; CLI command "dialplan save" too
+;
+writeprotect=yes
+;
+; If autofallthrough is set, then if an extension runs out of
+; things to do, it will terminate the call with BUSY, CONGESTION
+; or HANGUP depending on Asterisk's best guess. This is the default.
+;
+; If autofallthrough is not set, then if an extension runs out of
+; things to do, Asterisk will wait for a new extension to be dialed
+; (this is the original behavior of Asterisk 1.0 and earlier).
+;
+autofallthrough=yes
+;
+; If clearglobalvars is set, global variables will be cleared
+; and reparsed on an extensions reload, or Asterisk reload.
+;
+; If clearglobalvars is not set, then global variables will persist
+; through reloads, and even if deleted from the extensions.conf or
+; one of its included files, will remain set to the previous value.
+;
+; NOTE: A complication sets in, if you put your global variables into
+; the AEL file, instead of the extensions.conf file. With clearglobalvars
+; set, a "reload" will often leave the globals vars cleared, because it
+; is not unusual to have extensions.conf (which will have no globals)
+; load after the extensions.ael file (where the global vars are stored).
+; So, with "reload" in this particular situation, first the AEL file will
+; clear and then set all the global vars, then, later, when the extensions.conf
+; file is loaded, the global vars are all cleared, and then not set, because
+; they are not stored in the extensions.conf file.
+;
+clearglobalvars=no
+;
+; If priorityjumping is set to 'yes', then applications that support
+; 'jumping' to a different priority based on the result of their operations
+; will do so (this is backwards compatible behavior with pre-1.2 releases
+; of Asterisk). Individual applications can also be requested to do this
+; by passing a 'j' option in their arguments.
+;
+priorityjumping=no
+;
+; User context is where entries from users.conf are registered. The
+; default value is 'default'
+;
+;userscontext=default
+;
+; You can include other config files, use the #include command
+; (without the ';'). Note that this is different from the "include" command
+; that includes contexts within other contexts. The #include command works
+; in all asterisk configuration files.
+;#include "filename.conf"
+
+; The "Globals" category contains global variables that can be referenced
+; in the dialplan with the GLOBAL dialplan function:
+; ${GLOBAL(VARIABLE)}
+; ${${GLOBAL(VARIABLE)}} or ${text${GLOBAL(VARIABLE)}} or any hybrid
+; Unix/Linux environmental variables can be reached with the ENV dialplan
+; function: ${ENV(VARIABLE)}
+;
+[globals]
+
+;
+; AUF : inclusion des variables globales
+;
+
+#include "auf/extensions-globals.local"
+
+;CONSOLE=Console/dsp ; Console interface for demo
+;CONSOLE=Zap/1
+;CONSOLE=Phone/phone0
+;IAXINFO=guest ; IAXtel username/password
+;IAXINFO=myuser:mypass
+;TRUNK=Zap/g2 ; Trunk interface
+;
+; Note the 'g2' in the TRUNK variable above. It specifies which group (defined
+; in zapata.conf) to dial, i.e. group 2, and how to choose a channel to use in
+; the specified group. The four possible options are:
+;
+; g: select the lowest-numbered non-busy Zap channel
+; (aka. ascending sequential hunt group).
+; G: select the highest-numbered non-busy Zap channel
+; (aka. descending sequential hunt group).
+; r: use a round-robin search, starting at the next highest channel than last
+; time (aka. ascending rotary hunt group).
+; R: use a round-robin search, starting at the next lowest channel than last
+; time (aka. descending rotary hunt group).
+;
+;TRUNKMSD=1 ; MSD digits to strip (usually 1 or 0)
+;TRUNK=IAX2/user:pass@provider
+
+;
+; Any category other than "General" and "Globals" represent
+; extension contexts, which are collections of extensions.
+;
+; Extension names may be numbers, letters, or combinations
+; thereof. If an extension name is prefixed by a '_'
+; character, it is interpreted as a pattern rather than a
+; literal. In patterns, some characters have special meanings:
+;
+; X - any digit from 0-9
+; Z - any digit from 1-9
+; N - any digit from 2-9
+; [1235-9] - any digit in the brackets (in this example, 1,2,3,5,6,7,8,9)
+; . - wildcard, matches anything remaining (e.g. _9011. matches
+; anything starting with 9011 excluding 9011 itself)
+; ! - wildcard, causes the matching process to complete as soon as
+; it can unambiguously determine that no other matches are possible
+;
+; For example the extension _NXXXXXX would match normal 7 digit dialings,
+; while _1NXXNXXXXXX would represent an area code plus phone number
+; preceded by a one.
+;
+; Each step of an extension is ordered by priority, which must
+; always start with 1 to be considered a valid extension. The priority
+; "next" or "n" means the previous priority plus one, regardless of whether
+; the previous priority was associated with the current extension or not.
+; The priority "same" or "s" means the same as the previously specified
+; priority, again regardless of whether the previous entry was for the
+; same extension. Priorities may be immediately followed by a plus sign
+; and another integer to add that amount (most useful with 's' or 'n').
+; Priorities may then also have an alias, or label, in
+; parenthesis after their name which can be used in goto situations
+;
+; Contexts contain several lines, one for each step of each
+; extension, which can take one of two forms as listed below,
+; with the first form being preferred.
+;
+;[context]
+;exten => someexten,{priority|label{+|-}offset}[(alias)],application(arg1,arg2,...)
+;exten => someexten,{priority|label{+|-}offset}[(alias)],application,arg1|arg2...
+;
+; Included Contexts
+;
+; One may include another context in the current one as well, optionally with a
+; date and time. Included contexts are included in the order
+; they are listed.
+; The reason a context would include other contexts is for their
+; extensions.
+; The algorithm to find an extension is recursive, and works in this
+; fashion:
+; first, given a stack on which to store context references,
+; push the context to find the extension onto the stack...
+; a) Try to find a matching extension in the context at the top of
+; the stack, and, if found, begin executing the priorities
+; there in sequence.
+; b) If not found, Search the switches, if any declared, in
+; sequence.
+; c) If still not found, for each include, push that context onto
+; the top of the context stack, and recurse to a).
+; d) If still not found, pop the entry from the top of the stack;
+; if the stack is empty, the search has failed. If it's not,
+; continue with the next context in c).
+; This is a depth-first traversal, and stops with the first context
+; that provides a matching extension. As usual, if more than one
+; pattern in a context will match, the 'best' match will win.
+; Please note that that extensions found in an included context are
+; treated as if they were in the context from which the search began.
+; The PBX's notion of the "current context" is not changed.
+; Please note that in a context, it does not matter where an include
+; directive occurs. Whether at the top, or near the bottom, the effect
+; will be the same. The only thing that matters is that if there is
+; more than one include directive, they will be searched for extensions
+; in order, first to last.
+; Also please note that pattern matches (like _9XX) are not treated
+; any differently than exact matches (like 987). Also note that the
+; order of extensions in a context have no affect on the outcome.
+;
+; Timing list for includes is
+;
+; <time range>|<days of week>|<days of month>|<months>
+;
+; Note that ranges may be specified to wrap around the ends. Also, minutes are
+; fine-grained only down to the closest even minute.
+;
+;include => daytime|9:00-17:00|mon-fri|*|*
+;include => weekend|*|sat-sun|*|*
+;include => weeknights|17:02-8:58|mon-fri|*|*
+;
+; ignorepat can be used to instruct drivers to not cancel dialtone upon
+; receipt of a particular pattern. The most commonly used example is
+; of course '9' like this:
+;
+;ignorepat => 9
+;
+; so that dialtone remains even after dialing a 9.
+;
+
+[default]
+
+; pour l'AUF, rien dans le contexte par defaut
+
+
+[macro-AUFDial]
+; Macro pour appel AUF
+; appelle simultannément les canaux SIP et IAX, pendant 30s
+; si pas de réponse, occupé ou indisponible : boite vocale
+; ${ARG1} : prenom.com
+; exemple : exten => 221,1,Macro(AUFDial,thomas.noel)
+exten => s,1,Set(CHANNEL(language)=fr)
+; exten => s,n,Dumpchan(10) ; décommenter cette ligne pour passer en mode "debug"
+exten => s,n,Dial(IAX2/${ARG1}&SIP/${ARG1},30,tThH) ; on appelle sur SIP et IAX pendant 30 secondes,
+; FIXME : activer les options w,W et d au niveau du Dial ci-dessus dès que tout sera ok (cf "show application Dial")
+exten => s,n,Goto(s-${DIALSTATUS},1) ; saut en fonction du status de fin de sonnerie
+ ; (parmis : NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
+exten => s-NOANSWER,1,Voicemail(u${MACRO_EXTEN}@AUF) ; Si pas de reponse : vers boite vocale avec message "indisponible"
+exten => s-BUSY,1,Voicemail(b${MACRO_EXTEN}@AUF) ; Si occupé : vers boite vocale avec message "occupé"
+exten => _s-.,1,Goto(s-NOANSWER,1) ; Tout le reste : traité comme non-réponse
+exten => a,1,VoicemailMain(${MACRO_EXTEN}@AUF) ; Si "*" appuyé : VoicemailMain
+
+[macro-AUFConference]
+; Macro pour appel conference (prononce d'abord le numéro de la conférence)
+; ${ARG1} : numero de la conf
+exten => s,1,Set(CHANNEL(language)=fr)
+; exten => s,n,Dumpchan(10) ; décommenter cette ligne pour passer en mode "debug"
+exten => s,n,Playback(conf-youareinconfnum)
+exten => s,n,SayNumber(${ARG1})
+exten => s,n,Conference(${ARG1})
+
+[macro-AUFAutoConference]
+; Si appelée directement : balance dans la conférence "cccc" où cccc est
+; calculé depuis nom du channel (CHANNEL==IAX2/thomas.noel-3 donnera IAX2_thomas.noel)
+; Si appelée suite à un transfert aveugle : balance dans la conférence
+; de l'initiateur du transfer (même calcul depuis BLINDTRANSFER)
+; FIXME : verifier la robustesse du bazar, par exemple suite à un transfert
+; assisté ou depuis un poste non local, etc...
+exten => s,1,Set(NAME=${IF($["${BLINDTRANSFER}" != ""]?${BLINDTRANSFER}:${CHANNEL})}) ; NAME = ; nom du channel relatif à la conference
+; exten => s,n,Dumpchan(10) ; décommenter cette ligne pour passer en mode "debug"
+exten => s,n,Set(TECHNO=${CUT(NAME,/,1)}) ; technologie du channel (partie gauche de IAX2/thomas.noel-2 par rapport au /)
+exten => s,n,Set(NAME=${CUT(NAME,/,2)}) ; nom du channel (partie droite de IAX2/thomas.noel-2 par rapport au /)
+exten => s,n,Set(cutnum=$[${FIELDQTY(NAME,-)} - 1]) ; on compte combien de champ on doit prendre pour retirer le dernier -nn
+exten => s,n,Set(NAME=${CUT(NAME,-,1-${cutnum})}) ; on retire le dernier "-n" : jean-pierre.to-2 devient jean-pierre.to
+exten => s,n,Set(CHANNEL(language)=fr)
+exten => s,n,Playback(conference)
+exten => s,n,Conference(${TECHNO}_${NAME}) ; nom de la conférence = IAX2_thomas.noel (ne doit pas comporter de /)
+
+[macro-AUFChoixSonnerie]
+; Selecteur de sonnerie
+; joue les fichiers 1.gsm, 2.gsm, ... de asterisk/sounds/ipphone5-rings/
+; On passe d'un fichier à l'autre avec 4 et 6. Quand on appuie sur 5, le
+; fichier .dat correspondant dans ; /usr/share/ipphone-tools/rings/ est
+; uploadé sur le poste IP appelant
+; TODO : Tentative de detection que c'est un IP Phone... Pour l'instant
+; je teste uniquement si c'est IAX. Mais pour faire un truc propre
+; il faudrait utiliser ipphone5-report ou qlq chose comme ça
+; TODO2: une petite intro qui dit qu'il faut taper 4/6/5 ça serait bien
+exten => s,1,Set(uploadip=${IAXPEER(CURRENTCHANNEL)})
+exten => s,2,GotoIf($["${uploadip}" = ""]?200:)
+exten => s,3,Set(n=1)
+exten => s,4,System(ls /usr/share/asterisk/sounds/ipphone5-rings/${n}.gsm)
+; Si le fichier n.gsm n'existe pas, on sort de la boucle
+exten => s,5,GotoIf($["${SYSTEMSTATUS}" != "SUCCESS"]?100:)
+; on diffuse la musique "n", en boucle, en attendant l'appui sur une touche
+exten => s,6,Background(/usr/share/asterisk/sounds/ipphone5-rings/${n}|m||macro-AUFChoixSonnerie)
+exten => s,7,Goto(6)
+; 4 et 6 : n-- et n++ et on retourne jouer le fichier
+exten => 4,1,GotoIf($["${n}" = "1"]?3:)
+exten => 4,2,Set(n=$[${n}-1])
+exten => 4,3,Goto(s|4)
+exten => 6,1,Set(n=$[${n}+1])
+exten => 6,2,Goto(s|4)
+; S'il le fichier n.gsm n'existe pas et que n n'était pas la première
+; alors on repasse au début ; sinon on plante (= aucune sonnerie dispo)
+exten => s,100,GotoIf($["${n}" = "1"]?200:3)
+; 5 => on lance un upload avec un délai d'exec de 2 secondes
+; le temps que le hangup soit fait. L'ipphone ne peut pas être uploadé
+; pendant la communication
+exten => 5,1,Playback(goodbye)
+exten => 5,n,System(sleep 2 && /usr/bin/ipphone5-upload /usr/share/ipphone-tools/rings/${n}.dat ${uploadip} > /dev/null 2>&1 &)
+exten => 5,n,Hangup()
+; Les erreurs fatales : pas de musique, ou bien c'est pas un ipphone...
+exten => s,200,Playback(system-crashed)
+exten => s,300,Playback(feature-not-avail-line)
+
+
+; pour ceux qui veulent ajouter des macros locales
+#include "auf/extensions-macros.local"
+
+
+[AUF-conferences]
+; *33 : envoie vers la conference "dynamique" (cf macro ci-dessus)
+exten => *33,1,Macro(AUFAutoConference)
+; *36nnn : accede à la conférence "nnn"
+exten => _*36.,1,Macro(AUFConference,${EXTEN:3})
+; *341 : acces au pont CERN/CNRS/IN2P3/Inserm/INRA
+; reservation : http://vacs.in2p3.fr
+; streaming : http://ccmcu40.in2p3.fr
+; ACCESSIBLE UNIQUEMENT EN SIP : necessite que votre serveur puisse "sortir" en SIP
+exten => *341,1,Dial(SIP/ccmcu40-in2p3-fr,10)
+
+[AUF-choixsonnerie]
+; * 15 : petit robot pour choisir sa sonnerie
+exten => *15,1,Macro(AUFChoixSonnerie)
+
+[AUF-boitesvocales]
+; *66 : on lance la boite vocale générale
+exten => *66,1,Set(CHANNEL(language)=fr)
+exten => *66,n,VoicemailMain(@AUF|p)
+exten => *66,n,Hangup
+; *67nnn : accès direct à la boite nnn
+exten => _*67.,1,Set(CHANNEL(language)=fr)
+exten => _*67.,n,VoicemailMain(${EXTEN:3}@AUF)
+exten => _*67.,n,Hangup
+
+[AUF-pickup]
+; pickup : **nnn permet de prendre un appel qui sonne sur le poste nnn
+; note : utilise DPickup provenant du patch bristuff
+exten => _**.,1,Set(CHANNEL(language)=fr)
+exten => _**.,n,DPickup(${EXTEN:2}@AUF)
+
+[AUF-echo]
+; *11 : test d'echo
+exten => *11,1,Set(CHANNEL(language)=fr)
+exten => *11,n,Playback(demo-echotest)
+exten => *11,n,Echo
+exten => *11,n,Playback(demo-echodone)
+exten => *11,n,Hangup
+
+[AUF-global]
+#include "auf/extensions.global"
+; Note : ce fichier est fourni par le paquet asterisk-config-auf-connexions
+
+[AUF-local]
+#include "auf/extensions.local"
+; Ce fichier contient les postes locaux, chaque responsable technique
+; doit le tenir à jour
+
+[AUF]
+
+; Services
+include => AUF-echo
+include => parkedcalls
+include => AUF-conferences
+include => AUF-choixsonnerie
+include => AUF-boitesvocales
+include => AUF-pickup
+
+; Appels locaux
+include => AUF-local
+
+; Appels internationaux
+include => AUF-global
+
+; Pour surcharges finales, si besoin (autres contextes, surcharges de contextes, etc)
+#include "auf/extensions-final.local"
+
--- /dev/null
+;
+; Sample Call Features (parking, transfer, etc) configuration
+;
+
+[general]
+parkext => *22 ; What extension to dial to park
+parkpos => 22200-22299 ; What extensions to park calls on. These needs to be
+ ; numeric, as Asterisk starts from the start position
+ ; and increments with one for the next parked call.
+context => parkedcalls ; Which context parked calls are in
+parkingtime => 120 ; Number of seconds a call can be parked for
+ ; (default is 45 seconds)
+courtesytone = beep ; Sound file to play to the parked caller
+ ; when someone dials a parked call
+ ; or the Touch Monitor is activated/deactivated.
+;parkedplay = caller ; Who to play the courtesy tone to when picking up a parked call
+ ; one of: parked, caller, both (default is caller)
+;adsipark = yes ; if you want ADSI parking announcements
+;findslot => next ; Continue to the 'next' free parking space.
+ ; Defaults to 'first' available
+;parkedmusicclass=default ; This is the MOH class to use for the parked channel
+ ; as long as the class is not set on the channel directly
+ ; using Set(CHANNEL(musicclass)=whatever) in the dialplan
+
+transferdigittimeout => 3 ; Number of seconds to wait between digits when transferring a call
+ ; (default is 3 seconds)
+;xfersound = beep ; to indicate an attended transfer is complete
+;xferfailsound = beeperr ; to indicate a failed transfer
+xfersound = pbx-transfer
+xferfailsound = abandons
+
+;pickupexten = *8 ; Configure the pickup extension. (default is *8)
+pickupexten = *#
+
+featuredigittimeout = 500 ; Max time (ms) between digits for
+ ; feature activation (default is 500 ms)
+atxfernoanswertimeout = 15 ; Timeout for answer on attended transfer default is 15 seconds.
+
+; Note that the DTMF features listed below only work when two channels have answered and are bridged together.
+; They can not be used while the remote party is ringing or in progress. If you require this feature you can use
+; chan_local in combination with Answer to accomplish it.
+
+[featuremap]
+blindxfer => ## ; Blind transfer (default is #)
+disconnect => *10 ; Disconnect (default is *)
+automon => *13 ; One Touch Record a.k.a. Touch Monitor
+atxfer => ** ; Attended transfer
+;parkcall => #72 ; Park call (one step parking)
+
+[applicationmap]
+; Note that the DYNAMIC_FEATURES channel variable must be set to use the features
+; defined here. The value of DYNAMIC_FEATURES should be the names of the features
+; to allow the channel to use separated by '#'. For example:
+;
+; Set(DYNAMIC_FEATURES=myfeature1#myfeature2#myfeature3)
+;
+;
+; The syntax for declaring a dynamic feature is the following:
+;
+;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>[,<AppArguments>[,MOH_Class]]
+;
+; FeatureName -> This is the name of the feature used in when setting the
+; DYNAMIC_FEATURES variable to enable usage of this feature.
+; DTMF_sequence -> This is the key sequence used to activate this feature.
+; ActivateOn -> This is the channel of the call that the application will be executed
+; on. Valid values are "self" and "peer". "self" means run the
+; application on the same channel that activated the feature. "peer"
+; means run the application on the opposite channel from the one that
+; has activated the feature.
+; ActivatedBy -> This is which channel is allowed to activate this feature. Valid
+; values are "caller", "callee", and "both". "both" is the default.
+; The "caller" is the channel that executed the Dial application, while
+; the "callee" is the channel called by the Dial application.
+; Application -> This is the application to execute.
+; AppArguments -> These are the arguments to be passed into the application.
+; MOH_Class -> This is the music on hold class to play while the idle
+; channel waits for the feature to complete. If left blank,
+; no music will be played.
+;
+;
+; IMPORTANT NOTE: The applicationmap is not intended to be used for all Asterisk
+; applications. When applications are used in extensions.conf, they are executed
+; by the PBX core. In this case, these applications are executed outside of the
+; PBX core, so it does *not* make sense to use any application which has any
+; concept of dialplan flow. Examples of this would be things like Macro, Goto,
+; Background, WaitExten, and many more.
+;
+; Enabling these features means that the PBX needs to stay in the media flow and
+; media will not be re-directed if DTMF is sent in the media stream.
+;
+; Example Usage:
+;
+;testfeature => #9,peer,Playback,tt-monkeys ;Allow both the caller and callee to play
+; ;tt-monkeys to the opposite channel
+;
+;pauseMonitor => #1,self/callee,Pausemonitor ;Allow the callee to pause monitoring
+; ;on their channel
+;unpauseMonitor => #3,self/callee,UnPauseMonitor ;Allow the callee to unpause monitoring
+; ;on their channel
+;
--- /dev/null
+;
+; Festival Configuration
+;
+[general]
+;
+; Host which runs the festival server (default : localhost);
+;
+;host=localhost
+;
+; Port on host where the festival server runs (default : 1314)
+;
+;port=1314
+;
+; Use cache (yes, no - defaults to no)
+;
+;usecache=yes
+;
+; If usecache=yes, a directory to store waveform cache files.
+; The cache is never cleared (yet), so you must take care of cleaning it
+; yourself (just delete any or all files from the cache).
+; THIS DIRECTORY *MUST* EXIST and must be writable from the asterisk process.
+; Defaults to /tmp/
+;
+;cachedir=/var/lib/asterisk/festivalcache/
+;
+; Festival command to send to the server.
+; Defaults to: (tts_textasterisk "%s" 'file)(quit)\n
+; %s is replaced by the desired text to say. The command MUST end with a
+; (quit) directive, or the cache handling mechanism will hang. Do not
+; forget the \n at the end.
+;
+;festivalcommand=(tts_textasterisk "%s" 'file)(quit)\n
+;
+;
+
--- /dev/null
+; Find-Me / Follow-Me Configuration File
+[general]
+;
+featuredigittimeout=>5000
+; The number of ms to wait for a digit input for the callee on whether to take the call or
+; not before we consider them "done" entering digits.
+;
+takecall=>1
+; The global default keypress for the callee to take taking the current call. This can be
+; a single digit or multiple digits. Default is "1".
+;
+declinecall=>2
+; The global default keypress for the callee to decline taking the current call. This can
+; be a single digit or multiple digits. Default is "2".
+;
+call-from-prompt=>followme/call-from
+; The global default for the 'Incoming call from' message.
+;
+norecording-prompt=>followme/no-recording
+; The global default for the 'You have an incoming call' message when the caller elects
+; not to leave their name or the option isn't set for them to do so.
+;
+options-prompt=>followme/options
+; The global default for the 'Press 1 to accept this call or press 2 to decline it' message.
+;
+pls-hold-prompt=>followme/pls-hold-while-try
+; The global default for 'Please hold while we try and connect your call' message.
+;
+status-prompt=>followme/status
+; The global default for 'The party you're calling isn't at their desk' message.
+;
+sorry-prompt=>followme/sorry
+; The global default for 'I'm sorry, but we were unable to locate your party' message.
+;
+;
+[default]
+musicclass=>default
+; The moh class that should be used for the caller while they are waiting to be connected.
+context=>default
+; The context to dial the numbers from
+number=>01233456,25
+; The a follow-me number to call. The format is:
+; number=> <number to call[&2nd #[&3rd #]]> [, <timeout value in seconds> [, <order in follow-me>] ]
+; You can specify as many of these numbers as you like. They will be dialed in the
+; order that you specify them in the config file OR as specified with the order field
+; on the number prompt. As you can see from the example, forked dialing of multiple
+; numbers in the same step is supported with this application if you'd like to dial
+; multiple numbers in the same followme step.
+; It's also important to note that the timeout value is not the same
+; as the timeout value you would use in app_dial. This timeout value is the amount of
+; time allowed between the time the dialing step starts and the callee makes a choice
+; on whether to take the call or not. That being the case, you may want to account for
+; this time, and make this timeout longer than a timeout you might specify in app_dial.
+takecall=>1
+; The keypress for the callee to take taking the current call. This can be
+; a single digit or multiple digits. Default is the global default.
+;
+declinecall=>2
+; The keypress for the callee to decline taking the current call. This can
+; be a single digit or multiple digits. Default is the global default.
+;
+call-from-prompt=>followme/call-from
+; The 'Incoming call from' message prompt. Default is the global default.
+;
+followme-norecording-prompt=>followme/no-recording
+; The 'You have an incoming call' message prompt when the caller elects
+; not to leave their name or the option isn't set for them to do so. Default
+; is the global default.
+;
+followme-options-prompt=>followme/options
+; The 'Press 1 to accept this call or press 2 to decline it' message prompt.
+; Default is the global default.
+;
+followme-pls-hold-prompt=>followme/pls-hold-while-try
+; The 'Please hold while we try and connect your call' message prompt.
+; Default is the global default.
+;
+followme-status-prompt=>followme/status
+; The 'The party you're calling isn't at their desk' message prompt.
+; Default is the global default.
+;
+followme-sorry-prompt=>followme/sorry
+; The 'I'm sorry, but we were unable to locate your party' message prompt. Default
+; is the global default.
+
+
--- /dev/null
+;[general]
+;context=default ;;Context to dump call into
+;allowguest=yes ;;Allow calls from people not in
+ ;;list of peers
+;
+;[guest] ;;special account for options on guest account
+;disallow=all
+;allow=ulaw
+;context=guest
+;
+;[ogorman]
+;username=ogorman@gmail.com ;;username of the peer your
+ ;;calling or accepting calls from
+;disallow=all
+;allow=ulaw
+;context=default
+;connection=asterisk ;;client or component in jabber.conf
+ ;;for the call to leave on.
+;
--- /dev/null
+;
+; Asterisk Builtin mini-HTTP server
+;
+;
+[general]
+;
+; Whether HTTP interface is enabled or not. Default is no.
+;
+;enabled=yes
+;
+; Whether Asterisk should serve static content from http-static
+; Default is no.
+;
+;enablestatic=yes
+;
+; Address to bind to. Default is 0.0.0.0
+;
+bindaddr=127.0.0.1
+;
+; Port to bind to (default is 8088)
+;
+bindport=8088
+;
+; Prefix allows you to specify a prefix for all requests
+; to the server. The default is "asterisk" so that all
+; requests must begin with /asterisk
+;
+;prefix=asterisk
+
+; The post_mappings section maps URLs to real paths on the filesystem. If a
+; POST is done from within an authenticated manager session to one of the
+; configured POST mappings, then any files in the POST will be placed in the
+; configured directory.
+;
+;[post_mappings]
+;
+; In this example, if the prefix option is set to "asterisk", then using the
+; POST URL: /asterisk/uploads will put files in /var/lib/asterisk/uploads/.
+;uploads = /var/lib/asterisk/uploads/
+;
--- /dev/null
+
+; Inter-Asterisk eXchange driver definition
+;
+; This configuration is re-read at reload
+; or with the CLI command
+; reload chan_iax2.so
+;
+; General settings, like port number to bind to, and
+; an option address (the default is to bind to all
+; local addresses).
+;
+[general]
+;bindport=4569 ; bindport and bindaddr may be specified
+; ; NOTE: bindport must be specified BEFORE
+ ; bindaddr or may be specified on a specific
+ ; bindaddr if followed by colon and port
+ ; (e.g. bindaddr=192.168.0.1:4569)
+;bindaddr=192.168.0.1 ; more than once to bind to multiple
+; ; addresses, but the first will be the
+; ; default
+;
+; Set iaxcompat to yes if you plan to use layered switches or
+; some other scenario which may cause some delay when doing a
+; lookup in the dialplan. It incurs a small performance hit to
+; enable it. This option causes Asterisk to spawn a separate thread
+; when it receives an IAX DPREQ (Dialplan Request) instead of
+; blocking while it waits for a response.
+;
+;iaxcompat=yes
+;
+; Disable UDP checksums (if nochecksums is set, then no checkums will
+; be calculated/checked on systems supporting this feature)
+;
+;nochecksums=no
+;
+;
+; For increased security against brute force password attacks
+; enable "delayreject" which will delay the sending of authentication
+; reject for REGREQ or AUTHREP if there is a password.
+;
+;delayreject=yes
+;
+; You may specify a global default AMA flag for iaxtel calls. It must be
+; one of 'default', 'omit', 'billing', or 'documentation'. These flags
+; are used in the generation of call detail records.
+;
+;amaflags=default
+;
+; ADSI (Analog Display Services Interface) can be enabled if you have
+; (or may have) ADSI compatible CPE equipment
+;
+;adsi=no
+;
+; You may specify a default account for Call Detail Records in addition
+; to specifying on a per-user basis
+;
+;accountcode=lss0101
+;
+; You may specify a global default language for users.
+; Can be specified also on a per-user basis
+; If omitted, will fallback to english
+;
+language=fr
+;
+; 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 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
+;
+; Specify bandwidth of low, medium, or high to control which codecs are used
+; in general.
+;
+;bandwidth=low
+;
+; You can also fine tune codecs here using "allow" and "disallow" clauses
+; with specific codecs. Use "all" to represent all formats.
+;
+;allow=all ; same as bandwidth=high
+;disallow=g723.1 ; Hm... Proprietary, don't use it...
+;disallow=lpc10 ; Icky sound quality... Mr. Roboto.
+;allow=gsm ; Always allow GSM, it's cool :)
+;
+
+disallow=all
+
+; codec audio
+allow=gsm ; pour interconnexions
+allow=ulaw ; pour postes locaux (ou bonnes connexions)
+;allow=ilbc ; pose des problèmes, pas de translation avec ulaw/gsm
+;allow=speex ; drôles de bruits, à tester à l'occasion
+
+; codecs video
+allow=h261
+allow=h263
+allow=h263p
+allow=h264
+
+; You can adjust several parameters relating to the jitter buffer.
+; The jitter buffer's function is to compensate for varying
+; network delay.
+;
+; All the jitter buffer settings are in milliseconds.
+; The jitter buffer works for INCOMING audio - the outbound audio
+; will be dejittered by the jitter buffer at the other end.
+;
+; jitterbuffer=yes|no: global default as to whether you want
+; the jitter buffer at all.
+;
+; forcejitterbuffer=yes|no: in the ideal world, when we bridge VoIP channels
+; we don't want to do jitterbuffering on the switch, since the endpoints
+; can each handle this. However, some endpoints may have poor jitterbuffers
+; themselves, so this option will force * to always jitterbuffer, even in this
+; case.
+;
+; maxjitterbuffer: a maximum size for the jitter buffer.
+; Setting a reasonable maximum here will prevent the call delay
+; from rising to silly values in extreme situations; you'll hear
+; SOMETHING, even though it will be jittery.
+;
+; resyncthreshold: when the jitterbuffer notices a significant change in delay
+; that continues over a few frames, it will resync, assuming that the change in
+; delay was caused by a timestamping mix-up. The threshold for noticing a
+; change in delay is measured as twice the measured jitter plus this resync
+; threshold.
+; Resyncing can be disabled by setting this parameter to -1.
+;
+; maxjitterinterps: the maximum number of interpolation frames the jitterbuffer
+; should return in a row. Since some clients do not send CNG/DTX frames to
+; indicate silence, the jitterbuffer will assume silence has begun after
+; returning this many interpolations. This prevents interpolating throughout
+; a long silence.
+;
+
+jitterbuffer=yes
+forcejitterbuffer=yes
+maxjitterbuffer=1500
+resyncthreshold=2000
+maxjitterinterps=10
+
+;trunkfreq=20 ; How frequently to send trunk msgs (in ms)
+
+; Should we send timestamps for the individual sub-frames within trunk frames?
+; There is a small bandwidth use for these (less than 1kbps/call), but they
+; ensure that frame timestamps get sent end-to-end properly. If both ends of
+; all your trunks go directly to TDM, _and_ your trunkfreq equals the frame
+; length for your codecs, you can probably suppress these. The receiver must
+; also support this feature, although they do not also need to have it enabled.
+;
+; trunktimestamps=yes
+;
+; Minimum and maximum amounts of time that IAX peers can request as
+; a registration expiration interval (in seconds).
+minregexpire = 60
+maxregexpire = 120
+;
+; IAX helper threads
+; Establishes the number of iax helper threads to handle I/O.
+; iaxthreadcount = 10
+; Establishes the number of extra dynamic threads that may be spawned to handle I/O
+; iaxmaxthreadcount = 100
+;
+; We can register with another IAX server to let him know where we are
+; in case we have a dynamic IP address for example
+;
+; Register with tormenta using username marko and password secretpass
+;
+;register => marko:secretpass@tormenta.linux-support.net
+;
+; Register joe at remote host with no password
+;
+;register => joe@remotehost:5656
+;
+; Register marko at tormenta.linux-support.net using RSA key "torkey"
+;
+;register => marko:[torkey]@tormenta.linux-support.net
+;
+; Sample Registration for iaxtel
+;
+; Visit http://www.iaxtel.com to register with iaxtel. Replace "user"
+; and "pass" with your username and password for iaxtel. Incoming
+; calls arrive at the "s" extension of "default" context.
+;
+;register => user:pass@iaxtel.com
+;
+; Sample Registration for IAX + FWD
+;
+; To register using IAX with FWD, it must be enabled by visiting the URL
+; http://www.fwdnet.net/index.php?section_id=112
+;
+; Note that you need an extension in you default context which matches
+; your free world dialup number. Please replace "FWDNumber" with your
+; FWD number and "passwd" with your password.
+;
+;register => FWDNumber:passwd@iax.fwdnet.net
+;
+;
+; You can disable authentication debugging to reduce the amount of
+; debugging traffic.
+;
+;authdebug=no
+;
+; See doc/README.tos for a description of the tos parameters.
+tos=ef
+;
+; 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. The actual extension is the 'regexten' parameter of the registering
+; peer or its name if 'regexten' is not provided. More than one regexten
+; may be supplied if they are separated by '&'. Patterns may be used in
+; regexten.
+;
+;regcontext=iaxregistrations
+;
+; If we don't get ACK to our NEW within 2000ms, and autokill is set to yes,
+; then we cancel the whole thing (that's enough time for one retransmission
+; only). This is used to keep things from stalling for a long time for a host
+; that is not available, but would be ill advised for bad connections. In
+; addition to 'yes' or 'no' you can also specify a number of milliseconds.
+; See 'qualify' for individual peers to turn on for just a specific peer.
+;
+;autokill=yes
+autokill=5000
+;
+; codecpriority controls the codec negotiation of an inbound IAX call.
+; This option is inherited to all user entities. It can also be defined
+; in each user entity separately which will override the setting in general.
+;
+; The valid values are:
+;
+; caller - Consider the callers preferred order ahead of the host's.
+; host - Consider the host's preferred order ahead of the caller's.
+; disabled - Disable the consideration of codec preference altogether.
+; (this is the original behaviour before preferences were added)
+; reqonly - Same as disabled, only do not consider capabilities if
+; the requested format is not available the call will only
+; be accepted if the requested format is available.
+;
+; The default value is 'host'
+;
+codecpriority=host
+
+;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)
+
+;rtupdate=yes ; Send registry updates to database using realtime? (yes|no)
+ ; If set to yes, when a IAX2 peer registers successfully,
+ ; the ip address, the origination port, the registration period,
+ ; and the username of the peer 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|<seconds>)
+ ; 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.
+
+;rtignoreregexpire=yes ; When reading a peer from Realtime, if the peer's registration
+ ; has expired based on its registration interval, used the stored
+ ; address information regardless. (yes|no)
+
+
+; un téléphone IP AUF peut recevoir 2 lignes en même temps...
+incominglimit=2
+
+;
+; inclusion des configurations locales au site (AUF)
+
+; Comptes pour liaisons IAX inter implantations
+; Fichier fourni par le paquet asterisk-config-auf-connexions
+#include "auf/iax.global"
+
+; Comptes pour postes clients locaux IAX
+#include "auf/iax.local"
+
--- /dev/null
+;
+; IAX2 Provisioning Information
+;
+; Contains provisioning information for templates and for specific service
+; entries.
+;
+; Templates provide a group of settings from which provisioning takes place.
+; A template may be based upon any template that has been specified before
+; it. If the template that an entry is based on is not specified then it is
+; presumed to be 'default' (unless it is the first of course).
+;
+; Templates which begin with 'si-' are used for provisioning units with
+; specific service identifiers. For example the entry "si-000364000126"
+; would be used when the device with the corresponding service identifier of
+; "000364000126" attempts to register or make a call.
+;
+;[default]
+;
+; The port number the device should use to bind to. The default is 4569.
+;
+;port=4569
+;
+; server is our PRIMARY server for registration and placing calls
+;
+;server=192.168.69.3
+;
+; altserver is the BACKUP server for registration and placing calls in the
+; event the primary server is unavailable.
+;
+;altserver=192.168.69.4
+;
+; port is the port number to use for IAX2 outbound. The connections to the
+; server and altserver -- default is of course 4569.
+;serverport=4569
+;
+; language is the preferred language for the device
+;
+;language=en
+;
+; codec is the requested codec. The iaxy supports ulaw and adpcm
+;
+;codec=ulaw
+;
+; flags is a comma separated list of flags which the device should
+; use and may contain any of the following keywords:
+;
+; "register" - Register with server
+; "secure" - Do not accept calls / provisioning not originated by the server
+; "heartbeat" - Generate status packets on port 9999 sent to 255.255.255.255
+; "debug" - Output extra debugging to port 9999
+;
+; Note that use can use += and -= to adjust parameters
+;
+;flags=register,heartbeat
+;
+; See doc/README.tos for a description of this parameter.
+;tos=ef
+;
+; Example iaxy provisioning
+;
+;[si-000364000126]
+;user=iaxy
+;pass=bitsy
+;flags += debug
+
+;[si-000364000127]
+;user=iaxy2
+;pass=bitsy2
+;template=si-000364000126
+;flags += debug
+
+;
+;[*]
+;
+; If specified, the '*' provisioning is used for all devices which do not
+; have another provisioning entry within the file. If unspecified, no
+; provisioning will take place for devices which have no entry. DO NOT
+; USE A '*' PROVISIONING ENTRY UNLESS YOU KNOW WHAT YOU'RE DOING.
+;
+;template=default
+
--- /dev/null
+; indications.conf
+; Configuration file for location specific tone indications
+; used by the pbx_indications module.
+;
+; NOTE:
+; When adding countries to this file, please keep them in alphabetical
+; order according to the 2-character country codes!
+;
+; The [general] category is for certain global variables.
+; All other categories are interpreted as location specific indications
+;
+;
+[general]
+country=fr ; default location
+
+
+; [example]
+; description = string
+; The full name of your country, in English.
+; alias = iso[,iso]*
+; List of other countries 2-letter iso codes, which have the same
+; tone indications.
+; ringcadence = num[,num]*
+; List of durations the physical bell rings.
+; dial = tonelist
+; Set of tones to be played when one picks up the hook.
+; busy = tonelist
+; Set of tones played when the receiving end is busy.
+; congestion = tonelist
+; Set of tones played when there is some congestion (on the network?)
+; callwaiting = tonelist
+; Set of tones played when there is a call waiting in the background.
+; dialrecall = tonelist
+; Not well defined; many phone systems play a recall dial tone after hook
+; flash.
+; record = tonelist
+; Set of tones played when call recording is in progress.
+; info = tonelist
+; Set of tones played with special information messages (e.g., "number is
+; out of service")
+; 'name' = tonelist
+; Every other variable will be available as a shortcut for the "PlayList" command
+; but will not be used automatically by Asterisk.
+;
+;
+; The tonelist itself is defined by a comma-separated sequence of elements.
+; Each element consist of a frequency (f) with an optional duration (in ms)
+; attached to it (f/duration). The frequency component may be a mixture of two
+; frequencies (f1+f2) or a frequency modulated by another frequency (f1*f2).
+; The implicit modulation depth is fixed at 90%, though.
+; If the list element starts with a !, that element is NOT repeated,
+; therefore, only if all elements start with !, the tonelist is time-limited,
+; all others will repeat indefinitely.
+;
+; concisely:
+; element = [!]freq[+|*freq2][/duration]
+; tonelist = element[,element]*
+;
+; Please note that SPACES ARE NOT ALLOWED in tone lists!
+;
+
+[at]
+description = Austria
+ringcadence = 1000,5000
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+dial = 420
+busy = 420/400,0/400
+ring = 420/1000,0/5000
+congestion = 420/200,0/200
+callwaiting = 420/40,0/1960
+dialrecall = 420
+; RECORDTONE - not specified
+record = 1400/80,0/14920
+info = 950/330,1450/330,1850/330,0/1000
+stutter = 380+420
+
+[au]
+description = Australia
+; Reference http://www.acif.org.au/__data/page/3303/S002_2001.pdf
+; Normal Ring
+ringcadence = 400,200,400,2000
+; Distinctive Ring 1 - Forwarded Calls
+; 400,400,200,200,400,1400
+; Distinctive Ring 2 - Selective Ring 2 + Operator + Recall
+; 400,400,200,2000
+; Distinctive Ring 3 - Multiple Subscriber Number 1
+; 200,200,400,2200
+; Distinctive Ring 4 - Selective Ring 1 + Centrex
+; 400,2600
+; Distinctive Ring 5 - Selective Ring 3
+; 400,400,200,400,200,1400
+; Distinctive Ring 6 - Multiple Subscriber Number 2
+; 200,400,200,200,400,1600
+; Distinctive Ring 7 - Multiple Subscriber Number 3 + Data Privacy
+; 200,400,200,400,200,1600
+; Tones
+dial = 413+438
+busy = 425/375,0/375
+ring = 413+438/400,0/200,413+438/400,0/2000
+; XXX Congestion: Should reduce by 10 db every other cadence XXX
+congestion = 425/375,0/375,420/375,0/375
+callwaiting = 425/200,0/200,425/200,0/4400
+dialrecall = 413+438
+; Record tone used for Call Intrusion/Recording or Conference
+record = !425/1000,!0/15000,425/360,0/15000
+info = 425/2500,0/500
+; Other Australian Tones
+; The STD "pips" indicate the call is not an untimed local call
+std = !525/100,!0/100,!525/100,!0/100,!525/100,!0/100,!525/100,!0/100,!525/100
+; Facility confirmation tone (eg. Call Forward Activated)
+facility = 425
+; Message Waiting "stutter" dialtone
+stutter = 413+438/100,0/40
+; Ringtone for calls to Telstra mobiles
+ringmobile = 400+450/400,0/200,400+450/400,0/2000
+
+[bg]
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+description = Bulgaria
+ringdance = 1000,4000
+;
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/250,0/250
+callwaiting = 425/150,0/150,425/150,0/4000
+dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+record = 1400/425,0/15000
+info = 950/330,1400/330,1800/330,0/1000
+stutter = 425/1500,0/100
+
+[br]
+description = Brazil
+ringcadence = 1000,4000
+dial = 425
+busy = 425/250,0/250
+ring = 425/1000,0/4000
+congestion = 425/250,0/250,425/750,0/250
+callwaiting = 425/50,0/1000
+; Dialrecall not used in Brazil standard (using UK standard)
+dialrecall = 350+440
+; Record tone is not used in Brazil, use busy tone
+record = 425/250,0/250
+; Info not used in Brazil standard (using UK standard)
+info = 950/330,1400/330,1800/330
+stutter = 350+440
+
+[be]
+description = Belgium
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,3000
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/3000
+congestion = 425/167,0/167
+callwaiting = 1400/175,0/175,1400/175,0/3500
+; DIALRECALL - not specified
+dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440"
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+info = 900/330,1400/330,1800/330,0/1000
+stutter = 425/1000,0/250
+
+[ch]
+description = Switzerland
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+callwaiting = 425/200,0/200,425/200,0/4000
+; DIALRECALL - not specified
+dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+; RECORDTONE - not specified
+record = 1400/80,0/15000
+info = 950/330,1400/330,1800/330,0/1000
+stutter = 425+340/1100,0/1100
+
+[cl]
+description = Chile
+; According to specs from Telefonica CTC Chile
+ringcadence = 1000,3000
+dial = 400
+busy = 400/500,0/500
+ring = 400/1000,0/3000
+congestion = 400/200,0/200
+callwaiting = 400/250,0/8750
+dialrecall = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
+record = 1400/500,0/15000
+info = 950/333,1400/333,1800/333,0/1000
+stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
+
+[cn]
+description = China
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+dial = 450
+busy = 450/350,0/350
+ring = 450/1000,0/4000
+congestion = 450/700,0/700
+callwaiting = 450/400,0/4000
+dialrecall = 450
+record = 950/400,0/10000
+info = 450/100,0/100,450/100,0/100,450/100,0/100,450/400,0/400
+; STUTTER - not specified
+stutter = 450+425
+
+[cz]
+description = Czech Republic
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+dial = 425/330,0/330,425/660,0/660
+busy = 425/330,0/330
+ring = 425/1000,0/4000
+congestion = 425/165,0/165
+callwaiting = 425/330,0/9000
+; DIALRECALL - not specified
+dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425/330,0/330,425/660,0/660
+; RECORDTONE - not specified
+record = 1400/500,0/14000
+info = 950/330,0/30,1400/330,0/30,1800/330,0/1000
+; STUTTER - not specified
+stutter = 425/450,0/50
+
+[de]
+description = Germany
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+dial = 425
+busy = 425/480,0/480
+ring = 425/1000,0/4000
+congestion = 425/240,0/240
+callwaiting = !425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,0
+; DIALRECALL - not specified
+dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+; RECORDTONE - not specified
+record = 1400/80,0/15000
+info = 950/330,1400/330,1800/330,0/1000
+stutter = 425+400
+
+[dk]
+description = Denmark
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+callwaiting = !425/200,!0/600,!425/200,!0/3000,!425/200,!0/200,!425/200,0
+; DIALRECALL - not specified
+dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+; RECORDTONE - not specified
+record = 1400/80,0/15000
+info = 950/330,1400/330,1800/330,0/1000
+; STUTTER - not specified
+stutter = 425/450,0/50
+
+[ee]
+description = Estonia
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+dial = 425
+busy = 425/300,0/300
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+; CALLWAIT not in accordance to ITU
+callwaiting = 950/650,0/325,950/325,0/30,1400/1300,0/2600
+; DIALRECALL - not specified
+dialrecall = 425/650,0/25
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+; INFO not in accordance to ITU
+info = 950/650,0/325,950/325,0/30,1400/1300,0/2600
+; STUTTER not specified
+stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+
+[es]
+description = Spain
+ringcadence = 1500,3000
+dial = 425
+busy = 425/200,0/200
+ring = 425/1500,0/3000
+congestion = 425/200,0/200,425/200,0/200,425/200,0/600
+callwaiting = 425/175,0/175,425/175,0/3500
+dialrecall = !425/200,!0/200,!425/200,!0/200,!425/200,!0/200,425
+record = 1400/500,0/15000
+info = 950/330,0/1000
+dialout = 500
+
+
+[fi]
+description = Finland
+ringcadence = 1000,4000
+dial = 425
+busy = 425/300,0/300
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+callwaiting = 425/150,0/150,425/150,0/8000
+dialrecall = 425/650,0/25
+record = 1400/500,0/15000
+info = 950/650,0/325,950/325,0/30,1400/1300,0/2600
+stutter = 425/650,0/25
+
+[fr]
+description = France
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1500,3500
+; Dialtone can also be 440+330
+dial = 440
+busy = 440/500,0/500
+ring = 440/1500,0/3500
+; CONGESTION - not specified
+congestion = 440/250,0/250
+callwait = 440/300,0/10000
+; DIALRECALL - not specified
+dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+info = !950/330,!1400/330,!1800/330
+stutter = !440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,440
+
+[gr]
+description = Greece
+ringcadence = 1000,4000
+dial = 425/200,0/300,425/700,0/800
+busy = 425/300,0/300
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+callwaiting = 425/150,0/150,425/150,0/8000
+dialrecall = 425/650,0/25
+record = 1400/400,0/15000
+info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
+stutter = 425/650,0/25
+
+[hu]
+description = Hungary
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1250,3750
+dial = 425
+busy = 425/300,0/300
+ring = 425/1250,0/3750
+congestion = 425/300,0/300
+callwaiting = 425/40,0/1960
+dialrecall = 425+450
+; RECORDTONE - not specified
+record = 1400/400,0/15000
+info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
+stutter = 350+375+400
+
+[il]
+description = Israel
+ringcadence = 1000,3000
+dial = 414
+busy = 414/500,0/500
+ring = 414/1000,0/3000
+congestion = 414/250,0/250
+callwaiting = 414/100,0/100,414/100,0/100,414/600,0/3000
+dialrecall = !414/100,!0/100,!414/100,!0/100,!414/100,!0/100,414
+record = 1400/500,0/15000
+info = 1000/330,1400/330,1800/330,0/1000
+stutter = !414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,414
+
+
+[in]
+description = India
+ringcadence = 400,200,400,2000
+dial = 400*25
+busy = 400/750,0/750
+ring = 400*25/400,0/200,400*25/400,0/2000
+congestion = 400/250,0/250
+callwaiting = 400/200,0/100,400/200,0/7500
+dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+record = 1400/500,0/15000
+info = !950/330,!1400/330,!1800/330,0/1000
+stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+
+[it]
+description = Italy
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+dial = 425/200,0/200,425/600,0/1000
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+callwaiting = 425/400,0/100,425/250,0/100,425/150,0/14000
+dialrecall = 470/400,425/400
+record = 1400/400,0/15000
+info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
+stutter = 470/400,425/400
+
+[lt]
+description = Lithuania
+ringcadence = 1000,4000
+dial = 425
+busy = 425/350,0/350
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+callwaiting = 425/150,0/150,425/150,0/4000
+; DIALRECALL - not specified
+dialrecall = 425/500,0/50
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
+; STUTTER - not specified
+stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+
+[jp]
+description = Japan
+ringcadence = 1000,2000
+dial = 400
+busy = 400/500,0/500
+ring = 400+15/1000,0/2000
+congestion = 400/500,0/500
+callwaiting = 400+16/500,0/8000
+dialrecall = !400/200,!0/200,!400/200,!0/200,!400/200,!0/200,400
+record = 1400/500,0/15000
+info = !950/330,!1400/330,!1800/330,0
+stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
+
+[mx]
+description = Mexico
+ringcadence = 2000,4000
+dial = 425
+busy = 425/250,0/250
+ring = 425/1000,0/4000
+congestion = 425/250,0/250
+callwaiting = 425/200,0/600,425/200,0/10000
+dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+record = 1400/500,0/15000
+info = 950/330,0/30,1400/330,0/30,1800/330,0/1000
+stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+
+[my]
+description = Malaysia
+ringcadence = 2000,4000
+dial = 425
+busy = 425/500,0/500
+ring = 425/400,0/200
+congestion = 425/500,0/500
+
+[nl]
+description = Netherlands
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+; Most of these 425's can also be 450's
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/250,0/250
+callwaiting = 425/500,0/9500
+; DIALRECALL - not specified
+dialrecall = 425/500,0/50
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+info = 950/330,1400/330,1800/330,0/1000
+stutter = 425/500,0/50
+
+[no]
+description = Norway
+ringcadence = 1000,4000
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+callwaiting = 425/200,0/600,425/200,0/10000
+dialrecall = 470/400,425/400
+record = 1400/400,0/15000
+info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
+stutter = 470/400,425/400
+
+[nz]
+description = New Zealand
+;NOTE - the ITU has different tonesets for NZ, but according to some residents there,
+; this is, indeed, the correct way to do it.
+ringcadence = 400,200,400,2000
+dial = 400
+busy = 400/250,0/250
+ring = 400+450/400,0/200,400+450/400,0/2000
+congestion = 400/375,0/375
+callwaiting = !400/200,!0/3000,!400/200,!0/3000,!400/200,!0/3000,!400/200
+dialrecall = !400/100!0/100,!400/100,!0/100,!400/100,!0/100,400
+record = 1400/425,0/15000
+info = 400/750,0/100,400/750,0/100,400/750,0/100,400/750,0/400
+stutter = !400/100!0/100,!400/100,!0/100,!400/100,!0/100,!400/100!0/100,!400/100,!0/100,!400/100,!0/100,400
+unobtainable = 400/75,0/100,400/75,0/100,400/75,0/100,400/75,0/400
+
+[ph]
+
+; reference http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+
+description = Philippines
+ringcadence = 1000,4000
+dial = 425
+busy = 480+620/500,0/500
+ring = 425+480/1000,0/4000
+congestion = 480+620/250,0/250
+callwaiting = 440/300,0/10000
+; DIALRECALL - not specified
+dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+; INFO - not specified
+info = !950/330,!1400/330,!1800/330,0
+; STUTTER - not specified
+stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+
+
+[pl]
+description = Poland
+ringcadence = 1000,4000
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/500,0/500
+callwaiting = 425/150,0/150,425/150,0/4000
+; DIALRECALL - not specified
+dialrecall = 425/500,0/50
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+; 950/1400/1800 3x0.33 on 1.0 off repeated 3 times
+info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000
+; STUTTER - not specified
+stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+
+[pt]
+description = Portugal
+ringcadence = 1000,5000
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/5000
+congestion = 425/200,0/200
+callwaiting = 440/300,0/10000
+dialrecall = 425/1000,0/200
+record = 1400/500,0/15000
+info = 950/330,1400/330,1800/330,0/1000
+stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+
+[ru]
+; References:
+; http://www.minsvyaz.ru/site.shtml?id=1806
+; http://www.aboutphone.info/lib/gost/45-223-2001.html
+description = Russian Federation / ex Soviet Union
+ringcadence = 1000,4000
+dial = 425
+busy = 425/350,0/350
+ring = 425/1000,0/4000
+congestion = 425/175,0/175
+callwaiting = 425/200,0/5000
+record = 1400/400,0/15000
+info = 950/330,1400/330,1800/330,0/1000
+dialrecall = 425/400,0/40
+stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+
+[se]
+description = Sweden
+ringcadence = 1000,5000
+dial = 425
+busy = 425/250,0/250
+ring = 425/1000,0/5000
+congestion = 425/250,0/750
+callwaiting = 425/200,0/500,425/200,0/9100
+dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+record = 1400/500,0/15000
+info = !950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,0
+stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+; stutter = 425/320,0/20 ; Real swedish standard, not used for now
+
+[sg]
+description = Singapore
+; Singapore
+; Reference: http://www.ida.gov.sg/idaweb/doc/download/I397/ida_ts_pstn1_i4r2.pdf
+; Frequency specs are: 425 Hz +/- 20Hz; 24 Hz +/- 2Hz; modulation depth 100%; SIT +/- 50Hz
+ringcadence = 400,200,400,2000
+dial = 425
+ring = 425*24/400,0/200,425*24/400,0/2000 ; modulation should be 100%, not 90%
+busy = 425/750,0/750
+congestion = 425/250,0/250
+callwaiting = 425*24/300,0/200,425*24/300,0/3200
+stutter = !425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,425
+info = 950/330,1400/330,1800/330,0/1000 ; not currently in use acc. to reference
+dialrecall = 425*24/500,0/500,425/500,0/2500 ; unspecified in IDA reference, use repeating Holding Tone A,B
+record = 1400/500,0/15000 ; unspecified in IDA reference, use 0.5s tone every 15s
+; additionally defined in reference
+nutone = 425/2500,0/500
+intrusion = 425/250,0/2000
+warning = 425/624,0/4376 ; end of period tone, warning
+acceptance = 425/125,0/125
+holdinga = !425*24/500,!0/500 ; followed by holdingb
+holdingb = !425/500,!0/2500
+
+[th]
+description = Thailand
+ringcadence = 1000,4000
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+dial = 400*50
+busy = 400/500,0/500
+ring = 420/1000,0/5000
+congestion = 400/300,0/300
+callwaiting = 1000/400,10000/400,1000/400
+; DIALRECALL - not specified - use special dial tone instead.
+dialrecall = 400*50/400,0/100,400*50/400,0/100
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+; INFO - specified as an announcement - use special information tones instead
+info = 950/330,1400/330,1800/330
+; STUTTER - not specified
+stutter = !400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,400
+
+[uk]
+description = United Kingdom
+ringcadence = 400,200,400,2000
+; These are the official tones taken from BT SIN350. The actual tones
+; used by BT include some volume differences so sound slightly different
+; from Asterisk-generated ones.
+dial = 350+440
+; Special dial is the intermittent dial tone heard when, for example,
+; you have a divert active on the line
+specialdial = 350+440/750,440/750
+; Busy is also called "Engaged"
+busy = 400/375,0/375
+; "Congestion" is the Beep-bip engaged tone
+congestion = 400/400,0/350,400/225,0/525
+; "Special Congestion" is not used by BT very often if at all
+specialcongestion = 400/200,1004/300
+unobtainable = 400
+ring = 400+450/400,0/200,400+450/400,0/2000
+callwaiting = 400/100,0/4000
+; BT seem to use "Special Call Waiting" rather than just "Call Waiting" tones
+specialcallwaiting = 400/250,0/250,400/250,0/250,400/250,0/5000
+; "Pips" used by BT on payphones. (Sounds wrong, but this is what BT claim it
+; is and I've not used a payphone for years)
+creditexpired = 400/125,0/125
+; These two are used to confirm/reject service requests on exchanges that
+; don't do voice announcements.
+confirm = 1400
+switching = 400/200,0/400,400/2000,0/400
+; This is the three rising tones Doo-dah-dee "Special Information Tone",
+; usually followed by the BT woman saying an appropriate message.
+info = 950/330,0/15,1400/330,0/15,1800/330,0/1000
+; Not listed in SIN350
+record = 1400/500,0/60000
+stutter = 350+440/750,440/750
+
+[us]
+description = United States / North America
+ringcadence = 2000,4000
+dial = 350+440
+busy = 480+620/500,0/500
+ring = 440+480/2000,0/4000
+congestion = 480+620/250,0/250
+callwaiting = 440/300,0/10000
+dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+record = 1400/500,0/15000
+info = !950/330,!1400/330,!1800/330,0
+stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+
+[us-old]
+description = United States Circa 1950/ North America
+ringcadence = 2000,4000
+dial = 600*120
+busy = 500*100/500,0/500
+ring = 420*40/2000,0/4000
+congestion = 500*100/250,0/250
+callwaiting = 440/300,0/10000
+dialrecall = !600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120
+record = 1400/500,0/15000
+info = !950/330,!1400/330,!1800/330,0
+stutter = !600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120
+
+[tw]
+description = Taiwan
+; http://nemesis.lonestar.org/reference/telecom/signaling/dialtone.html
+; http://nemesis.lonestar.org/reference/telecom/signaling/busy.html
+; http://www.iproducts.com.tw/ee/kylink/06ky-1000a.htm
+; http://www.pbx-manufacturer.com/ky120dx.htm
+; http://www.nettwerked.net/tones.txt
+; http://www.cisco.com/univercd/cc/td/doc/product/tel_pswt/vco_prod/taiw_sup/taiw2.htm
+;
+; busy tone 480+620Hz 0.5 sec. on ,0.5 sec. off
+; reorder tone 480+620Hz 0.25 sec. on,0.25 sec. off
+; ringing tone 440+480Hz 1 sec. on ,2 sec. off
+;
+ringcadence = 1000,4000
+dial = 350+440
+busy = 480+620/500,0/500
+ring = 440+480/1000,0/2000
+congestion = 480+620/250,0/250
+callwaiting = 350+440/250,0/250,350+440/250,0/3250
+dialrecall = 300/1500,0/500
+record = 1400/500,0/15000
+info = !950/330,!1400/330,!1800/330,0
+stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+
+[ve]
+; Tone definition source for ve found on
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+description = Venezuela / South America
+ringcadence = 1000,4000
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/250,0/250
+callwaiting = 400+450/300,0/6000
+dialrecall = 425
+record = 1400/500,0/15000
+info = !950/330,!1440/330,!1800/330,0/1000
+
+
+[za]
+description = South Africa
+; http://www.cisco.com/univercd/cc/td/doc/product/tel_pswt/vco_prod/safr_sup/saf02.htm
+; (definitions for other countries can also be found there)
+; Note, though, that South Africa uses two switch types in their network --
+; Alcatel switches -- mainly in the Western Cape, and Siemens elsewhere.
+; The former use 383+417 in dial, ringback etc. The latter use 400*33
+; I've provided both, uncomment the ones you prefer
+ringcadence = 400,200,400,2000
+; dial/ring/callwaiting for the Siemens switches:
+dial = 400*33
+ring = 400*33/400,0/200,400*33/400,0/2000
+callwaiting = 400*33/250,0/250,400*33/250,0/250,400*33/250,0/250,400*33/250,0/250
+; dial/ring/callwaiting for the Alcatel switches:
+; dial = 383+417
+; ring = 383+417/400,0/200,383+417/400,0/2000
+; callwaiting = 383+417/250,0/250,383+417/250,0/250,383+417/250,0/250,383+417/250,0/250
+congestion = 400/250,0/250
+busy = 400/500,0/500
+dialrecall = 350+440
+; XXX Not sure about the RECORDTONE
+record = 1400/500,0/10000
+info = 950/330,1400/330,1800/330,0/330
+stutter = !400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,400*33
--- /dev/null
+[general]
+;debug=yes ;;Turn on debugging by default.
+;autoprune=yes ;;Auto remove users from buddy list.
+;autoregister=yes ;;Auto register users from buddy list.
+
+;[asterisk] ;;label
+;type=client ;;Client or Component connection
+;serverhost=astjab.org ;;Route to server for example,
+ ;; talk.google.com
+;username=asterisk@astjab.org/asterisk ;;Username with optional roster.
+;secret=blah ;;Password
+;port=5222 ;;Port to use defaults to 5222
+;usetls=yes ;;Use tls or not
+;usesasl=yes ;;Use sasl or not
+;buddy=mogorman@astjab.org ;;Manual addition of buddy to list.
+;statusmessage="I am available" ;;Have custom status message for
+ ;;Asterisk.
+;timeout=100 ;;Timeout on the message stack.
--- /dev/null
+;
+; Logging Configuration
+;
+; In this file, you configure logging to files or to
+; the syslog system.
+;
+; "logger reload" at the CLI will reload configuration
+; of the logging system.
+
+[general]
+; Customize the display of debug message time stamps
+; this example is the ISO 8601 date format (yyyy-mm-dd HH:MM:SS)
+; see strftime(3) Linux manual for format specifiers
+;dateformat=%F %T
+;
+; This appends the hostname to the name of the log files.
+;appendhostname = yes
+;
+; This determines whether or not we log queue events to a file
+; (defaults to yes).
+;queue_log = no
+;
+; This determines whether or not we log generic events to a file
+; (defaults to yes).
+;event_log = no
+;
+;
+; For each file, specify what to log.
+;
+; For console logging, you set options at start of
+; Asterisk with -v for verbose and -d for debug
+; See 'asterisk -h' for more information.
+;
+; Directory for log files is configures in asterisk.conf
+; option astlogdir
+;
+[logfiles]
+;
+; Format is "filename" and then "levels" of debugging to be included:
+; debug
+; notice
+; warning
+; error
+; verbose
+; dtmf
+;
+; Special filename "console" represents the system console
+;
+; We highly recommend that you DO NOT turn on debug mode if you are simply
+; running a production system. Debug mode turns on a LOT of extra messages,
+; most of which you are unlikely to understand without an understanding of
+; the underlying code. Do NOT report debug messages as code issues, unless
+; you have a specific issue that you are attempting to debug. They are
+; messages for just that -- debugging -- and do not rise to the level of
+; something that merit your attention as an Asterisk administrator. Debug
+; messages are also very verbose and can and do fill up logfiles quickly;
+; this is another reason not to have debug mode on a production system unless
+; you are in the process of debugging a specific issue.
+;
+;debug => debug
+console => notice,warning,error
+;console => notice,warning,error,debug
+messages => notice,warning,error
+;full => notice,warning,error,debug,verbose
+
+;syslog keyword : This special keyword logs to syslog facility
+;
+;syslog.local0 => notice,warning,error
+;
--- /dev/null
+;
+; AMI - The Asterisk Manager Interface
+;
+; Third party application call management support and PBX event supervision
+;
+; This configuration file is read every time someone logs in
+;
+; Use the "manager list commands" at the CLI to list available manager commands
+; and their authorization levels.
+;
+; "manager show command <command>" will show a help text.
+;
+; ---------------------------- SECURITY NOTE -------------------------------
+; Note that you should not enable the AMI on a public IP address. If needed,
+; block this TCP port with iptables (or another FW software) and reach it
+; with IPsec, SSH, or SSL vpn tunnel. You can also make the manager
+; interface available over http if Asterisk's http server is enabled in
+; http.conf and if both "enabled" and "webenabled" are set to yes in
+; this file. Both default to no. httptimeout provides the maximum
+; timeout in seconds before a web based session is discarded. The
+; default is 60 seconds.
+;
+[general]
+displaysystemname = yes
+enabled = yes
+port = 5038
+
+;webenabled = yes
+;httptimeout = 60
+; a) httptimeout sets the Max-Age of the http cookie
+; b) httptimeout is the amount of time the webserver waits
+; on a action=waitevent request (actually its httptimeout-10)
+; c) httptimeout is also the amount of time the webserver keeps
+; a http session alive after completing a successful action
+
+bindaddr = 127.0.0.1
+displayconnects = yes
+
+; Add a Unix epoch timestamp to events (not action responses)
+timestampevents = yes
+
+;[mark]
+;secret = mysecret
+;deny=0.0.0.0/0.0.0.0
+;permit=209.16.236.73/255.255.255.0
+;
+; If the device connected via this user accepts input slowly,
+; the timeout for writes to it can be increased to keep it
+; from being disconnected (value is in milliseconds)
+;
+; writetimeout = 100
+;
+; Authorization for various classes
+;read = system,call,log,verbose,command,agent,user,config
+;write = system,call,log,verbose,command,agent,user,config
+
+#include "auf/manager.local"
+
--- /dev/null
+;
+; Configuration file for MeetMe simple conference rooms for Asterisk of course.
+;
+; This configuration file is read every time you call app meetme()
+
+[general]
+;audiobuffers=32 ; The number of 20ms audio buffers to be used
+ ; when feeding audio frames from non-Zap channels
+ ; into the conference; larger numbers will allow
+ ; for the conference to 'de-jitter' audio that arrives
+ ; at different timing than the conference's timing
+ ; source, but can also allow for latency in hearing
+ ; the audio from the speaker. Minimum value is 2,
+ ; maximum value is 32.
+;
+[rooms]
+;
+; Usage is conf => confno[,pin][,adminpin]
+;
+; Note that once a participant has called the conference, a change to the pin
+; number done in this file will not take effect until there are no more users
+; in the conference and it goes away. When it is created again, it will have
+; the new pin number.
+;
+;conf => 1234
+;conf => 2345,9938
+
+; AUF : surcharge locale possible
+#include "auf/meetme.local"
+
--- /dev/null
+;
+; chan_misdn sample config
+;
+
+; general section:
+;
+; for debugging and general setup, things that are not bound to port groups
+;
+
+[general]
+;
+; Sets the Path to the misdn-init.conf (for nt_ptp mode checking)
+;
+misdn_init=/etc/misdn-init.conf
+
+; set debugging flag:
+; 0 - No Debug
+; 1 - mISDN Messages and * - Messages, and * - State changes
+; 2 - Messages + Message specific Informations (e.g. bearer capability)
+; 3 - very Verbose, the above + lots of Driver specific infos
+; 4 - even more Verbose than 3
+;
+; default value: 0
+;
+debug=0
+
+
+
+; set debugging file and flags for mISDNuser (NT-Stack)
+;
+; flags can be or'ed with the following values:
+;
+; DBGM_NET 0x00000001
+; DBGM_MSG 0x00000002
+; DBGM_FSM 0x00000004
+; DBGM_TEI 0x00000010
+; DBGM_L2 0x00000020
+; DBGM_L3 0x00000040
+; DBGM_L3DATA 0x00000080
+; DBGM_BC 0x00000100
+; DBGM_TONE 0x00000200
+; DBGM_BCDATA 0x00000400
+; DBGM_MAN 0x00001000
+; DBGM_APPL 0x00002000
+; DBGM_ISDN 0x00004000
+; DBGM_SOCK 0x00010000
+; DBGM_CONN 0x00020000
+; DBGM_CDATA 0x00040000
+; DBGM_DDATA 0x00080000
+; DBGM_SOUND 0x00100000
+; DBGM_SDATA 0x00200000
+; DBGM_TOPLEVEL 0x40000000
+; DBGM_ALL 0xffffffff
+;
+
+ntdebugflags=0
+ntdebugfile=/var/log/misdn-nt.log
+
+
+; some pbx systems do cut the L1 for some milliseconds, to avoid
+; dropping running calls, we can set this flag to yes and tell
+; mISDNuser not to drop the calls on L2_RELEASE
+ntkeepcalls=no
+
+; the big trace
+;
+; default value: [not set]
+;
+;tracefile=/var/log/asterisk/misdn.log
+
+
+; set to yes if you want mISDN_dsp to bridge the calls in HW
+;
+; default value: yes
+;
+bridging=no
+
+
+;
+; watches the L1s of every port. If one l1 is down it tries to
+; get it up. The timeout is given in seconds. with 0 as value it
+; does not watch the l1 at all
+;
+; default value: 0
+;
+; this option is only read at loading time of chan_misdn,
+; which means you need to unload and load chan_misdn to change the
+; value, an asterisk restart should do the trick
+;
+l1watcher_timeout=0
+
+; stops dialtone after getting first digit on nt Port
+;
+; default value: yes
+;
+stop_tone_after_first_digit=yes
+
+; whether to append overlapdialed Digits to Extension or not
+;
+; default value: yes
+;
+append_digits2exten=yes
+
+;;; CRYPTION STUFF
+
+; Whether to look for dynamic crypting attempt
+;
+; default value: no
+;
+dynamic_crypt=no
+
+; crypt_prefix, what is used for crypting Protocol
+;
+; default value: [not set]
+;
+crypt_prefix=**
+
+; Keys for cryption, you reference them in the dialplan
+; later also in dynamic encr.
+;
+; default value: [not set]
+;
+crypt_keys=test,muh
+
+; users sections:
+;
+; name your sections as you which but not "general" !
+; the sections are Groups, you can dial out in extensions.conf
+; with Dial(mISDN/g:extern/101) where extern is a section name,
+; chan_misdn tries every port in this section to find a
+; new free channel
+;
+
+; The default section is not a group section, it just contains config elements
+; which are inherited by group sections.
+;
+
+[default]
+
+; define your default context here
+;
+; default value: default
+;
+context=misdn
+
+; language
+;
+; default value: en
+;
+language=en
+
+;
+; sets the musiconhold class
+;
+musicclass=default
+
+;
+; Either if we should produce DTMF Tones ourselves
+;
+senddtmf=yes
+
+;
+; If we should generate Ringing for chan_sip and others
+;
+far_alerting=no
+
+
+;
+; here you can define which bearers should be allowed
+;
+allowed_bearers=all
+
+; Prefixes for national and international, those are put before the
+; oad if an according dialplan is set by the other end.
+;
+; default values: nationalprefix : 0
+; internationalprefix : 00
+;
+nationalprefix=0
+internationalprefix=00
+
+; set rx/tx gains between -8 and 8 to change the RX/TX Gain
+;
+; default values: rxgain: 0
+; txgain: 0
+;
+rxgain=0
+txgain=0
+
+; some telcos especially in NL seem to need this set to yes, also in
+; switzerland this seems to be important
+;
+; default value: no
+;
+te_choose_channel=no
+
+
+
+;
+; This option defines, if chan_misdn should check the L1 on a PMP
+; before making a group call on it. The L1 may go down for PMP Ports
+; so we might need this.
+; But be aware! a broken or plugged off cable might be used for a group call
+; as well, since chan_misdn has no chance to distinguish if the L1 is down
+; because of a lost Link or because the Provider shut it down...
+;
+; default: no
+;
+pmp_l1_check=no
+
+
+;
+; in PMP this option defines which cause should be sent out to
+; the 3. caller. chan_misdn does not support callwaiting on TE
+; PMP side. This allows to modify the RELEASE_COMPLETE cause
+; at least.
+;
+reject_cause=16
+
+
+;
+; Send Setup_Acknowledge on incoming calls anyway (instead of PROCEEDING),
+; this requests additional Infos, so we can waitfordigits
+; without much issues. This works only for PTP Ports
+;
+; default value: no
+;
+need_more_infos=no
+
+
+;
+; set this to yes if you want to disconnect calls when a timeout occurs
+; for example during the overlapdial phase
+;
+nttimeout=no
+
+; set the method to use for channel selection:
+; standard - always choose the first free channel with the lowest number
+; round_robin - use the round robin algorithm to select a channel. use this
+; if you want to balance your load.
+;
+; default value: standard
+;
+method=standard
+
+
+; specify if chan_misdn should collect digits before going into the
+; dialplan, you can choose yes=4 Seconds, no, or specify the amount
+; of seconds you need;
+;
+overlapdial=yes
+
+;
+; dialplan means Type Of Number in ISDN Terms (for outgoing calls)
+;
+; there are different types of the dialplan:
+;
+; dialplan -> outgoing Number
+; localdialplan -> callerid
+; cpndialplan -> connected party number
+;
+; dialplan options:
+;
+; 0 - unknown
+; 1 - International
+; 2 - National
+; 4 - Subscriber
+;
+; This setting is used for outgoing calls
+;
+; default value: 0
+;
+dialplan=0
+localdialplan=0
+cpndialplan=0
+
+
+
+;
+; turn this to no if you don't mind correct handling of Progress Indicators
+;
+early_bconnect=yes
+
+
+;
+; turn this on if you like to send Tone Indications to a Incoming
+; isdn channel on a TE Port. Rarely used, only if the Telco allows
+; you to send indications by yourself, normally the Telco sends the
+; indications to the remote party.
+;
+; default: no
+;
+incoming_early_audio=no
+
+; uncomment the following to get into s extension at extension conf
+; there you can use DigitTimeout if you can't or don't want to use
+; isdn overlap dial.
+; note: This will jump into the s exten for every exten!
+;
+; default value: no
+;
+;always_immediate=no
+
+;
+; set this to yes if you want to generate your own dialtone
+; with always_immediate=yes, else chan_misdn generates the dialtone
+;
+; default value: no
+;
+nodialtone=no
+
+
+; uncomment the following if you want callers which called exactly the
+; base number (so no extension is set) jump to the s extension.
+; if the user dials something more it jumps to the correct extension
+; instead
+;
+; default value: no
+;
+;immediate=no
+
+; uncomment the following to have hold and retrieve support
+;
+; default value: no
+;
+;hold_allowed=yes
+
+; Pickup and Callgroup
+;
+; default values: not set = 0
+; range: 0-63
+;
+;callgroup=1
+;pickupgroup=1
+
+
+;
+; these are the exact isdn screening and presentation indicators
+; if -1 is given for both values the presentation indicators are used
+; from asterisks SetCallerPres application.
+; s=0, p=0 -> callerid presented not screened
+; s=1, p=1 -> callerid presented but screened (the remote end does not see it!)
+;
+; default values s=-1, p=-1
+presentation=-1
+screen=-1
+
+; this enables echocancellation, with the given number of taps
+; be aware, move this setting only to outgoing portgroups!
+; A value of zero turns echocancellation off.
+;
+; possible values are: 0,32,64,128,256,yes(=128),no(=0)
+;
+; default value: no
+;
+;echocancel=no
+
+; Set this to no to disable echotraining. You can enter a number > 10
+; the value is a multiple of 0.125 ms.
+;
+; default value: no
+; yes = 2000
+; no = 0
+;
+echotraining=no
+
+;
+; chan_misdns jitterbuffer, default 4000
+;
+jitterbuffer=4000
+
+;
+; change this threshold to enable dejitter functionality
+;
+jitterbuffer_upper_threshold=0
+
+
+;
+; change this to yes, if you want to bridge a mISDN data channel to
+; another channel type or to an application.
+;
+hdlc=no
+
+
+;
+; defines the maximum amount of incoming calls per port for
+; this group. Calls which exceed the maximum will be marked with
+; the channel variable MAX_OVERFLOW. It will contain the amount of
+; overflowed calls
+;
+max_incoming=-1
+
+;
+; defines the maximum amount of outgoing calls per port for this group
+; exceeding calls will be rejected
+;
+max_outgoing=-1
+
+;[intern]
+; define your ports, e.g. 1,2 (depends on mISDN-driver loading order)
+;ports=1,2
+; context where to go to when incoming Call on one of the above ports
+;context=Intern
+
+;[internPP]
+;
+; adding the postfix 'ptp' to a port number is obsolete now, chan_misdn
+; parses /etc/misdn-init.conf and sets the ptp mode to the corresponding
+; configs. For backwards compatibility you can still set ptp here.
+;
+;ports=3
+
+;[first_extern]
+; again port defs
+;ports=4
+; again a context for incoming calls
+;context=Extern1
+; msns for te ports, listen on those numbers on the above ports, and
+; indicate the incoming calls to asterisk
+; here you can give a comma separated list or simply an '*' for
+; any msn.
+;msns=*
+
+; here an example with given msns
+;[second_extern]
+;ports=5
+;context=Extern2
+;callerid=15
+;msns=102,144,101,104
+
+; AUF : surcharge locale au site
+#include "auf/misdn.local"
+
--- /dev/null
+;
+; Asterisk configuration file
+;
+; Module Loader configuration file
+;
+
+[modules]
+autoload=yes
+;
+; Any modules that need to be loaded before the Asterisk core has been
+; initialized (just after the logger has been initialized) can be loaded
+; using 'preload'. This will frequently be needed if you wish to map all
+; module configuration files into Realtime storage, since the Realtime
+; driver will need to be loaded before the modules using those configuration
+; files are initialized.
+;
+; An example of loading ODBC support would be:
+;preload => res_odbc.so
+;preload => res_config_odbc.so
+;
+; Intercom application is obsoleted by
+; chan_oss. Don't load it.
+;
+noload => app_intercom.so
+;
+; The 'modem' channel driver and its subdrivers are
+; obsolete, don't load them.
+;
+noload => chan_modem.so
+noload => chan_modem_aopen.so
+noload => chan_modem_bestdata.so
+noload => chan_modem_i4l.so
+noload => chan_capi.so
+
+; PBX
+noload => pbx_ael.so ; Asterisk Extension Language Compiler
+; noload => pbx_config.so ; Text Extension Configuration
+; noload => pbx_dundi.so ; Distributed Universal Number Discovery
+; noload => pbx_functions.so ; Builtin dialplan functions
+; noload => pbx_loopback.so ; Loopback Switch
+; noload => pbx_realtime.so ; Realtime Switch
+; noload => pbx_spool.so ; Outgoing Spool Support
+noload => pbx_gtkconsole.so
+noload => pbx_kdeconsole.so
+
+; Resources
+; noload => res_adsi.so ; ADSI Resource
+; noload => res_agi.so ; Asterisk Gateway Interface (AGI)
+; noload => res_crypto.so ; Cryptographic Digital Signatures
+; noload => res_features.so ; Call Features Resource
+; noload => res_indications.so ; Indications Configuration
+; noload => res_monitor.so ; Call Monitoring Resource
+; noload => res_musiconhold.so ; Music On Hold Resource
+; Enable these if you want to configure Asterisk in a database
+noload => res_odbc.so
+noload => res_config_odbc.so
+noload => res_config_pgsql.so
+; noload => res_clioriginate.so ; Call origination from the CLI
+; noload => res_convert.so ; File format conversion CLI command
+; noload => res_crypto.so ; Cryptographic Digital Signatures
+; noload => res_esel.so ; Extension State Export Logic (E.S.E.L.)
+; noload => res_jabber.so ; AJI - Asterisk Jabber Interface
+noload => res_smdi.so ; Simplified Message Desk Interface (SMDI)
+; noload => res_snmp.so ; SNMP [Sub]Agent for Asterisk
+; noload => res_speech.so ; Generic Speech Recognition API
+; noload => res_watchdog.so ; Watchdog Resource
+
+
+; CDR (log)
+; noload => cdr_csv.so ; Comma Separated Values CDR Backend
+; noload => cdr_custom.so ; Customizable Comma Separated Values CDR
+; noload => cdr_manager.so ; Asterisk Call Manager CDR Backend
+noload => cdr_radius.so ; RADIUS CDR Backend
+noload => cdr_odbc.so ; ODBC CDR Backend
+noload => cdr_pgsql.so ; PostgreSQL CDR Backend
+; Disable CDR logging to SQLite by default since it writes unconditionally to
+; cdr.db without a way to rotate it.
+noload => cdr_sqlite.so
+
+
+; Channels
+; noload => chan_agent.so ; Agent Proxy Channel
+; noload => chan_features.so ; Feature Proxy Channel
+; noload => chan_iax2.so ; Inter Asterisk eXchange (Ver 2)
+; noload => chan_local.so ; Local Proxy Channel
+noload => chan_mgcp.so ; Media Gateway Control Protocol (MGCP)
+noload => chan_oss.so
+noload => chan_phone.so ; Linux Telephony API Support
+; noload => chan_sip.so ; Session Initiation Protocol (SIP)
+noload => chan_skinny.so ; Skinny Client Control Protocol (Skinny)
+; noload => chan_zap.so ; Zapata Telephony w/PRI
+; noload => chan_gtalk.so ; Gtalk Channel Driver
+
+
+; Load either OSS or ALSA, not both
+; By default, load OSS only (automatically) and do not load ALSA
+noload => chan_alsa.so
+noload => chan_oss.so
+
+; Codecs
+; noload => codec_adpcm.so ; Adaptive Differential PCM Coder/Decoder
+; noload => codec_alaw.so ; A-law Coder/Decoder
+; noload => codec_a_mu.so ; A-law and Mulaw direct Coder/Decoder
+; noload => codec_g726.so ; ITU G.726-32kbps G726 Transcoder
+noload => codec_g729.so ; G729 Transcoder
+; noload => codec_gsm.so ; GSM/PCM16 (signed linear) Codec Translat
+; noload => codec_ilbc.so ; iLBC/PCM16 (signed linear) Codec Transla
+; noload => codec_lpc10.so ; LPC10 2.4kbps (signed linear) Voice Code
+; noload => codec_speex.so ; Speex/PCM16 (signed linear) Codec Transl
+; noload => codec_ulaw.so ; Mu-law Coder/Decoder
+; noload => codec_zap.so ; Generic Zaptel Transcoder Codec Translat
+
+
+; Formats
+; noload => format_au.so ; Sun Microsystems AU format (signed linea
+; noload => format_g723.so ; G.723.1 Simple Timestamp File Format
+; noload => format_g726.so ; Raw G.726 (16/24/32/40kbps) data
+noload => format_g729.so ; Raw G729 data
+; noload => format_gsm.so ; Raw GSM data
+; noload => format_h263.so ; Raw h263 data
+; noload => format_ilbc.so ; Raw iLBC data
+; noload => format_jpeg.so ; JPEG (Joint Picture Experts Group) Image
+; noload => format_pcm_alaw.so ; Raw aLaw 8khz PCM Audio support
+; noload => format_pcm.so ; Raw uLaw 8khz Audio support (PCM)
+; noload => format_sln.so ; Raw Signed Linear Audio support (SLN)
+; noload => format_vox.so ; Dialogic VOX (ADPCM) File Format
+; noload => format_wav_gsm.so ; Microsoft WAV format (Proprietary GSM)
+; noload => format_wav.so ; Microsoft WAV format (8000hz Signed Line
+; noload => format_h264.so ; Raw H.264 data
+; noload => format_ogg_vorbis.so ; OGG/Vorbis audio
+
+
+; Functions
+; noload => func_array.so
+; noload => func_callerid.so ; Caller ID related dialplan function
+; noload => func_enum.so ; ENUM Related Functions
+noload => func_odbc.so
+; noload => func_uri.so ; URI encode/decode functions
+; noload => func_base64.so ; base64 encode/decode dialplan functions
+; noload => func_cdr.so ; CDR dialplan function
+; noload => func_channel.so ; Channel information dialplan function
+; noload => func_curl.so ; Load external URL
+; noload => func_cut.so ; Cut out information from a string
+; noload => func_db.so ; Database (astdb) related dialplan functi
+; noload => func_devstate.so ; Gets or sets a device state in the dialp
+; noload => func_env.so ; Environment/filesystem dialplan function
+; noload => func_global.so ; Global variable dialplan functions
+; noload => func_groupcount.so ; Channel group dialplan functions
+; noload => func_language.so ; Channel language dialplan function
+; noload => func_logic.so ; Logical dialplan functions
+; noload => func_math.so ; Mathematical dialplan function
+; noload => func_md5.so ; MD5 digest dialplan functions
+; noload => func_moh.so ; Music-on-hold dialplan function
+; noload => func_rand.so ; Random number dialplan function
+; noload => func_realtime.so ; Read/Write values from a RealTime reposi
+; noload => func_sha1.so ; SHA-1 computation dialplan function
+; noload => func_strings.so ; String handling dialplan functions
+; noload => func_timeout.so ; Channel timeout dialplan functions
+
+
+
+; Applications
+; These conflict with app_voicemail.so/app_directory.so and each other
+; These are for IMAP and ODBC storage for Voicemail
+noload => app_directory_odbc.so
+noload => app_voicemail_odbc.so
+noload => app_voicemail_imap.so
+; noload => app_adsiprog.so ; Asterisk ADSI Programming Application
+; noload => app_alarmreceiver.so ; Alarm Receiver for Asterisk
+; noload => app_authenticate.so ; Authentication Application
+; noload => app_cdr.so ; Tell Asterisk to not maintain a CDR for
+; noload => app_chanisavail.so ; Check channel availability
+; noload => app_chanspy.so ; Listen to the audio of an active channel
+; noload => app_conference.so ; Channel Independent Conference Applicati
+; noload => app_controlplayback.so ; Control Playback Application
+; noload => app_curl.so ; Load external URL
+; noload => app_cut.so ; Cut out information from a string
+; noload => app_db.so ; Database Access Functions
+; noload => app_dial.so ; Dialing Application
+; noload => app_dictate.so ; Virtual Dictation Machine
+; noload => app_directed_pickup.so ; Directed Call Pickup Application
+; noload => app_directory.so ; Extension Directory
+; noload => app_disa.so ; DISA (Direct Inward System Access) Appli
+; noload => app_dumpchan.so ; Dump Info About The Calling Channel
+; noload => app_echo.so ; Simple Echo Application
+; noload => app_enumlookup.so ; ENUM Lookup
+; noload => app_eval.so ; Reevaluates strings
+; noload => app_exec.so ; Executes applications
+; noload => app_externalivr.so ; External IVR Interface Application
+; noload => app_festival.so ; Simple Festival Interface
+; noload => app_flash.so ; Flash zap trunk application
+; noload => app_forkcdr.so ; Fork The CDR into 2 separate entities.
+; noload => app_getcpeid.so ; Get ADSI CPE ID
+; noload => app_groupcount.so ; Group Management Routines
+; noload => app_hasnewvoicemail.so ; Indicator for whether a voice mailbox ha
+; noload => app_ices.so ; Encode and Stream via icecast and ices
+; noload => app_image.so ; Image Transmission Application
+; noload => app_lookupblacklist.so ; Look up Caller*ID name/number from black
+; noload => app_lookupcidname.so ; Look up CallerID Name from local databas
+; noload => app_macro.so ; Extension Macros
+; noload => app_math.so ; Basic Math Functions
+; noload => app_md5.so ; MD5 checksum applications
+; noload => app_meetme.so ; MeetMe conference bridge
+; noload => app_milliwatt.so ; Digital Milliwatt (mu-law) Test Applicat
+; noload => app_mixmonitor.so ; Mixed Audio Monitoring Application
+; noload => app_mp3.so ; Silly MP3 Application
+; noload => app_nbscat.so ; Silly NBS Stream Application
+; noload => app_page.so ; Page Multiple Phones
+; noload => app_parkandannounce.so ; Call Parking and Announce Application
+; noload => app_playback.so ; Sound File Playback Application
+; noload => app_privacy.so ; Require phone number to be entered, if n
+; noload => app_queue.so ; True Call Queueing
+; noload => app_random.so ; Random goto
+; noload => app_readfile.so ; Stores output of file into a variable
+; noload => app_read.so ; Read Variable Application
+; noload => app_realtime.so ; Realtime Data Lookup/Rewrite
+; noload => app_record.so ; Trivial Record Application
+; noload => app_sayunixtime.so ; Say time
+; noload => app_senddtmf.so ; Send DTMF digits Application
+; noload => app_sendtext.so ; Send Text Applications
+; noload => app_setcallerid.so ; Set CallerID Application
+; noload => app_setcdruserfield.so ; CDR user field apps
+; noload => app_setcidname.so ; Set CallerID Name
+; noload => app_setcidnum.so ; Set CallerID Number
+; noload => app_setrdnis.so ; Set RDNIS Number
+; noload => app_settransfercapability.so ; Set ISDN Transfer Capability
+; noload => app_sms.so ; SMS/PSTN handler
+; noload => app_softhangup.so ; Hangs up the requested channel
+; noload => app_stack.so ; Stack Routines
+; noload => app_system.so ; Generic System() application
+; noload => app_talkdetect.so ; Playback with Talk Detection
+; noload => app_test.so ; Interface Test Application
+; noload => app_transfer.so ; Transfer
+; noload => app_txtcidname.so ; TXTCIDName
+; noload => app_url.so ; Send URL Applications
+; noload => app_userevent.so ; Custom User Event Application
+; noload => app_verbose.so ; Send verbose output
+; noload => app_voicemail.so ; Comedian Mail (Voicemail System)
+; noload => app_waitforring.so ; Waits until first ring after time
+; noload => app_waitforsilence.so ; Wait For Silence
+; noload => app_while.so ; While Loops and Conditional Execution
+; noload => app_zapateller.so ; Block Telemarketers with Special Informa
+; noload => app_zapbarge.so ; Barge in on Zap channel application
+; noload => app_zapras.so ; Zap RAS Application
+; noload => app_zapscan.so ; Scan Zap channels application
+
+; noload => app_amd.so ; Answering Machine Detection Application
+; noload => app_db.so ; Database Access Functions
+; noload => app_devstate.so ; Simple Devstate Application
+; noload => app_followme.so ; Find-Me/Follow-Me Application
+; noload => app_meetme.so ; MeetMe conference bridge
+; noload => app_morsecode.so ; Morse code
+; noload => app_pickup.so ; PickUp/PickDown/Steal/PickupChan/StealCh
+; noload => app_segfault.so ; Application for crashing Asterisk with a
+; noload => app_speech_utils.so ; Dialplan Speech Applications
+
+
+;
+; Module names listed in "global" section will have symbols globally
+; exported to modules loaded after them.
+;
+[global]
+
+; pour des surcharges locales (autres noload)
+#include "auf/modules.local"
+
--- /dev/null
+;
+; Music on Hold -- Sample Configuration
+;
+
+; valid mode options:
+; files -- read files from a directory in any Asterisk supported
+; media format
+; quietmp3 -- default
+; mp3 -- loud
+; mp3nb -- unbuffered
+; quietmp3nb -- quiet unbuffered
+; custom -- run a custom application (See examples below)
+
+; =========
+; File-based (native) music on hold
+; =========
+;
+; This plays files directly from the specified directory, no external
+; processes are required. Files are played in normal sorting order
+; (same as a sorted directory listing), and no volume or other
+; sound adjustments are available. If the file is available in
+; the same format as the channel's codec, then it will be played
+; without transcoding (same as Playback would do in the dialplan).
+; Files can be present in as many formats as you wish, and the
+; 'best' format will be chosen at playback time.
+;
+; NOTE:
+; If you are not using "autoload" in modules.conf, then you
+; must ensure that the format modules for any formats you wish
+; to use are loaded _before_ res_musiconhold. If you do not do
+; this, res_musiconhold will skip the files it is not able to
+; understand when it loads.
+;
+
+;[default]
+;mode=files
+;directory=/var/lib/asterisk/moh
+;
+;[native-random]
+;mode=files
+;directory=/var/lib/asterisk/moh
+;random=yes ; Play the files in a random order
+
+[default]
+mode=files
+directory=/usr/share/asterisk/moh-native
+
+[default-random]
+mode=files
+directory=/usr/share/asterisk/moh-native
+random=yes
+
+
+; =========
+; Other (non-native) playback methods
+; =========
+
+;[manual]
+;mode=custom
+; Note that with mode=custom, a directory is not required, such as when reading
+; from a stream.
+;directory=/var/lib/asterisk/mohmp3
+;application=/usr/bin/mpg123 -q -r 8000 -f 8192 -b 2048 --mono -s
+
+;[ulawstream]
+;mode=custom
+;application=/usr/bin/streamplayer 192.168.100.52 888
+;format=ulaw
+
+; mpg123 on Solaris does not always exit properly; madplay may be a better
+; choice
+;[solaris]
+;mode=custom
+;directory=/var/lib/asterisk/mohmp3
+;application=/site/sw/bin/madplay -Q -o raw:- --mono -R 8000 -a -12
+
+;
+; AUF : surcharge locale
+#include "auf/musiconhold.local"
+
--- /dev/null
+;
+; Open Settlement Protocol Sample Configuration File
+;
+;
+; This file contains configuration of providers that
+; are used by the OSP subsystem of Asterisk. The section
+; "general" is reserved for global options. Each other
+; section declares an OSP Provider. The provider "default"
+; is used when no provider is otherwise specified.
+;
+[general]
+;
+; Should hardware acceleration be enabled? May not be changed
+; on a reload.
+;
+;accelerate=yes
+;
+; Defines the token format that Asterisk can validate.
+; 0 - signed tokens only
+; 1 - unsigned tokens only
+; 2 - both signed and unsigned
+; The defaults to 0, i.e. the Asterisk can validate signed tokens only.
+;
+;tokenformat=0
+
+;[default]
+;
+; All paths are presumed to be under /usr/share/asterisk/keys unless
+; the path begins with '/'
+;
+; Specify the private keyfile. If unspecified, defaults to the name
+; of the section followed by "-privatekey.pem" (e.g. default-privatekey.pem)
+;
+;privatekey=pkey.pem
+;
+; Specify the local certificate file. If unspecified, defaults to
+; the name of the section followed by "-localcert.pem"
+;
+;localcert=localcert.pem
+;
+; Specify one or more Certificate Authority keys. If none are listed,
+; a single one is added with the name "-cacert.pem"
+;
+;cacert=cacert_0.pem
+;
+; Specific parameters can be tuned as well:
+;
+; maxconnections: Max number of simultaneous connections to the provider (default=20)
+; retrydelay: Extra delay between retries (default=0)
+; retrylimit: Max number of retries before giving up (default=2)
+; timeout: Timeout for response in milliseconds (default=500)
+;
+;maxconnections=20
+;retrydelay=0
+;retrylimit=2
+;timeout=500
+;
+; List all service points for this provider
+;
+;servicepoint=http://osptestserver.transnexus.com:1080/osp
+;
+; Set the "source" for requesting authorization
+;
+;source=foo
+;
+; Set the authentication policy.
+; 0 - NO
+; 1 - YES
+; 2 - EXCLUSIVE
+; Default is 1, validate token but allow no token.
+;
+;authpolicy=1
--- /dev/null
+[general]
+
+maxretries = 2 ;How many chances the caller has to enter their number
--- /dev/null
+[general]
+;
+; Global settings for call queues
+;
+; Persistent Members
+; Store each dynamic member in each queue in the astdb so that
+; when asterisk is restarted, each member will be automatically
+; read into their recorded queues. Default is 'yes'.
+;
+persistentmembers = yes
+;
+; AutoFill Behavior
+; The old/current behavior of the queue has a serial type behavior
+; in that the queue will make all waiting callers wait in the queue
+; even if there is more than one available member ready to take
+; calls until the head caller is connected with the member they
+; were trying to get to. The next waiting caller in line then
+; becomes the head caller, and they are then connected with the
+; next available member and all available members and waiting callers
+; waits while this happens. The new behavior, enabled by setting
+; autofill=yes makes sure that when the waiting callers are connecting
+; with available members in a parallel fashion until there are
+; no more available members or no more waiting callers. This is
+; probably more along the lines of how a queue should work and
+; in most cases, you will want to enable this behavior. If you
+; do not specify or comment out this option, it will default to no
+; to keep backward compatibility with the old behavior.
+;
+autofill = yes
+;
+; Monitor Type
+; By setting monitor-type = MixMonitor, when specifying monitor-format
+; to enable recording of queue member conversations, app_queue will
+; now use the new MixMonitor application instead of Monitor so
+; the concept of "joining/mixing" the in/out files now goes away
+; when this is enabled. You can set the default type for all queues
+; here, and then also change monitor-type for individual queues within
+; queue by using the same configuration parameter within a queue
+; configuration block. If you do not specify or comment out this option,
+; it will default to the old 'Monitor' behavior to keep backward
+; compatibility.
+;
+monitor-type = MixMonitor
+;
+; Note that a timeout to fail out of a queue may be passed as part of
+; an application call from extensions.conf:
+; Queue(queuename|[options]|[optionalurl]|[announceoverride]|[timeout])
+; example: Queue(dave|t|||45)
+
+;[markq]
+;
+; A sample call queue
+;
+; Musicclass sets which music applies for this particular call queue.
+; The only class which can override this one is if the MOH class is set
+; directly on the channel using Set(CHANNEL(musicclass)=whatever) in the
+; dialplan.
+;
+;musicclass = default
+;
+; An announcement may be specified which is played for the member as
+; soon as they answer a call, typically to indicate to them which queue
+; this call should be answered as, so that agents or members who are
+; listening to more than one queue can differentiated how they should
+; engage the customer
+;
+;announce = queue-markq
+;
+; A strategy may be specified. Valid strategies include:
+;
+; ringall - ring all available channels until one answers (default)
+; roundrobin - take turns ringing each available interface
+; leastrecent - ring interface which was least recently called by this queue
+; fewestcalls - ring the one with fewest completed calls from this queue
+; random - ring random interface
+; rrmemory - round robin with memory, remember where we left off last ring pass
+;
+;strategy = ringall
+;
+; Second settings for service level (default 0)
+; Used for service level statistics (calls answered within service level time
+; frame)
+;servicelevel = 60
+;
+; A context may be specified, in which if the user types a SINGLE
+; digit extension while they are in the queue, they will be taken out
+; of the queue and sent to that extension in this context.
+;
+;context = qoutcon
+;
+; How long do we let the phone ring before we consider this a timeout...
+;
+;timeout = 15
+;
+; How long do we wait before trying all the members again?
+;
+;retry = 5
+;
+; Weight of queue - when compared to other queues, higher weights get
+; first shot at available channels when the same channel is included in
+; more than one queue.
+;
+;weight=0
+;
+; After a successful call, how long to wait before sending a potentially
+; free member another call (default is 0, or no delay)
+;
+;wrapuptime=15
+;
+; Autofill will follow queue strategy but push multiple calls through
+; at same time until there are no more waiting callers or no more
+; available members. The per-queue setting of autofill allows you
+; to override the default setting on an individual queue level.
+;
+;autofill=yes
+;
+; Autopause will pause a queue member if they fail to answer a call
+;
+;autopause=yes
+;
+; Maximum number of people waiting in the queue (0 for unlimited)
+;
+;maxlen = 0
+;
+; If set to yes, just prior to the caller being bridged with a queue member
+; the MEMBERINTERFACE variable will be set with the interface name (eg. Agent/1234)
+; of the queue member that was chosen and is now connected to be bridged with
+; the caller
+;
+;setinterfacevar=no
+;
+; How often to announce queue position and/or estimated
+; holdtime to caller (0=off)
+;
+;announce-frequency = 90
+;
+;
+; How often to make any periodic announcement (see periodic-announce)
+;
+;periodic-announce-frequency=60
+;
+; Should we include estimated hold time in position announcements?
+; Either yes, no, or only once.
+; Hold time will be announced as the estimated time,
+; or "less than 2 minutes" when appropriate.
+;
+;announce-holdtime = yes|no|once
+
+;
+; What's the rounding time for the seconds?
+; If this is non-zero, then we announce the seconds as well as the minutes
+; rounded to this value.
+;
+; announce-round-seconds = 10
+;
+; Use these sound files in making position/holdtime announcements. The
+; defaults are as listed below -- change only if you need to.
+;
+ ; ("You are now first in line.")
+;queue-youarenext = queue-youarenext
+ ; ("There are")
+;queue-thereare = queue-thereare
+ ; ("calls waiting.")
+;queue-callswaiting = queue-callswaiting
+ ; ("The current est. holdtime is")
+;queue-holdtime = queue-holdtime
+ ; ("minutes.")
+;queue-minutes = queue-minutes
+ ; ("seconds.")
+;queue-seconds = queue-seconds
+ ; ("Thank you for your patience.")
+;queue-thankyou = queue-thankyou
+ ; ("less than")
+;queue-lessthan = queue-less-than
+ ; ("Hold time")
+;queue-reporthold = queue-reporthold
+ ; ("All reps busy / wait for next")
+;periodic-announce = queue-periodic-announce
+;
+; Calls may be recorded using Asterisk's monitor/MixMonitor resource
+; This can be enabled from within the Queue application, starting recording
+; when the call is actually picked up; thus, only successful calls are
+; recorded, and you are not recording while people are listening to MOH.
+; To enable monitoring, simply specify "monitor-format"; it will be disabled
+; otherwise.
+;
+; You can specify the monitor filename with by calling
+; Set(MONITOR_FILENAME=foo)
+; Otherwise it will use MONITOR_FILENAME=${UNIQUEID}
+;
+; Pick any one valid extension for monitor format recording. If you leave
+; monitor-format commented out, it will not record calls.
+;
+; monitor-format = gsm|wav|wav49
+;
+; Monitor Type
+; By setting monitor-type = MixMonitor, when specifying monitor-format
+; to enable recording of queue member conversations, app_queue will
+; now use the new MixMonitor application instead of Monitor so
+; the concept of "joining/mixing" the in/out files now goes away
+; when this is enabled. If you do not specify or comment out this option,
+; it will default to the old 'Monitor' behavior to keep backward
+; compatibility.
+;
+; monitor-type = MixMonitor
+;
+; ----------------------- TYPE MIXMONITOR OPTIONS -----------------------------
+;
+;
+; You can specify the options supplied to MixMonitor by calling
+; Set(MONITOR_OPTIONS=av(<x>)V(<x>)W(<x>))
+; The 'b' option for MixMonitor (only save audio to the file while bridged) is
+; implied.
+;
+; You can specify a post recording command to be executed after the end of
+; recording by calling
+; Set(MONITOR_EXEC=mv /var/spool/asterisk/monitor/^{MONITOR_FILENAME} /tmp/^{MONITOR_FILENAME})
+;
+; The command specified within the contents of MONITOR_EXEC will be executed when
+; the recording is over. Any strings matching ^{X} will be unescaped to ${X} and
+; all variables will be evaluated just prior to recording being started.
+;
+; The contents of MONITOR_FILENAME will also be unescaped from ^{X} to ${X} and
+; all variables will be evaluated just prior to recording being started.
+;
+;
+; This setting controls whether callers can join a queue with no members. There
+; are three choices:
+;
+; yes - callers can join a queue with no members or only unavailable members
+; no - callers cannot join a queue with no members
+; strict - callers cannot join a queue with no members or only unavailable
+; members
+;
+; joinempty = yes
+;
+;
+; If you wish to remove callers from the queue when new callers cannot join,
+; set this setting to one of the same choices for 'joinempty'
+;
+; leavewhenempty = yes
+;
+;
+; If this is set to yes, the following manager events will be generated:
+; AgentCalled, AgentDump, AgentConnect, AgentComplete; setting this to
+; vars also sends all channel variables with the event.
+; (may generate some extra manager events, but probably ones you want)
+;
+; eventwhencalled = yes|no|vars
+;
+; If this is set to yes, the following manager events will be generated:
+; QueueMemberStatus
+; (may generate a WHOLE LOT of extra manager events)
+;
+; eventmemberstatus = no
+;
+; If you wish to report the caller's hold time to the member before they are
+; connected to the caller, set this to yes.
+;
+; reportholdtime = no
+;
+; If you want the queue to avoid sending calls to members whose devices are
+; known to be 'in use' (via the channel driver supporting that device state)
+; uncomment this option. (Note: only the SIP channel driver currently is able
+; to report 'in use'.)
+;
+; ringinuse = no
+;
+; If you wish to have a delay before the member is connected to the caller (or
+; before the member hears any announcement messages), set this to the number of
+; seconds to delay.
+;
+; memberdelay = 0
+;
+; If timeoutrestart is set to yes, then the timeout for an agent to answer is
+; reset if a BUSY or CONGESTION is received. This can be useful if agents
+; are able to cancel a call with reject or similar.
+;
+; timeoutrestart = no
+;
+; Each member of this call queue is listed on a separate line in
+; the form technology/dialstring. "member" means a normal member of a
+; queue. An optional penalty may be specified after a comma, such that
+; entries with higher penalties are considered last. An optional member
+; name may also be specified after a second comma, which is used in log
+; messages as a "friendly name". Multiple interfaces may share a single
+; member name.
+;
+; It is important to ensure that channel drivers used for members are loaded
+; before app_queue.so itself or they may be marked invalid until reload. This
+; can be accomplished by explicitly listing them in modules.conf before app_queue.so
+;
+;member => Zap/1
+;member => Zap/2,10
+;member => Zap/3,10,Bob Johnson
+;member => Agent/1001
+;member => Agent/1002
+
+;
+; Note that using agent groups is probably not what you want. Strategies do
+; not propagate down to the Agent system so if you want round robin, least
+; recent, etc, you should list all the agents in this file individually and not
+; use agent groups.
+;
+;member => Agent/@1 ; Any agent in group 1
+;member => Agent/:1,1 ; Any agent in group 1, wait for first
+ ; available, but consider with penalty
+
+; AUF : surcharges locales
+#include "auf/queues.local"
+
--- /dev/null
+;
+; Configuration file for res_snmp
+;
+
+[general]
+; We run as a subagent per default -- to run as a full agent
+; we must run as root (to be able to bind to port 161)
+;subagent = yes
+; SNMP must be explicitly enabled to be active
+;enabled = yes
--- /dev/null
+;
+; RTP Configuration
+;
+[general]
+;
+; RTP start and RTP end configure start and end addresses
+;
+; Defaults are rtpstart=5000 and rtpend=31000
+;
+; juste après /proc/sys/net/ipv4/ip_local_port_range
+rtpstart=61001
+rtpend=62000
+
+; Whether to enable or disable UDP checksums on RTP traffic
+;
+;rtpchecksums=no
+;
+; The amount of time a DTMF digit with no 'end' marker should be
+; allowed to continue (in 'samples', 1/8000 of a second)
+;
+;dtmftimeout=3000
+; rtcpinterval = 5000 ; Milliseconds between rtcp reports
+ ;(min 500, max 60000, default 5000)
--- /dev/null
+; say.conf
+;
+; language configuration
+;
+; The new language routines produce strings of the form
+; prefix:[format:]data
+; that are matched against the rules in this file to produce
+; an output.
+;
+; The data is generally the string to be spelled (either a number,
+; an ascii string or a date/time in the format specified below).
+; It is available, in the right hand side of a rule, as variable ${SAY}.
+;
+; The format is optional and normally used only for date/time.
+; The prefix is used to select the pronunciation - standard
+; prefixes are
+; num used for numbers
+; enum used for enumerations
+; date for dates
+; time for times
+; datetime for dates and times
+; char for character strings
+; phonetic for phonetic strings
+; digit for digit strings
+;
+; but others can be used at will.
+;
+; Processing occurs as follows:
+; If the format is empty, or there is no format, the entire
+; string is matched against one of the pattern on the left hand side.
+; On the first match, the various comma-separated components on the right
+; hand side are pronounced, as follows:
+; + a component starting with a prefix: (i.e. with a ':' in it)
+; is re-processed according to these rules;
+; + a component without a ':' in it is considered a filename and
+; the corresponding file is played.
+;
+; If the format is non-empty, the format is split into its components
+; (individual characters, or filenames in single quotes), and then
+; filenames are played, whereas single characters are used to
+; generate a new string format:pat:data to be processed.
+;
+; DATES/AND TIMES assume that the date info is available in
+; the form YYYYMMDDHHmm.ss-dow-doy
+; with 4 digits for the year, 2 for month, day, hour, minutes, seconds,
+; one digit for the day-of-week, and 3 digits for the day-of-year.
+;
+; Example:
+; datetime::200604172030.00-4-102
+; (typical format for a date) is first matched against the line
+; datetime::. => date:AdBY 'digits/at' IMp:${SAY}
+; which is normally present with the default format for dates.
+; In turn, the format string "AdBY 'digits/at' IMp" results in
+; the sequence
+; date:A:200604172030.00-4-102
+; date:d:200604172030.00-4-102
+; date:B:200604172030.00-4-102
+; date:Y:200604172030.00-4-102
+; digits/at
+; date:I:200604172030.00-4-102
+; date:M:200604172030.00-4-102
+; date:p:200604172030.00-4-102
+;
+;
+; Remember, normally X Z N are special, and the search is
+; case insensitive, so you must use [X] [N] [Z] .. if you
+; want exact match.
+
+; We start with the basic rules that might be more-or-less
+; language-independent
+
+[digit-base](!) ; base rule for digit strings
+ ; XXX incomplete yet
+ _digit:[0-9] => digits/${SAY}
+ _digit:[-] => letters/dash
+ _digit:[*] => letters/star
+ _digit:[@] => letters/at
+ _digit:[0-9]. => digit:${SAY:0:1}, digit:${SAY:1}
+
+[date-base](!) ; base rules for dates and times
+ ; the 'SAY' variable contains YYYYMMDDHHmm.ss-dow-doy
+ ; these rule map the strftime attributes.
+ _date:Y:. => num:${SAY:0:4} ; year, 19xx
+ _date:[Bb]:. => digits/mon-$[${SAY:4:2}-1] ; month name, 0..11
+ _date:[Aa]:. => digits/day-${SAY:16:1} ; day of week
+ _date:[de]:. => num:${SAY:6:2} ; day of month
+ _date:[hH]:. => num:${SAY:8:2} ; hour
+ _date:[I]:. => num:$[${SAY:8:2} % 12] ; hour 0-12
+ _date:[M]:. => num:${SAY:10:2} ; minute
+ ; XXX too bad the '?' function does not remove the quotes
+ ; _date:[pP]:. => digits/$[ ${SAY:10:2} > 12 ? "p-m" :: "a-m"] ; am pm
+ _date:[pP]:. => digits/p-m ; am pm
+ _date:[S]:. => num:${SAY:13:2} ; seconds
+
+[en-base](!)
+ _[n]um:0. => num:${SAY:1}
+ _[n]um:X => digits/${SAY}
+ _[n]um:1X => digits/${SAY}
+ _[n]um:[2-9]0 => digits/${SAY}
+ _[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1}
+ _[n]um:XXX => num:${SAY:0:1}, digits/hundred, num:${SAY:1}
+
+ _[n]um:XXXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1}
+ _[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2}
+ _[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3}
+
+ _[n]um:XXXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1}
+ _[n]um:XXXXXXXX => num:${SAY:0:2}, digits/million, num:${SAY:2}
+ _[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/million, num:${SAY:3}
+
+ _[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1}
+ _[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2}
+ _[n]um:XXXXXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3}
+
+ ; enumeration
+ _e[n]um:X => digits/h-${SAY}
+ _e[n]um:1X => digits/h-${SAY}
+ _e[n]um:[2-9]0 => digits/h-${SAY}
+ _e[n]um:[2-9][1-9] => num:${SAY:0:1}0, digits/h-${SAY:1}
+ _e[n]um:[1-9]XX => num:${SAY:0:1}, digits/hundred, enum:${SAY:1}
+
+[it](digit-base,date-base)
+ _[n]um:0. => num:${SAY:1}
+ _[n]um:X => digits/${SAY}
+ _[n]um:1X => digits/${SAY}
+ _[n]um:[2-9]0 => digits/${SAY}
+ _[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1}
+ _[n]um:1XX => digits/hundred, num:${SAY:1}
+ _[n]um:[2-9]XX => num:${SAY:0:1}, digits/hundred, num:${SAY:1}
+
+ _[n]um:1XXX => digits/thousand, num:${SAY:1}
+ _[n]um:[2-9]XXX => num:${SAY:0:1}, digits/thousands, num:${SAY:1}
+ _[n]um:XXXXX => num:${SAY:0:2}, digits/thousands, num:${SAY:2}
+ _[n]um:XXXXXX => num:${SAY:0:3}, digits/thousands, num:${SAY:3}
+
+ _[n]um:1XXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1}
+ _[n]um:[2-9]XXXXXX => num:${SAY:0:1}, digits/millions, num:${SAY:1}
+ _[n]um:XXXXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2}
+ _[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/millions, num:${SAY:3}
+
+ _datetime::. => date:AdBY 'digits/at' IMp:${SAY}
+ _date::. => date:AdBY:${SAY}
+ _time::. => date:IMp:${SAY}
+
+[en](en-base,date-base,digit-base)
+ _datetime::. => date:AdBY 'digits/at' IMp:${SAY}
+ _date::. => date:AdBY:${SAY}
+ _time::. => date:IMp:${SAY}
+
+[de](date-base,digit-base)
+ _[n]um:0. => num:${SAY:1}
+ _[n]um:X => digits/${SAY}
+ _[n]um:1X => digits/${SAY}
+ _[n]um:[2-9]0 => digits/${SAY}
+ _[n]um:[2-9][1-9] => digits/${SAY:1}-and, digits/${SAY:0:1}0
+ _[n]um:1XX => digits/ein, digits/hundred, num:${SAY:1}
+ _[n]um:[2-9]XX => digits/${SAY:0:1}, digits/hundred, num:${SAY:1}
+ _[n]um:1XXX => digits/ein, digits/thousand, num:${SAY:1}
+ _[n]um:[2-9]XXX => digits/${SAY:0:1}, digits/thousand, num:${SAY:1}
+ _[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2}
+ _[n]um:X00XXX => digits/${SAY:0:1}, digits/hundred, digits/thousand, num:${SAY:3}
+ _[n]um:XXXXXX => digits/${SAY:0:1}, digits/hundred, num:${SAY:1}
+ _[n]um:1XXXXXX => digits/eine, digits/million, num:${SAY:1}
+ _[n]um:[2-9]XXXXXX => digits/${SAY:0:1}, digits/millions, num:${SAY:1}
+ _[n]um:XXXXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2}
+ _[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/millions, num:${SAY:3}
+
+ _datetime::. => date:AdBY 'digits/at' IMp:${SAY}
+ _date::. => date:AdBY:${SAY}
+ _time::. => date:IMp:${SAY}
+
--- /dev/null
+;
+; 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=default ; Default context for incoming calls
+;allowguest=no ; Allow or reject guest calls (default is yes)
+allowoverlap=yes ; Disable overlap dialing support. (Default is yes)
+allowtransfer=yes ; 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/README.tos 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
+
+disallow=all
+allow=gsm
+allow=ulaw
+allow=h264
+allow=h263p
+allow=h263
+allow=h261
+
+;
+; 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=fr ; 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
+dtmfmode=auto
+
+;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=<secs> ; 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:
+;
+;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 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|<seconds>)
+ ; 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=<domain>[,<context>]
+; 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 = 500 ; 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 = <user>:<secret>@<realm>
+; auth = <user>#<md5secret>@<realm>
+; 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
+; username
+; template
+; fromdomain
+; regexten
+; fromuser
+; host
+; port
+; qualify
+; defaultip
+; rtptimeout
+; rtpholdtimeout
+; sendrpid
+; outboundproxy
+; rfc2833compensate
+
+;[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
+
+
+;
+; Pont "Codian" CERN/CNRS/IN2P3/Inserm/INRA pour extension *341
+; http://vacs.in2p3.fr/
+;
+
+[ccmcu40-in2p3-fr]
+type=peer
+host=ccmcu40.in2p3.fr
+disallow=all
+allow=ulaw
+allow=h264
+allow=h263p
+allow=h263
+allow=h261
+dtmfmode=info
+
+;
+; AUF
+;
+
+; Comptes pour postes clients locaux SIP
+#include "auf/sip.local"
+
--- /dev/null
+;[polycom-check-cfg]
+;Event=>check-sync
+;Content-Length=>0
+
+; Untested
+;[sipura-check-cfg]
+;Event=>resync
+;Content-Length=>0
+
+; Untested
+;[grandstream-check-cfg]
+;Event=>sys-control
+
+; Untested
+;[cisco-check-cfg]
+;Event=>check-sync
+;Content-Length=>0
+
+; Tested
+;[snom-check-cfg]
+;Event=>check-sync\;reboot=false
+;Content-Length=>0
--- /dev/null
+;
+; User configuration
+;
+; Creating entries in users.conf is a "shorthand" for creating individual
+; entries in each configuration file. Using users.conf is not intended to
+; provide you with as much flexibility as using the separate configuration
+; files (e.g. sip.conf, iax.conf, etc) but is intended to accelerate the
+; simple task of adding users. Note that creating individual items (e.g.
+; custom SIP peers, IAX friends, etc.) will allow you to override specific
+; parameters within this file. Parameter names here are the same as they
+; appear in the other configuration files. There is no way to change the
+; value of a parameter here for just one subsystem.
+;
+
+[general]
+;
+; Full name of a user
+;
+fullname = New User
+;
+; Starting point of allocation of extensions
+;
+userbase = 6000
+;
+; Create voicemail mailbox and use use macro-stdexten
+;
+hasvoicemail = yes
+;
+; Set voicemail mailbox 6000 password to 1234
+;
+vmsecret = 1234
+;
+; Create SIP Peer
+;
+hassip = yes
+;
+; Create IAX friend
+;
+hasiax = yes
+;
+; Create H.323 friend
+;
+;hash323 = yes
+;
+; Create manager entry
+;
+hasmanager = no
+;
+; Set permissions for manager entry (see manager.conf.sample for documentation)
+; (defaults to *all* permissions)
+;managerread = system,call,log,verbose,command,agent,user,config
+;managerwrite = system,call,log,verbose,command,agent,user,config
+;
+; Remaining options are not specific to users.conf entries but are general.
+;
+callwaiting = yes
+threewaycalling = yes
+callwaitingcallerid = yes
+transfer = yes
+canpark = yes
+cancallforward = yes
+callreturn = yes
+callgroup = 1
+pickupgroup = 1
+
+
+;[6000]
+;fullname = Joe User
+;email = joe@foo.bar
+;secret = 1234
+;zapchan = 1
+;hasvoicemail = yes
+;vmsecret = 1234
+;hassip = yes
+;hasiax = no
+;hash323 = no
+;hasmanager = no
+;callwaiting = no
+;context = international
+
+; AUF
+#include "auf/users.local"
--- /dev/null
+;
+; Voicemail Configuration
+;
+
+;
+; NOTE: Asterisk has to edit this file to change a user's password. This does
+; not currently work with the "#include <file>" directive for Asterisk
+; configuration files, nor when using realtime static configuration.
+; Do not use them with this configuration file.
+;
+
+[general]
+; Formats for writing Voicemail. Note that when using IMAP storage for
+; voicemail, only the first format specified will be used.
+;format=g723sf|wav49|wav
+format=gsm
+;
+; WARNING:
+; If you change the list of formats that you record voicemail in
+; when you have mailboxes that contain messages, you _MUST_ absolutely
+; manually go through those mailboxes and convert/delete/add the
+; the message files so that they appear to have been stored using
+; your new format list. If you don't do this, very unpleasant
+; things may happen to your users while they are retrieving and
+; manipulating their voicemail.
+;
+; In other words: don't change the format list on a production system
+; unless you are _VERY_ sure that you know what you are doing and are
+; prepared for the consequences.
+;
+; Who the e-mail notification should appear to come from
+serveremail=assistance-informatique@auf.org
+;serveremail=asterisk@linux-support.net
+; Should the email contain the voicemail as an attachment
+attach=no
+; Maximum number of messages per folder. If not specified, a default value
+; (100) is used. Maximum value for this option is 9999.
+maxmsg=100
+; Maximum length of a voicemail message in seconds
+maxmessage=240
+; Minimum length of a voicemail message in seconds for the message to be kept
+; The default is no minimum.
+minmessage=3
+; Maximum length of greetings in seconds
+maxgreet=120
+; How many milliseconds to skip forward/back when rew/ff in message playback
+skipms=3000
+; How many seconds of silence before we end the recording
+maxsilence=10
+; Silence threshold (what we consider silence: the lower, the more sensitive)
+silencethreshold=128
+; Max number of failed login attempts
+maxlogins=3
+;
+; User context is where entries from users.conf are registered. The
+; default value is 'default'
+;
+;userscontext=default
+;
+; If you need to have an external program, i.e. /usr/bin/myapp
+; called when a voicemail is left, delivered, or your voicemailbox
+; is checked, uncomment this. It can also be set to 'smdi' to use
+; smdi for external notification. If it is 'smdi', smdiport should
+; be set to a valid port as specified in smdi.conf.
+
+;externnotify=/usr/bin/myapp
+;smdiport=/dev/ttyS0
+
+; If you need to have an external program, i.e. /usr/bin/myapp
+; called when a voicemail password is changed, uncomment this:
+;externpass=/usr/bin/myapp
+; For the directory, you can override the intro file if you want
+;directoryintro=dir-intro
+; The character set for voicemail messages can be specified here
+;charset=ISO-8859-1
+charset=utf-8
+; The ADSI feature descriptor number to download to
+;adsifdn=0000000F
+; The ADSI security lock code
+;adsisec=9BDBF7AC
+; The ADSI voicemail application version number.
+;adsiver=1
+; Skip the "[PBX]:" string from the message title
+pbxskip=yes
+; Change the From: string
+fromstring=Systeme VoIP
+; Permit finding entries for forward/compose from the directory
+;usedirectory=yes
+; Voicemail can be stored in a database using the ODBC driver.
+; The value of odbcstorage is the database connection configured
+; in res_odbc.conf.
+;odbcstorage=asterisk
+; The default table for ODBC voicemail storage is voicemessages.
+;odbctable=voicemessages
+;
+; Change the from, body and/or subject, variables:
+; VM_NAME, VM_DUR, VM_MSGNUM, VM_MAILBOX, VM_CALLERID, VM_CIDNUM,
+; VM_CIDNAME, VM_DATE
+;
+; Note: The emailbody config row can only be up to 512 characters due to a
+; limitation in the Asterisk configuration subsystem.
+;emailsubject=[PBX]: New message ${VM_MSGNUM} in mailbox ${VM_MAILBOX}
+emailsubject=[BoiteVocale ${VM_MAILBOX}] Nouveau message ${VM_MSGNUM} dans la boite vocale ${VM_MAILBOX}
+
+; The following definition is very close to the default, but the default shows
+; just the CIDNAME, if it is not null, otherwise just the CIDNUM, or "an unknown
+; caller", if they are both null.
+;emailbody=Dear ${VM_NAME}:\n\n\tjust wanted to let you know you were just left a ${VM_DUR} long message (number ${VM_MSGNUM})\nin mailbox ${VM_MAILBOX} from ${VM_CALLERID}, on ${VM_DATE}, so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n
+
+emailbody=\nCher-ère ${VM_NAME},\n\nNous vous informons qu'un message vient d'être ajouté dans\nvotre messagerie vocale ${VM_MAILBOX}.\n\n\tExpéditeur : ${VM_CALLERID} (${VM_CIDNUM})\n\tDate : ${VM_DATE}\n\tDurée : ${VM_DUR}\n\tNuméro du message : ${VM_MSGNUM}\n\nPour consulter votre messagerie vocale, composez *66\n\n--\nSystème Voix-sur-IP de l'AUF <assistance-informatique@auf.org>\n
+
+;
+; You can also change the Pager From: string, the pager body and/or subject.
+; The above defined variables also can be used here
+;pagerfromstring=The Asterisk PBX
+;pagersubject=New VM
+;pagerbody=New ${VM_DUR} long msg in box ${VM_MAILBOX}\nfrom ${VM_CALLERID}, on ${VM_DATE}
+;
+; Set the date format on outgoing mails. Valid arguments can be found on the
+; strftime(3) man page
+;
+; Default
+;emaildateformat=%A, %B %d, %Y at %r
+; 24h date format
+;emaildateformat=%A, %d %B %Y at %H:%M:%S
+emaildateformat=le %d %B %Y à %H:%M:%S
+;
+; You can override the default program to send e-mail if you wish, too
+;
+;mailcmd=/usr/sbin/sendmail -t
+;
+; Users may be located in different timezones, or may have different
+; message announcements for their introductory message when they enter
+; the voicemail system. Set the message and the timezone each user
+; hears here. Set the user into one of these zones with the tz= attribute
+; in the options field of the mailbox. Of course, language substitution
+; still applies here so you may have several directory trees that have
+; alternate language choices.
+;
+; Look in /usr/share/zoneinfo/ for names of timezones.
+; Look at the manual page for strftime for a quick tutorial on how the
+; variable substitution is done on the values below.
+;
+; Supported values:
+; 'filename' filename of a soundfile (single ticks around the filename
+; required)
+; ${VAR} variable substitution
+; A or a Day of week (Saturday, Sunday, ...)
+; B or b or h Month name (January, February, ...)
+; d or e numeric day of month (first, second, ..., thirty-first)
+; Y Year
+; I or l Hour, 12 hour clock
+; H Hour, 24 hour clock (single digit hours preceded by "oh")
+; k Hour, 24 hour clock (single digit hours NOT preceded by "oh")
+; M Minute, with 00 pronounced as "o'clock"
+; N Minute, with 00 pronounced as "hundred" (US military time)
+; P or p AM or PM
+; Q "today", "yesterday" or ABdY
+; (*note: not standard strftime value)
+; q "" (for today), "yesterday", weekday, or ABdY
+; (*note: not standard strftime value)
+; R 24 hour time, including minute
+;
+;
+;
+; Each mailbox is listed in the form <mailbox>=<password>,<name>,<email>,<pager_email>,<options>
+; if the e-mail is specified, a message will be sent when a message is
+; received, to the given mailbox. If pager is specified, a message will be
+; sent there as well. If the password is prefixed by '-', then it is
+; considered to be unchangeable.
+;
+; Advanced options example is extension 4069
+; NOTE: All options can be expressed globally in the general section, and
+; overridden in the per-mailbox settings, unless listed otherwise.
+;
+tz=gmt ; Timezone from zonemessages below. Irrelevant if envelope=no.
+; attach=yes ; Attach the voicemail to the notification email *NOT* the pager email
+; attachfmt=wav49 ; Which format to attach to the email. Normally this is the
+ ; first format specified in the format parameter above, but this
+ ; option lets you customize the format sent to particular mailboxes.
+ ; Useful if Windows users want wav49, but Linux users want gsm.
+ ; [per-mailbox only]
+; saycid=yes ; Say the caller id information before the message. If not described,
+ ; or set to no, it will be in the envelope
+; cidinternalcontexts=intern ; Internal Context for Name Playback instead of
+ ; extension digits when saying caller id.
+; sayduration=no ; Turn on/off the duration information before the message. [ON by default]
+; saydurationm=2 ; Specify the minimum duration to say. Default is 2 minutes
+; dialout=fromvm ; Context to dial out from [option 4 from mailbox's advanced menu].
+ ; If not specified, option 4 will not be listed and dialing out
+ ; from within VoiceMailMain() will not be permitted.
+sendvoicemail=yes ; Allow the user to compose and send a voicemail while inside
+ ; VoiceMailMain() [option 5 from mailbox's advanced menu].
+ ; If set to 'no', option 5 will not be listed.
+; searchcontexts=yes ; Current default behavior is to search only the default context
+ ; if one is not specified. The older behavior was to search all contexts.
+ ; This option restores the old behavior [DEFAULT=no]
+callback=fromvm ; Context to call back from
+ ; if not listed, calling the sender back will not be permitted
+; review=yes ; Allow sender to review/rerecord their message before saving it [OFF by default
+; operator=yes ; Allow sender to hit 0 before/after/during leaving a voicemail to
+ ; reach an operator [OFF by default]
+; envelope=no ; Turn on/off envelope playback before message playback. [ON by default]
+ ; This does NOT affect option 3,3 from the advanced options menu
+; delete=yes ; After notification, the voicemail is deleted from the server. [per-mailbox only]
+ ; This is intended for use with users who wish to receive their
+ ; voicemail ONLY by email. Note: "deletevoicemail" is provided as an
+ ; equivalent option for Realtime configuration.
+; volgain=0.0 ; Emails bearing the voicemail may arrive in a volume too
+ ; quiet to be heard. This parameter allows you to specify how
+ ; much gain to add to the message when sending a voicemail.
+ ; NOTE: sox must be installed for this option to work.
+; nextaftercmd=yes ; Skips to the next message after hitting 7 or 9 to delete/save current message.
+ ; [global option only at this time]
+; forcename=yes ; Forces a new user to record their name. A new user is
+ ; determined by the password being the same as
+ ; the mailbox number. The default is "no".
+; forcegreetings=no ; This is the same as forcename, except for recording
+ ; greetings. The default is "no".
+; hidefromdir=yes ; Hide this mailbox from the directory produced by app_directory
+ ; The default is "no".
+;tempgreetwarn=yes ; Remind the user that their temporary greeting is set
+
+[zonemessages]
+eastern=America/New_York|'vm-received' Q 'digits/at' IMp
+central=America/Chicago|'vm-received' Q 'digits/at' IMp
+central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
+military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
+european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM
+gmt=GMT|'vm-received' Q 'digits/at' kM
+
+
+
+[default]
+
+; surcharge AUF locale (pour le contexte [AUF] surtout)
+#include "auf/voicemail.local"
+
+
--- /dev/null
+;
+; Zapata telephony interface
+;
+; Configuration file
+;
+; You need to restart Asterisk to re-configure the Zap channel
+; CLI> reload chan_zap.so
+; will reload the configuration file,
+; but not all configuration options are
+; re-configured during a reload.
+
+
+; AUF : comme a priori la configuration d'interface ZAP sera toujours
+; locale, on fait uniquement un include
+
+#include "auf/zapata.local"
+
+; la suite est laissée comme exemple
+; NE PAS MODIFIER LE FICHIER sauf si vous savez ce que vous faites...
+; UTILISEZ PLUTOT /etc/asterisk/auf/zapata.local
+
+
+;[trunkgroups]
+;
+; Trunk groups are used for NFAS or GR-303 connections.
+;
+; Group: Defines a trunk group.
+; trunkgroup => <trunkgroup>,<dchannel>[,<backup1>...]
+;
+; trunkgroup is the numerical trunk group to create
+; dchannel is the zap channel which will have the
+; d-channel for the trunk.
+; backup1 is an optional list of backup d-channels.
+;
+;trunkgroup => 1,24,48
+;trunkgroup => 1,24
+;
+; Spanmap: Associates a span with a trunk group
+; spanmap => <zapspan>,<trunkgroup>[,<logicalspan>]
+;
+; zapspan is the zap span number to associate
+; trunkgroup is the trunkgroup (specified above) for the mapping
+; logicalspan is the logical span number within the trunk group to use.
+; if unspecified, no logical span number is used.
+;
+;spanmap => 1,1,1
+;spanmap => 2,1,2
+;spanmap => 3,1,3
+;spanmap => 4,1,4
+
+;[channels]
+;
+; Default language
+;
+;language=fr
+;
+; Default context
+;
+;context=default
+;
+; Switchtype: Only used for PRI.
+;
+; national: National ISDN 2 (default)
+; dms100: Nortel DMS100
+; 4ess: AT&T 4ESS
+; 5ess: Lucent 5ESS
+; euroisdn: EuroISDN
+; ni1: Old National ISDN 1
+; qsig: Q.SIG
+;
+;switchtype=national
+;
+; Some switches (AT&T especially) require network specific facility IE
+; supported values are currently 'none', 'sdn', 'megacom', 'tollfreemegacom', 'accunet'
+;
+;nsf=none
+;
+; PRI Dialplan: Only RARELY used for PRI.
+;
+; unknown: Unknown
+; private: Private ISDN
+; local: Local ISDN
+; national: National ISDN
+; international: International ISDN
+; dynamic: Dynamically selects the appropriate dialplan
+;
+;pridialplan=national
+;
+; PRI Local Dialplan: Only RARELY used for PRI (sets the calling number's numbering plan)
+;
+; unknown: Unknown
+; private: Private ISDN
+; local: Local ISDN
+; national: National ISDN
+; international: International ISDN
+; dynamic: Dynamically selects the appropriate dialplan
+;
+;prilocaldialplan=national
+;
+; PRI callerid prefixes based on the given TON/NPI (dialplan)
+; This is especially needed for euroisdn E1-PRIs
+;
+; 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
+; channels, defaults to 3600; minimum 60 seconds. Some PBXs don't like
+; channel restarts. so set the interval to a very long interval e.g. 100000000
+; or 'never' to disable *entirely*.
+;
+;resetinterval = 3600
+;
+; Overlap dialing mode (sending overlap digits)
+;
+;overlapdial=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
+;
+; 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 = 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)
+;
+; pritimer => t200,1000
+; pritimer => t313,4000
+;
+; To enable transmission of facility-based ISDN supplementary services (such
+; as caller name from CPE over facility), enable this option.
+; facilityenable = yes
+;
+;
+; Signalling method (default is fxs). Valid values:
+; em: E & M
+; em_w: E & M Wink
+; featd: Feature Group D (The fake, Adtran style, DTMF)
+; featdmf: Feature Group D (The real thing, MF (domestic, US))
+; 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
+; gr303fxoks_net: GR-303 Signalling, FXO Loopstart, Network side
+; gr303fxsks_cpe: GR-303 Signalling, FXS Loopstart, CPE side
+; sf: SF (Inband Tone) Signalling
+; sf_w: SF Wink
+; sf_featd: SF Feature Group D (The fake, Adtran style, DTMF)
+; sf_featdmf: SF Feature Group D (The real thing, MF (domestic, US))
+; sf_featb: SF Feature Group B (MF (domestic, US))
+; e911: E911 (MF) style signalling
+;
+; The following are used for Radio interfaces:
+; fxs_rx: Receive audio/COR on an FXS kewlstart interface (FXO at the
+; channel bank)
+; fxs_tx: Transmit audio/PTT on an FXS loopstart interface (FXO at the
+; channel bank)
+; fxo_rx: Receive audio/COR on an FXO loopstart interface (FXS at the
+; channel bank)
+; fxo_tx: Transmit audio/PTT on an FXO groundstart interface (FXS at
+; the channel bank)
+; em_rx: Receive audio/COR on an E&M interface (1-way)
+; em_tx: Transmit audio/PTT on an E&M interface (1-way)
+; em_txrx: Receive audio/COR AND Transmit audio/PTT on an E&M interface
+; (2-way)
+; em_rxtx: Same as em_txrx (for our dyslexic friends)
+; sf_rx: Receive audio/COR on an SF interface (1-way)
+; sf_tx: Transmit audio/PTT on an SF interface (1-way)
+; sf_txrx: Receive audio/COR AND Transmit audio/PTT on an SF interface
+; (2-way)
+; sf_rxtx: Same as sf_txrx (for our dyslexic friends)
+;
+;signalling=fxo_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.
+;
+; signalling=featdmf
+; outsignalling=featb
+;
+; For Feature Group D Tandem access, to set the default CIC and OZZ use these
+; parameters:
+;defaultozz=0000
+;defaultcic=303
+;
+; A variety of timing parameters can be specified as well
+; Including:
+; prewink: Pre-wink time (default 50ms)
+; preflash: Pre-flash time (default 50ms)
+; wink: Wink time (default 150ms)
+; flash: Flash time (default 750ms)
+; start: Start time (default 1500ms)
+; rxwink: Receiver wink time (default 300ms)
+; rxflash: Receiver flashtime (default 1250ms)
+; debounce: Debounce timing (default 600ms)
+;
+;rxwink=300 ; Atlas seems to use long (250ms) winks
+;
+; How long generated tones (DTMF and MF) will be played on the channel
+; (in milliseconds)
+;toneduration=100
+;
+; Whether or not to do distinctive ring detection on FXO lines
+;
+;usedistinctiveringdetection=yes
+;distinctiveringaftercid=yes ; enable dring detection after callerid for those countries like Australia
+ ; where the ring cadence is changed *after* the callerid spill.
+;
+; Whether or not to use caller ID
+;
+;usecallerid=yes
+;
+; Type of caller ID signalling in use
+; bell = bell202 as used in US
+; 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 callerid. Requires SMDI to be enabled (usesmdi).
+;
+;cidsignalling=bell
+;
+; What signals the start of caller ID
+; ring = a ring signals the start
+; polarity = polarity reversal signals the start
+;
+;cidstart=ring
+;
+; Whether or not to hide outgoing caller ID (Override with *67 or *82)
+;
+;hidecallerid=no
+;
+; 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
+;
+; Whether or not restrict outgoing caller ID (will be sent as ANI only, not
+; available for the user)
+; Mostly use with FXS ports
+;
+;restrictcid=no
+;
+; Whether or not use the caller ID presentation for the outgoing call that the
+; calling switch is sending.
+; See README.callingpres
+;
+;usecallingpres=yes
+;
+; Some countries (UK) have ring tones with different ring tones (ring-ring),
+; which means the callerid needs to be set later on, and not just after
+; the first ring, as per the default.
+;
+;sendcalleridafter=1
+;
+;
+; Support Caller*ID on Call Waiting
+;
+;callwaitingcallerid=yes
+;
+; Support three-way calling
+;
+;threewaycalling=yes
+;
+; Support flash-hook call transfer (requires three way calling)
+; Also enables call parking (overrides the 'canpark' parameter)
+;
+;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)
+;
+;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 Zaptel 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 Zaptel automatically.
+;
+;echocancel=yes
+;
+; 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 cancel during pure TDM bridging below.
+;
+;echocancelwhenbridged=yes
+;
+; In some cases, the echo canceller doesn't train quickly enough and there
+; is echo at the beginning of the call. Enabling echo training will cause
+; asterisk to briefly mute the channel, send an impulse, and use the impulse
+; response to pre-train the echo canceller so it can start out with a much
+; closer idea of the actual echo. Value may be "yes", "no", or a number of
+; milliseconds to delay before training (default = 400)
+;
+; 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)
+;
+;rxgain=0.0
+;txgain=0.0
+;
+; Logical groups can be assigned to allow outgoing rollover. Groups range
+; from 0 to 63, and multiple groups can be specified.
+;
+;group=1
+;
+; Ring groups (a.k.a. call groups) and pickup groups. If a phone is ringing
+; and it is a member of a group which is one of your pickup groups, then
+; you can answer it by picking up and dialling *8#. For simple offices, just
+; make these both the same. Groups range from 0 to 63.
+;
+;callgroup=1
+;pickupgroup=1
+
+;
+; Specify whether the channel should be answered immediately or if the simple
+; switch should provide dialtone, read digits, etc.
+;
+;immediate=no
+;
+; Specify whether flash-hook transfers to 'busy' channels should complete or
+; return to the caller performing the transfer (default is yes).
+;
+;transfertobusy=no
+;
+; CallerID can be set to "asreceived" or a specific number if you want to
+; override it. Note that "asreceived" only applies to trunk interfaces.
+;
+;callerid=2564286000
+;
+; AMA flags affects the recording of Call Detail Records. If specified
+; it may be 'default', 'omit', 'billing', or 'documentation'.
+;
+;amaflags=default
+;
+; Channels may be associated with an account code to ease
+; billing
+;
+;accountcode=lss0101
+;
+; ADSI (Analog Display Services Interface) can be enabled on a per-channel
+; basis if you have (or may have) ADSI compatible CPE equipment
+;
+;adsi=yes
+;
+; 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 4, but better results can be
+; achieved if 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=4
+;
+; 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 <busycount> 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 the Asterisk Makefile 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 defining the
+; -DBUSYDETECT_COMPARE_TONE_AND_SILENCE option.
+;
+; Use a polarity reversal to mark when a outgoing call is answered by the
+; remote party.
+;
+;answeronpolarityswitch=yes
+;
+; 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
+;
+; On trunk interfaces (FXS) it can be useful to attempt to follow the progress
+; of a call through RINGING, BUSY, and ANSWERING. If turned on, call
+; progress attempts to determine answer, busy, and ringing on phone lines.
+; This feature is HIGHLY EXPERIMENTAL and can easily detect false answers,
+; so don't count on it being very accurate.
+;
+; Few zones are supported at the time of this writing, but may be selected
+; with "progzone"
+;
+; This feature can also easily detect false hangups. The symptoms of this is
+; being disconnected in the middle of a call for no reason.
+;
+;callprogress=yes
+;progzone=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 Zap considers a non-ringing line to have hungup.
+;
+;ringtimeout=8000
+;
+; For FXO (FXS signalled) devices, whether to use pulse dial instead of DTMF
+;
+;pulsedial=yes
+;
+; For fax detection, uncomment one of the following lines. The default is *OFF*
+;
+;faxdetect=both
+;faxdetect=incoming
+;faxdetect=outgoing
+;faxdetect=no
+;
+; 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 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
+;
+; PRI channels can have an idle extension and a minunused number. So long as
+; at least "minunused" channels are idle, chan_zap will try to call "idledial"
+; on them, and then dump them into the PBX in the "idleext" extension (which
+; is of the form exten@context). When channels are needed the "idle" calls
+; are disconnected (so long as there are at least "minidle" calls still
+; running, of course) to make more channels available. The primary use of
+; this is to create a dynamic service, where idle channels are bundled through
+; multilink PPP, thus more efficiently utilizing combined voice/data services
+; than conventional fixed mappings/muxings.
+;
+;idledial=6999
+;idleext=6999@dialout
+;minunused=2
+;minidle=1
+;
+; Configure jitter buffers in zapata (each one is 20ms, default is 4)
+;
+;jitterbuffers=4
+;
+;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
+; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a
+ ; ZAP channel. Defaults to "no". An enabled jitterbuffer will
+ ; be used only if the sending side can create and the receiving
+ ; side can not accept jitter. The ZAP channel can't accept jitter,
+ ; thus an enabled jitterbuffer on the receive ZAP side will always
+ ; be used if the sending side can create jitter.
+
+; 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 ZAP
+ ; 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.
+
+; 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 callerid spill is
+; to be placed. Also, if you define any custom cadences, the default cadences
+; will be turned off.
+;
+; Syntax is: cadence=ring,silence[,ring,silence[...]]
+;
+; These are the default cadences:
+;
+;cadence=125,125,2000,-4000
+;cadence=250,250,500,1000,250,250,500,-4000
+;cadence=125,125,125,125,125,-4000
+;cadence=1000,500,2500,-5000
+;
+; Each channel consists of the channel number or range. It inherits the
+; parameters that were specified above its declaration.
+;
+; For GR-303, CRV's are created like channels except they must start with the
+; trunk group followed by a colon, e.g.:
+;
+; crv => 1:1
+; crv => 2:1-2,5-8
+;
+;
+;callerid="Green Phone"<(256) 428-6121>
+;channel => 1
+;callerid="Black Phone"<(256) 428-6122>
+;channel => 2
+;callerid="CallerID Phone" <(256) 428-6123>
+;callerid="CallerID Phone" <(630) 372-1564>
+;callerid="CallerID Phone" <(256) 704-4666>
+;channel => 3
+;callerid="Pac Tel Phone" <(256) 428-6124>
+;channel => 4
+;callerid="Uniden Dead" <(256) 428-6125>
+;channel => 5
+;callerid="Cortelco 2500" <(256) 428-6126>
+;channel => 6
+;callerid="Main TA 750" <(256) 428-6127>
+;channel => 44
+;
+; For example, maybe we have some other channels which start out in a
+; different context and use E & M signalling instead.
+;
+;context=remote
+;sigalling=em
+;channel => 15
+;channel => 16
+
+;signalling=em_w
+;
+; All those in group 0 I'll use for outgoing calls
+;
+; Strip most significant digit (9) before sending
+;
+;stripmsd=1
+;callerid=asreceived
+;group=0
+;signalling=fxs_ls
+;channel => 45
+
+;signalling=fxo_ls
+;group=1
+;callerid="Joe Schmoe" <(256) 428-6131>
+;channel => 25
+;callerid="Megan May" <(256) 428-6132>
+;channel => 26
+;callerid="Suzy Queue" <(256) 428-6233>
+;channel => 27
+;callerid="Larry Moe" <(256) 428-6234>
+;channel => 28
+;
+; Sample PRI (CPE) config: Specify the switchtype, the signalling as either
+; pri_cpe or pri_net for CPE or Network termination, and generally you will
+; want to create a single "group" for all channels of the PRI.
+;
+; switchtype = national
+; signalling = pri_cpe
+; group = 2
+; channel => 1-23
+
+;
+
+; Used for 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.
+;
+;dring1=95,0,0
+;dring1context=internal1
+;dring2=325,95,0
+;dring2context=internal2
+; If no pattern is matched here is where we go.
+;context=default
+;channel => 1
+