How to access a database from Yate's Javascript module

From Yate Documentation
(Difference between revisions)
Jump to: navigation, search
(DB Example)
(Example with call interaction)
Line 44: Line 44:
  
 
   
 
   
// Get DB Object, Account, Query
+
// '''Get DB Object, Account, Query'''
var m = new Message("database");
+
var m = new Message("database");
m.account = "yateadmin";
+
m.account = "yateadmin";
m.query = "SELECT test from test";
+
m.query = "SELECT test from test";
 
+
// Run the Query
+
// Run the Query
if (m.dispatch())
+
if (m.dispatch())
{
+
{
Engine.output("Query Ok");
+
Engine.output("Query Ok");
if (m.rows > 0)  
+
if (m.rows > 0)  
{
+
{
Engine.output("result[0,0] = " + m.getResult(0,0));
+
Engine.output("result[0,0] = " + m.getResult(0,0));
 
+
// assuming m.getResult(0,0) returns "tone/busy" or "sip/sip:345@10.11.12.13"
+
// assuming m.getResult(0,0) returns "tone/busy" or "sip/sip:345@10.11.12.13"
Channel.callJust(m.getResult(0,0));
+
Channel.callJust(m.getResult(0,0));
}
+
}
}
+
}
  
  

Revision as of 12:24, 19 March 2013

Using the example below you will learn how to:

  • retrieve information from database

Contents

Configure script in Javascript module

To configure a script for Javascript routing it must be listed in the javascript.conf file:

[general]
routing=example.js


Configure database account

DB Examples

Example uses Javascript to retrieve information from DB

// Get DB Object
var m = new Message("database");
// Specify connection to use
m.account = "yateadmin";
// Define Query
m.query = "SELECT * FROM lines WHERE location IS NOT NULL ORDER BY line LIMIT 5";
// Run the Query
if (m.dispatch()) {
    if (m.rows > 0) {
        Engine.output("Got " + m.rows + " records of " + m.columns + " fields");
        Engine.output("result[0,0] = " + m.getResult(0,0));
        var res = m.getColumn("location");
        for (var i = 0; i < res.length; i++) {
            Engine.output("location[" + i + "] = " + res[i]);
        }
    }
}
else {
    Engine.output("Query failed");
}

Example with call interaction

// Get DB Object, Account, Query
var m = new Message("database");
m.account = "yateadmin";
m.query = "SELECT test from test";

// Run the Query
if (m.dispatch())
{
	Engine.output("Query Ok");
	if (m.rows > 0) 
	{
		Engine.output("result[0,0] = " + m.getResult(0,0));

		// assuming m.getResult(0,0) returns "tone/busy" or "sip/sip:345@10.11.12.13"
		Channel.callJust(m.getResult(0,0));
	}
}


See also

Personal tools
Namespaces

Variants
Actions
Preface
Configuration
Administrators
Developers