转载地址:http://blog.csdn.net/trojan_dog/article/details/4647619
FreeSwitch默认有1000-1019,20个内部分机号码。配置文件保存在directory/default/目录下,名字是分机号.xml,例如1000.xml,它的内容如下:
<include>
<user id="1000" mailbox="1000">
<params>
<param name="password" value="1234"/>
<param name="vm-password" value="1000"/>
</params>
<variables>
<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"/>
</variables>
</user>
</include>
要配置新的分机号,比如说10000,最简单的,在directory/default/目录下,创建10000.xml文件,把以上内容拷贝进去,然后用10000代替1000,密码可以自己设置。然后reloadxml或者重启FS,这时候,可以注册10000分机号,使用10000分机拨打其他号码(如1000)没有问题,但是其他分机拨打它就不行,控制台输出显示路由有问题,就是处理inbound的时候没有找到10000.这是怎么回事?拨号方案的配置是在dialplan目录,打开dialplan目录下的default.xml文件,找到对inbound呼叫的配置,可以看到,FS接受到内部分机呼叫后,查找分机时用正则表达式: 10[01][0-9] 来表示1000-1019,就是说它能呼叫的范围就是1000-1019,所以呼叫10000时,没有能够找到10000分机.
只需要对正则表达式做修改,扩大它的查找范围即可,可以改为 10[01][0-9]{1,2}, {1,2}在[0-9]后面,表示有一个或者2个0到9的数字,这样就可以呼叫1000-1019和10000-10199的号码了,如果要使它可以呼叫4为与5为数字的分机号正则表达式:
(^/d{4}$|^/d{5}$),不过用不到的号码不应该让FS查找的到,因为这些号码可能会被盗用。保存文件,reloadxml或重启FS就可以拨打10000分机了。