aptitude install unixodbc-dev libmyodbc
/etc/odbcinst.ini
[MySQL] Descripti driver Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc5w.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmy5S.so CPTimeout = CPReuse =
/etc/asterisk/res_odbc.conf
[asterisk] enabled => yes dsn => MySQL-asterisk username => asterisk_user password => 232d2edxse3e
cdr_adaptive_odbc.conf
[cdr_adaptive_connection] connection=asterisk table=cdr alias start => calldate # , , , #alias dst => does_not_exist #alias realdst => dst
/etc/odbc.ini
[MySQL-asterisk] Description = MySQL Asterisk database ;Trace = Off ;TraceFile = stderr Driver = MySQL Server = localhost User = asterisk_user Password = 232d2edxse3e ;Port = 3306 Socket = /var/run/mysqld/mysqld.sock Database = asterisk Charset = utf8
/etc/odbcinst.ini
[MySQL] Description = MySQL driver Driver = /usr/lib/odbc/libmyodbc.so Setup = /usr/lib/odbc/libodbcmyS.so CPTimeout = CPReuse =
[MySQL] Description = MySQL driver Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so CPTimeout = CPReuse =
cdr_mysql.conf
alias filename => filename
mysql> create database asterisk; mysql> use asterisk; mysql> CREATE TABLE `cdr` ( `id` int(9) unsigned NOT NULL AUTO_INCREMENT, `calldate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `clid` varchar(80) NOT NULL DEFAULT '', `src` varchar(80) NOT NULL DEFAULT '', `dst` varchar(80) NOT NULL DEFAULT '', `dcontext` varchar(80) NOT NULL DEFAULT '', `channel` varchar(80) NOT NULL DEFAULT '', `dstchannel` varchar(80) NOT NULL DEFAULT '', `lastapp` varchar(80) NOT NULL DEFAULT '', `lastdata` varchar(80) NOT NULL DEFAULT '', `duration` int(11) NOT NULL DEFAULT '0', `billsec` int(11) NOT NULL DEFAULT '0', `disposition` varchar(45) NOT NULL DEFAULT '', `amaflags` int(11) NOT NULL DEFAULT '0', `accountcode` varchar(20) NOT NULL DEFAULT '', `uniqueid` varchar(32) NOT NULL DEFAULT '', `userfield` varchar(255) NOT NULL DEFAULT '', `filename` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `calldate` (`calldate`), KEY `accountcode` (`accountcode`), KEY `uniqueid` (`uniqueid`), KEY `dst` (`dst`), KEY `src` (`src`) ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; mysql> grant all on asterisk.* to 'asterisk_user'@'localhost' identified by '232d2edxse3e';
mysql>CREATE TABLE `cel` ( `id` int(11) NOT NULL AUTO_INCREMENT, `eventtype` varchar(30) NOT NULL, `eventtime` datetime NOT NULL, `cid_name` varchar(80) NOT NULL, `cid_num` varchar(80) NOT NULL, `cid_ani` varchar(80) NOT NULL, `cid_rdnis` varchar(80) NOT NULL, `cid_dnid` varchar(80) NOT NULL, `exten` varchar(80) NOT NULL, `context` varchar(80) NOT NULL, `channame` varchar(80) NOT NULL, `src` varchar(80) DEFAULT NULL, `dst` varchar(80) DEFAULT NULL, `channel` varchar(80) DEFAULT NULL, `dstchannel` varchar(80) DEFAULT NULL, `appname` varchar(80) NOT NULL, `appdata` varchar(80) NOT NULL, `amaflags` int(11) NOT NULL, `accountcode` varchar(20) NOT NULL, `uniqueid` varchar(32) NOT NULL, `linkedid` varchar(32) NOT NULL, `peer` varchar(80) NOT NULL, `userdeftype` varchar(255) NOT NULL, `eventextra` varchar(255) DEFAULT NULL, `userfield` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), KEY `uniqueid_index` (`uniqueid`), KEY `linkedid_index` (`linkedid`), KEY `eventtime` (`eventtime`), KEY `exten` (`exten`), KEY `eventtype` (`eventtype`) ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
mysql> CREATE TABLE IF NOT EXISTS `queue_log` ( id int(10) UNSIGNED NOT NULL AUTO_INCREMENT, time timestamp NULL DEFAULT '0000-00-00 00:00:00', callid varchar(32) NOT NULL default '', queuename varchar(32) NOT NULL default '', agent varchar(32) NOT NULL default '', event varchar(32) NOT NULL default '', data1 varchar(100) NOT NULL default '', data2 varchar(100) NOT NULL default '', data3 varchar(100) NOT NULL default '', data4 varchar(100) NOT NULL default '', data5 varchar(100) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; mysql> \q Bye
/etc/asterisk/extconfig.conf
in /etc/asterisk/extconfig.conf
/etc/asterisk/extconfig.conf
queue_log => odbc,asterisk
*CLI> odbc show asterisk ODBC DSN Settings ----------------- Name: asterisk DSN: MySQL-asterisk Last connection attempt: 1970-01-01 07:00:00 Pooled: No Connected: Yes
globals { WAV=/var/calls; // WAV MP3=/var/calls; // mp3 RECORDING=1; // , 1 - . }; macro recording (calling,called) { if ("${RECORDING}" = "1"){ Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${calling}-${called}); Set(datedir=${STRFTIME(${EPOCH},,%Y/%m/%d)}); System(mkdir -p ${MP3}/${datedir}); System(mkdir -p ${WAV}/${datedir}); Set(monopt=nice -n 19 /usr/bin/lame -b 32 --silent "${WAV}/${datedir}/${fname}.wav" "${MP3}/${datedir}/${fname}.mp3" && rm -f "${WAV}/${fname}.wav" && chmod o+r "${MP3}/${datedir}/${fname}.mp3"); Set(CDR(filename)=${fname}.mp3); Set(CDR(recordingfile)=${fname}.wav); Set(CDR(realdst)=${called}); MixMonitor(${WAV}/${datedir}/${fname}.wav,b,${monopt}); }; }; _XXXXXX => { &recording(${CALLERID(number)},${EXTEN}); Dial(SIP/83843${EXTEN}@multifon,180,tT); HangUP(); } // end of _XXXXXX
/var/calls
ls /var/calls/2016/ -l total 24 drwxr-xr-x 19 asterisk asterisk 4096 May 31 10:10 05 drwxr-xr-x 30 asterisk asterisk 4096 Jun 30 10:02 06 drwxr-xr-x 31 asterisk asterisk 4096 Jul 31 10:18 07 drwxr-xr-x 31 asterisk asterisk 4096 Aug 31 09:00 08 drwxr-xr-x 26 asterisk asterisk 4096 Sep 26 09:51 09
nodejs
and npm
package manager on the server, if they are not already installed (using yum
or apt/aptitude/apt-get
)pm2
npm install -g pm2
/opt/stat.vistep.ru
mkdir /opt/stat.vistep.ru cd /opt/stat.vistep.ru
unzip skript_name.zip
"dbhost":"localhost", "dbuser":"asterisk_user", "dbpassword":"232w2edxse3e", "db":"asterisk", "timezone":"Asia/Novokuznetsk", // <--- "fileMask": /\.*/ //
pm2 start stat.vistep.ru.js --name "ViStep.RU stat"
pm2 startup ubuntu # centos, gentoo pm2 save
support@vistep.ru
0jnoiLJNFDr4-3r2f4
Source: https://habr.com/ru/post/310988/
All Articles