Freeswitch可以作爲SIP註冊服務器,sip終端作爲freeswitch user註冊到freeswitch上,另外,freeswitch也可以通過sip協議連接外部服務,通常通過網關連接到pstn.
(1)freeswitch 用戶
Freeswitch通過引入directory 概念來管理user,一個directory包含若干domain,一個domain可以包含若干個group,每個group 又分若干個真實的用戶。
結構如下:
<section name="directory">
<domainname="example.com">
<groups>
<groupname="default">
<userid="1001">
<params>
<param name="password"value="1234"/>
</params>
</user>
</group>
</groups>
</domain>
</section>
通常並不需要group,用戶部分直接在domain下,默認域名爲freeswitch的ip地址。
/usr/local/freeswitch/conf/directory/目錄爲user配置及保存的位置
當freeswitch收到註冊包時首先根據sip from或者to頭中的domain查找directory目錄下面的用戶,freeswitch默認使用的域名爲服務器ip,可以通過在控制檯上執行sofia status查看。
如果想讓服務器使用域名,客戶端註冊時用域名方式註冊,需要修改vars.xml配置文件,設置默認域名。
/usr/local/freeswitch/conf/directory/default.xml爲directory主配置文件,這裏指定域名,組;系統默認組爲default,
此組下的用戶都在/usr/local/freeswitch/conf/directory/default/目錄下,默認有20個賬號。
所以,在default組中添加新賬號的步驟:
1. /usr/local/freeswitch/conf/directory/default/添加xml用戶文件,拷貝此目錄下其中一個即可,然後再稍作改動。
[root@openser-devdefault]# cp 1000.xml 1111.xml
把1111.xml 中的1000都改成1111,密碼爲全局密碼(vars.xml中配置)1234
2. 修改dialplan;freeswitch對註冊到自己的用戶的dialplan爲cconf/dialplan/default.xml中的Local_Extension部分,
把1111添加到匹配中。
^(10[01][0-9]|1111)$
<conditionfield="destination_number" expression="^(10[01][0-9]|1111)$">
3. 重新加載配置 reloadxml,註冊,呼叫 1111
採用多group的一個好處是可以讓freeswitch呼叫一組內用戶,比如在conf/directory/default.xml裏添加sales組,然後再裏面添加1001,1002,1003用戶,然後再dialplan裏添加
<extension name="group_dial_sales">
<conditionfield="destination_number"expression="^2000$">
<actionapplication="bridge"data="group/sales@${domain_name}"/>
</condition>
</extension>
當用戶撥打2000時,freeswitch會同時呼叫salses組裏的所有用戶,一旦第一個用戶應答,停止呼叫其他用戶,這與asterisk或者其他pbx裏面的隊列呼叫策略類似,asteirsk中叫ringall.
也可以在控制檯用group_call命令呼叫一個組,這裏爲group_call salses.
————————————————
版權聲明:本文爲CSDN博主「voipmaker」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/voipmaker/article/details/7893264