version 1:1.8.1 -- branche pour le support Asterisk 1.8 sur Wheezy
[asterisk-config-auf-connexions.git] / creer-fichiers
CommitLineData
49bb45c5 1#!/bin/bash
0afa8158
TN
2
3IAX=iax.global
4EXTEN=extensions.global
49bb45c5
P
5EXTENCANON=extensions-canon.global
6
7AVERTISSEMENT="\
8; ATTENTION : NE PAS TOUCHER A CE FICHIER. IL FAIT PARTIE DU
9; PAQUET asterisk-config-auf-connexions ET SERA MIS A JOUR
10; LORS DE L'AJOUT DE NOUVEAUX SITES VOIP AUF
11;"
0afa8158
TN
12
13cat << EOF > $IAX
14; /etc/asterisk/auf/$IAX
15; Liaisons IAX inter implantations à inclure à la fin de iax.conf
16; avec : #include "$IAX"
17; (Note: le fichier iax.conf fourni par le paquet asterisk-config-auf
18; effectue déjà cette inclusion)
19;
49bb45c5 20$AVERTISSEMENT
0afa8158 21; Authentification RSA : il faut disposer de la clé publique de chaque user :
49bb45c5 22; /usr/share/asterisk/keys/inkeys.pub (voir sur http://tech.auf/wiki/AsteriskRSA)
0afa8158
TN
23; Note : pour l'AUF les clés sont fournies par le paquet
24; asterisk-config-auf-connexions
25;
26
27EOF
28
49bb45c5
P
29
30for f in $EXTEN $EXTENCANON ; do
31 cat << EOF > $f
32; /etc/asterisk/auf/$f
0afa8158 33; Fichier à inclure dans le contexte [AUF] de extensions.conf
49bb45c5 34; avec : "#include $f"
0afa8158
TN
35; (Note: le fichier extensions.conf fourni par le paquet asterisk-config-auf
36; effectue déjà cette inclusion)
37;
49bb45c5
P
38$AVERTISSEMENT
39
40EOF
41done
0afa8158 42
49bb45c5
P
43cat << EOF > liste-serveurs
44# Format
45# username:prefix:serveur[:longueur_prefixe]
0afa8158 46EOF
49bb45c5
P
47sed -e '/^[^#]/s/[[:space:]]*#.*$//' liste-serveurs-canon | tail -n +3 | \
48awk -F: '
49/^[0-9\[\]]+:/ {
50 prefixlen = length(gensub(/\[[^]]*\]/,"?","g",$1))
51 if (prefixlen != length($1)) {
52 $0 = sprintf("%s:%s:%s:%s",$4,$1,$3,prefixlen)
53 } else {
54 $0 = sprintf("%s:%s:%s",$4,$1,$3)
55 }
56}
57{
58 print
59}' >> liste-serveurs
0afa8158 60
e3100202 61echo " || '''Nom''' || '''Préfixe''' || '''Masque''' ||" > pourwiki.txt
0afa8158 62
49bb45c5
P
63sed -e 's/#.*$//' -e 's/[[:space:]]*$//' -e '/^$/d' liste-serveurs-canon | \
64while IFS=":" read prefix extenpat server username
0afa8158 65do
49bb45c5 66 prefixlen=`echo -n "$prefix" | sed 's/\[[^]]*\]/?/g' | wc -c`
fb86dafd 67 serverip=`LANG= host -t a $server | sed '/[[:space:]]\(has address\|A\)[[:space:]]/s/^.*[[:space:]]//p;d'`
0afa8158
TN
68
69 echo "$username"
70 echo " prefix=$prefix ($prefixlen chiffres)"
e3100202 71 echo " server=$server ($serverip)"
0afa8158
TN
72 echo " pubkey=keys/$username.pub"
73 echo ""
74
75 pourwiki=`echo $username | sed 's/^auf-//'`
e3100202 76 echo " || $pourwiki || $prefix || $extenpat ||" >> pourwiki.txt
0afa8158
TN
77 #echo "" >> pourwiki.txt
78 #echo " $pourwiki::" >> pourwiki.txt
79 #echo " . serveur : $server" >> pourwiki.txt
80 #echo " . username : $username" >> pourwiki.txt
81 #echo " . extension : $prefix" >> pourwiki.txt
82 #echo " {{{" >> pourwiki.txt
83 #cat keys/$username.pub >> pourwiki.txt
84 #echo "}}}" >> pourwiki.txt
85
86 if [ ! -f keys/$username.pub ]; then
87 echo "ERREUR : il manque la clé keys/$username.pub"
88 echo ""
89 exit 1
90 fi
91
92 cat << EOF >> $IAX
93[$username]
94type=user
95auth=rsa
96inkeys=$username
97host=dynamic
98context=AUF
0fc4cbb6 99requirecalltoken=auto
49bb45c5
P
100
101EOF
102
0afa8158
TN
103 cat << EOF >> $EXTEN
104; Liaison vers $username
105; prefix=$prefix serveur=$server
106exten => _\${AUFPREFIX}$prefix.,1,Dial(IAX2/\${AUFAUTH}@$server/\${EXTEN:\$[\${AUFPREFIXLEN} + $prefixlen]}@AUF,90,rtThH)
107
108EOF
49bb45c5
P
109 cat << EOF >> $EXTENCANON
110; Liaison vers $username
111; prefix=$prefix exten_pattern=$extenpat server=$server
112exten => _\${AUFPREFIX}${prefix}${extenpat},1,Dial(IAX2/\${AUFAUTH}@${server}/\${EXTEN:\$[\${AUFPREFIXLEN} + ${prefixlen}]}@AUF,90,rtThH)
113exten => _\${AUFPREFIX}${prefix}*.,1,Dial(IAX2/\${AUFAUTH}@${server}/\${EXTEN:\$[\${AUFPREFIXLEN} + ${prefixlen}]}@AUF,90,rtThH)
114
115EOF
0afa8158
TN
116
117done