Asterisk權威指南 第五章 使用者裝置配置

2021-06-19 21:55:47 字數 4511 閱讀 6738

本章我們將研究連線到asterisk的使用者裝置,一般來說是某種形式的voip**。在asterisk中配置通道供裝置使用相對來說比較簡單,但你也需要配置裝置本身以使得它知道向誰發起呼叫(這已經跟asterisk沒有關係了,每個硬體廠商都有自己的工具讓你配置裝置的)。換句話說,配置乙個裝置分為兩個部分:1)告訴asterisk關於裝置的事情,2)告訴裝置關於asterisk的事情。

注:asterisk跟sip協議是什麼關係

sip是一種p2p協議,儘管在有些配置中有伺服器的概念(閘道器作為伺服器), 但協議本身還是站在p2p的角度去看問題的。 這意味著sip**之間是直連的, 中間不經過pbx。 但實際情況是很多sip會話是經過伺服器的, 以asterisk為例, pbx是所有連線的中心。 當通過asterisk撥打sip**的時候, 實際上有兩個呼叫: 乙個是從主叫裝置到asterisk, 另乙個是從asterisk到被叫裝置。 asterisk把兩個通道連線起來了。 從sip**的角度來說, 你需要把它配置成所有的呼叫都要通過asterisk, 儘管它不通過asterisk也能連線到其他sip**。 sip很複雜也很靈活, 配置看起來會有點困難, 好在asterisk並不需要那麼大的靈活性。

4裝載通道配置檔案

5測試,確認裝置已註冊

6模擬**

7用於測試裝置的基本撥號計畫

8內部原理:第一次呼叫

9結束語

在開始討論asterisk的**配置問題之前,我們先介紹一下有關**命名的最佳實踐,以便將使用者、分機號和**的概念區分開來。

asterisk分機號

分機號是乙個很關鍵的asterisk概念。在大多數pbx中,乙個分機號就是一組數字,用來呼叫乙個**或乙個服務。對asterisk來說,分機號是撥號計畫中一組指令的名字。把分機號看成指令碼名就對了。分機號可以是一組數字,也可以是乙個名字(例如voicemail)。整本書都會詳細討論分機號的問題,但在那之前我們需要先配置一些**。

區別分機號和它所做的事情是asterisk的乙個重要特性,分機100的行為實際上是由乙個指令碼定義的。這一特性對「辦公桌輪用」一類的需求就更有意義了。

「辦公桌輪用」允許某人登入乙個裝置,然後就可以從該裝置接聽他的**了。打比方,我們有三個銷售,一般都不在辦公室,但每個月都要花幾天時間回辦公室貼發票。考慮到他們不太可能同時出現在辦公室,與其給他們每人配一部**,不如讓他們分享一部**(或者更進一步,讓更大的一群人分享一組**,比如說,三部**)。這個場景就明顯要求把使用者/分機號和實際的**裝置區分開。

所以哪些名字不適合用來給**命名呢?像人名,比如說[simonlebon],就不合適,因為joan jett和rick astley也可能用那部**。同樣,用分機號給**命名也不適合,比如[100],因為你將來可能會把它用於分機號160,或者讓多個人分享該部**。出於安全方面的考慮,用數字帳號名也不好,這一點會在第26章 安全中詳細談到。

一種常用的方法是用裝置的mac位址給**命名。該標識唯一,是跟著裝置走的,跟使用者和分機號都沒有關係。很多公司處於資產管理的目的會給**貼上條形碼和其他資訊,只要這些資訊是關於裝置,而不是關於人的,也可以用來給**命名。

如何給**命名取決於你,我們主要是想把**的概念跟它的所有者,甚至是位置分離開,因為這些不在asterisk的控制範圍內,而且隨時會變。

本書用mac位址表示**。你可能有自己的選擇。

但是有一點,我們關於**命名的建議不是出於技術上的限制。你想怎樣命名都可以,只要符合asterisk的裝置命名規範(字元、數字,不能有空格)。

有三種終端裝置可以提供給使用者當成**使用。他們是硬**、軟**和模擬**介面卡(ata)。

軟**是一種執行在台式電腦或筆記本上的軟體。語音要經過計算機的聲音系統,所以用這種軟體時一般用耳機效果會好些。最近也有了執行智慧型手機上的軟**。軟**的介面一般看起來像是普通**,但不是必須的。

模擬**介面卡(ata)使得傳統的模擬**(或者其他模擬裝置,像傳真機、無繩**和尋呼機等)可以接入sip網路,一般是乙個三明治大小的盒子,有乙個rj-11口(一般稱為fxs口)用來接**機,乙個rj-45口用來接網路,和乙個電源口。有的ata支援不止乙個**。

硬**的優點是它在聲音方面的效果會好一些。一般***一點都會過濾環境噪音,保留人類語音,並調整波形。人們用傳統**用習慣了,硬**更容易被人接受些。還有,硬**並不要求你開啟計算機才能打**。

缺點是,相對於很多免費的高質量軟**來說,硬**有點貴,也不好攜帶。另外,你的辦公桌可能不夠地方,又或者你並不總是待在乙個地方。

軟**的缺點是它不太像一台裝置,打**時要戴上耳機,計算機有可能會時不時地執行一些後台任務導致cpu卡死。

ata的優點是允許你把模擬裝置接入sip網路,像無繩**、尋呼機和響鈴器等。網路不好的時候還可以接入老的線路。

ata的缺點是有些sip特性用不了。畢竟模擬**技術有一百年了。

