Javascript 如何使用Twilio进行实时语音通话,而不只是在接听电话时播放MP3?
为了通过Twilio从笔记本中拨打电话号码,我创建了ASP.NET-MVC5.2应用程序 我可以拨打电话和接听电话,但我不知道如何实现现场语音(能够通话)连接,而不仅仅是播放音乐 我在Javascript 如何使用Twilio进行实时语音通话,而不只是在接听电话时播放MP3?,javascript,asp.net-mvc,sip,twilio,telephony,Javascript,Asp.net Mvc,Sip,Twilio,Telephony,为了通过Twilio从笔记本中拨打电话号码,我创建了ASP.NET-MVC5.2应用程序 我可以拨打电话和接听电话,但我不知道如何实现现场语音(能够通话)连接,而不仅仅是播放音乐 我在HomeController中创建了一个操作方法: public ActionResult Call(string to) { client = new TwilioRestClient(Settings.AccountSid, Settings.AuthToken);
HomeController
中创建了一个操作方法:
public ActionResult Call(string to) {
client = new TwilioRestClient(Settings.AccountSid, Settings.AuthToken);
var result = client.InitiateOutboundCall(Settings.TwilioNumber, to, "http://twimlets.com/message?Message%5B0%5D=http://demo.kevinwhinnery.com/audio/zelda.mp3"); //it causes to play zelda theme when call is answered by callee
if (result.RestException != null) {
return new System.Web.Mvc.HttpStatusCodeResult(500, result.RestException.Message);
}
return Content("Call enroute!");
}
public ActionResult Index() {
return View();
}
$('form button').on('click', function(e) {
e.preventDefault();
// expect just a string of text back from the server
var url = '/call';
$.ajax(url, { //invokes call action method
method:'POST',
dataType:'text',
data:{
to:$('#to').val()//passes the number argument to the action method
},
success: function(data) {
showFlash(data);
},
error: function(jqxhr) {
alert('There was an error sending a request to the server');
}
})
});
此操作方法由Ajax调用调用
当我在Views\Home\Index.csthml
中点击按钮时:
<form>
<p>Enter your mobile phone number:</p>
<input id="to" type="text"
placeholder="ex: +16518675309" />
<button>Send me a message</button>
</form>
这会启动到指定号码的电话呼叫,即48123456789
,其中48
是国家代码。当被叫人接听电话时,会播放塞尔达主题。()
相反,我想通过笔记本电脑(它有内置麦克风)和我打过电话的人交谈,让这个人回话。简而言之,我希望有现场的声音
问题:如何在ASP.NET-MVC 5.x中使用Twilio实现实时语音通话
Settings.AccountSid
和Settings.AuthToken
是我的凭据:
public static class Settings
{
public static string AccountSid { get { return "A###############0"; } }
public static string AuthToken { get { return "e###############0"; } }
public static string TwilioNumber { get { return "4########1"; } }
}
实现这一点的方法是使用拨号Twiml拨号可以选择几个选项之一;电话号码、SIPURL或Twilio客户端标识符。拨号的一个例子是CallMe twimlet,它可以在上找到,看起来像下面这样
<Response>
<Dial>
<Number>+44.........</Number>
</Dial>
</Response>
+44.........
如果你的笔记本电脑上已经安装了一部软电话,那么你可以拨打它。如果你有Skype,你可以使用你的Skype电话号码
如果您没有安装软电话,您可以始终使用Twilio客户端,并在web浏览器中运行该客户端。Twilio evangelist 如果您想通过浏览器拨打电话,您需要了解如何使用Twilio Client for JavaScript: 这将允许您将VoIP呼叫从浏览器放到Twilio中。一旦呼叫到达Twilio,您就可以通过另一个Twilio客户端、SIP端点或PSTN电话桥接该呼叫:
希望这能有所帮助。我认为这是不可能的,除非你的笔记本上有VOIP软件。否则你就得把对方说的话录下来,听听,录下来,然后把你的录音输入到对twilio的回应中,Jacob Roberts他们直截了当地说一个人可以做到:但我找不到这种用法的例子。这个Twilio客户端不是我在
调用
操作方法中初始化的Twiliorest客户端
?我已经可以打电话了。我的程序实际上会拨打我的手机号码并播放Zelda.mp3,但我希望能够通过该连接进行通话。你好,Devin,谢谢你的帮助。我知道我需要一个web浏览器端的Twilio客户端,几天后我遇到了这个问题:请看一下好吗?我只想通过电话进行语音连接。当前的答案也是我的建议。谢谢,我已经读了几遍了(在过去几天里),我遇到了appSid问题。你能检查一下其他主题吗,没有关于Twilio如何设置语音请求链接的信息。语音请求URL必须是Twilio可以向其发送HTTP请求的可公开访问的URL。您可以将网页或XML文件发布到公共托管网站(例如运行在Azure或AWS或Heroku或任何其他托管提供商上的网站),也可以使用ngrok之类的工具将运行在您自己的本地计算机上的web服务器公开为公共URL。这有用吗?