freeswitch js

sachin
edited September 19 in SIP
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`);
}

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!