Asterisk va in ferie: giorni festivi e voicemenu
December 27, 2010 — 23:38

Author: admin | Category: Asterisk | Tags: , , , , , , , | Comments: 0

Mentre si pensa alla configurazione di un IVR, nasce spesso l’esigenza di dover fornire un menu vocale differente solo in alcune occasioni specifiche, come ad esempio durante i giorni festivi. La soluzione più semplice e facilemente applicabile a sistemi di dimensioni ridotte consiste nell’utilizzare il database interno di asterisk per immagazzinare le date, per poi limitarsi ad eseguire un check nel dialplan di asterisk.

Database: per aggiungere una data “bankholiday” al database asterisk si utilizzerà il comando ‘database’ come nell’esempio sottostante, sostiuendo la YYYYMMDD (key) con il giorno desiderato (es. 20101225):


asterisk -rx 'database put bankholiday YYYYMMDD 1'

Dialplan: la funzione DB_EXISTS restituirà valore 1 se la chiave YYYYMMDD esiste. Nel esempio sottostante il dialplan continuerà l’esecuzione della macro “reception” se il  giorno risulta non essere nel database, mentre salterà al menu vocale “menu-reception” durante i giorni festivi presenti nel db interno.


[macro-reception]
include = default
exten => s,1,GotoIf(${DB_EXISTS(bankholiday/${STRFTIME(${EPOCH},,%Y%m%d)})}?closed,1)
...
exten => closed,1,NoOp("closed")
...

Twitter 0 Facebook 0 Google+ 0