FreeSWITCH注册用户详解

用户目录的默认配置文件在 conf/directory/ 下,系统自带的配置文件为default.xml,其代码如下

<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})}"/>
      <!-- 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>
    </groups>
</domain>

params参数
#params中定义了该Domain中所有用户的公共参数,在这里只定义了一个 dial-string 这是一个至关重要的参数,在使用
#user/username 或 sofia/internal/username@domain 这样的呼叫字符串时,FreeSWITCH会根据username以及
#domain找到该dial-string,并最终扩展成用户实际的SIP地址

sofia_contact
#sofia_contact是一个API命令,它会根据用户的注册地址扩展成相应的呼叫字符串

variables
#variables定义了一些公共变量,在用户主叫或被叫时,这些变量会绑定到相应的Channel上形成Channel Variable

#在domain中还定义了许多组,组里面包含了很多用户
<group name="default">
  <users>
    <X-PRE-PROCESS cmd="include" data="default/*.xml"/>
  </users>
</group>

组名default
#在这里组名default并没有特殊意义

#如下,也可以定义其他组,组中的用户并不需要是完整的XML节点,也可以是一个指向已存在用户的指针,如下代码
#使用type="pointer"定义的指针
<group name="sales">
  <users>
	<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>

#注意,使用组并不是必需的,如果不打算用组,可将用户节点直接放到 domain 的下一级也是可以的,但是使用组可以比较
#方便的支持像群呼、代接之类的业务,例如使用group_call可以同时或者顺序呼叫某个组的用户

#一个SIP用户1001的设置
<include>
  <user id="1001">
    <params>
      <param name="password" value="$${default_password}"/>
      <param name="vm-password" value="1001"/>
    </params>
    <variables>
      <variable name="toll_allow" value="domestic,international,local"/>
      <variable name="accountcode" value="1001"/>
      <variable name="user_context" value="default"/>
      <variable name="effective_caller_id_name" value="Extension 1001"/>
      <variable name="effective_caller_id_number" value="1001"/>
      <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>

#由上面代码可知,实际上params 和 variables可以出现在group和domain中,当它们有重复时,优先级由高到低
#依次为user、group、domain

 

转载于:https://my.oschina.net/stache/blog/1543684

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值