• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>

    《FreeSWITCH: VoIP實(shí)戰》:多臺FreeSWITCH 服務(wù)器級聯(lián)

    2013-01-23 16:40:16   作者:杜金房   來(lái)源:FreeSWITCH    評論:0  點(diǎn)擊:


      其實(shí),只要你吃透了前些章節的內容,做 FreeSWITCH 級聯(lián)是沒(méi)有任何問(wèn)題的。但這個(gè)問(wèn)題還常常被眾網(wǎng)友問(wèn)到,我就索性再寫(xiě)一篇。

      雙機級聯(lián)

      假設你有兩臺 FreeSWITCH 機器, 分別為A和B,同樣IP分別為 192.168.1.A 和 192.168.1.B。每臺機器均為默認配置,也就是說(shuō)在每臺機器上 1000 ~ 1019 這 20 個(gè)號碼可以互打電話(huà)。位于同一機器上的用戶(hù)稱(chēng)為“網(wǎng)內用戶(hù)”,如果需要與其它機器上的用戶(hù)通信,則其它機器上的用戶(hù)就稱(chēng)為“網(wǎng)外用戶(hù)”。

      現在你需要在兩臺機器之間的用戶(hù)互撥,因此你想了一種撥號方案。如果A1000想撥打B1000,則B1000相對于A(yíng)1000來(lái)說(shuō)就是“網(wǎng)外用戶(hù)”。就一般的企業(yè)PBX而言,一般撥打外網(wǎng)用戶(hù)就需要加一個(gè)特殊的號碼,比方說(shuō)“0”。這樣,“0”就稱(chēng)為“出局字冠。

      好了,我們規定,不管是A用戶(hù)還是B上的用戶(hù),撥打外網(wǎng)用戶(hù)均需要加0. 下面我們僅配置A打B,把B打A的情況留給讀者練習。

    在A(yíng)機上,把以下 dialplan 片斷加到 default.xml 中:

    <action application="bridge" data="sofia/external/sip:$1@192.168.1.B:5080"/>

      其中,expression= 后面的正則表示式表示匹配以0開(kāi)頭的號碼,“吃”掉0后,把剩下的號碼送到B機的5080端口上。

      所以,如果用戶(hù)1000在A(yíng)上撥 01000,將會(huì )發(fā)送 INVITE sip:1000@192.168.1.B:5080 到B上。B收到后,由于5080端口默認走public dialplan,所以查找 public.xml,找到1000后將電話(huà)最終接續到B機的1000用戶(hù)。

      除了SIP外,我還在兩臺機器上分別加了兩塊E1板卡,中間用交叉線(xiàn)直連,這樣的話(huà),我希望撥9開(kāi)頭就走E1到對端,設置如下:

    <action application="bridge" data="freetdm/1/a/$1"/>


    匯接模式
                                 |  匯接局  X |
                                /      |       \
                               /       |        \
                             A         B         C

      其實(shí)你搞定了第一種模式以后,這種匯接模式也就很簡(jiǎn)單了。無(wú)非你需要動(dòng)一動(dòng)腦子做一下?lián)芴栍媱潱确秸f(shuō)到A撥0,B撥1,到C撥2之類(lèi)的。然后在匯接局配置相關(guān)的 dialplan 就OK了。

      遇到 dialplan 的問(wèn)題還是再看一下第八章,還是那句話(huà),使用 F8 打開(kāi)詳細的 LOG,打一個(gè)電話(huà),從綠色的行開(kāi)始看。

      安全性

      上面的方法只使用5080端口從 public dialplan 做互通,而發(fā)送到5080端口的INVITE是不需要鑒權的,這意味著(zhù),你任何人均可以向它發(fā)送INVITE從而按你設定的路由規則打電話(huà)。這在第一種模式下問(wèn)題可能不大,因為你的public dialplan 僅將外面的來(lái)話(huà)路由到本地用戶(hù)。但在匯接局模式下,你可能將一個(gè)來(lái)話(huà)再轉接到其它外部網(wǎng)關(guān)中去,那你就需要好好考慮一下安全問(wèn)題了,因為你肯定不希望全世界的人都用你的網(wǎng)關(guān)打免費電話(huà)。

      一般說(shuō)來(lái),解決這個(gè)問(wèn)題有兩種方式,那就是讓所有來(lái)話(huà)都經(jīng)過(guò)認證鑒權后再進(jìn)行路由(本地用戶(hù)發(fā)到5060端口上都是需要鑒權的)。

    考慮雙機級聯(lián)的情況,你只需要在A(yíng)上配置一個(gè)到B的網(wǎng)關(guān)(將下列內容存成XML文件放到 conf/sip_profiles/external/b.xml):

        <gateway name="b">
                <param name="realm" value="192.168.1.B"/>
                <param name="username" value="1000"/>
                <param name="password" value="1234"/>
        </gateway>

    同時(shí)把A上的 dialplan 改成:

    <action application="bridge" data="sofia/gateway/b/$1"/>

      這樣,A上的用戶(hù)可以呼通所有B上的用戶(hù),從B的用戶(hù)來(lái)看,好像所有電話(huà)都是從本機的1000這個(gè)用戶(hù)打進(jìn)來(lái)的(這就是網(wǎng)關(guān)的概念,因為對于B來(lái)說(shuō),A機就相當于一個(gè)普通的SIP用戶(hù)1000。當然你從A上理解,B就是給你提供了一條SIP中繼,如果在B上解決了“主叫號碼透傳”以后,B就相法于一條真正的中繼了)。如果這么說(shuō)理解有難度的話(huà),想像一下B是聯(lián)通或電信的服務(wù)器網(wǎng)關(guān),你是不能控制的,而它只給了你一個(gè)網(wǎng)關(guān)的IP,用戶(hù)名,和密碼,你把它配到你的A上,就可以呼通電信能呼通的任何固定電話(huà)或手機了。

    分享到: 收藏

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 虹口区| 肇东市| 武川县| 巴林右旗| 文水县| 突泉县| 平果县| 保德县| 桐梓县| 麦盖提县| 白河县| 东明县| 汤阴县| 闽侯县| 宣城市| 平和县| 浮梁县| 嘉兴市| 本溪市| 嘉峪关市| 江源县| 武乡县| 乌拉特中旗| 辉县市| 历史| 施秉县| 田东县| 成安县| 东兰县| 台湾省| 德安县| 西畴县| 连云港市| 大同县| 遂溪县| 迭部县| 宁武县| 葫芦岛市| 渝北区| 株洲县| 南召县| http://444 http://444 http://444 http://444 http://444 http://444