Commit | Line | Data |
---|---|---|
49bb45c5 | 1 | #!/bin/bash |
0afa8158 TN |
2 | |
3 | IAX=iax.global | |
49bb45c5 | 4 | IAXCALLTOKEN=iax-calltoken.global |
0afa8158 | 5 | EXTEN=extensions.global |
49bb45c5 P |
6 | EXTENCANON=extensions-canon.global |
7 | ||
8 | AVERTISSEMENT="\ | |
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 | |
14 | cat << 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 | ||
28 | EOF | |
29 | ||
49bb45c5 P |
30 | cat << EOF > $IAXCALLTOKEN |
31 | ; /etc/asterisk/auf/$IAXCALLTOKEN | |
32 | ; Fichier à inclure dans le contexte [general] de iax.conf | |
33 | ; avec : "#include $IAXCALLTOKEN" | |
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 | ||
39 | EOF | |
40 | ||
41 | for 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 | ||
51 | EOF | |
52 | done | |
0afa8158 | 53 | |
49bb45c5 P |
54 | cat << EOF > liste-serveurs |
55 | # Format | |
56 | # username:prefix:serveur[:longueur_prefixe] | |
0afa8158 | 57 | EOF |
49bb45c5 P |
58 | sed -e '/^[^#]/s/[[:space:]]*#.*$//' liste-serveurs-canon | tail -n +3 | \ |
59 | awk -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 | ||
70 | }' >> liste-serveurs | |
0afa8158 TN |
71 | |
72 | echo " || '''Nom''' || '''préfixe''' ||" > pourwiki.txt | |
73 | ||
49bb45c5 P |
74 | sed -e 's/#.*$//' -e 's/[[:space:]]*$//' -e '/^$/d' liste-serveurs-canon | \ |
75 | while IFS=":" read prefix extenpat server username | |
0afa8158 | 76 | do |
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)" | |
82 | echo " server=$server" | |
83 | echo " pubkey=keys/$username.pub" | |
84 | echo "" | |
85 | ||
86 | pourwiki=`echo $username | sed 's/^auf-//'` | |
87 | echo " || $pourwiki || $prefix ||" >> pourwiki.txt | |
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] | |
105 | type=user | |
106 | auth=rsa | |
107 | inkeys=$username | |
108 | host=dynamic | |
109 | context=AUF | |
49bb45c5 P |
110 | ;requirecalltoken=auto |
111 | ||
112 | EOF | |
113 | ||
114 | if [ -n "$serverip" ] ; then | |
115 | cat << EOF >> $IAXCALLTOKEN | |
116 | ; $server | |
117 | calltokenoptional=$serverip | |
118 | ||
119 | EOF | |
120 | else | |
121 | cat << EOF >> $IAXCALLTOKEN | |
122 | ; $server | |
123 | ;calltokenoptional= | |
0afa8158 TN |
124 | |
125 | EOF | |
49bb45c5 | 126 | fi |
0afa8158 TN |
127 | |
128 | cat << EOF >> $EXTEN | |
129 | ; Liaison vers $username | |
130 | ; prefix=$prefix serveur=$server | |
131 | exten => _\${AUFPREFIX}$prefix.,1,Dial(IAX2/\${AUFAUTH}@$server/\${EXTEN:\$[\${AUFPREFIXLEN} + $prefixlen]}@AUF,90,rtThH) | |
132 | ||
133 | EOF | |
49bb45c5 P |
134 | cat << EOF >> $EXTENCANON |
135 | ; Liaison vers $username | |
136 | ; prefix=$prefix exten_pattern=$extenpat server=$server | |
137 | exten => _\${AUFPREFIX}${prefix}${extenpat},1,Dial(IAX2/\${AUFAUTH}@${server}/\${EXTEN:\$[\${AUFPREFIXLEN} + ${prefixlen}]}@AUF,90,rtThH) | |
138 | exten => _\${AUFPREFIX}${prefix}*.,1,Dial(IAX2/\${AUFAUTH}@${server}/\${EXTEN:\$[\${AUFPREFIXLEN} + ${prefixlen}]}@AUF,90,rtThH) | |
139 | ||
140 | EOF | |
0afa8158 TN |
141 | |
142 | done |