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

Get Active callSid with JQuery for Call Transfering

我正在构建 Web phone 应用程序,但在设置主动呼叫转移功能时遇到问题。我似乎无法弄清楚如何为我的特定应用程序获取 callSid。当我使用 conn.parameters.CallSid 时,它 returns 未定义。我能想到的获得 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()};
        }

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

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