Ankündigung

Einklappen
Keine Ankündigung bisher.

Voicemail und dann Alternativumleitung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Voicemail und dann Alternativumleitung

    Hallo,

    gibt es eine Möglichkeit nach erreichen der Voicemail noch eine Umleitung aufs Handy einzuleiten?

    So ala "Drücken sie die 1 um den Teilnehmer Mobil zu erreichen."

    Geht sowas am voice0

    #2
    Um diese Funktionalität einzubauen können Sie im ProjectRecord (genauer der projectrecord.lua) eine Ergänzung vornehmen. Aktuell wird nach Abspielen des Begrüßungstextes nur auf DTMFSTAR reagiert. Einfach einen weiteren Case hinzufügen um bspw. auf DTMF1 zu reagieren.

    Dafür wird cmdconnect benötigt, ein Beispiel könnte sich aus den 3 folgenden Projekten zusammensetzen:

    1) DTMF1projectVox
    2) DTMF1projectRecord
    3) DTMF1projectConnect

    zu 1) nur als neues Startprojekt
    LogFmsState("DTMF1projectvox.lua")

    -- *************************************
    -- ***** DTMF1projectvox
    -- *************************************
    if (CheckFmsState("DTMF1projectvox")) then
    --set minimal pinlength, if not set, dynamic
    --SetFmsProjectData("globalData","pinLength","6")

    if (EvtGateway()) then
    SetFmsState("projectAbfrage: replay")
    CmdGotoNode("\\\\projectAbfrage")
    return EVENT_IVRGOTONODE
    end


    if (CmdCheckPin("0") == EVENT_IVROK) then
    SetFmsState("projectAbfrage")
    CmdGotoNode("\\\\projectAbfrage")
    return EVENT_IVRGOTONODE

    else
    SetFmsState("DTMF1projectRecord")
    CmdGotoNode("\\\\DTMF1projectRecord")
    return EVENT_IVRGOTONODE
    end

    -- *************************************
    -- ***** DTMF1projectvox -> INITIAL
    -- *************************************
    else
    SetFmsState("DTMF1projectvox")
    return EVENT_RESTARTSCRIPT
    end

    zu 2) Hier erfolgt die Verzweigung
    LogFmsState("DTMF1projectrecord.lua")

    -- *************************************
    -- ***** DTMF1projectrecord: init
    -- *************************************
    if (CheckFmsState("DTMF1projectrecord: init")) then
    CmdPlayPrompt("[GREETINGFILE];beep.raw")
    FmsEnableAutoStopAndDelete(false)
    CmdActivatePlayList(1)
    SetFmsState("DTMF1projectrecord: EvtHandler")
    return EVENT_WAITFORNEXTEVENT

    -- *************************************
    -- ***** DTMF1projectrecord: EvtHandler
    -- *************************************
    elseif (CheckFmsState("DTMF1projectrecord: EvtHandler")) then
    if (EvtDtmfStar()) then
    FmsEnableAutoStopAndDelete(true)
    CmdDeletePlayList()
    CmdDeleteRecord()
    SetFmsState("projectPin")
    CmdGosubNode("\\\\projectPin")
    return EVENT_IVRGOTONODE

    elseif (EvtDtmf1()) then
    FmsEnableAutoStopAndDelete(true)
    CmdDeletePlayList()
    CmdDeleteRecord()
    SetFmsState("DTMF1projectConnect")
    CmdGosubNode("\\\\DTMF1projectConnect")
    return EVENT_IVRGOTONODE

    elseif (EvtTimer() or EvtOnhook()) then
    CmdSendMessageToGateway()
    SetFmsState("projectHangup: hangup")
    CmdGotoNode("\\\\projectHangup")
    return EVENT_IVRGOTONODE
    elseif (EvtGateway()) then
    SetFmsState("projectAbfrage")
    CmdGotoNode("\\\\projectAbfrage")
    return EVENT_IVRGOTONODE
    end

    SetFmsState("DTMF1projectrecord: record msg")
    return EVENT_RESTARTSCRIPT

    -- *************************************
    -- ***** DTMF1projectrecord: EvtHandler DtmfAny
    -- *************************************
    elseif (CheckFmsState("DTMF1projectrecord: EvtHandler DtmfAny")) then
    SetFmsState("DTMF1projectrecord: EvtHandler")
    return EVENT_WAITFORNEXTEVENT

    -- *************************************
    -- ***** DTMF1projectrecord: record msg
    -- *************************************
    elseif (CheckFmsState("DTMF1projectrecord: record msg")) then
    if(EvtPromptPlayed()) then
    CmdRecord()
    CmdSetTimer("120")
    SetFmsState("DTMF1projectrecord: record msg EvtHandler")
    return EVENT_WAITFORNEXTEVENT
    else
    LogUnknownEvent("DTMF1projectrecord.lua")
    return EVENT_WAITFORNEXTEVENT
    end

    -- *************************************
    -- ***** DTMF1projectrecord: record msg EvtHandler
    -- *************************************
    elseif (CheckFmsState("DTMF1projectrecord: record msg EvtHandler")) then
    if (EvtDtmfStar()) then
    CmdDeletePlayList()
    CmdDeleteRecord()
    SetFmsState("projectPin")
    CmdGosubNode("\\\\projectPin")
    return EVENT_IVRGOTONODE

    elseif (EvtDtmf1()) then
    FmsEnableAutoStopAndDelete(true)
    CmdDeletePlayList()
    CmdDeleteRecord()
    SetFmsState("DTMF1projectConnect")
    CmdGosubNode("\\\\DTMF1projectConnect")
    return EVENT_IVRGOTONODE

    elseif (EvtTimer() or EvtOnhook()) then
    CmdSendMessageToGateway()
    SetFmsState("projectHangup: hangup")
    CmdGotoNode("\\\\projectHangup")
    return EVENT_IVRGOTONODE
    elseif (EvtRecordStart()) then
    -- Event nicht mit LogUnknownEvent dumpen
    return EVENT_WAITFORNEXTEVENT
    else

    LogUnknownEvent("DTMF1projectrecord.lua")
    return EVENT_WAITFORNEXTEVENT
    end
    -- *************************************
    -- ***** DTMF1projectrecord: projectpin -> OK
    -- *************************************
    elseif (CheckFmsState("DTMF1projectrecord: projectPin ok")) then
    SetFmsState("projectConfig")
    CmdGotoNode("\\\\projectConfig")
    return EVENT_IVRGOTONODE


    -- *************************************
    -- ***** DTMF1projectrecord: projectpin -> NOK
    -- *************************************
    elseif (CheckFmsState("DTMF1projectrecord: projectPin nok")) then
    SetFmsState("projectHangup: hangup")
    CmdGotoNode("\\\\projectHangup")
    return EVENT_IVRGOTONODE

    -- *************************************
    -- ***** DTMF1projectrecord: -> INITIAL
    -- *************************************
    else

    SetFmsState("DTMF1projectrecord: init")
    return EVENT_RESTARTSCRIPT
    end
    zu 3) Hier wird der Ruf versucht aufzubauen und auch wieder beendet, der Rücksprung erfolgt bei wiederholtem Übermitteln von DTFMSTAR.
    Die Zielrufnummer müsste entsprechend angepasst werden und im audio/de muss die alerting.raw vorliegen.

    LogFmsState("DTMF1projectConnect.lua")

    -- *************************************
    -- ***** DTMF1projectConnect: init
    -- *************************************
    if (CheckFmsState("DTMF1projectConnect: init")) then
    -- ** define ivr variables ** --

    --NOTRUF--
    SetFmsProjectData("dtmf1","number","0003328455")
    SetFmsProjectData("dtmf1","audiofile","alerting.ra w")

    CmdDumpVariables()


    SetFmsState("DTMF1projectConnect: EvtHandler")
    return EVENT_RESTARTSCRIPT


    -- *************************************
    -- ***** DTMF1projectConnect: EvtHandler
    -- *************************************
    elseif (CheckFmsState("DTMF1projectConnect: EvtHandler")) then

    CmdConnect(0,GetFmsProjectData("dtmf1","number"))
    CmdPlayPrompt(GetFmsProjectData("dtmf1","audiofile "))
    FmsEnableAutoStopAndDelete(false)
    SetFmsState("DTMF1projectConnect: ringing")
    return EVENT_WAITFORNEXTEVENT


    -- *************************************
    -- ***** DTMF1projectConnect: ringing
    -- *************************************
    elseif (CheckFmsState("DTMF1projectConnect: ringing")) then

    if (EvtPromptPlayed()) then
    CmdPlayPrompt(GetFmsProjectData("dtmf1","audiofile "))
    return EVENT_WAITFORNEXTEVENT

    elseif( EvtOnhook()) then
    CmdOnHookOutgoing()
    SetFmsState("projectHangup")
    CmdGotoNode("\\\\projectHangup")
    return EVENT_IVRGOTONODE

    elseif (EvtDtmfStar()) then
    CmdOnHookOutgoing()
    FmsEnableAutoStopAndDelete(true)
    CmdDeletePlayList()
    SetFmsState("DTMF1projectRecord")
    CmdGosubNode("\\\\DTMF1projectRecord")
    return EVENT_IVRGOTONODE
    else
    return EVENT_WAITFORNEXTEVENT
    end

    -- *************************************
    -- ***** DTMF1projectConnect -> INITIAL
    -- *************************************
    else

    SetFmsState("DTMF1projectConnect: init")
    return EVENT_RESTARTSCRIPT

    end
    Chris Helbing

    Kommentar

    Lädt...
    X