Astricon 2013: "Asterisk and Database"

Post on 10-May-2015

2.763 views 5 download

Tags:

description

A very practical discussion on how to connect Asterisk with Relational Databases using ODBC database abstraction layer. This session will cover the basics of MySQL/ODBC installation, configuration and integration with Asterisk. Additionally will be made practical examples about the benefits of this union: improving dialplan with SQL Queries, store Call Detail Records (CDR) in DB, implementing Realtime Architecture (ARA). Proposed session is for those who do not yet know benefits of connecting an Asterisk box to a database or are interested to learn about it through a very simple step-by-step demo.

Transcript of Astricon 2013: "Asterisk and Database"

Francesco PRIOR

@priorfra

.: Numbers

.: Numbers

types of people in the world:Those who understand binary,

and those who don't.

There are only

.: Happy Birthday

INTRO 2

I’m freelancer:“The idea is my boss”.

[Pablo Bernasconi – TEDx Cordoba]

.: About Me

INTRO 2.: Astricon 2012

Available on:

You need

this book !

.: The Definitive Guide

.: Summary

“In order to get you into the right frame of mind for what follows, we want you to picture a Dagwood sandwich.”

[Asterisk™: The Definitive Guide]

.: Sandwich Layers

.: Premises

root@ubuntu001:~# apt-get install mysql-server

Select a strong password

root@ubuntu001:~# /usr/bin/mysql_secure_installationNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

.: MySQL: installation

mysql> CREATE DATABASE asterisk;Query OK, 0 rows affected (0.00 sec)

root@ubuntu001:~# mysql -u asterisk -p asteriskEnter password:mysql>

.: MySQL: configuration

root@ubuntu001:~# mysql -u root -pmysql> CREATE USER 'asterisk'@'%' IDENTIFIED BY 'some_secret_password';Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON asterisk.* TO 'asterisk'@'%';

root@ubuntu001:~# apt-get install libmyodbc

root@ubuntu001:~# apt-get install unixODBC unixODBC-dev

.: ODBC: installation

Edit /etc/odbc.ini

Edit /etc/odbcinst.ini

.: ODBC: configuration

./configure

make install

.: Asterisk: installation

./make menuselect

/etc/asterisk/res_odbc.conf

/etc/asterisk/func_odbc.conf

.: Asterisk: configuration

Show changes in system

.: Checks

/etc/asterisk/res_odbc.conf

/etc/asterisk/func_odbc.conf

/etc/odbc.ini

/etc/odbcinst.ini

.: Resuming

.: Access from Dialplan

extensions.conf SQL Queries

SELECT

UPDATE

EXEC Procedure

SELECT

………

.: Access from Dialplan

/etc/asterisk/func_odbc.conf

create a table

.: Access from Dialplan

…a practical example.

/etc/asterisk/extensions.conf

.: Access from Dialplan

.: CDR saved in Database

Call Detail Records

.: CDR saved in DB

.: CDR saved in DB

More details with customized fields.

/etc/asterisk/cdr_adaptive_odbc.conf

*CLI> module reload cdr_adaptive_odbc.so

.: CDR saved in DB

.: Now, a Demo

Call now to test Dialplan and CDR on Database.

281 864 ****It will execute:

Phone Number no loger available

.: Now, a Demo

.: Asterisk Realtime Architecture

/etc/asterisk

sip.conf

iax.conf

voicemail.conf

musiconhold.conf

queues.conf

.......

ARA

.: Asterisk Realtime ArchitectureConfiguration saved in DB

Static/Dynamic

• SIP/IAX peers/users• Dialplan• Queue Members• Access Control Lists• Voicemail boxes• MeetMe conferences• Music on Hold

.: Asterisk Realtime Architecture

[settings]

sippeers => odbc,asterisk,ast_sippeers

extensions => odbc,asterisk,dialplan

/etc/asterisk/extconfig.conf

.: Asterisk Realtime Architecture

Centralized

Server 1 Server 2 Server 3 Server N

• Sip Peers/Users

• Voicemail

• Extensions

Scalable

Replicable

.: Asterisk Realtime Architecture

.: Conclusion

REFERENCES:

Asterisk Project Wiki

[https://wiki.asterisk.org/wiki/display/AST/Realtime+Database+Configuration]

Asterisk: The Definitive Guide, 4th Edition

[http://shop.oreilly.com/product/0636920025894.do]

.: Any Questions ?

PRIOR Francesco

priorfra@gmail.com

@priorfra