apt-get update
apt-get install mysql-server libmysqlclient-dev
apt-get install unixodbc-dev libmyodbc
apt-get install libncurses-dev linux-headers-$(uname -r)
apt-get install gcc g++ make
mkdir /usr/src/asterisk cd /usr/src/asterisk wget http://downloads.digium.com/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz tar zxvf dahdi-linux-complete-current.tar.gz cd dahdi-linux-complete-2.4.1.2+2.4.1 make all make install make config
modprobe dahdi_dummy
apt-get install libxml12-dev
cd /usr/local/src wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8.4.tar.gz tar xvfz asterisk-1.8.4.tar.gz cd asterisk-1.8.4 ./configure
make menuselect
make make install
make samples make config
udpbindaddr=192.168.0.1:5060 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all)
CREATE DATABASE asterisk; USE asterisk; GRANT ALL ON asterisk.* TO asterisk@localhost IDENTIFIED BY 'asterisk_password'; CREATE TABLE `sipusers` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(80) NOT NULL DEFAULT '', `host` varchar(31) NOT NULL DEFAULT '', `nat` varchar(5) NOT NULL DEFAULT 'no', `type` enum('user','peer','friend') NOT NULL DEFAULT 'friend', `accountcode` varchar(20) DEFAULT NULL, `amaflags` varchar(13) DEFAULT NULL, `call-limit` smallint(5) UNSIGNED DEFAULT NULL, `callgroup` varchar(10) DEFAULT NULL, `callerid` varchar(80) DEFAULT NULL, `cancallforward` char(3) DEFAULT 'yes', `canreinvite` char(3) DEFAULT 'yes', `context` varchar(80) DEFAULT NULL, `defaultip` varchar(15) DEFAULT NULL, `dtmfmode` varchar(7) DEFAULT NULL, `fromuser` varchar(80) DEFAULT NULL, `fromdomain` varchar(80) DEFAULT NULL, `insecure` varchar(4) DEFAULT NULL, `language` char(2) DEFAULT NULL, `mailbox` varchar(50) DEFAULT NULL, `md5secret` varchar(80) DEFAULT NULL, `deny` varchar(95) DEFAULT NULL, `permit` varchar(95) DEFAULT NULL, `mask` varchar(95) DEFAULT NULL, `musiconhold` varchar(100) DEFAULT NULL, `pickupgroup` varchar(10) DEFAULT NULL, `qualify` char(3) DEFAULT NULL, `regexten` varchar(80) DEFAULT NULL, `restrictcid` char(3) DEFAULT NULL, `rtptimeout` char(3) DEFAULT NULL, `rtpholdtimeout` char(3) DEFAULT NULL, `secret` varchar(80) DEFAULT NULL, `setvar` varchar(100) DEFAULT NULL, `disallow` varchar(100) DEFAULT NULL, `allow` varchar(100) DEFAULT NULL, `fullcontact` varchar(80) NOT NULL DEFAULT '', `ipaddr` varchar(15) NOT NULL DEFAULT '', `port` mediumint(5) UNSIGNED NOT NULL DEFAULT '0', `regserver` varchar(100) DEFAULT NULL, `regseconds` int(11) NOT NULL DEFAULT '0', `lastms` int(11) NOT NULL DEFAULT '0', `username` varchar(80) NOT NULL DEFAULT '', `defaultuser` varchar(80) NOT NULL DEFAULT '', `subscribecontext` varchar(80) DEFAULT NULL, `useragent` varchar(20) DEFAULT NULL, `sippasswd` varchar(80) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_uk` (`name`) ); CREATE TABLE `sipregs` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(80) NOT NULL DEFAULT '', `fullcontact` varchar(80) NOT NULL DEFAULT '', `ipaddr` varchar(15) NOT NULL DEFAULT '', `port` mediumint(5) UNSIGNED NOT NULL DEFAULT '0', `username` varchar(80) NOT NULL DEFAULT '', `regserver` varchar(100) DEFAULT NULL, `regseconds` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ); CREATE TABLE IF NOT EXISTS `voiceboxes` ( `uniqueid` int(4) NOT NULL AUTO_INCREMENT, `customer_id` varchar(10) DEFAULT NULL, `context` varchar(10) NOT NULL, `mailbox` varchar(10) NOT NULL, `password` varchar(12) NOT NULL, `fullname` varchar(150) DEFAULT NULL, `email` varchar(50) DEFAULT NULL, `pager` varchar(50) DEFAULT NULL, `tz` varchar(10) DEFAULT 'central', `attach` enum('yes','no') NOT NULL DEFAULT 'yes', `saycid` enum('yes','no') NOT NULL DEFAULT 'yes', `dialout` varchar(10) DEFAULT NULL, `callback` varchar(10) DEFAULT NULL, `review` enum('yes','no') NOT NULL DEFAULT 'no', `operator` enum('yes','no') NOT NULL DEFAULT 'no', `envelope` enum('yes','no') NOT NULL DEFAULT 'no', `sayduration` enum('yes','no') NOT NULL DEFAULT 'no', `saydurationm` tinyint(4) NOT NULL DEFAULT '1', `sendvoicemail` enum('yes','no') NOT NULL DEFAULT 'no', `delete` enum('yes','no') NULL DEFAULT 'no', `nextaftercmd` enum('yes','no') NOT NULL DEFAULT 'yes', `forcename` enum('yes','no') NOT NULL DEFAULT 'no', `forcegreetings` enum('yes','no') NOT NULL DEFAULT 'no', `hidefromdir` enum('yes','no') NOT NULL DEFAULT 'yes', `stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`uniqueid`), KEY `mailbox_context` (`mailbox`,`context`) ); CREATE TABLE `voicemessages` ( `id` int(11) NOT NULL AUTO_INCREMENT, `msgnum` int(11) NOT NULL DEFAULT '0', `dir` varchar(80) DEFAULT '', `context` varchar(80) DEFAULT '', `macrocontext` varchar(80) DEFAULT '', `callerid` varchar(40) DEFAULT '', `origtime` varchar(40) DEFAULT '', `duration` varchar(20) DEFAULT '', `mailboxuser` varchar(80) DEFAULT '', `mailboxcontext` varchar(80) DEFAULT '', `recording` longblob, `flag` varchar(128) DEFAULT '', PRIMARY KEY (`id`), KEY `dir` (`dir`) );
[MySQL] Description = MySQL driver Driver = /usr/lib/odbc/libmyodbc.so Setup = /usr/lib/odbc/libodbcmyS.so CPTimeout = CPReuse = UsageCount = 1
[MySQL-asterisk] Description = MySQL Asterisk database Trace = Off TraceFile = stderr Driver = MySQL SERVER = localhost USER = asterisk PASSWORD = asterisk_password PORT = 3306 DATABASE = asterisk
[asterisk] enabled => yes dsn => MySQL-asterisk username => asterisk password => asterisk_password pre-connect => yes
sipusers => odbc,asterisk,sipusers sippeers => odbc,asterisk,sipusers sipregs => odbc,asterisk,sipregs voicemail => odbc,asterisk,voiceboxes
mysql -r -p use asteriskINSERT INTO sipusers (name, username, host, sippasswd, fromuser, fromdomain, mailbox) VALUES ('101', '101', 'dynamic', '101', '101', 'yourdomain.com', '101'); INSERT INTO sipusers (name, username, host, sippasswd, fromuser, fromdomain, mailbox) VALUES ('102', '102', 'dynamic', '102', '102', 'yourdomain.com', '102'); INSERT INTO sipusers (name, username, host, sippasswd, fromuser, fromdomain, mailbox) VALUES ('103', '103', 'dynamic', '103', '103', 'yourdomain.com', '103'); INSERT INTO sipregs(name) VALUES('101'); INSERT INTO sipregs(name) VALUES('102'); INSERT INTO sipregs(name) VALUES('103'); INSERT INTO voiceboxes(customer_id, context, mailbox, password) VALUES ('101', 'default', '101', '1234'); INSERT INTO voiceboxes(customer_id, context, mailbox, password) VALUES ('102', 'default', '102', '1234'); INSERT INTO voiceboxes(customer_id, context, mailbox, password) VALUES ('103', 'default', '103', '1234');Finally, we can run Asterisk after these steps.