freeswitch js
use("ODBC");
try {
if (!session) {
console_log("ERR", "No session provided!\n");
throw "No session provided!";
}
var callerId = session.getVariable("caller_id_number");
var dialedNumber = session.getVariable("destination_number");
console_log("INFO", "Caller: " + callerId + ", Dialed: " + dialedNumber + "\n");
var DSN = "odbc-connector";
var DB_USER = "user";
var DB_PASS = "password";
var db = new ODBC(DSN, DB_USER, DB_PASS);
if( !db.connect() ){
console_log("error", "SQL query failed!\n");
throw "No session provided!";
}else{
var sql_query = `select cn.id_client, cn.number from client cn where cn.number = '${dialedNumber}' limit 1;`;
if ( !db.query(sql_query) ) {
console_log("error", "SQL query failed!\n");
throw new Error("SQL query failed!");
} else {
let row = {};
while (db.nextRow()) {
row = db.getData();
}
console_log("INFO", "DB connection closed.\n");
db.close();
if(Object.keys(row).length == 0){
console_log("ERR", "No customer information found!\n");
session.setVariable("fs_script_error", 1);
session.execute("transfer", `${dialedNumber} XML no_customer_number_route`);
exit();
} else if ( row["priorities"] == "[]" ){
console_log("ERR", "empty or inactive priorities!\n");
session.setVariable("fs_script_error", 1);
session.execute("transfer", `${dialedNumber} XML empty_or_disabled_gateways`);
exit();
} else {
session.setVariable("var_customer", row["id_client"]);
session.setVariable("var_customer_number", row["number"]);
}
}
session.setVariable("fs_script_error", 0);
}
} catch (err) {
console_log("ERR", JSON.stringify(err) + "\n");
session.setVariable("fs_script_error", 1);
session.execute("transfer", `${dialedNumber} XML error_exceptions`);
}
0
Howdy, Stranger!
Categories
- 99 All Categories
- 24 VoIP
- 11 SIP
- 16 asterisk
- 44 Programming
- 1 Nodejs
- 4 javascript
- 19 PHP
- 8 Codeigniter
- 14 database
- 1 UI/UX
- 2 Flutter
- 29 OS
- 27 Linux
- 1 Virtualization
- 1 Android
- 1 Windows
- 2 legal
