[英]How to setup twilio device in Angular app for the incoming call (i.e. API is in .NET 6)?
我面临一个与来电相关的问题,所以情况是 API 在 .NET 6 中,它的前端在 Angular 应用程序中,也是多租户应用程序。
所以问题是我在 Angular 应用程序中创建了 Twilio 设备,还在 Twilio 上创建了传入的 webhook,webhook 端点在 .NET API 中,当传入呼叫来电时,webhook 被触发但是我如何将传入呼叫连接到 88670888339107 中的 88670883391607 .
在为调用生成令牌时,我还添加了传入的 scope 身份。
注意:拨出电话工作正常。
预期答案:我错过了什么? 或者您是否有任何参考博客或其他内容,如果有,请帮助技术社区。
提前致谢。
在 .NET 6 中生成令牌如下
var scopes = new HashSet<IScope> {
{ new IncomingClientScope(unique_user_name) },
{ new OutgoingClientScope(my_twiml_app_sid) }
};
var capability = new ClientCapability(twilio_sid, twilio_token, expiration_time, scopes: scopes);
string voicetoken = capability.ToJwt();
然后如下所示在 Angular 中设置设备并准备好设备 function
device.setup(voice_token);
device.on('ready', () => {
console.log('device is ready.');
});
device.on('error', (err) => {
console.log('device is not ready. Error - ', err);
});
device.on('incoming', (call) => {
console.log('incoming call', call);
});
还创建了带有来电显示和“收件人”号码的传入 webhook,如下所示,
public TwiMLResult IncomingVoice()
{
var response = new VoiceResponse();
var dial = new Dial(callerId: my_callerId);
// wrap the phone number or client name in the appropriate TwiML verb
// by checking if the number given has only digits and format symbols
if(Regex.IsMatch(to, "^[\\d\\+\\-\\(\\) ]+$"))
{
dial.Number(to);
}
else
{
dial.Client(to);
}
response.Append(dial);
return TwiML(response);
}
上面的例子一切正常,但是 Twilio 设备在来电时没有触发。
当您<Dial>
'ing a <Client>
时,如果该客户端使用语音 SDK 连接到 Twilio,则 Twilio 将为您拨打该客户端。您传递给IncomingClientScope
的unique_user_name
是您的客户端的 ID,它必须匹配<Client>
TwiML 名词的内容,因此它应该匹配to
变量。
当您的客户端使用您的 Angular 应用程序连接时,应触发'incoming'
事件,您需要接听来电。
根据您共享的代码,我看不出有什么问题。 分享如何获取to
变量可能会有所帮助。
我建议登录到 Twilio 控制台,单击 Monitor > Logs > Calls,然后检查您的呼叫及其 TwiML。 也许其中包含一些有用的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.