我有一个Twilio号码,我明白为了做这4个动作(呼叫,挂断,断言和取消呼叫)我需要创建一个电话会议,但我不明白我是如何添加我的Twilio会议号码以及如何添加其他号码的客户端移动电话号码。例如,如果我的Twilio号码是“+9728888888”,而我想要拨打移动号码的客户是“+9725555555” - 我想要代码示例: 1.致电客户(从Twilio号码“+9728888888”到手机号码“+9725555555”) 2.保持通话 3.冷静下来 4.环聊电话。
我在web api项目上使用 Twilio NuGet 。你能给我一些代码示例,考虑一下上面所有这四种场景我给出的数字(Twilio和移动设备)吗?我真的很感激。
顺便说一句,我在他们的网站上看到了代码示例:
using Twilio.TwiML;
class Example
{
static void Main()
{
var response = new VoiceResponse();
var dial = new Dial();
dial.Conference("moderated-conference-room",
startConferenceOnEnter: false);
response.Dial(dial);
System.Console.WriteLine(response.ToString());
}
}
但它不承认Twilio或手机甚至Twilio认证,所以我不确定它是如何工作的..
答案 0 :(得分:0)
Twilio开发者传道者在这里。
如果您想通过Twilio号码拨打电话给最终用户,并将您的座席和用户都置于电话会议中,那么我就是这样做的。但是,我不是C#开发人员,所以尽管我尝试提供代码示例,但我没有在.NET web api项目中经验过。
您说您使用的是Twilio package from Nuget,这是一个良好的开端。
首先,您需要为座席生成一个呼叫并将其置于电话会议中以等待用户。为此,您需要use the Twilio REST API to place the call。该代码看起来有点像
const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
const string authToken = "your_auth_token";
TwilioClient.Init(accountSid, authToken);
var to = new PhoneNumber("AGENT_PHONE_NUMBER");
var from = new PhoneNumber("+9728888888");
var call = CallResource.Create(
to,
from,
url: new Uri("http://example.com/conference")
);
此通话与发送给API的座席号Twilio will make a request to the URL相关联。 Your application needs to respond to tell Twilio what to do with the call。在这种情况下,我们应该将代理放入<Conference>
以等待用户。在此操作中,我们还需要生成对用户的调用。
public IHttpActionResult Conference()
{
// make the call to the user
var to = new PhoneNumber("+9725555555");
var from = new PhoneNumber("+9728888888");
var call = CallResource.Create(
to,
from,
url: new Uri("http://example.com/user_conference")
);
// return the TwiML
var response = new VoiceResponse();
var dial = new Dial();
dial.Conference("Conference", endConferenceOnExit: true);
response.Dial(dial);
Ok(response.ToString());
}
注意:我已将此会议的座席方设置为endConferenceOnExit: true
。这意味着当座席挂断时,电话会议将以所有参与者结束。
现在,Twilio将向用户发出呼叫,并在连接时询问新URL如何处理呼叫。这次您只需要使用TwiML进行响应即可连接到同一个会议。我会留给你处理。
最后,to put participants on hold you need to use the REST API again。您需要获取要暂停的会议SID和参与者的SID。由于您将从代理处暂停用户,因此您可以在第二次webhook回调中获取这两个SID到您的应用程序。
使用会议并呼叫SID,发出如下的POST请求:
const string conferenceSid = "CONFERENCE_SID";
const string callSid = "CALL_SID";
ParticipantResource.Update(
conferenceSid,
callSid,
hold: true,
holdUrl: new Uri("http://example.com/hold")
);
您还可以提供可在用户等待时提供音乐的保留网址。有关详细信息,请check the participant resource documentation。取消对用户的保留是相同的过程,但您将hold
设置为false
。
如果这让您了解创建此功能,请告诉我。