mise a jour ast-conf (avec meilleur sip.local.auto notamment)
authorThomas Noel <thomas@thomas-sandbox.(none)>
Fri, 22 Aug 2008 16:41:41 +0000 (16:41 +0000)
committerThomas Noel <thomas@thomas-sandbox.(none)>
Fri, 22 Aug 2008 16:41:41 +0000 (16:41 +0000)
contrib/ast-conf/asterisk/Makefile
contrib/ast-conf/asterisk/ast-conf
contrib/ast-conf/asterisk/utilisateurs
debian/changelog

index 9b89acf..df2552e 100644 (file)
@@ -1,5 +1,5 @@
-reload: iax.local.auto extensions.local.auto sip.local.auto voicemail.local.auto /srv/www/ipphones/utilisateurs
-       # /etc/init.d/asterisk reload
+reload: iax.local.auto extensions.local.auto sip.local.auto voicemail.local.auto /srv/www/ipphones/utilisateurs /srv/www/ipphones/annuaire.phb
+       /etc/init.d/asterisk reload
        touch reload
 
 iax.local.auto : utilisateurs ast-conf
@@ -18,3 +18,7 @@ extensions.local.auto : utilisateurs ast-conf
 /srv/www/ipphones/utilisateurs : utilisateurs ast-conf
        perl -w ./ast-conf autoconf <utilisateurs >utilisateurs-autoconf
        mv utilisateurs-autoconf $@
+
+/srv/www/ipphones/annuaire.phb : utilisateurs ast-conf
+       perl -w ./ast-conf annuaire <utilisateurs >annuaire
+       mv annuaire $@
index c732a1a..6af6f51 100755 (executable)
@@ -10,6 +10,9 @@ 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";
 
+# emplacement de l'annuaire
+my $annuaire_old="/srv/www/ipphones/annuaire.phb";
+
 ################################################################################
 
 use strict;
@@ -20,13 +23,21 @@ sub table_sip($$$$$);
 sub table_ext($$);
 sub table_voicemail($$$$);
 sub table_autoconf($$);
+sub table_annuaire($$$);
 sub usage();
 
+# numero de rang dans l'annuaire
+my $speedial=1;
+
+# somme des versions des extensions
+# pour verifier si l'annuaire a changé ou non
+my $annuaire_somme_extensions = 0;
+
 my %anciennes_extensions=();
 
 # type de table a generer
 my $table=(@ARGV ? $ARGV[0] : "undef");
-my $tables_connues="(iax|sip|ext|autoconf|voicemail)";
+my $tables_connues="(iax|sip|ext|annuaire|autoconf|voicemail)";
 
 usage() unless ($table =~ /^$tables_connues$/);
 
@@ -43,7 +54,7 @@ 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");
+  unless ($table eq "autoconf" or $table eq "annuaire");
 
 while(<STDIN>)
 {
@@ -63,6 +74,7 @@ while(<STDIN>)
     case "sip" {   table_sip($ext,$username,$fullname,$pass,$ip);} 
     case "ext" {   table_ext($ext,$username);} 
     case "autoconf" {   table_autoconf($ext,$username);} 
+    case "annuaire" {   table_annuaire($ext,$username,$fullname);} 
     case "voicemail" {   table_voicemail($ext,$username,$fullname,$passmail);}
       else 
        { 
@@ -70,6 +82,31 @@ while(<STDIN>)
   }
 }
 
+if($table eq "annuaire")
+  {
+    # conclure par le numero de version de l'annuaire...
+    # verifier l'ancienne version...
+    
+    my $version_annuaire = 0;
+    my $version_extensions = 0;
+
+    if(open FILE,"$annuaire_old")
+      {
+       while(<FILE>)
+         {
+           next unless (/^VERSION (\d+):(\d+)/);
+           $version_annuaire = $1;
+           $version_extensions = $2;
+         }
+      }
+    if($version_extensions != $annuaire_somme_extensions)
+      {
+       # alors il faut augmenter le numero de version de l'annuaire
+       $version_annuaire++;
+      }        
+    print "VERSION $version_annuaire:$annuaire_somme_extensions\n";
+  }
+
 # a changer pour la table "iax" : fixer l'ip quand elle est connue
 sub table_iax($$$$$)
 {
@@ -104,13 +141,14 @@ sub table_sip($$$$$)
 [$username]
 type=friend
 callerid="$fullname" <$PREFIXE$ext>
-mailbox=$ext\@default
+mailbox=$ext\@AUF
 username=$username
 secret=$pass
 context=AUF
 host=dynamic
 disallow=all
 allow=ulaw
+call-limit=10
 
 EOT
 
@@ -121,6 +159,10 @@ sub table_ext($$)
        my ($ext,$username) = @_;
        print <<EOT ;
 exten => $ext,1,Macro(AUFDial,$username)
+exten => $username,1,Macro(AUFDial,$username)
+exten => $ext,hint,SIP/$username&IAX2/$username
+exten => $username,hint,SIP/$username&IAX2/$username
+
 EOT
 
 }
@@ -146,6 +188,23 @@ sub table_autoconf($$)
        print "$username $ext $version\n";
 }
 
+sub table_annuaire($$$)
+{
+       my ($ext,$username,$fullname) = @_;
+       #$username =~ s/\./ /g;
+       #$username =~ s/(^|\s)([a-z])/$1\u$2/g;
+       print "memory$speedial:$fullname\n";
+       print "number$speedial:$ext\n";
+       $speedial++;
+
+       # ajouter a la somme des versions des extensions
+       my ($old_ext,$version) = ancienne_extension($username);
+       # on utlisate l'extension "globale" pour configurer les telephones
+       $ext = "$PREFIXE$ext";
+       $version ++ if($ext != $old_ext);
+       $annuaire_somme_extensions += $version;
+}
+
 sub usage()
   {
     print STDERR "usage : $0 $tables_connues <utilisateurs\n"; 
index 070a9e9..94df655 100644 (file)
@@ -1 +1,3 @@
-107,10.196.1.98,jerome.santini,Jerome Santini,motdepasse,CODEVOICEMAL
+101,10.196.1.103,oulimata.dieye,Oulimata Dieye,MOT-DE-PASSE,CODE-VOICEMAIL
+102,10.196.1.99,michel.guerrero,Michel Guerrero,MOT-DE-PASSE,CODE-VOICEMAIL
+103,10.196.1.104,janine.magnier,Janine Magnier,MOT-DE-PASSE,CODE-VOICEMAIL
index e974d4c..f640860 100644 (file)
@@ -2,8 +2,9 @@ asterisk-config-auf (1.4-32) unstable; urgency=low
 
   * sip.conf: activation subscribe (pour MWI et BLF sur les postes Thomson,
     entre autres)
+  * ast-conf: version plus à jour, avec meilleur sip.local.auto
 
- -- Thomas Noel <thomas.noel@auf.org>  Fri, 22 Aug 2008 16:25:32 +0000
+ -- Thomas Noel <thomas.noel@auf.org>  Fri, 22 Aug 2008 16:40:51 +0000
 
 asterisk-config-auf (1.4-31) unstable; urgency=low