Asterisk 内部呼叫、保存录音、mysql 记录 cdr

xiaoxiao2021-02-28  50

内部呼叫

sip.conf

[general] context=public allowoverlap=no bindaddr=192.168.1.1 ;通讯服务器 IP bindport=5060 ; Asterisk 端口 udpbindaddr=0.0.0.0 tcpenable=yes tcpbindaddr=0.0.0.0 transport=udp srvlookup=yes allow=g729 allow=ulaw allow=alaw [111] secret=aaa ;密码,随意设置 port=5060 ;SIP端口地址 type=friend ;类型为friend host=dynamic ;要求号码注册,以便Asterisk可以知道如何找到电话 qualify = yes ;确认远端设备是否可达 nat = no ;如果一个号码在NAT设备后面,例如防火墙,配置为yes context = internal ;定义了指令的地点,用于控制电话的权限,及如何处理此号码的呼入呼叫。 canreinvite = no ;让Asterisk媒体通道经过自己,而不允许RTP信息直接在端点之间传送 [222] secret=aaa port=5060 qualify = yes nat = no context = internal canreinvite = no type=friend host=dynamic

extensions.conf

[internal] exten => 111,Answer() same => n,MixMonitor(${STRFTIME(${EPOCH},,%Y%m%d%H%M%S)}-${CALLERID(num)}-${EXTEN}.wav) ;记录行如 20180327194417-222-111.wav 音频文件 same => n,Dial(SIP/111) same => n,Hangup() exten => 222,1,Answer() same => n,MixMonitor(${STRFTIME(${EPOCH},,%Y%m%d%H%M%S)}-${CALLERID(num)}-${EXTEN}.wav) same => n,Dial(SIP/222) same => n,Hangup()

mysql 记录

cdr_mysql.conf

[global] hostname=localhost dbname=asterisk table=cdr password=pwd user=root port=3306 sock=/var/lib/mysql/mysql.sock cdrzone=Asia/Shanghai ;see /usr/share/zoneinfo/ userfield=1 [columns] ;static "<value>" => <column> ;alias <cdrvar> => <column> alias start => calldate ;alias clid => <a_field_not_named_clid> ;alias src => <a_field_not_named_src> ;alias dst => <a_field_not_named_dst> ;alias dcontext => <a_field_not_named_dcontext> ;alias channel => <a_field_not_named_channel> ;alias dstchannel => <a_field_not_named_dstchannel> ;alias lastapp => <a_field_not_named_lastapp> ;alias lastdata => <a_field_not_named_lastdata> ;alias duration => <a_field_not_named_duration> ;alias billsec => <a_field_not_named_billsec> ;alias disposition => <a_field_not_named_disposition> ;alias amaflags => <a_field_not_named_amaflags> ;alias accountcode => <a_field_not_named_accountcode> ;alias userfield => <a_field_not_named_userfield> ;alias uniqueid => <a_field_not_named_uniqueid>

sql

连接数据库,执行下述 sql

CREATE DATABASE asterisk DEFAULT CHARSET utf8; USE asterisk; CREATE TABLE `cdr` ( `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 '', `userfield` varchar(255) NOT NULL default '' ); ALTER TABLE `cdr` ADD `uniqueid` VARCHAR(32) NOT NULL default ''; ALTER TABLE `cdr` ADD INDEX ( `calldate` ); ALTER TABLE `cdr` ADD INDEX ( `dst` ); ALTER TABLE `cdr` ADD INDEX ( `accountcode` );

cdr.manager.conf

enable=yes

modules.conf

; make menuselect 取消 app_cdr,勾选 cdr_mysql load => cdr_mysql.so

cdr.conf

enable=yes

重启 Asterisk

service asterisk restart

Windows 配置 eyeBeam

拨打电话

查看记录

[root@FJr-YZ-KVM-255-161 monitor]# ll | grep 20180409174036-111-222.wav -rw-r--r-- 1 root root 44 Apr 9 17:40 20180409174036-111-222.wav

转载请注明原文地址: https://www.6miu.com/read-2630946.html

最新回复(0)