使用JQuery获取活动callSid以进行呼叫转移

时间:2015-07-08 17:46:18

标签: jquery twilio

我正在构建网络电话应用程序,但我在设置活动呼叫转移功能时遇到问题。我似乎无法弄清楚如何为我的特定应用程序获取callSid。当我使用conn.parameters.CallSid时,它返回undefined。我能想到获得CallSid的唯一方法是将语音URL设置为数据库的POST并使用ajax调用来检索,但这看起来过度,我知道必须有一个直接的方式。

以下是我正在使用的代码:

Twilio.Device.setup("<?php echo $twilioObj->token->generateToken();?>");
            var connection=null;
            Twilio.Device.ready(function (device) {
                $('#status').text('Ready to start call');
            });
            Twilio.Device.incoming(function (conn) {
                if (confirm('Accept incoming call from ' + conn.parameters.From + '?')){
                    connection=conn;
                    conn.accept();
                }
            });
            Twilio.Device.offline(function (device) {
                $('#status').text('Offline');
            });
            Twilio.Device.error(function (error) {
                $('#status').text(error.message);
            });
            Twilio.Device.connect(function (conn) {
                $('#status').text("Successfully established call");
                toggleCallStatus();
                console.log(conn.parameters.CallSid);
            });
            Twilio.Device.disconnect(function (conn) {
                $('#status').text("Call ended");
                toggleCallStatus();
            });
            function toggleCallStatus(){
                $('#call').toggle();
                $('#hangup').toggle();
                $('#dialpad').toggle();
            }
            $.each(['0','1','2','3','4','5','6','7','8','9','star','pound'], function(index, value) { 
                $('#button' + value).click(function(){ 
                    if(connection) {
                        if (value=='star')
                            connection.sendDigits('*')
                            else if (value=='pound')
                                connection.sendDigits('#')
                                else
                                    connection.sendDigits(value)
                                    return false;
                    }
                });
            });
        });
        function call() {
            // get the phone number to connect the call to
            var value=$.trim($("#tocall").val());
            if( value== false){
                params = {"tocall": "queue"};
                Twilio.Device.connect(params);
            }else{
                params = {"tocall": $("#tocall").val()};
                Twilio.Device.connect(params);
            }

        }
        function hangup() {
            Twilio.Device.disconnectAll();
        }
        function transfer() {
            // get the phone number to connect the call to
        }
        function sms() {
            params = {'tosms': $('#tosms').val(), 'sms': $('input[name=smsRadio]:checked', '#smsRadios').val()};
            $.post( "twilioApps/sms", params );
        }
        function conference() {
            // get the phone number to connect the call to
            params = {"toconference": $("#toconference").val()};
        }

1 个答案:

答案 0 :(得分:0)

我遇到了完全相同的问题,我在这篇文章中找到了答案:Getting CallSID for Twilio Softphone / Twilio.js incoming/outgoing calls

似乎javascript Twilio Client 1.1版没有填充传出呼叫的参数。使用1.2版本将解决问题。