PDA

Voir la version complète : Modification extension par une autre extension ou utilisation variable



exaju
03/06/2014, 16h18
Bonjour à tous,

Je suis confronté à une demande utilisateur; pouvoir positionner un message de fermeture "à la demande" en appelant un numéro par exemple (j'ai pas envie de faire du dev système hors asterisk pour faire ça ce serait dommage...)

J'ai pour l'instant déclaré des horaires du type:


exten => s,1,GotoIfTime(08:30-11:59,mon-wed,*,*?s-ok,1)
exten => s,n,GotoIfTime(13:30-17:29,mon-wed,*,*?s-ok,1)
exten => s,n,Background(/var/lib/asterisk/sounds/its-closed-sorry)

L'idée serait de désactiver/activer ces lignes en fonction d'une autre extension par exemple.

Sinon j'ai l'idée d'utiliser des variables pour ça. En presque pseudo code ça donnerait ça:


[OPEN-CLOSED]
exten => 11111,1,Background(/var/lib/asterisk/sounds/press1-or-press2)
same => n,WaitExten()

exten => 1,1,SetGlobalVar(CLOSED=TRUE)
same =>n,Hangup

exten => 2,1,SetGlobalVar(CLOSED=FALSE)
same =>n,Hangup



[APPEL-ENTRANT]
exten => s,1,GotoIf($["${CLOSED}" = "TRUE"]?dialclosed:dialopen)

exten => s,n(dialclosed),Background(/var/lib/asterisk/sounds/its-closed-sorry)
exten => s,n,VoiceMail(10@voicemail,u)
exten => s,n,Hangup

exten => s,n(dialopen),Dial(SIP/10},30,tTxk)
exten => s,n,Hangup
Mais je me pose pas mal de questions:

Est-ce que l'idée est bonne ?
Est-ce une bonne pratique ?
N'y a-t-il pas une manière plus normale/classique de répondre au besoin ?
Est-ce que la variable est settée même après un reboot Asterisk ?
etc...


Merci de m'avoir lu, bon code à tous :wahoo: