Twilio 开发人员布道者在这里。
要自动拨打电话,您需要使用Twilio 可编程语音 API。我注意到您根据标签使用 C#,因此您可以从Twilio C# library开始。使用该库,您可以使用 API 进行调用,如下所示:
using System;
using Twilio;
using Twilio.Rest.Api.V2010.Account;
using Twilio.Types;
class Example
{
static void Main(string[] args)
{
// Find your Account Sid and Auth Token at twilio.com/console
const string accountSid = "your_account_sid";
const string authToken = "your_auth_token";
TwilioClient.Init(accountSid, authToken);
var to = new PhoneNumber("+14155551212");
var from = new PhoneNumber("+15017122661");
var call = CallResource.Create(to,
from,
url: new Uri("http://demo.twilio.com/docs/voice.xml"));
Console.WriteLine(call.Sid);
}
}
有关这一切意味着什么的更多详细信息,请查看使用 C# 拨打电话的指南。
您将在该示例中看到我们将 URL 传递给进行调用的方法。此 URL 可以指向任何地方,包括Twilio 函数(它只是在 Twilio 基础架构中运行的 Node.js)或您自己的服务器。当调用连接到用户时,Twilio 将向该 URL 发出 HTTP 请求,以了解下一步该做什么。要告诉 Twilio 要做什么,您需要返回TwiML。
要使用您想要的消息进行响应,然后从您的用户那里收集语音输入,您将需要使用 TwiML 的<Say>
和<Gather>
元素。示例响应可能如下所示:
<Response>
<Gather input="speech" hints="yes, no" action="/gatherResponse">
<Say voice="alice">Hey, it seems you didn't finish your order. Would you like to finish by phone?</Say>
</Gather>
</Response>
在这种情况下<Gather>
,我们首先可以捕获用户在通话期间所说的任何内容。我们将input
属性设置为“语音”,以便我们可以使用语音转文本来识别他们所说的内容。还包括可以为您希望听到的文本的服务提供提示的hints
属性。最后,还有一个action
属性,它是一个 URL,将使用 this 的结果调用。
您可以使用属性<Gather>
更改期望听到的语言。有多种语言可用,包括巴西葡萄牙语,您可以使用.language
"pt-BR"
嵌套在里面的<Gather>
是<Say>
你用来读出你的信息的。您可以使用该voice
属性来更改可用的声音。
您需要做的下一件事是响应<Gather>
. 在这个阶段,这取决于您使用的 Web 应用程序框架。重要的是,当它有结果时,Twilio 将对设置为action
属性的 URL 发出 HTTP 请求。在该请求中将有两个重要参数,SpeechResult
和Confidence
. SpeechResult
有 Twilio 认为有人说过的文字,并且 Twilio 对此的确定Confidence
程度介于 0.0 和 1.0 之间。希望您的结果将是“是”或“否”(或巴西葡萄牙语等价物)。此时,您需要返回更多 TwiML 来告诉 Twilio 下一步该调用该做什么,具体取决于答案是肯定的、否定的还是缺失/不正确的。有关如何处理来自此处的呼叫的更多想法,请查看C# 中的 Twilio 语音教程。
让我知道这是否有帮助。