Javascript 使用Twilio将POST参数发送到语音URL以接收来电

Javascript 使用Twilio将POST参数发送到语音URL以接收来电,javascript,twilio,Javascript,Twilio,我允许我的站点接受python和javascript的传入调用。我想确保无论是谁接听电话,Twilio都正确记录了他们的用户名。正如他们在邮件中所发布的,您需要创建一个功能令牌来接受传入呼叫: capability.allow_client_outgoing(application_sid) capability.allow_client_incoming("jenny") 该站点上可能同时有多达20个不同的用户可以接听电话,因此我希望替换jenny字符串,以允许基于登录者的动态用户名 我使用

我允许我的站点接受python和javascript的传入调用。我想确保无论是谁接听电话,Twilio都正确记录了他们的用户名。正如他们在邮件中所发布的,您需要创建一个功能令牌来接受传入呼叫:

capability.allow_client_outgoing(application_sid)
capability.allow_client_incoming("jenny")
该站点上可能同时有多达20个不同的用户可以接听电话,因此我希望替换jenny字符串,以允许基于登录者的动态用户名

我使用Django作为我的框架,并通过从request.user.username请求用户名的视图生成令牌

我的Twilio语音URL被定向到此函数。如果它没有看到phone_number参数,则可以假定这是一个传入呼叫。我想通过这篇文章发送'call_rep'参数,该参数将匹配用户名,以允许传入呼叫具有正确的用户信息:

@twilio_view                                                             
def make_call(request):                                                  
    resp = Response()                                                                                                      

    if 'phone_number' in request.POST:                                   
        phone_number = request.POST['phone_number']                                                                                                  
        resp.say("Making the call now")                                  
        resp.dial(number=phone_number, callerId=TWILIO_PHONE_NUMBER)     

    else:                                                                

        resp.say("Incoming call")                                                                                        
        with resp.dial(callerId=TWILIO_PHONE_NUMBER) as r:               
            r.client(request.POST['call_rep'])                                                         

    return resp    
在我的JavaScript中是否有地方需要输入呼叫代表的用户名

Twilio.Device.setup(token);

Twilio.Device.ready(function (device) {           
});                                               

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

Twilio.Device.offline(function(device) {          
    // Called on network connection lost.         
});                                               

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

Twilio.Device.disconnect(function (conn) {        
    // Called for all disconnections              
    console.log('DISCONNECT: ' + conn.status);    
});                                               

/* Listen for incoming connections */             

Twilio.Device.incoming(function (conn) {          
        connection = conn 
        connection.accept()
});
对于传出呼叫,我可以传递额外的参数,没有问题。如何处理传入数据

Twilio.Device.connect({                       
    call_rep: '{{ request.user.username }}',  
    phone_number: phone_number                
});  

嘿,奥斯汀,这里是Twilio的雇员。实际上,我正在写一篇关于在客户端使用请求参数的文章。我能澄清一些事情吗?您可以通过拨出的电话传递这些参数,但不能传入?您的意思是从客户端应用程序传出吗?正确,我可以从客户端应用程序传递传出呼叫的参数。我使用它是为了让我的Twilio语音URL中的函数调用正确的号码。我应该注意到,我正在努力建立一个呼叫中心,任何代表都可以接听来电。我试图找到一种方法将代表的名字传递到我的Twilio URL,这样它就可以接受连接。此后,我尝试使用队列解决此问题。尽管我现在遇到的问题是,如果有来电者在队列中,我会尝试联系代表。我现在正在查看pusher或Socket.IO。
Twilio.Device.connect({                       
    call_rep: '{{ request.user.username }}',  
    phone_number: phone_number                
});