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