Asterisk PBX 配置文件 - 1

簡介

Asterisk PBX 有一套自定義的配置文件格式,通過一個內置的配置文件解析器(Parser)進行配置文件的讀寫操作。從 Asterisk 1.2 版本以後,配置文件的格式有了一些改進,增加了配置模板(template configuration)的支持。配置模板(template configuration)極大的提高了配置的靈活性和可擴展性。

配置文件的改進是在通用配置解析器層次實現的,因此,本文件介紹的這種特性適用於 Asterisk PBX 各個配塊的配置文件。本文將簡要介紹 Asterisk PBX配置文件的格式。

基本語法

Asterisk 配置文件的基本格式類似下面的樣子:


在某些文件中(如: mgcp.conf, zapata.conf 和 agents.conf),格式略有一些差別。這些文件中,配置文件類似如下的樣子:


這 個配置文件可以說是配置模板的原型,簡單的說,上面的配置生成了兩個配置對像,第一個object1包含了從label1到label2的配置屬性(不包 括 label3/label4);第二個object2包含了從label1到label4的配置屬性。這樣配置顯然比重複的寫兩段配置看上去要優秀一些, 但不難看出,如果需要配置更多有不同屬性的配置對像,這種配置方法還是顯得比較困難了。

基於模板的新配置文件則可以更好的支持這種需求。配置模板相當於C++中的一個基本類,你可用該基類來創建一個對像,也可以繼承這個類,增加基類屬 性/方法和重載基類的屬性/方法等。簡單的說,如果你需要配置十個SIP用戶,這些用戶大部份均是 friend 類型,非固定IP接入,使用GSM prec,那麼,你可以把這些屬性定義爲一個模板,當實際配置一個用戶時,引用這個模板,就不需要再重複定義上面這些屬性了。

模板化的配置文件在原來的配置文件格式上略有改變,一個模板化配置文件類似如下的樣子:


很明顯,新的配置文件在原來的 section 的行增加了一個 options 選項參數,這個選項用於定義模板,引用模板或隱藏模板。所有已定義的對像都可以被看作一個模板來引用。

注意:在節名稱中括號"]"與配置的小括號"("間不能有空格。

註釋行

在Asterisk PBX的配置文件中,以分號";"開始的行都被當作註釋行來處理。新的配置文件引入了多行註釋的支持,多行註釋由分號和兩個減號 ";--"開始,以兩個減號加分號"--;"結束。除了支持多行註釋處,這種註釋還支持行內註釋,即,在同一行中,位於 ";--""--;"以外的內容不會被當成註釋,而是當成正常的配置內容來對待。瞭解C語言的用戶更容易理解這種註釋,因爲它與C++中"//"註釋和"/* */"註釋的功能和差別是一樣的。配置文件中的註釋行類似如下的樣子:


包含其它配置文件

Asterisk PBX 所有配置文件都可以通過 #include來包含其它配置文件的內容,被包含文件的內容將被加入到當前配置文件中include所在位置,例如:


改進後的配置文件解析器還允許把一個可執行文件的輸出內容包含到當前配置文件中。這可以 說是一個非常有用的改進,因爲這使得用戶可以根據當前系統狀況作出一些處理後,再生成相應的配置段,例如,你可以從一個XML文件來生成當前的 sip 用戶配置,也可以從數據讀取用戶信息以生成配置文件。允許這個新的特性需要在 asterisk.conf中設置 execincludes 屬性:


當設置了允許 execincludes 後,可以用類似下面的方法來添加一個 exec 包含:


未完待續...

發佈了5 篇原創文章 · 獲贊 4 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章