fusionpbx/includes/install/scripts/call_broadcast_originate.js

81 lines
2.7 KiB
JavaScript

include("config.js");
//var sounds_dir
//var admin_pin
//var tmp_dir
//var recordings_dir
var sipuri = argv[0];
var recording = argv[1];
var caller_id_name = argv[2];
var caller_id_number = argv[3];
var call_timeout = argv[4];
var call_count_var_name = argv[5];
var tmp_sipuri;
caller_id_name = caller_id_name.replace("+", " ");
console_log( "info", "sipuri: "+sipuri+"\n" );
console_log( "info", "recording: "+recording+"\n" );
console_log( "info", "caller_id_name: "+caller_id_name+"\n" );
console_log( "info", "caller_id_number: "+caller_id_number+"\n" );
console_log( "info", "call_timeout: "+call_timeout+"\n" );
console_log( "info", "call_count_var_name: "+call_count_var_name+"\n" );
//function on_hangup(hup_session, how)
//{
// console_log("err", how + " HOOK" + " name: " + hup_session.name + " cause: " + hup_session.cause + "\n");
// //exit here would end the script so you could cleanup and just be done
// exit();
//}
function originate (sipuri, recording, caller_id_name, caller_id_number, call_timeout, count_var_name) {
var dtmf = new Object();
var cid;
dtmf.digits = "";
cid = ",origination_caller_id_name="+caller_id_name+",origination_caller_id_number="+caller_id_number;
new_session = new Session("{ignore_early_media=true,hangup_after_bridge=false,call_timeout="+call_timeout+""+cid+"}"+sipuri);
//new_session = new Session(sipuri);
//new_session.execute("set", "api_after_bridge=reloadxml");
//set the on_hangup function to be called when this session is hungup
//new_session.setHangupHook(on_hangup);
//result = new_session.setAutoHangup(true);
//console_log( "info", "followme: new_session uuid "+new_session.uuid+"\n" );
//console_log( "info", "followme: no dtmf detected\n" );
digitmaxlength = 1;
while (new_session.ready()) {
if (recording.length > 0) {
//new_session.streamFile( recordings_dir+"/"+recording);
new_session.execute("playback",recordings_dir+"/"+recording);
//new_session.hangup("NORMAL_CLEARING");
}
break;
}
var hangup_cause = new_session.getVariable("bridge_hangup_cause");
console_log( "info", "hangup cause: "+hangup_cause+"\n" );
var count = getGlobalVariable(call_count_var_name);
setGlobalVariable(call_count_var_name, (parseInt(count)-1));
console_log( "info", "action: hangup, count: "+count+"\n" );
}
sipuri_array = sipuri.split(",");
for (i = 0; i < sipuri_array.length; i++){
//var count = getGlobalVariable(call_count_var_name);
//setGlobalVariable(call_count_var_name, (parseInt(count)+1));
tmp_sipuri = sipuri_array[i];
console_log("info", "tmp_sipuri: "+tmp_sipuri);
result = originate (tmp_sipuri, recording, caller_id_name, caller_id_number, call_timeout, call_count_var_name);
if (result) {
break;
}
}
exit();