Как отправить информацию в виджет перенаправления TWiml в Studio и как используется метод ввода жидких переменных? - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть значения Json, которые я хотел бы отправить в TwiML Redirect виджет.Json исходит из HTTP-запроса.Я вижу, что помимо методов Get и Post, есть еще один метод для Liquid Variable Input , может ли это быть моим решением?Если это так, как это работает?Мне не повезло, установив этот параметр.

Мой Json from (GetAccountsByPhoneNumber):

{"Accounts": [
      {"AccountNumber": "9999999998", "HouseNumber": "3207", "StreetName": "Stokesberry ln"},
      {"AccountNumber": "9999999997", "HouseNumber": "1204", "StreetName": "S Hardneir Rd"},
      {"AccountNumber": "9999999996", "HouseNumber": "533", "StreetName": "Park Street"},
      {"AccountNumber": "9999999995", "HouseNumber": "926", "StreetName": "S CO RD 67"}
]}

Функция Twiml предлагает выбрать учетную запись, о которой они звонят.

    exports.handler = function(context, event, callback) {
        const twiml = new Twilio.twiml.VoiceResponse();
//This is Where I need to get Access to my JSON Object, 
//it works with Function, but does not return to studio flow.
        var responseMany = JSON.parse(event.IncomingJson);
        var gather = twiml.gather({
            input: 'dtmf speech',
            timeout: 5,
            hints: '1,2,3,4,5,9',
            numDigits: 1
        });
        gather.say("If you are calling about ");
        gather.say({voice: 'Polly.Joanna'}).ssmlSayAs({'interpret-as': 'address'}, responseMany.Accounts[0].HouseNumber + " " + responseMany.Accounts[0].StreetName);
        gather.say("Press or say one.");

        gather.say("If you are calling about ");
        gather.say({voice: 'Polly.Joanna'}).ssmlSayAs({'interpret-as': 'address'}, responseMany.Accounts[1].HouseNumber + " " + responseMany.Accounts[1].StreetName);
        gather.say("Press or say two.");

        if(responseMany.Accounts.length >= 3){
            gather.say("If you are calling about ");
            gather.say({voice: 'Polly.Joanna'}).ssmlSayAs({'interpret-as': 'address'}, responseMany.Accounts[2].HouseNumber + " " + responseMany.Accounts[2].StreetName);
            gather.say("Press or say three.");
        }
          if(responseMany.Accounts.length >= 4){
            gather.say("If you are calling about ");
            gather.say({voice: 'Polly.Joanna'}).ssmlSayAs({'interpret-as': 'address'}, responseMany.Accounts[3].HouseNumber + " " + responseMany.Accounts[3].StreetName);
            gather.say("Press or say four.");
        }  
      twiml.redirect("https://webhooks.twilio.com/v1/Accounts/.../Flows/...?FlowEvent=return")
        callback(null, twiml);
    };

Как функция, он падает на twiml.redirect и никогда не возвращается в поток.

...