premier commit (version 1.4-24)
authorThomas Noel <thomas@thomas-sandbox.(none)>
Tue, 4 Mar 2008 11:37:50 +0000 (11:37 +0000)
committerThomas Noel <thomas@thomas-sandbox.(none)>
Tue, 4 Mar 2008 11:37:50 +0000 (11:37 +0000)
60 files changed:
Makefile [new file with mode: 0644]
contrib/ast-conf/asterisk/Makefile [new file with mode: 0644]
contrib/ast-conf/asterisk/ast-conf [new file with mode: 0755]
contrib/ast-conf/asterisk/utilisateurs [new file with mode: 0644]
contrib/ast-conf/cgi/autoconfig-username.cgi [new file with mode: 0755]
contrib/ast-conf/cgi/base.cfg [new file with mode: 0644]
contrib/ast-conf/cgi/httpd.conf [new file with mode: 0644]
contrib/ast-conf/cgi/utilisateurs [new file with mode: 0644]
contrib/ast-conf/ls-firmware-ip5 [new file with mode: 0755]
debian/README.Debian [new file with mode: 0644]
debian/changelog [new file with mode: 0644]
debian/compat [new file with mode: 0644]
debian/config [new file with mode: 0755]
debian/control [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/dirs [new file with mode: 0644]
debian/docs [new file with mode: 0644]
debian/postinst [new file with mode: 0644]
debian/rules [new file with mode: 0755]
debian/templates [new file with mode: 0644]
etc-asterisk/adsi.conf [new file with mode: 0644]
etc-asterisk/adtranvofr.conf [new file with mode: 0644]
etc-asterisk/agents.conf [new file with mode: 0644]
etc-asterisk/alarmreceiver.conf [new file with mode: 0644]
etc-asterisk/amd.conf [new file with mode: 0644]
etc-asterisk/cdr.conf [new file with mode: 0644]
etc-asterisk/cdr_custom.conf [new file with mode: 0644]
etc-asterisk/cdr_manager.conf [new file with mode: 0644]
etc-asterisk/codecs.conf [new file with mode: 0644]
etc-asterisk/dnsmgr.conf [new file with mode: 0644]
etc-asterisk/dundi.conf [new file with mode: 0644]
etc-asterisk/enum.conf [new file with mode: 0644]
etc-asterisk/extconfig.conf [new file with mode: 0644]
etc-asterisk/extensions.conf [new file with mode: 0644]
etc-asterisk/features.conf [new file with mode: 0644]
etc-asterisk/festival.conf [new file with mode: 0644]
etc-asterisk/followme.conf [new file with mode: 0644]
etc-asterisk/gtalk.conf [new file with mode: 0644]
etc-asterisk/http.conf [new file with mode: 0644]
etc-asterisk/iax.conf [new file with mode: 0644]
etc-asterisk/iaxprov.conf [new file with mode: 0644]
etc-asterisk/indications.conf [new file with mode: 0644]
etc-asterisk/jabber.conf [new file with mode: 0644]
etc-asterisk/logger.conf [new file with mode: 0644]
etc-asterisk/manager.conf [new file with mode: 0644]
etc-asterisk/meetme.conf [new file with mode: 0644]
etc-asterisk/misdn.conf [new file with mode: 0644]
etc-asterisk/modules.conf [new file with mode: 0644]
etc-asterisk/musiconhold.conf [new file with mode: 0644]
etc-asterisk/osp.conf [new file with mode: 0644]
etc-asterisk/privacy.conf [new file with mode: 0644]
etc-asterisk/queues.conf [new file with mode: 0644]
etc-asterisk/res_snmp.conf [new file with mode: 0644]
etc-asterisk/rtp.conf [new file with mode: 0644]
etc-asterisk/say.conf [new file with mode: 0644]
etc-asterisk/sip.conf [new file with mode: 0644]
etc-asterisk/sip_notify.conf [new file with mode: 0644]
etc-asterisk/users.conf [new file with mode: 0644]
etc-asterisk/voicemail.conf [new file with mode: 0644]
etc-asterisk/zapata.conf [new file with mode: 0644]

diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..085d772
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,13 @@
+all:
+
+deb:
+       dpkg-buildpackage -rfakeroot -tc
+
+clean:
+
+install: install-conf
+
+install-conf:
+       mkdir -p $(DESTDIR)/etc/asterisk/auf
+       cp etc-asterisk/* $(DESTDIR)/etc/asterisk/
+
diff --git a/contrib/ast-conf/asterisk/Makefile b/contrib/ast-conf/asterisk/Makefile
new file mode 100644 (file)
index 0000000..9b89acf
--- /dev/null
@@ -0,0 +1,20 @@
+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 $@
diff --git a/contrib/ast-conf/asterisk/ast-conf b/contrib/ast-conf/asterisk/ast-conf
new file mode 100755 (executable)
index 0000000..c732a1a
--- /dev/null
@@ -0,0 +1,181 @@
+#!/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);
+}
diff --git a/contrib/ast-conf/asterisk/utilisateurs b/contrib/ast-conf/asterisk/utilisateurs
new file mode 100644 (file)
index 0000000..070a9e9
--- /dev/null
@@ -0,0 +1 @@
+107,10.196.1.98,jerome.santini,Jerome Santini,motdepasse,CODEVOICEMAL
diff --git a/contrib/ast-conf/cgi/autoconfig-username.cgi b/contrib/ast-conf/cgi/autoconfig-username.cgi
new file mode 100755 (executable)
index 0000000..71911d3
--- /dev/null
@@ -0,0 +1,201 @@
+#!/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;
+}
diff --git a/contrib/ast-conf/cgi/base.cfg b/contrib/ast-conf/cgi/base.cfg
new file mode 100644 (file)
index 0000000..dc70829
--- /dev/null
@@ -0,0 +1,144 @@
+#\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
diff --git a/contrib/ast-conf/cgi/httpd.conf b/contrib/ast-conf/cgi/httpd.conf
new file mode 100644 (file)
index 0000000..bd28640
--- /dev/null
@@ -0,0 +1,7 @@
+<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>
diff --git a/contrib/ast-conf/cgi/utilisateurs b/contrib/ast-conf/cgi/utilisateurs
new file mode 100644 (file)
index 0000000..362c332
--- /dev/null
@@ -0,0 +1,20 @@
+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
diff --git a/contrib/ast-conf/ls-firmware-ip5 b/contrib/ast-conf/ls-firmware-ip5
new file mode 100755 (executable)
index 0000000..5f24d8a
--- /dev/null
@@ -0,0 +1,44 @@
+#!/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
diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644 (file)
index 0000000..e0cede6
--- /dev/null
@@ -0,0 +1,23 @@
+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
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..d042d8f
--- /dev/null
@@ -0,0 +1,701 @@
+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
+
diff --git a/debian/compat b/debian/compat
new file mode 100644 (file)
index 0000000..b8626c4
--- /dev/null
@@ -0,0 +1 @@
+4
diff --git a/debian/config b/debian/config
new file mode 100755 (executable)
index 0000000..95338c9
--- /dev/null
@@ -0,0 +1,122 @@
+#!/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
+
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..98dca83
--- /dev/null
@@ -0,0 +1,33 @@
+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
+
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..53b0db4
--- /dev/null
@@ -0,0 +1,10 @@
+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>
diff --git a/debian/dirs b/debian/dirs
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/debian/docs b/debian/docs
new file mode 100644 (file)
index 0000000..41ca5f0
--- /dev/null
@@ -0,0 +1 @@
+contrib
diff --git a/debian/postinst b/debian/postinst
new file mode 100644 (file)
index 0000000..0575423
--- /dev/null
@@ -0,0 +1,282 @@
+#! /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
+
+
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..ff44713
--- /dev/null
@@ -0,0 +1,98 @@
+#!/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
diff --git a/debian/templates b/debian/templates
new file mode 100644 (file)
index 0000000..4190c05
--- /dev/null
@@ -0,0 +1,43 @@
+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.
diff --git a/etc-asterisk/adsi.conf b/etc-asterisk/adsi.conf
new file mode 100644 (file)
index 0000000..0f36f80
--- /dev/null
@@ -0,0 +1,8 @@
+;
+; Sample ADSI Configuration file
+;
+[intro]
+alignment = center
+greeting => Welcome to the
+greeting => Asterisk
+greeting => Open Source PBX
diff --git a/etc-asterisk/adtranvofr.conf b/etc-asterisk/adtranvofr.conf
new file mode 100644 (file)
index 0000000..dc7bcfc
--- /dev/null
@@ -0,0 +1,39 @@
+;
+; 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
diff --git a/etc-asterisk/agents.conf b/etc-asterisk/agents.conf
new file mode 100644 (file)
index 0000000..eb0383f
--- /dev/null
@@ -0,0 +1,105 @@
+;
+; 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
diff --git a/etc-asterisk/alarmreceiver.conf b/etc-asterisk/alarmreceiver.conf
new file mode 100644 (file)
index 0000000..bf767de
--- /dev/null
@@ -0,0 +1,80 @@
+;
+; 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
+;
diff --git a/etc-asterisk/amd.conf b/etc-asterisk/amd.conf
new file mode 100644 (file)
index 0000000..ce4808a
--- /dev/null
@@ -0,0 +1,18 @@
+;
+; 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
diff --git a/etc-asterisk/cdr.conf b/etc-asterisk/cdr.conf
new file mode 100644 (file)
index 0000000..84572d8
--- /dev/null
@@ -0,0 +1,148 @@
+;
+; 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
diff --git a/etc-asterisk/cdr_custom.conf b/etc-asterisk/cdr_custom.conf
new file mode 100644 (file)
index 0000000..8bc2cb3
--- /dev/null
@@ -0,0 +1,10 @@
+;
+; 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)}"
+
diff --git a/etc-asterisk/cdr_manager.conf b/etc-asterisk/cdr_manager.conf
new file mode 100644 (file)
index 0000000..1d7984b
--- /dev/null
@@ -0,0 +1,6 @@
+;
+; Asterisk Call Management CDR
+;
+[general]
+enabled = no
+
diff --git a/etc-asterisk/codecs.conf b/etc-asterisk/codecs.conf
new file mode 100644 (file)
index 0000000..3cf0e51
--- /dev/null
@@ -0,0 +1,65 @@
+[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
diff --git a/etc-asterisk/dnsmgr.conf b/etc-asterisk/dnsmgr.conf
new file mode 100644 (file)
index 0000000..e34dbcf
--- /dev/null
@@ -0,0 +1,5 @@
+[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
diff --git a/etc-asterisk/dundi.conf b/etc-asterisk/dundi.conf
new file mode 100644 (file)
index 0000000..f2c5d5b
--- /dev/null
@@ -0,0 +1,242 @@
+;
+; 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"
+
diff --git a/etc-asterisk/enum.conf b/etc-asterisk/enum.conf
new file mode 100644 (file)
index 0000000..37c0b45
--- /dev/null
@@ -0,0 +1,25 @@
+;
+; 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"
+
diff --git a/etc-asterisk/extconfig.conf b/etc-asterisk/extconfig.conf
new file mode 100644 (file)
index 0000000..b1bb654
--- /dev/null
@@ -0,0 +1,65 @@
+;
+; 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
+;
+
diff --git a/etc-asterisk/extensions.conf b/etc-asterisk/extensions.conf
new file mode 100644 (file)
index 0000000..db41511
--- /dev/null
@@ -0,0 +1,369 @@
+; 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"
+
diff --git a/etc-asterisk/features.conf b/etc-asterisk/features.conf
new file mode 100644 (file)
index 0000000..16a5e1c
--- /dev/null
@@ -0,0 +1,100 @@
+;
+; 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
+;
diff --git a/etc-asterisk/festival.conf b/etc-asterisk/festival.conf
new file mode 100644 (file)
index 0000000..774f1a1
--- /dev/null
@@ -0,0 +1,35 @@
+;
+; 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
+;
+;
+
diff --git a/etc-asterisk/followme.conf b/etc-asterisk/followme.conf
new file mode 100644 (file)
index 0000000..697e5a6
--- /dev/null
@@ -0,0 +1,86 @@
+; 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.
+
+
diff --git a/etc-asterisk/gtalk.conf b/etc-asterisk/gtalk.conf
new file mode 100644 (file)
index 0000000..da629b6
--- /dev/null
@@ -0,0 +1,19 @@
+;[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.
+;
diff --git a/etc-asterisk/http.conf b/etc-asterisk/http.conf
new file mode 100644 (file)
index 0000000..f8a86f8
--- /dev/null
@@ -0,0 +1,40 @@
+;
+; 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/
+;
diff --git a/etc-asterisk/iax.conf b/etc-asterisk/iax.conf
new file mode 100644 (file)
index 0000000..37bc796
--- /dev/null
@@ -0,0 +1,289 @@
+
+; 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"
+
diff --git a/etc-asterisk/iaxprov.conf b/etc-asterisk/iaxprov.conf
new file mode 100644 (file)
index 0000000..65603b1
--- /dev/null
@@ -0,0 +1,81 @@
+;
+; 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
+
diff --git a/etc-asterisk/indications.conf b/etc-asterisk/indications.conf
new file mode 100644 (file)
index 0000000..cb8391e
--- /dev/null
@@ -0,0 +1,733 @@
+; 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
diff --git a/etc-asterisk/jabber.conf b/etc-asterisk/jabber.conf
new file mode 100644 (file)
index 0000000..5ee26e5
--- /dev/null
@@ -0,0 +1,18 @@
+[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.
diff --git a/etc-asterisk/logger.conf b/etc-asterisk/logger.conf
new file mode 100644 (file)
index 0000000..f2ff0ea
--- /dev/null
@@ -0,0 +1,69 @@
+;
+; 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
+;
diff --git a/etc-asterisk/manager.conf b/etc-asterisk/manager.conf
new file mode 100644 (file)
index 0000000..a3530c1
--- /dev/null
@@ -0,0 +1,58 @@
+;
+; 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"
+
diff --git a/etc-asterisk/meetme.conf b/etc-asterisk/meetme.conf
new file mode 100644 (file)
index 0000000..fcbc4e8
--- /dev/null
@@ -0,0 +1,30 @@
+;
+; 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"
+
diff --git a/etc-asterisk/misdn.conf b/etc-asterisk/misdn.conf
new file mode 100644 (file)
index 0000000..6b78999
--- /dev/null
@@ -0,0 +1,433 @@
+;
+; 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"
+
diff --git a/etc-asterisk/modules.conf b/etc-asterisk/modules.conf
new file mode 100644 (file)
index 0000000..0a8afee
--- /dev/null
@@ -0,0 +1,266 @@
+;
+; 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"
+
diff --git a/etc-asterisk/musiconhold.conf b/etc-asterisk/musiconhold.conf
new file mode 100644 (file)
index 0000000..7758ed6
--- /dev/null
@@ -0,0 +1,80 @@
+;
+; 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"
+
diff --git a/etc-asterisk/osp.conf b/etc-asterisk/osp.conf
new file mode 100644 (file)
index 0000000..96d5ddd
--- /dev/null
@@ -0,0 +1,72 @@
+;
+; 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
diff --git a/etc-asterisk/privacy.conf b/etc-asterisk/privacy.conf
new file mode 100644 (file)
index 0000000..0236bcc
--- /dev/null
@@ -0,0 +1,3 @@
+[general]
+
+maxretries = 2 ;How many chances the caller has to enter their number
diff --git a/etc-asterisk/queues.conf b/etc-asterisk/queues.conf
new file mode 100644 (file)
index 0000000..a217f0a
--- /dev/null
@@ -0,0 +1,311 @@
+[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"
+
diff --git a/etc-asterisk/res_snmp.conf b/etc-asterisk/res_snmp.conf
new file mode 100644 (file)
index 0000000..5ca09d5
--- /dev/null
@@ -0,0 +1,10 @@
+;
+; 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
diff --git a/etc-asterisk/rtp.conf b/etc-asterisk/rtp.conf
new file mode 100644 (file)
index 0000000..a3a4f54
--- /dev/null
@@ -0,0 +1,23 @@
+;
+; 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)
diff --git a/etc-asterisk/say.conf b/etc-asterisk/say.conf
new file mode 100644 (file)
index 0000000..c5ad620
--- /dev/null
@@ -0,0 +1,171 @@
+; 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}
+
diff --git a/etc-asterisk/sip.conf b/etc-asterisk/sip.conf
new file mode 100644 (file)
index 0000000..5e4805b
--- /dev/null
@@ -0,0 +1,574 @@
+;
+; 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"
+
diff --git a/etc-asterisk/sip_notify.conf b/etc-asterisk/sip_notify.conf
new file mode 100644 (file)
index 0000000..c06475a
--- /dev/null
@@ -0,0 +1,22 @@
+;[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
diff --git a/etc-asterisk/users.conf b/etc-asterisk/users.conf
new file mode 100644 (file)
index 0000000..b3c2ea3
--- /dev/null
@@ -0,0 +1,82 @@
+;
+; 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"
diff --git a/etc-asterisk/voicemail.conf b/etc-asterisk/voicemail.conf
new file mode 100644 (file)
index 0000000..21a1174
--- /dev/null
@@ -0,0 +1,239 @@
+;
+; 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"
+
+
diff --git a/etc-asterisk/zapata.conf b/etc-asterisk/zapata.conf
new file mode 100644 (file)
index 0000000..abc1fd3
--- /dev/null
@@ -0,0 +1,670 @@
+;
+; 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 
+