var outbound_call, dialed_number, agent_number, record_url, call_date, call_length = 0, failure_code, failure_reason, wsURL = "http://yourwebservice.com/api", // , - connected = false; // VoxEngine.addEventListener(AppEvents.CallAlerting, function (e) { // UTC- call_date = new Date().toUTCString(); // , dialed_number = e.destination; // URL wsURL += "?dialed_number=" + encodeURIComponent(dialed_number); // HTTP- -, Net.httpRequest(wsURL, function (res) { if (res.code == 200) { // agent_number = res.text; // outbound_call = VoxEngine.callPSTN(agent_number, dialed_number); // VoxEngine.easyProcess(e.call, outbound_call, handleCallsConnected); outbound_call.removeEventListener(CallEvents.Disconnected); outbound_call.addEventListener(CallEvents.Disconnected, handleCallDisconnected); outbound_call.removeEventListener(CallEvents.Failed); outbound_call.addEventListener(CallEvents.Failed, handleCallFailed); } else { // - - , - e.call.reject(); } }); }); // VoxEngine.addEventListener(AppEvents.Terminating, function (e) { // if (connected) { Logger.write("Dialed number: " + dialed_number + " Agent number: " + agent_number + " Date: " + call_date + " Length: " + call_length + " Record URL: " + record_url); // HTTP Net.httpRequest } else { // Logger.write("Call failed. Code: " + failure_code + " Reason: " + failure_reason); // HTTP Net.httpRequest } }); // function handleCallFailed(e) { failure_code = e.code; failure_reason = e.reason; VoxEngine.terminate(); } // function handleCallDisconnected(e) { call_length = e.duration; VoxEngine.terminate(); } // function handleCallsConnected(call1, call2) { connected = true; outbound_call.addEventListener(CallEvents.RecordStarted, function (e) { record_url = e.url; }); outbound_call.record(); // start call recording }
var inbound_call, ext = ''; // VoxEngine.addEventListener(AppEvents.CallAlerting, function (e) { inbound_call = e.call; inbound_call.addEventListener(CallEvents.ToneReceived, function (callevent) { callevent.call.stopPlayback(); ext += callevent.tone; if (ext.length == 4) { wsURL += "?dialed_number=" + encodeURIComponent(dialed_number) + "&ext=" + ext; // Net.httpRequest(wsURL, function (res) { if (res.code == 200) { // agent_number = res.text; // outbound_call = VoxEngine.callPSTN(agent_number, dialed_number); // VoxEngine.easyProcess(e.call, outbound_call, handleCallsConnected); outbound_call.removeEventListener(CallEvents.Disconnected); outbound_call.addEventListener(CallEvents.Disconnected, handleCallDisconnected); outbound_call.removeEventListener(CallEvents.Failed); outbound_call.addEventListener(CallEvents.Failed, handleCallFailed); } else { // - - , - inbound_call.reject(); } }); } }); inbound_call.addEventListener(CallEvents.Connected, function (callevent) { inbound_call.say(", .", Language.RU_RUSSIAN_FEMALE); }); inbound_call.answer(); });
Source: https://habr.com/ru/post/250899/
All Articles