Mam przycisk u góry tabeli, która wyświetla okno modalne, aby zainicjować połączenie VoIP - ostatecznym celem jest, aby zadzwonił na pierwszy numer na liście, a następnie na drugi. numer i tak dalej. Działa to tak, że wyświetla okno modalne i pozwala mi zainicjować połączenie z pierwszym numerem na liście.Żądanie AJAX - Dodaj dodatkową pętlę wewnętrzną żądania GET
Muszę teraz zaktualizować skrypt, aby w razie pomyślnego wykonania połączenia kolejne żądanie AJAX w pętli oznaczało co 5 sekund sprawdzanie stanu połączenia. Jeśli pierwsze połączenie się powiedzie będzie to powrót po których mam przechowywanie w httpResponseText
zmiennej:
Authentication accepted<br/>ActionID = Jo9oACY52cp1
muszę analizować na wartość ActionID
- w powyższym przykładzie będzie to Jo9oACY52cp1
- a potem mieć inny GET żądania, aby uzyskać status bieżącego połączenia przez przechodzącą w IdAkcji następująco:
https://www.acme.com/GetStatus.php?ActionID=$action_id
to żądanie zwraca 3 wartości - IdAkcji, UID, status - tak:
xshsJ6Y2eLDC,1500806656.160,ANSWER
Interesuje mnie tylko trzecia wartość - STATUS - i muszę nadal sprawdzać wynik tego żądania, aż status nie będzie równy IN_PROGRESS
. W tym momencie mogę włączyć przycisk Next Call i zacząć wszystko od nowa.
Oto moja aktualna tabela i scenariusz:
$("#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');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<button type="button" id="bulkCallButton" class="btn btn-default"><span class="glyphicon glyphicon-phone"></span> Bulk Call</button>
<table class="table table2 table-striped table-bordered" width="100%">
<thead>
<th scope="col">Name</th>
<th scope="col">Mobile</th>
</thead>
<tbody>
<tr id="D8F49748-212A-42D8-A188-4C23556027FA">
<td><a href="details.php?action=contactLink&contactID=D8F49748-212A-42D8-A188-4C23556027FA">John Citizen</a></td>
<td><a href="#" contactName="John Citizen" contactMobile="0412345678" data-toggle="modal" data-rec-id="1537" data-target="#contactCallModal"><span class="glyphicon glyphicon-earphone"></span> 0412 345 678</a></td>
</tr>
<tr id="EAD2DCCA-7EFA-B048-AD7D-8FCC0ED5EFD7">
<td><a href="details.php?action=contactLink&contactID=EAD2DCCA-7EFA-B048-AD7D-8FCC0ED5EFD7">Jonah McMahon</a></td>
<td><a href="#" contactName="Jonah McMahon" contactMobile="0490876543" data-toggle="modal" data-rec-id="1538" data-target="#contactCallModal"><span class="glyphicon glyphicon-earphone"></span> 0490 876 543</a></td>
</tr>
<tr id="D9AA7744-E138-4A0E-86A2-B8D0CD2007D6">
<td><a href="details.php?action=contactLink&contactID=D9AA7744-E138-4A0E-86A2-B8D0CD2007D6">Jake Simpson</a></td>
<td><a href="#" contactName="Jake Simpson" contactMobile="0405999666" data-toggle="modal" data-rec-id="1577" data-target="#contactCallModal"><span class="glyphicon glyphicon-earphone"></span> 0405 999 666</a></td>
</tr>
</tbody>
</table>
<div class="modal" id="contactBulkCallModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title">Call Contact</h4>
</div>
<div class="modal-body">
<p>Calling </p>
</div>
<div id="ajaxError" class="alert alert-danger text-center" role="alert" style="display:none">
Error Response
</div>
<div id="ajaxSuccess" class="alert alert-success text-center" role="alert" style="display:none">
Call in Progress
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" id="startBulkContactCall" class="btn btn-success">Start Call</button>
<button type="button" id="callNextBulkContact" class="btn btn-success">Next</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
Nigdy nie miałem zrobić tak złożonego żądania AJAX (przynajmniej dla mnie) i nie wiesz od czego zacząć, aby dodać dodatkowy wniosek w pętli?
Jak zdobyć numery telefonów? – Salketer
Numery telefonów są zwracane z kwerendy bazy danych, a następnie wyświetlane w tabeli HTML. – user982124