Beispiel Weckruf

Nehmen wir an, ein Hotel möchte über Asterisk ein einfaches Weckrufsystem erstellen. Kunden sollen einen Weckruf über die Servicerufnummer *77* aktivieren können. Nach der *77* soll das genaue Datum und die Weckuhrzeit gewählt werden.

[hotel-intern]
exten => _*77*XXXXXXXXXXXX,1,Answer()
exten => _*77*XXXXXXXXXXXX,n,Set(Jahr=${EXTEN:4:4})
exten => _*77*XXXXXXXXXXXX,n,Set(Monat=${EXTEN:8:2})
exten => _*77*XXXXXXXXXXXX,n,Set(Tag=${EXTEN:10:2})
exten => _*77*XXXXXXXXXXXX,n,Set(Stunden=${EXTEN:12:2})
exten => _*77*XXXXXXXXXXXX,n,Set(Minuten=${EXTEN:14:2})
exten => _*77*XXXXXXXXXXXX,n,NoOp(Weckruf soll fuer die Rufnummer ${CALL
ERID(num)} soll um ${Stunden}:${Minuten} Uhr am ${Tag}.${Monat}.${Jahr} 
erfolgen.)
exten => _*77*XXXXXXXXXXXX,n,System(echo -e "Channel: SIP/${CALLERID(num
)}\\nContext: Weckruf\\nExtension: 23" > /tmp/${UNIQUEID}.call)
exten => _*77*XXXXXXXXXXXX,n,System(touch -t ${Jahr}${Monat}${Tag}${Stun
den}${Minuten} /tmp/${UNIQUEID}.call)
exten => _*77*XXXXXXXXXXXX,n,System(mv /tmp/${UNIQUEID}.call /var/spool/
asterisk/outgoing/)
exten => _*77*XXXXXXXXXXXX,n,Playback(rqsted-wakeup-for)
exten => _*77*XXXXXXXXXXXX,n,SayNumber(${Stunden})
exten => _*77*XXXXXXXXXXXX,n,SayNumber(${Minuten})
exten => _*77*XXXXXXXXXXXX,n,Playback(digits/oclock)
exten => _*77*XXXXXXXXXXXX,n,Hangup()

[Weckruf]
exten => 23,1,Answer()
exten => 23,n,Wait(1)
exten => 23,n,Playback(this-is-yr-wakeup-call)
exten => 23,n,Wait(1)
exten => 23,n,Hangup()