用户目录的默认配置文件在conf/directory/下,系统自带了default.xml,代码如下:
该配置文件决定了那些用户能注册到FS中,一般来说,所有的用户都应该属于同一个domain(除非想使用多个domain),这里的$${domain}这个全局变量是在vars.xml中设置的,它默认是主机的地址,可以修改为使用一个域名。
params 中定义了该Domain中所有用户的公共参数,在这里只定义一个dial-string,在使用user/username或sofia/internal/username@domain呼叫字符串时,FS会根据username找到这个dial-string,并最终扩展成实际的SIP地址。
其中 sofia_contact 时一个API命令,它会根据用户的注册地址扩展成相应的呼叫字符串。
variables则定义了一些公共变量,在用户主叫或被叫时,这些变量会绑定到响应的Channel上形成 Channel Variable
在domain中还定义了许多组group,组里面包含了很多用户。
也可以定义其他的用户组,组中用户并不需要时完整的XML节点,也可以是指向已经存在的用户的指针。使用组方便组内群呼、代接之类的业务。
<include> <!--the domain or ip (the right hand side of the @ in the addr--> <domain name="$${domain}"> <params> <param name="dial-string" value="{^^:sip_invite_domain=${dialed_domain}:presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(*/${dialed_user}@${dialed_domain})},${verto_contact(${dialed_user}@${dia led_domain})}"/> <!-- These are required for Verto to function properly --> <param name="jsonrpc-allowed-methods" value="verto"/> <!-- <param name="jsonrpc-allowed-event-channels" value="demo,conference,presence"/> --> </params> <variables> <variable name="record_stereo" value="true"/> <variable name="default_gateway" value="$${default_provider}"/> <variable name="default_areacode" value="$${default_areacode}"/> <variable name="transfer_fallback_extension" value="operator"/> </variables> <groups> <group name="default"> <users> <X-PRE-PROCESS cmd="include" data="default/*.xml"/> </users> </group> <group name="sales"> <users> <!-- type="pointer" is a pointer so you can have the same user in multiple groups. It basically means to keep searching for the user in the directory. --> <user id="1000" type="pointer"/> <user id="1001" type="pointer"/> <user id="1002" type="pointer"/> <user id="1003" type="pointer"/> <user id="1004" type="pointer"/> </users> </group> <group name="billing"> <users> <user id="1005" type="pointer"/> <user id="1006" type="pointer"/> <user id="1007" type="pointer"/> <user id="1008" type="pointer"/> <user id="1009" type="pointer"/> </users> </group> <group name="support"> <users> <user id="1010" type="pointer"/> <user id="1011" type="pointer"/> <user id="1012" type="pointer"/> <user id="1013" type="pointer"/> <user id="1014" type="pointer"/> </users> </group> </groups> </domain> </include>
用户XML
<include> <user id="1000"> <params> <param name="password" value="$${default_password}"/> <param name="vm-password" value="1000"/> </params> <variables> <variable name="toll_allow" value="domestic,international,local"/> <variable name="accountcode" value="1000"/> <variable name="user_context" value="default"/> <variable name="effective_caller_id_name" value="Extension 1000"/> <variable name="effective_caller_id_number" value="1000"/> <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/> <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> <variable name="callgroup" value="techsupport"/> </variables> </user> </include>
原文:https://www.cnblogs.com/damizhou/p/14130963.html