Воспроизведение речи в голосовом вызове Twilio - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь написать простую настройку Twilio, которая будет выполнять исходящий вызов, записывать голосовое сообщение пользователя и немедленно воспроизводить его обратно ему.Я создал две функции: startcall и msgin. StartCall вызывает пользователя и указывает MsgIn в параметре url вызова. MsgIn затем имеет два основных режима работы: первоначально, когда нет прикрепленной записи, он возвращает ответ TwiML, начинающий запись, а затем, когда вызывается как webhook с соответствующим параметром, он воспроизводит запись и кладет трубку.,По крайней мере, это то, что должен сделать.

В соответствии с моим пониманием документации, я должен прикрепить веб-крючок к recordingStatusCallback, поскольку запись может быть недоступна, когда action webhook вызывается.Однако, хотя консоль функции указывает, что оба веб-подключения выполнены, журнал вызовов показывает только один последующий вызов msgin с нулевым значением для event.RecordingStatus (что соответствует action), и вызов действительно зависает.без воспроизведения записи.Что мне здесь не хватает?

// this function's path is /msgin

exports.handler = function(context, event, callback) {
    if (!event.RecordingStatus && !event.RecordingUrl) {
        let twiml = new Twilio.twiml.VoiceResponse();
        console.log("Initial MsgIn");
        twiml.say({ voice: 'man', language: 'en-us' }, 'Leave your message');
        twiml.record({
            playBeep: false,
            transcribe: false,
            trim: "trim-silence",
            timeout: 1,
            recordingStatusCallback: "/msgin",
            recordingStatusCallbackEvent: "completed",
            action: "/msgin"
        });
        console.log("Recording started");
        callback(null, twiml);
    }
    else if (event.RecordingStatus == "completed") {
        let twiml = new Twilio.twiml.VoiceResponse();
        console.log("Supposedly callback");
        twiml.say({ voice: 'man', language: 'en-us' }, 'You said');
        twiml.play(event.RecordingUrl);
        twiml.hangup();
        callback(null, twiml);
    }
    else {
        console.log("Supposedly action");
        callback(null, "");
    }
};

1 Ответ

0 голосов
/ 22 января 2019

Я следовал инструкциям в принятом ответе здесь: Запись нескольких пользовательских ответов в вызове Twilio , чтобы решить эту проблему.Однако до того, как аудиозапись станет доступной, будет существенная задержка.

...