[from-hausmeister] ; Aufladen der virtuellen Calling-Card ; exten => _88XXX.,1,Answer() exten => _88XXX.,2,Set(DB(CallingCard/${EXTEN:2:3})=${EXTEN:5}) exten => _88XXX.,3,SayNumber(${EXTEN:5}) exten => _88XXX.,4,NoOp(CallingCard fuer ${EXTEN:2:3} mit ${EXTEN:5} aufgeladen.) exten => _88XXX.,5,Hangup() [from-intern] ; private Gespräche ; exten => _99.,1,GotoIf($[${DB(CallingCard/${CALLERID(num)} > 0]?2:200) exten => _99.,2,Set(DB(CallingCard/${CALLERID(num)})=$[DB(CallingCard/${CALLERID(num)}) - 1]) exten => _99.,3,Dial(local/${EXTEN:2}) exten => _99.,104,Set(DB(CallingCard/${CALLERID(num)})=$[DB(CallingCard/${CALLERID(num)}) + 1]) exten => _99.,200,NoOp(CallingCard Konto ${CALLERID(num) ist leer.) exten => _99.,201,Answer() exten => _99.,202,SayNumber(0) exten => _99.,203,Hangup() ; Mit der 98 kann der aktuelle Kontostand abgefragt werden. ; exten => 98,1,Answer() exten => 98,2,SayNumber(${DB(CallingCard/${CALLERID(num)})}) exten => 98,3,Hangup()
[79] Um das Beispiel möglichst einfach zu halten, wird nicht der Fall besprochen, dass auf ein bereits bestehendes Calling-Card-Konto ein weiterer Betrag eingezahlt wird (also eine Addition vollzogen werden muss). Ebenfalls nicht behandelt wird die Möglichkeit, dass ein Mitarbeiter von einem anderen Telefon ein privates Gespräch führen könnte.