premier commit (version 1.4-24)
[asterisk-config-auf.git] / debian / postinst
1 #! /bin/sh
2 # postinst script for asterisk-config-auf
3 #
4 # see: dh_installdeb(1)
5
6
7 set -e
8 . /usr/share/debconf/confmodule
9
10 # summary of how this script can be called:
11 #        * <postinst> `configure' <most-recently-configured-version>
12 #        * <old-postinst> `abort-upgrade' <new version>
13 #        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
14 #          <new-version>
15 #        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
16 #          <failed-install-package> <version> `removing'
17 #          <conflicting-package> <version>
18 # for details, see http://www.debian.org/doc/debian-policy/ or
19 # the debian-policy package
20 #
21
22 case "$1" in
23     configure)
24
25         # extrait du postinst general a tous les paquets asterisk...
26
27         # add asterisk user and add it to dialout and audio groups
28         if ! getent passwd asterisk > /dev/null ; then
29                 echo 'Adding system user for Asterisk' 1>&2
30                 adduser --system --group --quiet \
31                         --home /var/lib/asterisk \
32                         --no-create-home --disabled-login \
33                         --gecos "Asterisk PBX daemon" \
34                         asterisk
35                 for group in dialout audio; do
36                         if groups asterisk | grep -w -q -v $group; then
37                                 adduser asterisk $group
38                         fi
39                 done
40         fi 
41
42         # création du répertoire spécifique configs AUF
43         test -d /etc/asterisk/auf || mkdir -p /etc/asterisk/auf
44
45         chown -R root:asterisk /etc/asterisk
46         chmod 0755 /etc/asterisk
47         chmod 0755 /etc/asterisk/auf
48         chmod 0640 /etc/asterisk/*.conf 2> /dev/null || true
49         #chmod 0640 /etc/asterisk/auf/* 2> /dev/null || true
50
51         # Génère auf/sip.local s'il n'existe pas.
52         CONFIGFILE=/etc/asterisk/auf/sip.local
53         if [ ! -e $CONFIGFILE ]; then
54                 cat << EOF > $CONFIGFILE
55 ; $CONFIGFILE est inclu par sip.conf
56 ;
57 ; Pour chaque utilisateur, faire une entree en adaptant le modele ci dessous 
58 ; NB: "Prenom NOM" doit faire au plus 16 caractères, uniquement en ASCII (pas d'accent) afin
59 ;     de bien s'afficher sur le IP Phone 5 (ecran LCD de 16 caractères ASCII)
60 ; NB: <nnnnnn> est le numéro avec le préfixe international, uniquement des chiffres, sans espace
61 ; NB: mailbox=nnn@AUF doit être en conformité avec la référence du compte dans voicemail.local
62 ; NB: disallow=all & allow=ulaw : impose le codec "ulaw" uniquement, on peut changer cela pour certains clients
63 ;
64 ; [prenom.nom]
65 ; type=friend
66 ; callerid="Prenom NOM" <nnnnnnn>
67 ; secret=motdepasse
68 ; context=AUF
69 ; mailbox=nnn@AUF
70 ; host=dynamic
71 ; disallow=all
72 ; allow=ulaw
73
74 ; A SUPPRIMER ! UNIQUEMENT POUR PREMIERS TESTS !
75 [test]
76 type=friend
77 callerid="Compte TEST" <100>
78 secret=test
79 context=AUF
80 mailbox=100@AUF
81 host=dynamic
82 disallow=all
83 allow=ulaw
84
85 EOF
86         fi
87         chown root:asterisk $CONFIGFILE
88         chmod 640 $CONFIGFILE
89
90         # Génère auf/iax.local s'il n'existe pas.
91         CONFIGFILE=/etc/asterisk/auf/iax.local
92         if [ ! -e $CONFIGFILE ]; then
93                 cat << EOF > $CONFIGFILE
94 ; $CONFIGFILE est inclu par iax.conf
95 ;
96 ; Pour chaque utilisateur, faire une entree en adaptant le modele ci dessous 
97 ; NB: "Prenom NOM" doit faire au plus 16 caractères, uniquement en ASCII (pas d'accent) afin
98 ;     de bien s'afficher sur le IP Phone 5 (ecran LCD de 16 caractères ASCII)
99 ; NB: <nnnnnn> est le numéro avec le préfixe international, uniquement des chiffres, sans espace
100 ; NB: mailbox=nnn@AUF doit être en conformité avec la référence du compte dans voicemail.local
101 ; NB: disallow=all & allow=ulaw : impose le codec "ulaw" uniquement, on peut changer cela pour certains clients
102 ;
103 ; [prenom.nom]
104 ; type=friend
105 ; callerid="Prenom NOM" <nnnnnnn>
106 ; user=prenom.nom
107 ; secret=motdepasse
108 ; context=AUF
109 ; mailbox=nnn@AUF
110 ; host=dynamic
111 ; disallow=all
112 ; allow=ulaw
113
114 ; A SUPPRIMER ! UNIQUEMENT POUR PREMIERS TESTS !
115 [test]
116 type=friend
117 callerid="Compte TEST" <100>
118 user=test
119 secret=test
120 context=AUF
121 mailbox=100@AUF
122 host=dynamic
123 disallow=all
124 allow=ulaw
125
126 EOF
127         fi
128         chown root:asterisk $CONFIGFILE
129         chmod 640 $CONFIGFILE
130
131         # génère un auf/voicemail.local s'il n'existe pas
132         CONFIGFILE=/etc/asterisk/auf/voicemail.local
133         if [ ! -e $CONFIGFILE ]; then
134                 cat << EOF > $CONFIGFILE
135 ;
136 ; auf/voicemail.local : surcharge de /etc/asterisk/voicemail.conf
137 ;
138 ; Indiquez ici votre fuseau horaire local (voir la liste dans /usr/share/zoneinfo
139 [zonemessages](+)
140 fuseaulocal=Africa/Dakar|'vm-received' Q 'digits/at' kM
141
142 ; Boites locales
143 [AUF]
144 tz=fuseaulocal
145 ; Format : no_de_la_boite => mot_de_passe,Prenom Nom,prenom.nom@auf.org
146 ; * no_de_la_boite : prendre le numéro de telephone local de la personne
147 ; * le mot de passe doit être un nombre (par exemple 3 ou 4 chiffres)
148 ; * NB : en attendant qu'on trouve comment faire, mettre un "-" devant le mot
149 ;        de passe pour indiquer qu'il n'est pas modifiable par l'utilisateur.
150 ; Exemple :
151 ; 206 => -0808,Thomas NOEL,thomas.noel@auf.org
152 ;
153 EOF
154         fi
155         chown root:asterisk $CONFIGFILE
156         chmod 640 $CONFIGFILE
157
158         # Génère auf/extensions.local s'il n'existe pas.
159         CONFIGFILE=/etc/asterisk/auf/extensions.local
160         if [ ! -e $CONFIGFILE ]; then
161                 cat << EOF > $CONFIGFILE
162 ; $CONFIGFILE
163 ; Fichier inclu dans le contexte [AUF-local] de /etc/asterisk/extensions.conf
164 ;
165 ; Pour chaque utilisateur, faire une entree en modifiant "numero" et
166 ; "prenom.nom" (et RIEN d'autre) dans le modele ci dessous
167
168 ; Modele :
169 ; exten => numero,1,Macro(AUFDial,prenom.nom)
170 ; Exemple :
171 ; exten => 206,1,Macro(AUFDial,thomas.noel)
172
173 ; A SUPPRIMER ! UNIQUEMENT POUR PREMIERS TESTS !
174 exten => 100,1,Macro(AUFDial,test);
175
176 EOF
177         fi
178
179         chown root:asterisk $CONFIGFILE
180         chmod 640 $CONFIGFILE
181
182         #
183         # a partir de maintenant on travaille sur auf/extensions-globals.local
184         #
185         
186         CONFIGFILE=/etc/asterisk/auf/extensions-globals.local
187
188         # Génère auf/extensions-globals.local s’il n’existe pas.
189         if [ ! -e $CONFIGFILE ]; then
190                 cat << EOF > $CONFIGFILE
191 ; $CONFIGFILE
192 ; Fichier est inclu dans la section [globals] de extensions.conf
193 ;
194 ; NE MODIFIEZ PAS CE FICHIER DIRECTEMENT ! Il est généré depuis les
195 ; résultats de réponses debconf !
196 ; Pour modifier ces valeurs, faites "dpkg-reconfigure -plow asterisk-config-auf"
197
198 ; Authentification pour se connecter a d'autres serveurs
199 ; format : AUFAUTH=implantation:[clefprivee]
200 AUFAUTH=auf-ville:[auf-ville]
201
202 ; Prefixe pour avoir l'international
203 AUFPREFIX=00
204
205 ; Longueur du prefixe 
206 AUFPREFIXLEN=2
207
208 EOF
209         fi
210
211         #
212         # Partie "debconf" pour la gestion de auf/extensions-globals.local
213         #
214
215         # Substitue les valeurs par celles dans la base de données de debconf.
216         db_get asterisk-config-auf/implantation
217         IMPLANTATION="$RET"
218         db_get asterisk-config-auf/clef
219         CLEF="$RET"
220         db_get asterisk-config-auf/prefixe
221         PREFIXE="$RET"
222
223         AUFAUTH=$IMPLANTATION":["$CLEF"]"
224         AUFPREFIX=$PREFIXE
225         AUFPREFIXLEN=`echo -n $AUFPREFIX | wc -c`
226
227         # On remplace les valeurs dans le fichier de configuration
228         # (d'abord un "cp" pour garder les bons droits)
229         cp -a -f $CONFIGFILE $CONFIGFILE.postinst.tmp
230         sed -e "s/^ *AUFAUTH=.*/AUFAUTH=$AUFAUTH/" \
231             -e "s/^ *AUFPREFIX=.*/AUFPREFIX=$AUFPREFIX/" \
232             -e "s/^ *AUFPREFIXLEN=.*/AUFPREFIXLEN=$AUFPREFIXLEN/" \
233             < $CONFIGFILE > $CONFIGFILE.postinst.tmp
234         mv -f $CONFIGFILE.postinst.tmp $CONFIGFILE
235         
236         chown root:asterisk $CONFIGFILE
237         chmod 0640 $CONFIGFILE
238
239         # mon ami asterisk m'annonce que les include de fichiers non existant feront
240         # prochainement planter asterisk... MERCI ASTERISK SALE MERDE A POUX QUI PUE
241         for confbase in dundi enum extensions-macros extensions-final manager meetme modules musiconhold queues users zapata
242         do
243                 conffile=/etc/asterisk/auf/${confbase}.local
244                 if [ ! -e ${conffile} ]
245                 then
246                         confglobal=`echo ${confbase} | cut -f1 -d-`
247                         echo "; ${conffile}" > ${conffile}
248                         echo "; Partie locale AUF, incluse par /etc/asterisk/${confglobal}.conf" >> ${conffile}
249                         echo "; Attention a la coherence : verifier l'endroit ou est fait le #include" >> ${conffile}
250                         echo "" >> ${conffile} 
251                         chown root:asterisk ${conffile}
252                         chmod 0640 ${conffile}
253                 fi
254         done
255
256         #chown root:asterisk /etc/asterisk/auf/* || true
257         #chmod 0640 /etc/asterisk/auf/* || true
258         
259         if [ -x /etc/init.d/asterisk ]; then
260                 /etc/init.d/asterisk reload || true
261         fi
262
263     ;;
264
265     abort-upgrade|abort-remove|abort-deconfigure)
266
267     ;;
268
269     *)
270         echo "postinst called with unknown argument \`$1'" >&2
271         exit 1
272     ;;
273 esac
274
275 # dh_installdeb will replace this with shell code automatically
276 # generated by other debhelper scripts.
277
278 #DEBHELPER#
279
280 exit 0
281
282