From 49bb45c5a3d3b5bc4ca6cd7e8a09736a35abf214 Mon Sep 17 00:00:00 2001 From: Progfou Date: Thu, 12 Apr 2012 12:16:05 +0700 Subject: [PATCH 1/1] =?utf8?q?Pr=C3=A9paration=20au=20nomadisme=20et=20=C3=A0?= =?utf8?q?=20asterisk=201.8=20!?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * ajout du serveur VoIP pour les nomades (à Montréal) * ajout d'un fichier iax-calltoken.global pour le support calltoken, ref : http://svn.digium.com/svn/asterisk/branches/1.4/doc/IAX2-security.pdf * ajout d'un fichier extensions-canon.global précisant les masques des numéros d'extensions locales * ajout d'un fichier liste-serveurs-canon, source avec les masques --- Makefile | 7 ++-- creer-fichiers | 95 ++++++++++++++++++++++++++++++++++++++------------ debian/README.Debian | 4 +-- debian/changelog | 11 ++++++ debian/control | 10 ++++-- debian/postinst | 19 +++++----- keys/auf-nomade.pub | 6 ++++ liste-serveurs | 55 +++++++++++++++-------------- liste-serveurs-canon | 77 ++++++++++++++++++++++++++++++++++++++++ pourwiki.txt | 45 ++++++++++++------------ 10 files changed, 239 insertions(+), 90 deletions(-) create mode 100644 keys/auf-nomade.pub create mode 100644 liste-serveurs-canon diff --git a/Makefile b/Makefile index 946f7e0..5d653f1 100644 --- a/Makefile +++ b/Makefile @@ -6,11 +6,8 @@ clean: install: install-keys install-create install-copy install-keys: - mkdir -p $(DESTDIR)/var/lib/asterisk/keys - cp keys/*.pub $(DESTDIR)/var/lib/asterisk/keys - chown root.root $(DESTDIR)/var/lib/asterisk/keys/*.pub mkdir -p $(DESTDIR)/usr/share/asterisk/keys - cp keys/*.pub $(DESTDIR)/usr/share/asterisk/keys + cp keys/*.pub $(DESTDIR)/usr/share/asterisk/keys/ chown root.root $(DESTDIR)/usr/share/asterisk/keys/*.pub install-create: @@ -21,7 +18,7 @@ install-copy: mkdir -p $(DESTDIR)/etc/asterisk/auf cp -f -a *.global $(DESTDIR)/etc/asterisk/auf/ mkdir -p $(DESTDIR)/usr/share/doc/asterisk-config-auf-connexions/ - cp liste-serveurs $(DESTDIR)/usr/share/doc/asterisk-config-auf-connexions/ + cp liste-serveurs liste-serveurs-canon $(DESTDIR)/usr/share/doc/asterisk-config-auf-connexions/ deb: debuild -I.git -I*.ex -b -us -uc && \ diff --git a/creer-fichiers b/creer-fichiers index b3e4a9e..77d816f 100755 --- a/creer-fichiers +++ b/creer-fichiers @@ -1,7 +1,15 @@ -#!/bin/sh +#!/bin/bash IAX=iax.global +IAXCALLTOKEN=iax-calltoken.global EXTEN=extensions.global +EXTENCANON=extensions-canon.global + +AVERTISSEMENT="\ +; ATTENTION : NE PAS TOUCHER A CE FICHIER. IL FAIT PARTIE DU +; PAQUET asterisk-config-auf-connexions ET SERA MIS A JOUR +; LORS DE L'AJOUT DE NOUVEAUX SITES VOIP AUF +;" cat << EOF > $IAX ; /etc/asterisk/auf/$IAX @@ -10,45 +18,64 @@ cat << EOF > $IAX ; (Note: le fichier iax.conf fourni par le paquet asterisk-config-auf ; effectue déjà cette inclusion) ; -; ATTENTION : NE PAS TOUCHER A CE FICHIER. IL FAIT PARTIE DU -; PAQUET asterisk-config-auf-connexions ET SERA MIS A JOUR -; LORS DE L'AJOUT DE NOUVEAUX SITES VOIP AUF -; +$AVERTISSEMENT ; Authentification RSA : il faut disposer de la clé publique de chaque user : -; /var/lib/asterisk/keys/inkeys.pub (voir sur http://tech.auf/wiki/AsteriskRSA) +; /usr/share/asterisk/keys/inkeys.pub (voir sur http://tech.auf/wiki/AsteriskRSA) ; Note : pour l'AUF les clés sont fournies par le paquet ; asterisk-config-auf-connexions ; EOF -cat << EOF > $EXTEN -; /etc/asterisk/auf/$EXTEN +cat << EOF > $IAXCALLTOKEN +; /etc/asterisk/auf/$IAXCALLTOKEN +; Fichier à inclure dans le contexte [general] de iax.conf +; avec : "#include $IAXCALLTOKEN" +; (Note: le fichier iax.conf fourni par le paquet asterisk-config-auf +; n'effectue PAS cette inclusion ; il faut la faire soi-même) +; +$AVERTISSEMENT + +EOF + +for f in $EXTEN $EXTENCANON ; do + cat << EOF > $f +; /etc/asterisk/auf/$f ; Fichier à inclure dans le contexte [AUF] de extensions.conf -; avec : "#include $EXTEN" +; avec : "#include $f" ; (Note: le fichier extensions.conf fourni par le paquet asterisk-config-auf ; effectue déjà cette inclusion) ; -; ATTENTION : NE PAS TOUCHER A CE FICHIER. IL FAIT PARTIE DU -; PAQUET asterisk-config-auf-connexions ET SERA MIS A JOUR -; LORS DE L'AJOUT DE NOUVEAUX SITES VOIP AUF -; +$AVERTISSEMENT + +EOF +done +cat << EOF > liste-serveurs +# Format +# username:prefix:serveur[:longueur_prefixe] EOF +sed -e '/^[^#]/s/[[:space:]]*#.*$//' liste-serveurs-canon | tail -n +3 | \ +awk -F: ' +/^[0-9\[\]]+:/ { + prefixlen = length(gensub(/\[[^]]*\]/,"?","g",$1)) + if (prefixlen != length($1)) { + $0 = sprintf("%s:%s:%s:%s",$4,$1,$3,prefixlen) + } else { + $0 = sprintf("%s:%s:%s",$4,$1,$3) + } +} +{ + print +}' >> liste-serveurs echo " || '''Nom''' || '''préfixe''' ||" > pourwiki.txt -grep -ve "^ *#" liste-serveurs | grep ":" | while read L +sed -e 's/#.*$//' -e 's/[[:space:]]*$//' -e '/^$/d' liste-serveurs-canon | \ +while IFS=":" read prefix extenpat server username do - L=`echo $L | tr -dc []a-zA-Z0-9:_.-` - username=`echo $L | cut -f1 -d:` - prefix=`echo $L | cut -f2 -d:` - server=`echo $L | cut -f3 -d:` - - prefixlen=`echo $L | cut -f4 -d:` - if [ x${prefixlen} = x ]; then - prefixlen=`echo -n $prefix | wc -c` - fi + prefixlen=`echo -n "$prefix" | sed 's/\[[^]]*\]/?/g' | wc -c` + serverip=`LANG= host -t a $server | sed '/ has address /s/^.* //p;d'` echo "$username" echo " prefix=$prefix ($prefixlen chiffres)" @@ -80,8 +107,23 @@ auth=rsa inkeys=$username host=dynamic context=AUF +;requirecalltoken=auto + +EOF + + if [ -n "$serverip" ] ; then + cat << EOF >> $IAXCALLTOKEN +; $server +calltokenoptional=$serverip + +EOF + else + cat << EOF >> $IAXCALLTOKEN +; $server +;calltokenoptional= EOF + fi cat << EOF >> $EXTEN ; Liaison vers $username @@ -89,5 +131,12 @@ EOF exten => _\${AUFPREFIX}$prefix.,1,Dial(IAX2/\${AUFAUTH}@$server/\${EXTEN:\$[\${AUFPREFIXLEN} + $prefixlen]}@AUF,90,rtThH) EOF + cat << EOF >> $EXTENCANON +; Liaison vers $username +; prefix=$prefix exten_pattern=$extenpat server=$server +exten => _\${AUFPREFIX}${prefix}${extenpat},1,Dial(IAX2/\${AUFAUTH}@${server}/\${EXTEN:\$[\${AUFPREFIXLEN} + ${prefixlen}]}@AUF,90,rtThH) +exten => _\${AUFPREFIX}${prefix}*.,1,Dial(IAX2/\${AUFAUTH}@${server}/\${EXTEN:\$[\${AUFPREFIXLEN} + ${prefixlen}]}@AUF,90,rtThH) + +EOF done diff --git a/debian/README.Debian b/debian/README.Debian index d47ca61..90449fa 100644 --- a/debian/README.Debian +++ b/debian/README.Debian @@ -1,9 +1,9 @@ asterisk-config-auf-connexions ------------------------------ -- les clés sont dans /var/lib/asterisk/keys/*.pub (asterisk 1.2) - ET dans /usr/share/asterisk/keys/*.pub (asterisk 1.4) +- les clés sont dans /usr/share/asterisk/keys/*.pub - elles sont appelées auf-IMPLANTATION.pub -- Thomas NOEL , Tue, 19 Fév 2008 10:23:12 +0000 + -- Progfou , Thu, 12 Apr 2012 12:10:59 +0700 diff --git a/debian/changelog b/debian/changelog index 854185a..5c8fb5b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,14 @@ +asterisk-config-auf-connexions (1.14) unstable; urgency=low + + * ajout du serveur VoIP pour les nomades (à Montréal) + * ajout d'un fichier iax-calltoken.global pour le support calltoken, ref : + http://svn.digium.com/svn/asterisk/branches/1.4/doc/IAX2-security.pdf + * ajout d'un fichier extensions-canon.global précisant les masques des + numéros d'extensions locales + * ajout d'un fichier liste-serveurs-canon, source avec les masques + + -- Progfou Thu, 12 Apr 2012 09:18:23 +0700 + asterisk-config-auf-connexions (1.13) unstable; urgency=low * ajout de Tripoli diff --git a/debian/control b/debian/control index eee086a..7e2b734 100644 --- a/debian/control +++ b/debian/control @@ -14,11 +14,15 @@ Description: Configuration d'Asterisk pour l'AUF - partie interconnexion . Contient les paramètres de connexion entre serveurs : - toutes les clés publiques de tous les serveurs AUF, placées dans - /usr/share/asterisk/keys/ (pour asterisk 1.4) et /var/lib/asterisk/keys/ - (pour asterisk 1.2) + /usr/share/asterisk/keys/ - /etc/asterisk/auf/iax.global : définition des user IAX pour les interconnexions + - /etc/asterisk/auf/iax-calltoken.global : support du calltoken, cf + http://svn.digium.com/svn/asterisk/branches/1.4/doc/IAX2-security.pdf - /etc/asterisk/auf/extensions.global : définition des exten internationaux + - /etc/asterisk/auf/extensions-canon.global : définition des exten + internationaux avec précision des masques des extensions locales . Note : le paquet asterisk-config-auf propose une configuration qui prend déjà - en compte (via des #include) ces fichiers. + en compte (via des #include) ces fichiers, à l'exception du support des + calltoken qui doit être ajouté manuellement (section [general] de iax.conf). diff --git a/debian/postinst b/debian/postinst index 0e52132..f55ba57 100644 --- a/debian/postinst +++ b/debian/postinst @@ -51,8 +51,9 @@ case "$1" in # migration vers /usr/share pour asterisk 1.4 : on copie les *.key # et les *.pub correspondantes de /var/lib vers /usr/share - cd /var/lib/asterisk/keys - if ls *.key > /dev/null 2>&1; then + if test -d /var/lib/asterisk/keys ; then + cd /var/lib/asterisk/keys + 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 @@ -70,13 +71,15 @@ case "$1" in fi fi done + fi + # droits minimums sur les clés dans /var/lib + chown -R root:asterisk /var/lib/asterisk/keys + chmod 0755 /var/lib/asterisk/keys + chmod 0444 /var/lib/asterisk/keys/*.pub 2> /dev/null || true + chmod 0440 /var/lib/asterisk/keys/*.key 2> /dev/null || true fi - # droits minimums sur les clés, dans /var/lib et dans /usr/share - chown -R root:asterisk /var/lib/asterisk/keys - chmod 0755 /var/lib/asterisk/keys - chmod 0444 /var/lib/asterisk/keys/*.pub 2> /dev/null || true - chmod 0440 /var/lib/asterisk/keys/*.key 2> /dev/null || true + # droits minimums sur les clés dans /usr/share chown -R root:asterisk /usr/share/asterisk/keys chmod 0755 /usr/share/asterisk/keys chmod 0444 /usr/share/asterisk/keys/*.pub 2> /dev/null || true @@ -106,5 +109,3 @@ esac #DEBHELPER# exit 0 - - diff --git a/keys/auf-nomade.pub b/keys/auf-nomade.pub new file mode 100644 index 0000000..f6a6dfa --- /dev/null +++ b/keys/auf-nomade.pub @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZQEqOb19TQy7FkR153zwbFOZV +CmSFFMZKRV0jJDCtAHEJXLvSXAj0MPPMBI95tUXUR+LtVw7m/QRyglvpA1xk4K75 +4M/Df3bXPuRLHId9KRZ06fWxZWRT1HbNjntVknINkC43tsXIjvcmIIHpWtIFv1Ny +YGVsiu/OCITXhAN9uQIDAQAB +-----END PUBLIC KEY----- diff --git a/liste-serveurs b/liste-serveurs index e42dfb5..dc7076d 100644 --- a/liste-serveurs +++ b/liste-serveurs @@ -1,74 +1,77 @@ -# Format +# Format # username:prefix:serveur[:longueur_prefixe] -# BAN / SCM +# BA / SCM +auf-nomade:0:voip-nomade.ca.auf.org auf-montreal:1:voip.ca.auf.org -# BEOM / SCP -auf-paris:33:voip.fr.auf.org +# BEO / SCP auf-bruxelles:32:voip.be.auf.org -auf-tunis:216:voip.tn.auf.org +auf-paris:33:voip.fr.auf.org + +# BM auf-rabat:212:voip.ma.auf.org auf-alger:213:voip.dz.auf.org +auf-tunis:216:voip.tn.auf.org +#xxx:ZXXX:voip.ly.auf.org:auf-xxx # BAP +auf-portvila:6782:voip.vu.auf.org auf-bap:844[12]:voip.vn.auf.org:4 -auf-danang:84511:voip.danang.vn.auf.org -auf-antenne-vientiane:8561:voip.la.auf.org -auf-cnf-vientiane:8562:voip.la.refer.org auf-ifi:8443:voip.ifi.auf.org -auf-portvila:6782:voip.vu.auf.org -#auf-cnfppenh:8552:voip.kh.refer.org -auf-khppenh:8551:voip.kh.auf.org +auf-cnfhanoi:8444:voip.vn.refer.org +auf-danang:84511:voip.danang.vn.auf.org auf-hcmv:8481:voip.hcmv.vn.auf.org auf-cnfhcmv:8482:voip.hcmv.vn.refer.org +auf-khppenh:8551:voip.kh.auf.org +auf-antenne-vientiane:8561:voip.la.auf.org +auf-cnf-vientiane:8562:voip.la.refer.org auf-ifmt:8563:voip.ifmt.auf.org -auf-cnfhanoi:8444:voip.vn.refer.org # BAO auf-dakar:2211:voip.sn.auf.org -auf-dakar-test:2213:voip-test.sn.auf.org auf-st-louis:2212:voip.sl.sn.auf.org +auf-dakar-test:2213:voip-test.sn.auf.org +auf-nouakchott:2221:voip.mr.auf.org +auf-bamako:2231:voip.ml.auf.org +auf-conakry:2241:voip.gn.auf.org +auf-abidjan:2251:voip.ci.auf.org auf-ouagadougou:2261:voip.bf.auf.org auf-niamey:227:voip.ne.auf.org auf-lome:228:voip.tg.auf.org -auf-bamako:2231:voip.ml.auf.org auf-cotonou:2291:voip.bj.auf.org -auf-abidjan:2251:voip.ci.auf.org -auf-nouakchott:2221:voip.mr.auf.org -auf-conakry:2241:voip.gn.auf.org # BMO +auf-alexandrie:20:voip.eg.auf.org auf-tripoli:9611:voip.lb.refer.org auf-beyrouth:9612:voip.lb.auf.org -auf-alexandrie:20:voip.eg.auf.org # BOI +auf-ife:2301:ifemaurice.dynalias.org +auf-caimaurice:2302:voip.mu.refer.org auf-antananarivo1:2611:voip1.mg.auf.org auf-antananarivo2:2612:voip.mg.auf.org -auf-caimaurice:2302:voip.mu.refer.org auf-moroni:269:voip.km.auf.org -auf-ife:2301:ifemaurice.dynalias.org # BAC +auf-bangui:2361:voip.cf.auf.org auf-yaounde:2371:voip.cm.auf.org auf-yaounde2:2372:voip.soa.cm.auf.org auf-libreville:2411:voip.ga.auf.org -auf-bangui:2361:voip.cf.auf.org -auf-bujumbura:2571:voip.bi.auf.org auf-brazzaville:2421:voip.cg.auf.org auf-kinshasa:243:voip.cd.auf.org +auf-bujumbura:2571:voip.bi.auf.org # BECO -auf-bucarest:40:voip.ro.auf.org +auf-tirana:355:voip.al.auf.org auf-bg1:359:voip.bg.auf.org auf-bg2:3592:voip.crf-bg.org -auf-tirana:355:voip.al.auf.org auf-chisinau:373:voip.md.auf.org -auf-tbilissi:995:voip.ge.auf.org auf-erevan:374:voip.am.auf.org +auf-bucarest:40:voip.ro.auf.org +auf-tbilissi:995:voip.ge.auf.org # BC -auf-pap1:5091:voip1.ht.auf.org auf-pap:509:voip.ht.auf.org +auf-pap1:5091:voip1.ht.auf.org diff --git a/liste-serveurs-canon b/liste-serveurs-canon new file mode 100644 index 0000000..031df27 --- /dev/null +++ b/liste-serveurs-canon @@ -0,0 +1,77 @@ +# Format +# prefix:extenpat:server:username + +# BA / SCM +0:ZXXX:voip-nomade.ca.auf.org:auf-nomade +1:ZXXX:voip.ca.auf.org:auf-montreal + +# BEO / SCP +32:ZXXX:voip.be.auf.org:auf-bruxelles +33:ZXXX:voip.fr.auf.org:auf-paris + +# BM +212:ZXXX:voip.ma.auf.org:auf-rabat +213:ZXXX:voip.dz.auf.org:auf-alger +216:ZXXX:voip.tn.auf.org:auf-tunis +#xxx:ZXXX:voip.ly.auf.org:auf-xxx + +# BAP +6782:ZX:voip.vu.auf.org:auf-portvila +844[12]:ZX:voip.vn.auf.org:auf-bap +8443:ZX:voip.ifi.auf.org:auf-ifi +8444:ZX:voip.vn.refer.org:auf-cnfhanoi +84511:X:voip.danang.vn.auf.org:auf-danang # TODO: extensions sur 2 chiffres +8481:ZX:voip.hcmv.vn.auf.org:auf-hcmv +8482:ZX:voip.hcmv.vn.refer.org:auf-cnfhcmv +8551:ZX:voip.kh.auf.org:auf-khppenh +8561:ZX:voip.la.auf.org:auf-antenne-vientiane +8562:ZX:voip.la.refer.org:auf-cnf-vientiane +8563:ZX:voip.ifmt.auf.org:auf-ifmt + +# BAO +2211:ZXX:voip.sn.auf.org:auf-dakar +2212:ZXX:voip.sl.sn.auf.org:auf-st-louis +2213:ZXX:voip-test.sn.auf.org:auf-dakar-test +2221:ZXX:voip.mr.auf.org:auf-nouakchott +2231:ZXX:voip.ml.auf.org:auf-bamako +2241:XX:voip.gn.auf.org:auf-conakry # FIXME: anomalie dans les extensions +2251:ZXX:voip.ci.auf.org:auf-abidjan +2261:ZXX:voip.bf.auf.org:auf-ouagadougou +227:ZXX:voip.ne.auf.org:auf-niamey +228:ZXX:voip.tg.auf.org:auf-lome +2291:ZXX:voip.bj.auf.org:auf-cotonou + +# BMO +20:ZXX:voip.eg.auf.org:auf-alexandrie +9611:ZX:voip.lb.refer.org:auf-tripoli +9612:ZXXXX:voip.lb.auf.org:auf-beyrouth + +# BOI +2301:ZXX:ifemaurice.dynalias.org:auf-ife +2302:ZXX:voip.mu.refer.org:auf-caimaurice +2611:ZXX:voip1.mg.auf.org:auf-antananarivo1 +2612:ZXX:voip.mg.auf.org:auf-antananarivo2 +269:ZXX:voip.km.auf.org:auf-moroni + +# BAC +2361:ZXX:voip.cf.auf.org:auf-bangui +2371:ZXX:voip.cm.auf.org:auf-yaounde +2372:ZXX:voip.soa.cm.auf.org:auf-yaounde2 +2411:ZXX:voip.ga.auf.org:auf-libreville +2421:ZXX:voip.cg.auf.org:auf-brazzaville +243:ZXX:voip.cd.auf.org:auf-kinshasa +2571:ZXX:voip.bi.auf.org:auf-bujumbura + +# BECO +355:ZXX:voip.al.auf.org:auf-tirana +359:ZXX:voip.bg.auf.org:auf-bg1 +3592:ZX:voip.crf-bg.org:auf-bg2 +373:ZXX:voip.md.auf.org:auf-chisinau +374:ZXX:voip.am.auf.org:auf-erevan +40:ZXX:voip.ro.auf.org:auf-bucarest +995:ZXX:voip.ge.auf.org:auf-tbilissi + +# BC +509:ZX:voip.ht.auf.org:auf-pap +5091:ZX:voip1.ht.auf.org:auf-pap1 + diff --git a/pourwiki.txt b/pourwiki.txt index 2021794..1cbb931 100644 --- a/pourwiki.txt +++ b/pourwiki.txt @@ -1,53 +1,54 @@ || '''Nom''' || '''préfixe''' || + || nomade || 0 || || montreal || 1 || - || paris || 33 || || bruxelles || 32 || - || tunis || 216 || + || paris || 33 || || rabat || 212 || || alger || 213 || + || tunis || 216 || + || portvila || 6782 || || bap || 844[12] || - || danang || 84511 || - || antenne-vientiane || 8561 || - || cnf-vientiane || 8562 || || ifi || 8443 || - || portvila || 6782 || - || khppenh || 8551 || + || cnfhanoi || 8444 || + || danang || 84511 || || hcmv || 8481 || || cnfhcmv || 8482 || + || khppenh || 8551 || + || antenne-vientiane || 8561 || + || cnf-vientiane || 8562 || || ifmt || 8563 || - || cnfhanoi || 8444 || || dakar || 2211 || - || dakar-test || 2213 || || st-louis || 2212 || + || dakar-test || 2213 || + || nouakchott || 2221 || + || bamako || 2231 || + || conakry || 2241 || + || abidjan || 2251 || || ouagadougou || 2261 || || niamey || 227 || || lome || 228 || - || bamako || 2231 || || cotonou || 2291 || - || abidjan || 2251 || - || nouakchott || 2221 || - || conakry || 2241 || + || alexandrie || 20 || || tripoli || 9611 || || beyrouth || 9612 || - || alexandrie || 20 || + || ife || 2301 || + || caimaurice || 2302 || || antananarivo1 || 2611 || || antananarivo2 || 2612 || - || caimaurice || 2302 || || moroni || 269 || - || ife || 2301 || + || bangui || 2361 || || yaounde || 2371 || || yaounde2 || 2372 || || libreville || 2411 || - || bangui || 2361 || - || bujumbura || 2571 || || brazzaville || 2421 || || kinshasa || 243 || - || bucarest || 40 || + || bujumbura || 2571 || + || tirana || 355 || || bg1 || 359 || || bg2 || 3592 || - || tirana || 355 || || chisinau || 373 || - || tbilissi || 995 || || erevan || 374 || - || pap1 || 5091 || + || bucarest || 40 || + || tbilissi || 995 || || pap || 509 || + || pap1 || 5091 || -- 1.7.10.4