hello.dsl 1.73 KB
library

/**
* Reaction if nothing meaningful happens in the dialogue for too long.
*/
preprocessor digression hello
{
    conditions { on #getIdleTime() - digression.hello.lastIdleTime > digression.hello.idleTimeLimit tags: ontick; }
    var idleTimeLimit=8000;
    var lastIdleTime=0;
    var retriesLimit=2;
    var counter=0;
    do
    {
        $cjm.push("hello_dig");
        set digression.hello.lastIdleTime=#getIdleTime();
        if(digression.hello.counter == 1){
            set $conversation_result = "автоответчик";
        }
        if (digression.hello.counter == 2)
        {
            goto answering_machine;
        }
        set digression.hello.lastIdleTime=#getIdleTime();
        /*if (digression.hello.counter > digression.hello.retriesLimit)
        {
            goto hangup;
        }*/
        set digression.hello.counter=digression.hello.counter+1;
        #say("hello", repeatMode: "ignore");
       // #say("dont_understand_question");
        #repeat(accuracy: "short");
        set $time = 0;
        return;
    }
    transitions
    {
        answering_machine: goto answering_machine;
        hangup: goto hello_hangup;
    }
}

preprocessor digression hello_preprocessor
{
    conditions { on true priority 50000; }
    do
    {
        set digression.hello.lastIdleTime = 0;
        set digression.hello.counter = 0;
        set $time = 0;
        return;
    }
    transitions
    {
    }
}

node hello_hangup
{
    do
    {
        $cjm.push("hello_hangup");
        
        #say("dont_understand_hangup");
        set $status="EmptyCall";
        set $serviceStatus="Done";
        //#disconnect();
        goto do_before_exit;
    }
    transitions
    {
        do_before_exit: goto do_before_exit;
    }
}