Commit | Line | Data |
---|---|---|
49bb45c5 | 1 | #!/bin/bash |
0afa8158 TN |
2 | |
3 | IAX=iax.global | |
4 | EXTEN=extensions.global | |
49bb45c5 P |
5 | EXTENCANON=extensions-canon.global |
6 | ||
7 | AVERTISSEMENT="\ | |
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 | |
13 | cat << 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 | ||
27 | EOF | |
28 | ||
49bb45c5 P |
29 | |
30 | for 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 | ||
40 | EOF | |
41 | done | |
0afa8158 | 42 | |
49bb45c5 P |
43 | cat << EOF > liste-serveurs |
44 | # Format | |
45 | # username:prefix:serveur[:longueur_prefixe] | |
0afa8158 | 46 | EOF |
49bb45c5 P |
47 | sed -e '/^[^#]/s/[[:space:]]*#.*$//' liste-serveurs-canon | tail -n +3 | \ |
48 | awk -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 | ||
59 | }' >> liste-serveurs | |
0afa8158 | 60 | |
e3100202 | 61 | echo " || '''Nom''' || '''Préfixe''' || '''Masque''' ||" > pourwiki.txt |
0afa8158 | 62 | |
49bb45c5 P |
63 | sed -e 's/#.*$//' -e 's/[[:space:]]*$//' -e '/^$/d' liste-serveurs-canon | \ |
64 | while IFS=":" read prefix extenpat server username | |
0afa8158 | 65 | do |
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] | |
94 | type=user | |
95 | auth=rsa | |
96 | inkeys=$username | |
97 | host=dynamic | |
98 | context=AUF | |
0fc4cbb6 | 99 | requirecalltoken=auto |
49bb45c5 P |
100 | |
101 | EOF | |
102 | ||
0afa8158 TN |
103 | cat << EOF >> $EXTEN |
104 | ; Liaison vers $username | |
105 | ; prefix=$prefix serveur=$server | |
106 | exten => _\${AUFPREFIX}$prefix.,1,Dial(IAX2/\${AUFAUTH}@$server/\${EXTEN:\$[\${AUFPREFIXLEN} + $prefixlen]}@AUF,90,rtThH) | |
107 | ||
108 | EOF | |
49bb45c5 P |
109 | cat << EOF >> $EXTENCANON |
110 | ; Liaison vers $username | |
111 | ; prefix=$prefix exten_pattern=$extenpat server=$server | |
112 | exten => _\${AUFPREFIX}${prefix}${extenpat},1,Dial(IAX2/\${AUFAUTH}@${server}/\${EXTEN:\$[\${AUFPREFIXLEN} + ${prefixlen}]}@AUF,90,rtThH) | |
113 | exten => _\${AUFPREFIX}${prefix}*.,1,Dial(IAX2/\${AUFAUTH}@${server}/\${EXTEN:\$[\${AUFPREFIXLEN} + ${prefixlen}]}@AUF,90,rtThH) | |
114 | ||
115 | EOF | |
0afa8158 TN |
116 | |
117 | done |