这里是 Twilio 开发者宣传员。
您绝对可以通过直接呼叫连接两个客户,同时隐藏客户 B 的号码。
我将首先为您介绍最基本的内容,然后提出一些使其更具可扩展性的方法。
要创建 A 可以呼叫的将 A 连接到 B 的号码,您需要从 Twilio 购买该号码并对其进行配置,以便当 A 收到呼叫时,它会返回连接到 B 的 TwiML。对于这个初始示例,您可以使用 TwiML Bin 或您托管的一些静态 TwiML。 TwiML 需要使用<Dial> 和<Number>,像这样:
<Response>
<Dial callerID="YOUR_TWILIO_NUMBER">
<Number>Customer B's phone number</Number>
</Dial>
</Response>
现在,当 A 呼叫该号码时,他们将连接到 B。如果您将 callerId 设置为您的 Twilio 号码,那么 B 也会认为它来自您的 Twilio 号码,同时保持他们的电话号码私密。
虽然像这样使用硬编码的 TwiML 并不能扩展。您有几个选项可以改善这一点。
首先,您可以通过单击按钮让 A 从您的应用程序中发起调用。该按钮可以trigger a call to A using the REST API 并将其传递给上面的 TwiML,以便当 A 接听电话时
然后它拨 B。喜欢:
using System;
using Twilio;
using Twilio.Rest.Api.V2010.Account;
class Program
{
static void Main(string[] args)
{
// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");
string twilioNumber = Environment.GetEnvironmentVariable("TWILIO_NUMBER");
TwilioClient.Init(accountSid, authToken);
var call = CallResource.Create(
twiml: new Twilio.Types.Twiml($"<Response><Dial callerId='{twilioNumber}'><Number>CUSTOMER_B_NUMBER</Number></Dial></Response>"),
to: new Twilio.Types.PhoneNumber(CUSTOMER_A_NUMBER),
from: new Twilio.Types.PhoneNumber(twilioNumber)
);
Console.WriteLine(call.Sid);
}
}
另一种选择是让 A 使用 Twilio Client to make the phone calls from your browser 在您的应用程序中直接调用。
为了更深入地挖掘,您还可以使用 Twilio Proxy 在两个客户和您的 Twilio 号码之间创建一个会话,创建一个连接,允许 A 或 B 呼叫 Twilio 号码并连接到其他在会议期间。在幕后,Proxy 致力于自动交付上述 TwiML,同时还维持用户之间的会话,直到完成并且客户 A 可以重用该号码以连接到新客户。查看Proxy quickstart 以更好地了解其工作原理。
使用 Twilio Proxy 或 Twilio Client 之一可能最适合您的应用程序,但这取决于您要为用户提供的界面。