配置文件以下:php
asterisk.conf——主配置文件,告知Asterisk環境目錄位置,包含其餘全部配置文件所包含的目錄,缺省會存放在/etc/asterisk目錄下,也能夠經過命令參數使用不一樣的asterisk.confjava
zaptel.conf——配置板卡驅動,配置通道python
adtranvofr.conf——配置幀中繼語音通道mysql
agents.conf——配置代理通道linux
h323.conf——配置H323通道git
iax.conf——配置IAX通道sql
mgcp.conf——配置MGCP(媒體網關控制協議,應用於多媒體網關單元之間)數據庫
modem.conf——配置ISDN,不是modmapi
phone.conf——配置linux電話設備網絡
sip.conf——配置SIP通道
sip_notify.conf——配置SIP消息通知
skinny.conf——配置Cisco SCCP通道
vpb.conf——配置Voicetronix卡通道
zapata.conf—— 配置ZAP Digium卡通道
extensions.conf——Asterisk的撥號方案,它全部的操做控制和執行流程的主要方案,它控制呼入呼出如何被處理和路由。
extensions.ael——擴展撥號方案語言
features.conf——配置呼叫停泊,parking.conf文件名字已被修改成features.conf。自定義按鍵配置,同時還有一些系統默認的功能鍵
extconfig.conf——經過res_data方式部署擴展配置,例如經過ODBC
alarmreceiver.conf——警報接收設置
enum.conf——電話號碼映射查找配置
dundi.conf——分佈式全球號碼發現(DUNDi)是一個對等(P2P)協議,用於提供等價於那些由電子號碼(ENUM)提供的服務。DUNDi有一個超過ENUM的優勢是它更有彈力,由於它缺少一個故障中心點。DUNDi可以被用於增長DNS和它與IP語音(VOIP)服務一塊兒發展。
festival.conf——文本語音轉換配置
indications.conf——鈴音清晰度配置
meetme.conf——會議配置
musiconhold.conf——音樂保持配置
queues.conf——隊列配置
voicemail.conf——語音郵件配置
alarmreceiver.conf——警報接收配置
alsa.conf——致力於爲Linux提供高質量的聲音子系統
cdr_odbc.conf
cdr_pgsql.conf——童話詳單數據庫存儲設置
codecs.conf——Asterisk編碼配置文件
dnsmgr.conf——DNS管理
httpd.conf——內置http server配置
logger.conf——配置系統日誌
manager.conf——配置管理接口
modules.conf——配置可加載模塊
odbc.conf——ODBC驅動配置
oss.conf——open source software配置
privacy.conf——私密配置
res_odbc.conf——實時數據庫加載配置,能夠把配置文件放在數據庫中
rpt.conf——循環應用配置
rtp.conf——配置RTP(實時)端口
say.conf——讀出標準的數字和日期
users.conf——用戶定義配置文件
adsi.conf
asterisk.adsi
telcordis-1.adsi——配置模擬顯示服務接口
capi.conf——CAPI是計算機輔助面對面訪問的簡稱,是使用基於計算機的問卷的一種調研技術,CAPI能夠祥CATI同樣控制複雜的邏輯,並且它能夠在各類各樣的場所使用,購物中心、論壇或者其餘公共場所,只要是被訪者能夠接觸到電腦的地方。
sirrix.conf——配置sirrix ISDN通道
cdr_mysql.conf——配置通話詳單在mysql中存儲
prepaid.conf——預付費卡配置
ldap.conf——訪問x.500目錄訪問的標準協議
bonjour.conf——蘋果服務發現接口支持
enumagi.conf——電話號碼映射查找配置文件
zeroconf.conf——via zeroconf是一個輕量級的服務發現協議,適用於註冊和尋找附近的可用協議、設備等等。它是bonjour的開源名稱,bonjour是蘋果公司力推的一個service echotraining=yes。
Asterisk目錄架構:
/etc/asterisk——Asterisk主目錄,包含其餘關於Asterisk的配置文件
/usr/lib/asterisk/modules——包含全部能夠加載Asterisk模塊(應用程序/編輯器/格式和有用通道),在Asterisk啓動時會加載這些模塊(能夠編輯modules.conf)
/var/lib/asterisk——比較重要的是astdb文件與agi-bin目錄;astdb包含Asterisk當地數據庫信息
sounds/——全部聲音提示的文件在這裏,包括Asterisk源代碼中的sounds.txt文件
modmp3/——若是配置了音樂支持,應用程序會在這個目錄下查找mp3(用CBR從文件中去除身份標籤)
keys/——使用公鑰和私鑰系統認證與一個由RSA數字簽名造成的一對等聯結。公鑰和私鑰的擴展名分別爲.pub和.key
firmware/——包含了不少Asterisk相兼容的設備固件,它只有iax/這個子目錄,其中有Digium的IAXy的二進制固件鏡像。
images/——只有在較多的支持而且利用圖解式的圖像設備被髮布,這個目錄將會與相應的目錄有更大的關聯
/var/lib/asterisk/agi-bin——包含全部腳本,能夠經過許多已經創建的AGI應用程序與Asterisk鏈接。
/var/spool/asterisk——保存日誌,包括outgoing/、gcall/、tmp/和voicemail/。
撥號方案經常使用函數:
Answer()——應用於接聽正在響鈴通道,它不須要任何參數
Playback()——應用在通道上播放事先錄製好的語音文件.指定一個文件名(不帶擴展名),可使用絕對路徑或者相對路徑
Hangup()——應用在掛斷一個正在活動的通道
Background()——它也播放事先錄製好的語音文件,但它等待按鍵,而後執行對應extension。防止Backgroumd()後超出按鍵範圍,使用i來解決問題.防止Background長時間沒有選擇,使用t來解決問題。
Goto()——應用使得在撥號方案的不一樣部分有序的轉移很是容易。Goto()應用有三個參數分別是context, extension和priority。
Dial()——有4個參數。第一個是呼叫的被叫地址。如:SIP/50000或Zap/1. 能夠同時撥打多個通道如:exten=>601,1,Dial(Zap/1&SIP/50000&IAX&60000);第二個是:超時,單位「秒「. 如不給定,將直到接聽或主叫掛機。若是超時後被叫地沒有應答,則會繼續Dial()的extension下一個priority.若是被叫地通道忙,Dial()將轉到priority n+101(n是Dial倍調用的Priority),若是存在的話,將可以處理被叫地忙得方式接聽未接電話;第三個是可選參數,它能夠影響到Dial()的行爲,如:exten => 601,1,Dial(SIP/50000,30,Ttwr)其中T表示容許主叫用戶按"#"轉移呼叫;t表示容許被叫用戶按」#「轉移呼叫;r表示爲被叫用戶產生振鈴聲;w用戶按」*「鍵開始錄音;最後一個是URL參數。如exten=>601,1,Dial([email=SIP/60000@asterisk.voip.org]SIP/60000@asterisk.voip.org[/email])exten=>602,1,Dial(Zap/1/5732381)任何參數均可覺得空。如exten=>601,1,Dial(SIP/60000,,T)或exten => 601,1,Dial(SIP/60000)
extensions.conf包含四部分(context,extension,priorities,applicaition)
context: 用於對extensions組命名,把撥號方案的不一樣部分進行分離,省得交織在一塊兒。表示方法是把名字放在[]的中間,名字只能用a~z,A~Z,0~9,以及連字號和下劃線組成(空格再也不容許的字符裏面,context中不要使用空格)。全部放在context定義以後的指令都是這個context一部分,直到下一個context定義的開始。
exten=>name, priority, application()
撥號方案中的變量有3種:全局變量、通道變量和環境變量
全局變量——在extensions.conf文件的開始用[globals]這個context定義或利用SetGlobalVol()應用。如[globals] 80000=Zap/1 或 [internal] exten => 123,1,SetGlobalVar(80000=Zap/1)
通道變量——通道變量與特定的呼叫相關的變量,通道變量只能在當前呼叫存在期間定義,並只能用於參與該呼叫的通道.通道變量使用Set()應用來設置。如extern => 601, 1, Set(80000=Zap/1)
環境變量——是一種在Asterisk中訪問操做系統環境變量的方法。這些變量以${ENV(var)}形式引用,其中的var是索要引用的操做系統環境變量。例:
[globals]
PSTN=Zap/1
TEST=SIP/80000
[test]
exten => s,1,Answer()
exten => s,2,Background(enter-ext-of-person)
exten => 101,1,Dial(${PSTN},10)
exten => 101,2,Playback(vm-nobodyavail)
exten => 101,3,Hangup()
exten => 101,102,Playback(tt-allbusy)
exten => 101,103,Hangup()
exten =>102,1,Dial(${TEST},10)
SIP.conf的經常使用參數配置:
sip.conf用於配置SIP通道。
[1005]——撥號方案實例
username=1005——用戶名
type=friend——類型,友好
secret=123456——密碼,sip呼入時驗證用
qualify=no——資格
port=5060——端口,sip呼入使用的默認端口
nat=yes——網絡地址轉換,內網穿透
host=dynamic——主機名動態獲取
context=from-sql——對應撥號方案中的標籤from-sql
canreinvite=no——不容許重複邀請
allow=ulaw——容許使用gsm、ulaw、G72九、G7十一、pcm、vox、wav等音頻格式,不配置此項默認gsm格式。
extensions.conf撥號方案配置文件
[from-sql]
exten => 111,1,Answer() ——撥打111的第一步操做,進行應答摘機
exten => 111,n , AGI(start.php) ——撥號方案執行start.php腳本,AGI腳本(如C、Ruby、Perl、java、python)默認存放在/var/lib/asterisk/agi-bin/下
exten => 111,n, hangup ——下一步操做,掛機
features.conf自定義按鍵配置文件
主要須要設置featuremap(用於配置須要觸發的按鍵)與applicationmap(配置觸發按鍵後的動做)標籤中的參數。
<1 配置featuremap>
[featuremap]
testkey1 => *3 ——定義*3鍵
Testkey2 =>#7 ——定義#7鍵
<2配置Applicationmap>
[applicationmap]
testkey1 => *3,callee,Playback, tt-monkeys
Testkey1被叫按下*3後的動做是播放tt-monkeys這個聲音文件。
語法: <featurename>=><keysequence>,<caller|callee>,<App>[,App Args]
featurename——按鍵信息,主叫權限/被叫權限,執行的系統程序
<3配置其餘須要的參數>
featuredigitimeout=20000——按鍵超時時間,單位:秒
atxfernoanswertimeout=15——轉接過程當中呼叫等待的時間,單位:秒
<4撥號方案中的配置>
在撥號方案中須要include引入featuremap中自定義的按鍵名稱,以及按鍵觸發動做的腳本名稱也須要引入(動做腳本定義在撥號方案中,以標籤的形式定義)
[key_test]
include=>testkey1
include=>keycommand
exten=>_XXX,1,Set(DYNAMIC_FEATURES=nway-start)
exten=> _XXX,n,Dial(SIP/${EXTEN})
[keycommand]
exten =>s,1,SoftHangup(${BRIDGEPEER})
meetme.conf配置asterisk的會議功能
[rooms]
語法:Usage is conf =>confno[,pin][,adminpin]
舉例:conf => 1001,123456,654321
conf =>1002
使用conf標籤開始,1001是會議室編號,123456是會議室密碼,654321是管理員密碼
MeetMe()函數有三個參數:會議室名、可選項、密碼
可選項有這幾個:
a——設置此項,用戶將使用高級管理員進入會議
p——設置此項,Asterisk將在按「#」鍵後推出會議
s——設置此項,Asterisk將在按「*」鍵後提供一個菜單給用戶
m——設置此項,用戶只能收到來自會議室的音頻。
注:配置meetme.conf後須要重啓asterisk以從新讀取該配置文件中的參數配置。
例:
exten=>4000,1,MeetMe,4000 將直接呼叫着(會議成員)加入到號碼4000的會議。
exten=>100,1,MeetMe,4000|mp|1234 將容許呼叫着進入會議裏只能聽,將容許呼叫者經過按"#"鍵離開會議,和須要輸入一個有效密碼1234以前加入。
exten=>100,2,MeetMeCount,4000 播放參與人數
exten=>100,3,Playback,callersin
exten=>100,4,MeetMe,4000 加入呼叫者到4000會議室。
實現一個完整功能的會議系統的步驟:
編輯meetme.conf和爲每一個會議建立一個的登陸入口
編輯extensions.conf和利用MeetMe應用內部撥號計劃呼叫會議和利用MeetMeCount引用隨時播放參與者號碼。
Zapata.conf配置Asterisk與zaptel驅動程序之間通信。
信令類型是惟一強制設置,在分配一個通道以前,必須定義信令類型。若是鏈接的模擬電話設備,注意模擬信令是致使混亂的來源。FXS通道採用FXO信令,反之,Asterisk通知內部設備愛用相反方式。FXO接口卡採用FXS信令,一樣須定義。設置通道信令類型,這些參數必須與zaptel驅動配置匹配。設置基於採用什麼樣的辦卡,若是通道信令設置錯誤,若是配置描述與zaptel驅動配置不匹配,或者若是卡不存在而配置正確,Asterisk不會工做。正確的設置一般包含下面4種信令中一種:fxs_ks,fxo_ks,pri_cpe or pri_net。該設置沒有缺省值,必須在分配通道前設置信令值。
Asterisk支持的信令類型:
em:E&M Immediate Start
em_w:E&M Immediate Start
em_e1:E&M CAS signalling for E1 lines
........
配置通道:
context=testflow ——首先進入撥號方案
group=1
channel=>1-15,17-31
channel=>32-46,48-62
channel=>63-77,79-93
channel=>94-108,110-124
modules.conf配置asterisk未加載的模塊。默認所有加在,能夠在此處noload不須要的模塊。
zaptel.conf配置板卡驅動,配置通道。
span=1,1,0,ccs,hdb3
bchan=1-15 ——bchan配置語音通道
dchan=16 ——dchan配置信令通道
bchan=7-31
manager.conf配置管理接口,這個管理接口是用於遠程瀏覽和修改控制檯
交互方式:telnet host 5038
#vi /etc/asterisk/manager.conf
[general]
enabled=yes
port=5038
bindaddr=0.0.0.0
[theuser]
secret=somepassword
read=system,call,log,verbose,command,agent
write=system,call,log,verbose,command,agent
Asterisk的應用指令:
Authenticate——鑑別用戶
VMAuthenticate——根據「voicemail.conf"鑑別用戶
Curl——接受外接URLs的修復,支持POSTING
DUNDiLookup——用DUNDi查詢號碼
SendDTMF——發送獨裁的DTMF數據
SendImage——發送圖像檔案
SendText——發送給客戶正文消息
SendURL——發送客戶URL以顯示
System——執行系統命令
Transfer——將訪客轉移到另外一個擴展名
TrySystem:0——回覆執行系統命令
Wait ——稍等
WaitExten——稍等
WaitForRing——等待呼叫申請
WaitMusicOnHold——等待,在線音樂