.titleBar { margin-bottom: 5px!important; }

Callback mit SMS und LCR

Dieses Thema im Forum "Asterisk Skripte" wurde erstellt von oortmanp, 29 Apr. 2005.

  1. oortmanp

    oortmanp Neuer User

    Registriert seit:
    17 Feb. 2005
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    da ich oft im hotel (im ausland) bin, habe ich einen dialplan und script geschrieben die mit einer empfangenen sms eine callback lösung ermöglichen. Hierdurch spart man sich die teuere handygebühr und hoteltelefongebühr im ausland.

    Der Asterisk server ruft dann, nach SMS empfang und kontrolle, mit LCR im hotel an, wenn da abgenommen wird, fragt asterisk: "please connect me to room ...." und dann nach 15 sec kommt DISA. Jetzt kann man erneut mit LCR wählen.

    für diejenigen die interesse haben, so geht's:

    schicke von deinem handy eine sms an asterisk mit als text: "telefonnummer vom hotel" room "zimmernummer".
    z.B. für Hotel Crown Plaza Istanbul mit Zimmernr 902
    00902125608100 room 902

    im dialplan sollte dann folgendes stehen:
    Code:
    [smsreceive]
     exten => 5xxxx/01930100,1,Verbose(Receiving SMS from ${CALLERIDNUM})
     exten => 5xxxx/01930100,2,Answer
     exten => 5xxxx/01930100,3,Wait(1)
     exten => 5xxxx/01930100,4,SMS(smsinfo,a)
     exten => 5xxxx/01930100,5,AGI(smsanalyse.agi|0163xxxxxxx)
     exten => 5xxxx/01930100,6,Verbose(phonenumber ${PHONENR})
     exten => 5xxxx/01930100,7,GotoIf($[${PHONENR} = NOTVALID]?12)
     exten => 5xxxx/01930100,8,AGI(tsblcr.agi|/etc/asterisk/lcr/tsblcr.routing|${PHONENR})
     exten => 5xxxx/01930100,9,Verbose(phonenumber incl cbc ${TSBLCRROUTING})
     exten => 5xxxx/01930100,10,AGI(callback.agi|${PHONENR}|relayanddialtone|5xxxx|${TSBLCRROUTING})
     exten => 5xxxx/01930100,11,Hangup
     
    [relayanddialtone]
     exten => s,1,AGI(roomnr.agi)
     exten => s,2,Verbose(roomnumber ${ROOMNR})
     exten => s,3,SetVar(howmanydigits= ${LEN(${ROOMNR})})
     exten => s,4,Verbose(how many digits ${howmanydigits})
     exten => s,5,Wait(3)
     exten => s,6,SetVar(zaehler = 0)
     exten => s,7,Playback(Connect2Room)
     exten => s,8,Playback(${ROOMNR:${zaehler}:1})
     exten => s,9,AGI(increasezaehler.agi|${zaehler})
     exten => s,10,Verbose(zaehler ist ${zaehler})
     exten => s,11,GotoIf($[${zaehler} != ${howmanydigits}]?8)
     exten => s,12,Wait(15)
     exten => s,13,Authenticate(xxxxxx)
     exten => s,14,DISA(no-password|dialout)
     exten => s,15,Hangup
    dann noch ein verzeichnis:
    "/var/spool/asterisk/outgoing/tmp/callback" anlegen

    die agi's natürlich im richtigen verzeichnis kopieren.
    (sind zwar nicht schön programmiert, aber es funktioniert)
    Falls ihr verbesserungsvorschläge habt, hoere ich es gerne.

    dann noch eigene sound dateien aufnehmen mit z.B. text:

    "Hello, please connect me to Mr. ....., roomnumber" ->Connect2Room.gsm
    und alle zahlen 0,1,...,9 ->0.gsm 1.gsm ... 9.gsm
    (von wav nach gsm konvertieren mit sox) und in /var/lib/asterisk/sounds kopieren.

    Man kann nur von der im dialplan angegebene handynr ein sms-callback starten. Alle andere versuche werden abgelehnt mit: phonenumber NOTVALID

    LCR findet statt über das TSBLCR script von allesOK

    Wenn man auch nach 24:00 und vor 7:00 telefonieren möchte, muss man sich das von der TCOM freischalten lassen. War glaube ich: sms an 01930100 von der frei zu schaltenen MSN schicken mit als text ANMELD.

    Viel erfolg,
    Pieter-Bas
     

    Anhänge: