若是将FreeSWITCH用于云端, 支持大规模并发呼叫, 就要用到 多域/多租户 技术了, FreeSWITCH 自己能够直接支持.并发
每一个域能够单独, 拥有相同的分机号也互相打不通, 各自线路, IVR , 路由等不相同.dom
配置方式以下:ide
<X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}" /> <X-PRE-PROCESS cmd="set" data="domain_name=$${domain}" />
这里配置了 默认 domain(名字), 启用域(多租户)以后就没什么用啦.测试
<!--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
<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
要让各自域中的用户使用(各自)单独的 Dialplan 进行路由,还要改用户配置中的 user_context 参数ip
<variables> <variable name="user_context" value="default"/>
<这时候,就要相应的 增长 路由了, 不然没有路由, 也是打不通的>
<include> <context name="default">
复制这个dialplan,并更改 context_name , 与用户配置中设置的相对应
必须使用完整形式: `user/1000@${domain_name}`
在使用 会议, fifo 等应用时,也要写完整形式,
即: 启用域(多租户)以后,拨打用户就要写完整(带域名)的了,否则就找不到用户了