我在顶部有一个按钮,显示一个模态窗口以启动VOIP呼叫 – 最终目的是调用列表中的第一个数字,然后调用第二个数字,依此类推.我有它工作,它显示模态窗口,并允许我发起呼叫列表中的第一个数字.
我现在需要更新脚本,以便在调用成功的情况下,然后在循环中发出另一个AJAX请求,每5秒检查一次调用的状态.如果第一次调用成功,它将返回我存储在httpResponseText变量中的以下内容:
Authentication accepted
我需要解析ActionID值 – 在上面的示例中这将是Jo9oACY52cp1 – 然后通过传递ActionID获得另一个GET请求以获取当前调用的状态,如下所示:
https://www.acme.com/GetStatus.PHP?ActionID=$action_id
此请求返回3个值 – ActionID,UID,STATUS – 如下所示:
xshsJ6Y2eLDC,1500806656.160,ANSWER
我只对第三个值 – STATUS感兴趣 – 我需要继续检查此请求的结果,直到Status不等于IN_PROGRESS.此时我可以启用“下一个呼叫”按钮并重新开始.
这是我当前的表格和脚本:
$("#startBulkContactCall").click(function() {
$(this).attr('selectedRow','1');
contactMobile = $($($('table > tbody > tr:nth-child(1) > td:nth-child(2)').children())[0]).attr('contactMobile');
contactName = $($($('table > tbody > tr:nth-child(1) > td:nth-child(2)').children())[0]).attr('contactName');
$('#callNextBulkContact').prop('disabled',true);
firstURL = "PHP echo $callBackURL ;?>" + defaultCallBackNumber + "PHP echo $contactCallBack ;?>" + contactMobile;
console.log('firstURL: ' + firstURL);
$.ajax({
url: "PHP echo $callBackURL ;?>" + defaultCallBackNumber + "PHP echo $contactCallBack ;?>" + contactMobile,data: {},type: "GET"
})
.then(function(data,status,xhr) {
var httpStatus = status;
var httpResponseCode = (xhr.status);
var httpResponseText = (xhr.responseText);
$('#ajaxSuccessBulk').html('Call in Progress').show();
$("#startBulkContactCall").prop("disabled",true);
$("#callNextBulkContact").prop("disabled",true);
})
.fail(function(xhr) {
var httpStatus = (xhr.status);
var httpResponseCode = (xhr.getAllResponseHeaders);
var httpResponseText = (xhr.responseText);
var ajaxError = 'There was an error requesting the call back. HTTP Status: ' + httpStatus + ' ' + httpResponseText;
//make alert visible
$('#ajaxError').html(ajaxError).show();
})
});
$('#callNextBulkContact').click(function() {
$('#callBulkContact').attr('selectedRow',parseInt($('#callBulkContact').attr('selectedRow')) + 1);
var rowNum = parseInt($('#callBulkContact').attr('selectedRow'));
var row = 'table > tbody > tr:nth-child(' + rowNum + ') > td:nth-child(2)';
contactMobile = $($($(row).children())[0]).attr('contactMobile');
contactName = $($($(row).children())[0]).attr('contactName');
});