1. 程式人生 > >Asterisk 內部呼叫、保存錄音、mysql 記錄 cdr

Asterisk 內部呼叫、保存錄音、mysql 記錄 cdr

內部呼叫

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

這裡寫圖片描述

撥打電話

這裡寫圖片描述

檢視記錄

[[email protected]-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

這裡寫圖片描述

相關推薦

Asterisk 內部呼叫錄音mysql 記錄 cdr

內部呼叫 sip.conf [general] context=public allowoverlap=no bindaddr=192.168.1.1 ;通訊伺服器 IP bindport=5060 ; Asterisk 埠 udpbindaddr=

DOM4j解析修改刪除增加XML的方法

exceptio set null 增加 gb2 itl str owin chang //XML文件 <?xml version="1.0" encoding="gb2312"?> <PhoneInfo> <Brand name="華為

IO編程__緩沖字符流__應用__記事本的打開功能

導入 fin fault == tac form iter npe echo 一、代碼如下 package www.tainiu.wenjian; import java.awt.event.ActionEvent; import java.awt.even

[轉載]matlab高光譜影像讀取分塊

nvi blank cloud 說明 byte matlab spa ltib 無法顯示 原文地址:matlab高光譜影像讀取、保存、分塊作者:wind_靜水流深_cloud 高光譜影像由於含有近百個波段,用matlab自帶的圖像讀寫函數imread和imwrite往往不能

Scrapy教程——搭建環境創建項目爬取內容文件

.com 目錄 tor strong targe self 文件名 ng- start 1、創建項目 在開始爬取之前,您必須創建一個新的Scrapy項目。進入您打算存儲代碼的目錄中,運行新建命令。 例如,我需要在D:\00Coding\Python\scra

逆向---01.Nop中文字符串搜索修改後程序

class target down get blog ctrl 反匯編 生成文件 輸入 基礎知識:(Nop:刪除跳轉) gcc編譯鏈接命令: gcc -o 生成文件名 源文件名 gcc編譯成匯編代碼:gcc -o 生成文件名 -S 源文件名 VS查看匯編代碼:(調試

MSIL實用指南-局部變量的聲明和加載

dem opcode 所在 icm open cmod key 得到 closed 這一篇講解方法內的局部變量是怎麽聲明、怎樣保存、怎樣加載的。 聲明局部變量聲明用ILGenerator的DeclareLocal方法,參數是局部變量的數據類型,得到一個局部變量對應的創建類L

Opencv-Python:圖像尺寸圖像的讀取顯示與復制

常用 BE color reat size title enc creat alt Opencv-Python:圖像尺寸、圖像的讀取、顯示、保存與復制 原創 2017年11月23日 21:30:49 4440 在使用opencv的方法時,首先必須導入opencv

基於Html5 Plus + Vue + Mui 移動App開發(三)-文件操作(讀取更新數據)

mes das parse 移動 分享 gif ont 包括 ole   實全資訊采用基於Html5 Plus + Vue + Mui 移動App。主要實現功能包括: 實現搜索站點設置 實現搜索關鍵字定義 實現搜索資訊保存、刪除功能。 主界面實現關鍵字搜

【arm】arm架構64位入門基礎:架構分析呼叫規則指令集程式除錯以及參考手冊

Date: 2018.8.21 1、參考 2、ARM64位架構分析 ARM64位採用ARMv8架構,64位操作長度,對應處理器有Cortex-A53、Cortex-A57、Cortex-A73、iphones的A7和A8等。 AARCH64是全新32位固定長

C#流總結(文件流網絡流BufferedStreamStreamReader/StreamWriterTextReader/TextWriter)

accept ron 格式 初始 oar listener style ble 流數據 一、文件流FileStream類主要用於讀寫磁盤文件。常用於向磁盤存儲數據或讀取配置文件。讀取文件:復制代碼 //文件流:讀取 FileStream fileStream = F

查看磁盤iofree系統進程ps網絡狀態netstatLinux抓包tcpdump

ipv mon 1.3 sda verify available x86 4.0 length 查看磁盤io性能狀態 iostat -x 查看磁盤使用(安裝包與sar的安裝包一起)主要查看%util [root@shu-test ~]# iostat -x Linux 3.

python性能優化優化泄露;與其他語音比較效率如何?

語音 gpo .org .html www. com log .cn amp 1、內存泄露:http://www.cnblogs.com/xybaby/p/7491656.html 2、內存優化:http://www.cnblogs.com/xybaby/p/7488216

Redis系列十:緩雪崩穿透預熱更新降級

布隆 隊列 class 系統 新頁面 研究 後臺 默認值 二級 一、緩存雪崩 緩存雪崩我們可以簡單的理解為:由於原有緩存失效,新緩存未到期間(例如:我們設置緩存時采用了相同的過期時間,在同一時刻出現大面積的緩存過期),所有原本應該訪問緩存的請求都去查詢數據庫了,而對數據庫C

操作系統編程語言分類變量管理定義變量

解釋器 value Go 需要 比較 應該 強調 調試 dbo 1,什麽是操作系統 操作系統就是軟件與硬件之間的一個操作程序。 2、為什麽要有操作系統 (1)控制硬件 (2)把控制硬件的接口做成一個完美的接口,供用戶使用。 3、操作系統的三大組成 應用程序 : 操作系統

穿透擊穿雪崩概念及解決方案

失效 當前 過期 直接 集中 設置 查詢 過濾 導致 緩存穿透 概念 訪問一個不存在的key,緩存不起作用,請求會穿透到DB,流量大時DB會掛掉。 解決方案 采用布隆過濾器,使用一個足夠大的bitmap,用於存儲可能訪問的key,不存在的key直接被過濾; 訪問key未在

【Git】(1)---工作區版本庫遠程倉庫

size 一個 工作區 本地 -s 新建 這樣的 cache 通過 工作區、暫存區、版本庫、遠程倉庫 一、概念 1、四個工作區域 Git本地有四個工作區域:工作目錄(Working Directory)、暫存區(Stage/Index)、資源庫(Repos

擊穿穿透雪崩

color www 存在 數據庫 直接 agg 訪問 隨機 從數據 參考文章:緩存穿透、緩存擊穿、緩存雪崩概念及解決方案 一. 緩存擊穿 1. 概念   緩存擊穿指的是高並發情況下在緩存中查詢時該資源不存在,導致緩存無法命中,所有請求擊穿到後端數據庫系統進行查詢,使數

iOS 錄音

-(void)testClick{ [_recorder record]; [self performSelector:@selector(stopRecorder) withObject:nil afterDelay:15]; } -(void)stopRecorder{

穿透擊穿雪崩及其解決方案

信息 不存在 相同 但是 崩潰 存儲 搜索 普通 攻擊 1.緩存穿透   緩存穿透是指查詢一個一定不存在的數據,因為緩存中也無該數據的信息,則會直接去數據庫層進行查詢,從系統層面來看像是穿透了緩存層直接達到DB,從而稱為緩存穿透,沒有了緩存層的保護,這種查詢一定不存在的數據