FreeSWITCH 啓用多域(多租戶)的配置

若是將FreeSWITCH用於雲端, 支持大規模併發呼叫, 就要用到 多域/多租戶 技術了, FreeSWITCH 自己能夠直接支持.併發

每一個域能夠單獨, 擁有相同的分機號也互相打不通, 各自線路, IVR , 路由等不相同.dom

配置方式以下:ide

1. conf/vars.xml

<X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}" />
<X-PRE-PROCESS cmd="set" data="domain_name=$${domain}" />

這裏配置了 默認 domain(名字), 啓用域(多租戶)以後就沒什麼用啦.測試

2. conf/sip_profile/internal.xml

<!--all inbound reg will look in this domain for the users -->
<param name="force-register-domain" value="$${domain}"/>
<!--force the domain in subscriptions to this value -->
<param name="force-subscription-domain" value="$${domain}"/>
<!--all inbound reg will stored in the db using this domain -->
<param name="force-register-db-domain" value="$${domain}"/>

三個 強制參數, 註釋掉, 重啓該 profile.this

<能夠創建多個 profile>spa

3. conf/directory/default.xml

<include>
    <!--the domain or ip (the right hand side of the @ in the addr-->
    <domain name="$${domain}">

這個 domain 指定了 此用戶目錄配置適用於哪一個 domain(名字) (默認$${domain}是vars.xml中配置的)code

能夠創建多個 domain 的配置(如 複製多份,每份各自配置domain_name),
這樣 就有了多個域了(name 配置成指定的 domain_name)
多個域,最好每一個域都有各自的用戶目錄及用戶配置(主要是有各自的用戶配置)
相應的,用戶配置的加載也要改:xml

<users>
    <X-PRE-PROCESS cmd="include" data="default/*.xml"/>
</users>

<另,要讓各自域中的用戶使用(各自)單獨的 Dialplan 進行路由,還要改用戶配置中的 user_context 參數>blog

4. conf/directory/default/<user>.xml

要讓各自域中的用戶使用(各自)單獨的 Dialplan 進行路由,還要改用戶配置中的 user_context 參數ip

<variables>
    <variable name="user_context" value="default"/>

<這時候,就要相應的 增長 路由了, 不然沒有路由, 也是打不通的>

5. conf/dialplan/default.xml

<include>
    <context name="default">

複製這個dialplan,並更改 context_name , 與用戶配置中設置的相對應

6. reloadxml, 註冊,撥打測試

7. 啓用域以後, 撥打就不能在使用了 `user/1000` 這樣的縮寫形式了,

必須使用完整形式: `user/1000@${domain_name}`
在使用 會議, fifo 等應用時,也要寫完整形式,
即: 啓用域(多租戶)以後,撥打用戶就要寫完整(帶域名)的了,否則就找不到用戶了

8. 還能夠將不一樣的域(租戶)分到不一樣的 Sofia Profile 中,能夠使不一樣的 profile 使用不一樣的端口了

相關文章
相關標籤/搜索