How to access a database from Yate's Javascript module

From Yate Documentation
(Difference between revisions)
Jump to: navigation, search
(Configure script in Javascript module)
(Configure database account)
Line 23: Line 23:
 
  user=mysql
 
  user=mysql
 
  password=yate
 
  password=yate
 +
 +
Then in MySQL create database yateadmin and tables lines and test.
  
 
=== DB Examples===
 
=== DB Examples===

Revision as of 12:52, 19 March 2013

Using the example below you will learn how to:

  • retrieve information from database
  • example with call interaction

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

You can set connection between Yate and MySQL database or Yate and PostGreSQL database module depending on your preference.

In MySQL the configuration file is mysqldb.conf and in PostgreSQL the configuration file is pgsqldb.conf.

Let's set account 'yateadmin' so we can used in our examples, in mysqldb.conf:

[yateadmin]
database=yateadmin
user=mysql
password=yate

Then in MySQL create database yateadmin and tables lines and test.

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