How to access a database from Yate's Javascript module

From Yate Documentation
(Difference between revisions)
Jump to: navigation, search
(Configure database account)
Line 1: Line 1:
Using the example below you will learn how to:
+
Using the examples below you will learn how to:
  
 
* retrieve information from database
 
* retrieve information from database
* route call to the result obtained from database  
+
* route calls to the result obtained from database  
  
 
===Configure script in Javascript module===
 
===Configure script in Javascript module===
Line 20: Line 20:
 
In MySQL the configuration file is [[MySQL|mysqldb.conf]] and in PostgreSQL the configuration file is [[PostgreSQL|pgsqldb.conf]].
 
In MySQL the configuration file is [[MySQL|mysqldb.conf]] and in PostgreSQL the configuration file is [[PostgreSQL|pgsqldb.conf]].
  
Let's set account 'yateadmin' so we can use it in our examples, in mysqldb.conf:
+
Let's set account 'yateadmin' in mysqldb.conf, so we can use it in our examples:
  
 
  [yateadmin]
 
  [yateadmin]
Line 27: Line 27:
 
  password=yate
 
  password=yate
  
Then in MySQL:
+
Then in MySQL, the database and the tables must be created:
* create database yateadmin
+
* create database yateadmin;
* create table lines ( location varchar);
+
* create table lines (location varchar(255));
* create table test (test varchar);
+
* create table test (test varchar(255));
  
 
=== Database Examples===
 
=== Database Examples===
  
  
====Retrieve information from DB====
+
====Retrieve information from database====
  
 
  // '''Get DB Object'''
 
  // '''Get DB Object'''

Revision as of 13:54, 21 March 2013

Using the examples below you will learn how to:

  • retrieve information from database
  • route calls to the result obtained from database

Contents

Configure script in Javascript module

To configure a routing script you have to list it in the javascript.conf file . If is a routing script then in section [general] the parameter in which the name of the script is written is routing. The path to the file is set in parameter scripts_dir. If you need to set other javascript files then use [scripts] section.

[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.

First you must check if module that you will use is loaded. If not, install devel packages.
The easiest way to check this, is from rmanager to write command status and to see if module name is listed there.

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

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

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

Then in MySQL, the database and the tables must be created:

  • create database yateadmin;
  • create table lines (location varchar(255));
  • create table test (test varchar(255));

Database Examples

Retrieve information from database

// 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