在通话结束时,我想发送一条短信,其中包含对话录音链接给来电者和控制号码。
我有两个TwiML分档。第一个处理拨号和录音,然后将呼叫定向到第二个箱。这很有效。
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial record="record-from-ringing-dual" timeLimit="600" action="https://handler.twilio.com/twiml/XXXXXXXXXXXXXXX">
<Number>{{Digits}}</Number>
</Dial>
</Response>
这是第二个垃圾箱:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Sms from="+XXXXXXXXX" to="{{From}}">Here's the recording of your call: {{RecordingUrl}}</Sms>
<Sms from="+XXXXXXXXX" to="+YYYYYYYYYY">Call recorded from {{From}} to {{To}}.</Sms>
</Response>
从日志中,我看到成功调用了TwiML bin。状态代码为200. {{From}}号码已正确替换。
但是,不会发送短信。 SMS日志中不显示SMS。如果我自己打电话,不会收到短信。尽管如此,呼叫日志或调试器中不会显示任何错误消息。
答案 0 :(得分:1)
Twilio开发者传道者在这里。
正如我们在您的其他问题中所讨论的那样,<Sms>
使用了已弃用的短信/消息资源。因此,它没有良好的测井记录。
我建议改用Messages resource of the REST API to send messages。您无法使用TwiML Bin执行此操作,但可以使用Twilio Functions。
在config section for Functions中确保&#34;启用ACCOUNT_SID和AUTH_TOKEN&#34;勾选复选框。 Create a new Function in your Twilio console并输入以下代码(替换实数的占位符):
exports.handler = function(context, event, callback) {
const client = context.getTwilioClient();
const message1 = client.messages.create({
from: YOUR_TWILIO_NUMBER,
to: event.From,
body: `Here's the recording of your call: ${event.RecordingUrl}`
});
const message2 = client.messages.create({
from: YOUR_TWILIO_NUMBER,
to: THAT_OTHER_NUMBER,
body: `Call recorded from ${event.From} to ${event.To}.`
})
Promise.all([message1, message2]).then(() => {
let twiml = new Twilio.twiml.VoiceResponse();
callback(null, twiml);
}, err => {
callback(err);
})
};
为函数指定一个路径,然后复制整个URL并将其用作第一个TwiML Bin中<Dial>
的action属性。
让我知道这是否有帮助。