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