Blogs
Take a look at the things that interest us.
Asterisk realtime mysql extensions
In this tutorial, we are going to setup a real-time extension connection for our Asterisk 18 and MySQL database.
Requirements
- Asterisk 18
- ODBC connection
Mysql Database
To get started with our real-time extensions, we'll first need to add the extension table to our database.
CREATE TABLE IF NOT EXISTS `extensions` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`context` varchar(40) NOT NULL,
`exten` varchar(40) NOT NULL,
`priority` int(11) NOT NULL,
`app` varchar(40) NOT NULL,
`appdata` varchar(256) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `context` (`context`,`exten`,`priority`),
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
The table explains as follow:
- 「context」 — The context of the dialplan.
- 「exten」 — The extension number a call comes from.
- 「priority」 — The priority of the current row.
- 「app」 — The app function.
- 「appdata」 — The app data.
Now let's add some test data to this table.
INSERT INTO extensions
(context, exten, priority, app, appdata)
VALUES
('mycontext', '_1XX', 1,'Dial', 'PJSIP/${EXTEN},60,tT');
We use this data at a later time to make our first real-time extension call.
Asterisk 18
To make the extension table work we need to update a few files in our Asterisk directory. Let move to the asterisk directory.
$ cd /etc/asterisk
Open the extconf file.
$ vim extconf.conf
Add the following line to your config file.
extensions => odbc,asterisk
Now open your extension config file.
$ vim /extensions.conf
Add the following line
[mycontext]
switch => Realtime/mycontext@extensions
// for every new context, you'll add a new line to your extension config
You are finished setting up your real-time extension table. Now restart your Asterisk to make the new system work.
$ systemctl restart asterisk
You are now able to make calls through your extension table.
There are no comments.