對於asterisk來說,你選哪一種都不是問題,不管是硬**、軟**還是ata。一樣的分機號可以呼叫桌面**、筆記本上的軟**、手機、甚至是閃光燈(有些地方響鈴器聽不見)。

本節我們將介紹如何在/etc/asterisk目錄中建立sip.conf和iax.conf檔案,以定義sip和iax2裝置和你的系統通訊所需的引數。

asterisk允許裝置以各種不同的協議和它對話(從而也包括裝置之間的對話)。畢竟,sip和iax2協議是最歡迎也是最成熟的voip模組,所以我們將專注於它們。如果是初次接觸asterisk,你最好不要把別的協議攪和進來(像是skinny/sccp,unistim,h.323,和mgcp),先把sip和iax2搞熟練了再說。其他協議的配置都是類似的,並且示例配置檔案包含很多資訊和例子,所以一旦你把基礎的東西搞定了,其他協議應該是很容易上手的。

通道配置檔案,像是sip.conf和iax.conf,包含通道驅動(chan_sip.so、chan_iax2.so等)的配置,以及**裝置跟asterisk聯絡(或互動)所需資訊和憑據。

有關通道驅動的公用資訊包含在位於配置檔案頂部的[general]段中。所有段名是用方括號括起來的,裝置名也是。段名(或裝置名,對我們來說是一樣的)後面的所有東西都歸屬於該段。[generla]段也能用於定義裝置配置的預設值,該值可以被裝置段或模板中的值覆蓋。asterisk也硬編碼了一下預設值,所以儘管一些設定是必須的,另一些則可以忽略,只要你覺得預設值沒問題的話。

asterisk將會以下列順序檢查引數:

檢查裝置段

檢查裝置段的模板

檢查[general]段

使用硬編碼的預設值

這表示說,沒有設定某個引數的值並不意味著該引數沒有設定。如果你不放心,你可以在裝置段或模板中顯式設定某個引數。

往後面讀,這一概念你會有切實體會的。

儘管我們還沒有討論過撥號計畫,如果能夠設想通道配置檔案(sip.conf,ias.conf)和撥號計畫(extensions.conf)的關係的話,還是很有用的。撥號計畫是乙個asterisk系統的心臟:它控制呼叫邏輯是如何應用到通道中的連線的,比如當乙個裝置撥打分機號101時系統做什麼,當乙個外部入局呼叫到達時系統做什麼,等等。通道配置檔案和撥號計畫都參與系統的呼叫處理過程。圖 5.1,「sip.conf和extensions.conf的關係」用圖形化的方式表示了sip.conf和extensions.conf的關係。

當乙個呼叫到達asterisk時,系統先是找到該協議(該次呼叫所使用的協議)所對應的通道配置檔案,然後找到該呼叫所對應的裝置段。通道配置檔案也會處理認證問題,以及定義撥號計畫中的處理入口。

一旦asterisk確定了如何處理該呼叫,它會把呼叫控制交給撥號計畫中相應的上下文(context)。通道配置檔案中的context引數就是撥號計畫中的處理入口(其中包含了處理呼叫所需的資訊)。

反過來,如果系統對撥打分機號101的處理就是撥打另外一部**的話,該撥號請求也會用到通道配置檔案,以確定認證資訊、編碼等。

要記住的關鍵點是通道配置檔案不僅控制呼叫如何進入系統,也控制呼叫如何離開系統。所以,比方說,如果一部**呼叫另一部**,通道配置檔案不僅用於把呼叫交給撥號計畫,也控制著如何把呼叫從撥號計畫交給目標裝置。

sip通道模組無疑是asterisk的通道模組中最成熟和特性最豐富的。這是由於sip的廣泛流行,它已經「接管」了voip/電信行業,並且已經在成千上萬的裝置和pbx中實現了。如果你看一下asterisk源**的./configs目錄中的sip.conf.sample檔案,你會注意到有大量的選項可供使用。幸運的是,大多數選項都有預設值,所以對於大多數標準sip**來說,你只需要建立乙個非常簡單的配置檔案就可以把它連線到asterisk了。

你要做的第一件事就是在/etc/asterisk目錄下建立乙個名為sip.conf的配置檔案。

在該檔案中貼上或打入下列資訊:

[general]

context=unauthenticated ;>

開啟你剛建立的sip.conf檔案,我們會逐項解釋。

我們建立了四個段,第乙個是[general]段。所有通道配置檔案的頂部都有這麼乙個標準段,命名也是固定的。[general]段包含和該協議有關的一般性配置選項,也可以用來定義預設引數。

例如,我們把預設上下文定義為unauthenticated,以確保我們明確定義了如何處理未授權的呼叫。我們稱之為「unauthenticated」的意思就是

初窺javaScrit權威指南,第五章語句

表示式語句 具有 greeting hello name i 3 delete alert greeting window.close math.cos x 復合語句和空語句 只需要用 包起來就算乙個單獨的語句 注 語句塊不需要 for i 0 a.length a i 0 空語句 宣告語句 var...

python第五章 Python學習(第五章)

記錄所有的名片字典 card list defshow menu 顯示資訊 print 50 print 歡迎使用 名片管理系統 v1.0 print print 1.新增名片 print 2.顯示全部 print 3.搜尋名片 print print 0.退出系統 print 50 defnew ...

第五章 雜湊

雜湊表adt,只支援二叉樹查詢所允許的一部分操作。比如插入,刪除,查詢等。那些需要元素間排序資訊的操作將不會得到支援。比如findmin,findmax和線性時間按排序順序列印整個表的操作時不支援的。雜湊函式在理想狀態是能將任何兩個不同的關鍵字對映到不同的單元,但是這是不可能,因為關鍵字是無窮的,但...