Voici une manière comme une autre de mettre en place sur votre asterisk un service de réveil sommaire sur vos téléphones internes.

Il suffira pour enregistrer l'heure du réveil de composer un numéro avec la date et l'heure du réveil dedans par exemple :

  • Je veux être réveiller le 14 août 2010 à 05:49


Vous composerez donc le numéro comme suit :
Code:
977140820100549
Voici donc le code de l'AGI et le bout de dialplan :

A coller dans le fichier /var/lib/asterisk/agi-bin/reveil.agi :
Code:
#!/bin/bash

# Numéro à rappeler pour le réveil
NUMERO=$1

# Jour configuré pour le réveil
JOUR=$2

# Mois configuré pour le réveil
MOIS=$3

# Annee configurée pour le réveil
ANNEE=$4

# Heure configurée pour le réveil
HEURE=$5

# Minute configurée pour le réveil
MINUTE=$6

TIMESTAMP=$ANNEE$MOIS$JOUR$HEURE$MINUTE

FICHIER=$NUMERO$TIMESTAMP.call

#echo "Channel: SIP/$NUMERO \nAccount: $NUMERO \nMaxRetries: 3\nRetryTime: 10\nWaitTime: 10\nContext: reveil\nExtension: reveil" >> /var/spool/asterisk/tmp/test.call
echo "Channel: SIP/$NUMERO" >> /var/spool/asterisk/tmp/$FICHIER
echo "Account: $NUMERO" >> /var/spool/asterisk/tmp/$FICHIER
echo "CallerID: Reveil <955>" >> /var/spool/asterisk/tmp/$FICHIER
echo "MaxRetries: 3" >> /var/spool/asterisk/tmp/$FICHIER
echo "RetryTime: 10" >> /var/spool/asterisk/tmp/$FICHIER
echo "WaitTime: 10" >> /var/spool/asterisk/tmp/$FICHIER
echo "Context: reveil" >> /var/spool/asterisk/tmp/$FICHIER
echo "Extension: reveil" >> /var/spool/asterisk/tmp/$FICHIER


touch -t $TIMESTAMP /var/spool/asterisk/tmp/$FICHIER
#cp /var/spool/asterisk/tmp/$FICHIER /var/lib/asterisk/agi-bin/
mv /var/spool/asterisk/tmp/$FICHIER /var/spool/asterisk/outgoing
#mv /var/spool/asterisk/tmp/$FICHIER /var/lib/asterisk/agi-bin/
Ne pas oublié de rendre executable le fichier...

A coller dans votre extensions.conf :
Code:
[reveil]
exten => _977XXXXXXXXXXXX,1,Answer()
exten => _977XXXXXXXXXXXX,n,SetCDRUserField(A)
exten => _977XXXXXXXXXXXX,n,Set(ACCOUNTCDE=${CDR(accountcode)})
exten => _977XXXXXXXXXXXX,n,Wait(1)
exten => _977XXXXXXXXXXXX,n,Playback(hello-world)
exten => _977XXXXXXXXXXXX,n,Playback(date)
exten => _977XXXXXXXXXXXX,n,Saynumber(${EXTEN:3:2})
exten => _977XXXXXXXXXXXX,n,Playback(dot)
exten => _977XXXXXXXXXXXX,n,Saynumber(${EXTEN:5:2})
exten => _977XXXXXXXXXXXX,n,Playback(dot)
exten => _977XXXXXXXXXXXX,n,Saynumber(${EXTEN:7:4})
exten => _977XXXXXXXXXXXX,n,Wait(1)
exten => _977XXXXXXXXXXXX,n,Saynumber(${EXTEN:11:2})
exten => _977XXXXXXXXXXXX,n,Playback(hours)
exten => _977XXXXXXXXXXXX,n,Playback(and)
exten => _977XXXXXXXXXXXX,n,Saynumber(${EXTEN:13:2})
exten => _977XXXXXXXXXXXX,n,Playback(minutes)
exten => _977XXXXXXXXXXXX,n,AGI(reveil.agi,${ACCOUNTCDE},${EXTEN:3:2},${EXTEN:5:2},${EXTEN:7:4},${EXTEN:11:2},${EXTEN:13:2})
exten => _977XXXXXXXXXXXX,n,Hangup()


exten => reveil,1,Answer()
exten => reveil,n,SetCDRUserField(A)
exten => reveil,n,Wait(1)
exten => reveil,n,PlayBack(hello-world)
exten => reveil,n,Wait(1)
exten => reveil,n,SayUnixTime(,CET,kMbdY)
exten => reveil,n,Hangup()