Twilio点击通话

时间:2014-03-04 16:12:36

标签: c# html visual-studio twilio

我正在尝试制作一个页面,允许用户点击浏览器中的按钮,这样他们就可以拨打我们办公室的电话号码。当我调试代码时它运行正常,但是当我点击页面上的按钮时没有任何反应。我也没有在开发人员工具中看到任何错误。

<button class="btn btn-danger btn-large" runat="server" onclick="callpage_Click" style="margin-left:95px"><i class="icon-phone"></i> Call us!</button>



protected void callpage_Click(object sender, EventArgs e)
        { // Find your Account Sid and Auth Token at twilio.com/user/account 
            string AccountSid = "************";
            string AuthToken = "************";
            var twilio = new TwilioRestClient(AccountSid, AuthToken);


    // Build the parameters 
    CallOptions options = new CallOptions();
    options.To = "+**********";
    options.From = "+*************";
    options.Url = "http://demo.twilio.com/docs/voice.xml";
    options.ApplicationSid = "*****************";
    options.Method = "GET";
    options.FallbackMethod = "GET";
    options.StatusCallbackMethod = "GET";
    options.Record = false;

    var call = twilio.InitiateOutboundCall(options);
    Console.WriteLine(call.Sid);
    if (call.RestException == null)
    {
        Response.Write(string.Format("Started call: {0}", call.Sid));
    }
    else
    {
        Response.Write(string.Format("Error: {0}", call.RestException.Message));
    }
}

1 个答案:

答案 0 :(得分:3)

您正在创建呼叫服务器端。如果您希望在浏览器中进行调用,则需要实现客户端解决方案。

我们根据此处提供的文档创建了一个客户端电话: https://www.twilio.com/docs/howto/twilio-client-browser-soft-phone

解决方案的唯一服务器端部分应该是在创建需要在浏览器中进行调用的令牌时。以下是一些示例代码:

public string TwilioToken {
    get {
        var capability = new TwilioCapability("TwilioSid", "TwilioToken");
        capability.AllowClientOutgoing("TwilioApplicationIdCreatedOnTheirSite");
        return capability.GenerateToken();
    }
}

这个令牌在他们的文档中被称为Twilio Capability Token,起初对我来说有点混乱。

这是我从实现中提取的示例代码。它使用jQuery,因此如果你想在你的网站中使用它,你需要包含它。

<script type="text/javascript" src="//static.twilio.com/libs/twiliojs/1.1/twilio.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        Twilio.Device.setup("<%=TwilioToken%>");

        Twilio.Device.connect(function (conn) {
            $("#hangup").show();
            $("#call").hide();
        });

    });

    function call(param1, param2) {
        params = { "Param1": param1, "Param2": param2 };
        connection = Twilio.Device.connect(params);
    }

    function hangup() {
        Twilio.Device.disconnectAll();
        $("#hangup").hide();
        $("#call").show();
    }
</script>

<a id="call" href="javascript:call('a', 'b');">Call</a>
<a id="hangup" href="javascript:hangup();">Hangup</a>