Twilio传出呼叫ID

时间:2016-02-10 02:58:46

标签: javascript php api twilio

我需要一些帮助。

我一直在阅读这个API Twilio,因为必须解决一些我没做过的代码。

它正在使用PHP的页面来打电话给客户。有一个进程经常运行并检查日志或cvs并使用信息Twilio在数据库中插入记录。

理想情况下,如果在拨出电话结束时,可以知道该呼叫的唯一ID,并将其与一些评论一起保存。

如何获取客户端呼叫的参数?还是有别的办法? (持续时间,Sid,to等)

我已经读过这篇文章了,但是我还没有读到它

谢谢!

https://www.twilio.com/docs/api/rest/making-calls

https://www.twilio.com/docs/api/rest/call

<?php 
require_once('Services/Twilio.php'); // Loads the library
$API_VERSION = '2010-04-01';
$accountSid = 'AC7d3444f83611xxxxxxxxxxxxxxxx';
$authToken  = 'd72d5f036e96abexxxxxxxxxxxxxx';

$capability = new Services_Twilio_Capability($accountSid, $authToken);
$capability->allowClientOutgoing('AP29cb5d9e0dcxxxxxxxxxxxxxxxxxx');
$capability->allowClientIncoming('name');
$token = $capability->generateToken();
//error_log("token is $token");
?>

<script type="text/javascript">     
      Twilio.Device.setup("<?php echo $token; ?>");     
      function call() {         
      params = {"PhoneNumber": $("#number_no").val(), "callerid": $("#callerid").val(), "agent_id": $("#agent_id").val(), "lead_id": $("#lead_id").val()};
      Twilio.Device.connect(params);
      }     
      function hangup() {           
        Twilio.Device.disconnectAll();
        //Twilio.Device.disconnect();
      }       
  </script>

更新内容时会调用此代码

<script>
$(document).ready(function() {

    $('.call_status').change(function()
    {
        var status = $(this).val();
        var rec_val = $(this).parent().find('.rec_val').val();
        var pledge_amt = $('#pledge_amt'+rec_val).val();
        hangup();
    $.ajax({
    url: '<?php echo site_url('agent/agent_status/'); ?>',
    type: 'post',
    data: {'rec_val': rec_val, 'status': status, 'pledge_amt': pledge_amt},
    success:function(resp)
    {
        if(resp)
        {
            window.location.href="<?php echo site_url('agent/call_leads/'); ?>";
            //$('.msg').html("Status Updated Successfully!").fadeOut(5000);

        } else 
            {
             alert('Please check your selected data');
            }
    },
    error:function(resp)
    {
        alert(resp);
    }
    });

    });
    jQuery('.status_update').fadeOut(5000);
});
</script>

1 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

当你create the call, you get a connection object时。您在REST API文档中阅读的有关拨打电话的connection object contains all the parameters。您可以通过这种方式获取呼叫SID(它的唯一ID)。在下面的代码中,我使用放置调用时创建的connection对象来注销调用的参数:

<script type="text/javascript">     
      Twilio.Device.setup("<?php echo $token; ?>");     
      function call() {         
          params = {"PhoneNumber": $("#number_no").val(), "callerid": $("#callerid").val(), "agent_id": $("#agent_id").val(), "lead_id": $("#lead_id").val()};
          var connection = Twilio.Device.connect(params);
          console.log(connection.parameters);
      }     
  </script>

请告诉我这是否有帮助!

修改

要在挂断功能中使用此连接,您需要将连接对象保存在调用函数范围之外。您可以通过将currentConnection定义为两个函数之外的变量,然后在执行操作时设置和使用它来实现。请参阅下面的更新代码(查看评论以获取更多信息):

<script type="text/javascript">     
      Twilio.Device.setup("<?php echo $token; ?>");
      // define currentConnection here, but don't set it to anything.
      var currentConnection = null;

      function call() {         
          params = {"PhoneNumber": $("#number_no").val(), "callerid": $("#callerid").val(), "agent_id": $("#agent_id").val(), "lead_id": $("#lead_id").val()};
          // create and set the currentConnection
          currentConnection = Twilio.Device.connect(params);
          console.log(currentConnection.parameters);
      }

      function hangup() {
        console.log("Do stuff with parameters");
        console.log(currentConnection.parameters)
        Twilio.Device.disconnectAll();

        // reset currentConnection until the next call is made
        currentConnection = null;
      } 
</script>