Twilio浏览器到浏览器

时间:2016-04-30 14:13:23

标签: javascript c# asp.net-mvc twilio

我正在通过twilio快速入门并遇到问题 - 我的通话按钮没有触发twilio请求;

namespace twilioMvc.Controllers
{
    public class BrowserToBrowserController : Controller
    {
        string accountSid;
        string authToken;
        string appSid;
        string clientName;
        string token;
        public BrowserToBrowserController()
        {
            NameValueCollection manager = ConfigurationManager.GetSection("appSettings") as NameValueCollection;
            accountSid = manager["acSID"];
            authToken = manager["authToken"];
            // put your Twilio Application Sid here
            appSid = manager["appSID"];
            // put your default Twilio Client name here
            clientName = "jenny";

            var capability = new TwilioCapability(accountSid, authToken);
            capability.AllowClientOutgoing(appSid);
            capability.AllowClientIncoming(clientName);
            token = capability.GenerateToken();
        }

        public ActionResult Index(string name)
        {
            if (name != "" && name != null)
            {
                clientName = name;
            }

            var client = new Client() { clientName = clientName, token = token };
            return View("Index", client);
        }

        [HttpPost]
        public ActionResult Call(string PhoneNumber)
        {
            // put your default Twilio Client name here, for when a phone number isn't given
            string number = "jenny";

            // get the phone number from the page request parameters, if given
            if (PhoneNumber != null)
            {
                number = PhoneNumber;
            }

            var response = new XElement("Response");
            response.Add(new XElement("Dial", new XElement("Client", number)));                               

            return this.Content(response.Value, "text/xml");

        }
    }
}

这是页面代码

@model twilioMvc.Models.Client

<!DOCTYPE html>
<html>
<head>
    <title>Hello Client Monkey 5</title>
    <script type="text/javascript"
            src="//media.twiliocdn.com/sdk/js/client/v1.3/twilio.min.js"></script>
    <script type="text/javascript"
            src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
    </script>
    <link href="//static0.twilio.com/resources/quickstart/client.css"
          type="text/css" rel="stylesheet" />
    <script type="text/javascript">

        Twilio.Device.setup('@Model.token');

        Twilio.Device.ready(function (device) {
            $("#log").text("Client '@Model.clientName' is ready");
        });

        Twilio.Device.error(function (error) {
            $("#log").text("Error: " + error.message);
        });

        Twilio.Device.connect(function (conn) {
            $("#log").text("Successfully established call");
        });

        Twilio.Device.disconnect(function (conn) {
            $("#log").text("Call ended");
        });

        Twilio.Device.incoming(function (conn) {
            $("#log").text("Incoming connection from " + conn.parameters.From);
            // accept the incoming connection and start two-way audio
            conn.accept();
        });

        function call() {
            // get the phone number or client to connect the call to
            params = { "PhoneNumber": $("#number").val() };
            Twilio.Device.connect(params);
        }

        function hangup() {
            Twilio.Device.disconnectAll();
        }
    </script>
</head>
<body>
    <button class="call" onclick="call();">
        Call
    </button>

    <button class="hangup" onclick="hangup();">
        Hangup
    </button>

    <input type="text" id="number" name="number"
           placeholder="Enter a phone number or client to call" />

    <div id="log">Loading pigeons...</div>
</body>
</html>

所以,当我点击我的通话按钮时,应该打电话给twilio应用程序,然后它应该用无效路径调用我的网站(填写我在twilio网站上的应用部分)但是有一个麻烦。你能帮我吗?

1 个答案:

答案 0 :(得分:0)

我修复了添加到Object.assign的浏览器polyfill的错误。 但我还有另一个问题,就是我的浏览器到浏览器的电话会立即挂机。