记录开始后 Twiml 语音响应来电不起作用

Twiml voice response to incoming call not working after record start

我想记录一个来电请求(双方),然后说一些台词。

我的 webhook 对 incmong 调用的响应是:

        $response = new VoiceResponse;
        $response->record([
            'action' => 'http://example.com',
            'timeout' => '180',
            'recordingStatusCallback' => 'http://example2.com',
        ]);
        $response->say("hello world!", array('voice' => 'alice'));
        return $response;

其中给出以下 twiml:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
   <Record action="http://example.com" timeout="180" recordingStatusCallback="http://example2.com"/>
   <Say voice="alice">hello world!</Say>
</Response>

我面临的问题是“Hello world”无法播放,如果我删除 $response->record 部分,那么“Hello world”可以播放

<Record> TwiML verb 用于对 phone 上的人进行录音,就像在语音信箱中一样。 <Record> 动词将有效地阻止并且在记录完成之前不会执行任何其他 TwiML,然后它将向 action 属性中的 URL 发出请求,因此您的 <Say>永远不会被执行。

如果您正在尝试录制语音邮件,那么我建议将 <Say> 放在第一位,并指示来电者在听到哔声后留言。

$response = new VoiceResponse;
$response->say("Hello world! Please leave your message after the beep.", array('voice' => 'alice'));
$response->record([
    'action' => 'http://example.com',
    'timeout' => '180',
    'recordingStatusCallback' => 'http://example2.com',
]);
return $response;

如果您想从头开始录制整个来电,您需要use the REST API to start the recording

如果您正在尝试通过通话执行其他操作,请在下方发表评论,我会尽力提供帮助。