在上章節中,我們簡(jiǎn)單介紹了SIP, Session Initiation Protocol, 討論了如何注冊在FreeSWITCH 平臺上注冊電話(huà)。在此章節中,我們夯實(shí)SIP的基礎,并且學(xué)習如何使用連接用戶(hù)SIP,包括本地的和外網(wǎng)的。在VOIP世界中,SIP是比較特殊的一種協(xié)議。在這個(gè)章節中,我們將討論以下內容:
· 學(xué)習FreeSWITCH 用戶(hù)目錄背后的原理
· 首次探討和配置FreeSWITCH 用戶(hù)目錄
· 學(xué)習如何對接FreeSWITCH 和服務(wù)提供商
· 對撥號規則和XML目錄配置文件進(jìn)行修改
· 簡(jiǎn)單介紹 SIP profiles 和用戶(hù)代理
了解FreeSWITCH用戶(hù)目錄
FreeSWITCH 用戶(hù)目錄是基于一個(gè)中央XML控制文件,
由一個(gè)或者多個(gè)<domain> 要素組成。每個(gè) <domain> 可以包含<users> 要素或者<groups> 要素。 一個(gè) <groups> 要素包含一個(gè)或者多個(gè)<group> 要素, 每個(gè)group包含一個(gè)或者多個(gè)<users> 要素。 同理, 一個(gè)<users> 包含一個(gè)或者多個(gè) <user> 要素。 以下是一個(gè)簡(jiǎn)單舉例:
下載實(shí)例代碼
如果用戶(hù)是從 packtpub 購買(mǎi)的書(shū),用戶(hù)可以下載本書(shū)使用的實(shí)例代碼。
如果用戶(hù)從其他地方購買(mǎi)的本書(shū),可以訪(fǎng)問(wèn)http://www.packtpub.com/support ,然后注冊,我們將把代碼的文件通過(guò)郵件發(fā)送給用戶(hù)。
對于users 來(lái)說(shuō),一些基本的配置文件可以不包括groups,因此用戶(hù)可以忽略<groups> 這個(gè)要素, 在頂部的<domain>要素中,僅添加幾個(gè)<user> 要素。
這里必須注意,每個(gè)user@domain 都來(lái)自于這個(gè)用戶(hù)目錄,這個(gè)目錄對系統的所有模塊有效。這個(gè)目錄是一個(gè)單一的中央控制目錄,保存所有的FreeSWITCH 用戶(hù)信息。如果使用一個(gè)SIP電話(huà)作為一個(gè)用戶(hù)注冊或者其他用戶(hù)執行語(yǔ)音留言,FreeSWITCH將在同一地方查詢(xún)用戶(hù)的數據。這一點(diǎn)非常重要,通過(guò)這樣的方法,可以限定系統的操作,避免數據的重復,并且對每個(gè)模塊對非常有效率,因為每個(gè)獨立的模塊可以獨立跟蹤用戶(hù)信息。
這個(gè)系統在用戶(hù)量非常少的時(shí)候可以工作的非常好,但是如果用戶(hù)量上千的大型系統應該怎么辦呢?如果用戶(hù)想通過(guò)訪(fǎng)問(wèn)FreeSWITCH數據庫來(lái)獲得用戶(hù)目錄信息,我們如何實(shí)現?答案是肯定的。我們在第一章FreeSWITCH 系統架構中討論了如何使用mod_xml_curl模塊,我們可以創(chuàng )建web 服務(wù)通過(guò)一個(gè)請求對全部用戶(hù)目錄進(jìn)行訪(fǎng)問(wèn),獲得數據,方法類(lèi)似于一個(gè)HTML的頁(yè)面環(huán)境下的表格提交方式。反過(guò)來(lái),web 服務(wù)可以無(wú)需擔心用戶(hù)數據的格式,或者XML文件格式來(lái)查詢(xún)用戶(hù),獲得希望得到的用戶(hù)信息。mod_xml_curl 返回查詢(xún)結果到從查詢(xún)模塊。這樣做的目的是系統可以實(shí)現用戶(hù)設置和中央控制的用戶(hù)數據實(shí)現無(wú)縫集成,并且保持用戶(hù)原始數據的格式。
未完待續······