Freeswitch如何在Linux/Mac/Win创建用户以及批量创建用户
如何在FreeSWITCH
中快速创建大量用户是在社区中经常遇到的一个问题。其实该问题解决起来并不难。我们
已经了解现有的用户配置文件是存放在FreeSWITCH
安装目录的conf/directory/default
目录下,每个用户对应一
个XML
配置文件,如1000.xml
包含了1000
这个用户的配置文件。FreeSWITCH
默认提供了1000~1019
这20
个用户,如
果要手工创建另外一个用户,如1020
,我们只需以1000.xml
为模板,将该文件中的内容复制到1020.xml
,然后把
1020.xml
文件中的所有出现1000
的地方全部替换成1020
即可。
当然,除了手工的复制和替换外,上述步骤可以在UNIX
系统上的Shell
中使用下列命令完成:
# sed -e "s/1000/1020/" 1000.xml > 1020.xml
sed
的s
命令将1000.xml
文件中所有出现1000
的
地方都替换成1020
,然后将命令的输出重定向(大于号是Shell中的重定向操作符)到1020.xml文件中。
上述命令用于创建一个用户的情况,如果要创建一批用户怎么办呢?其实也很简单,我们只需要用一下Shell
中的for循环就可以了。比如我们要创建1020~1039
这20
个用户,具体的Shell
命令如下:
# for i in `seq 1020 1039`; do sed -e "s/1000/$i/" 1000.xml > $i.xml ; done
在上述命令中,首先,seq
命令会产生一个序列,两个参数分别是序列的起止点,如:
$ seq 1 3
1
2
3
有了这个序列以后,for
循环就可以从该序列中依次取得每一个值,并将该值赋值给i
这个变量。do
和
done
之间是循环体,其中的内容就是我们前面的sed
命令,只不过我们使用$i
这个变量引用,它的值都是每次
循环时从序列中取得的。注意其中的分号也是有用的,它用于在同一行上隔开多个命令。详细的Shell
语法我们就
不多讲了,总之用上述命令批量生成用户是很方便的。
另外,在Mac
平台上,笔者发现竟然没有seq
这个命令,只好自己用Ruby
写了一个。下面的Ruby
脚本与Linux
上
的seq
功能相似,同样,详细原理我们就不多解释了。
#!/usr/bin/env ruby
(ARGV[0].to_i .. ARGV[1].to_i).each { |x| puts x}
当然,好多读者也在使用Windows
平台。但很遗憾的是,Windows
上的Shell
功能比较弱,也没有像sed之类的
工具,因此做起来不如在UNIX上方便。不过,也有人把经典的UNIX工具软件都移植到了Windows上,称为UnxUtils
[3]。安装完UnxUtils后,就可以使用大部分的UNIX命令了。如我们可以使用如下“.bat”脚本完成同样的添加用
户的功能(将下列内容存到与1000.xml相同的目录下的扩展名为“.bat”的文件中,用鼠标双击即可执行):
for /L %%i in (1020, 1 1039) do sed -e "s/1000/%%i" 1000.xml > %%i.xml
除此之外,在FreeSWITCH
源代码目录中的scripts/perl
目录下也有一个add_user
脚本,该脚本是用Perl
写
的,也能完成类似的功能,具体命令如下:
# ./add_user 1020
上述命令将会把用户配置文件安装在默认的安装路径下面(使用默认的Domain——default)。当然,也可以 在命令行上改变Domain和安装路径,如下列命令可以将配置文件安装在/opt/freeswitch/conf目录中的 directory/my_domain目录下:
# ./add_user 1020 --domain=my_domain --confpath=/opt/freeswitch/conf
也可以使用“--users”参数指定批量创建的用户的范围,如:
# ./add_user --users=1020-1039
总之,如果不确定上述脚本的使用方法,最好先试验一下。比如,我们先创建一个新的目录用于测试:
# mkdir -p /tmp/directory/my_domain
然后使用下列命令可以看出它确实能创建指定的配置文件:
# ./add_user 1111 --users=1020-1039 --domain=my_domain --confpath=/tmp
Added 1020 in file /tmp/directory/my_domain/1020.xml
Added 1021 in file /tmp/directory/my_domain/1021.xml
Added 1022 in file /tmp/directory/my_domain/1022.xml
Added ...
需要注意的是,add_user
脚本创建的用户配置文件不是以1000.xml
为模板的,而是内置在脚本中,因此,如
果需要创建的用户与add_user
脚本中的模板内容不同,需要事先更改脚本中的内容。
总之,不管使用什么方法,创建完用户配置文件后就可以在FreeSWITCH
中使用reloadxml
命令使之生效了。在
配置生效后,使用这些用户进行注册和呼出操作都没有问题,如果这些用户也需要被叫,那就需要修改
Dialplan
,增加到这部分用户的路由。比如,我们增加了1020~1039
这20
个用户后,可以简单地将默认的
Dialplan
中的正则表达式"^(10[01][0-9])$"
改为"^(10[0-3][0-9])$"
,这样就可以包含我们新创建的用户
了。更改后的部分内容如下:
<extension name="Local_Extension">
<condition field="destination_number" expression="^(10[0-3][0-9])$">
总之,讲起来可能比较啰嗦,但实际使用起来还是挺简单的,读者不妨自己练习一下。
本文参考:freeswitch权威指南,大家可以在京东购买全书
用户评论
更多相关好文
-
微信公众号文章/菜单添加小程序时路径如何获取? 2021-12-22
-
如何轻松获取微信小程序路径path? 2021-12-22
-
cannot import name 'CUDA_HOME' from 'mmcv.utils' 2021-12-05
-
vgg的loss一轮达到ln(1/n)阈值,如何解决 2021-11-21
-
如何下载使用utils库 2021-10-27
热门文章
-
微信公众号文章/菜单添加小程序时路径如何获取? 2021-12-22
-
如何轻松获取微信小程序路径path? 2021-12-22
-
python/MySQL分页查询方法与性能优化 2021-06-23
-
mitmproxy & python 忽略所有的https/ssl请求 2021-04-19
-
如何使用邮件/邮箱推广微信公众号/小程序? 2021-01-28
栏目最新文章
公告提示
- pytorch中文文档
- pytorch官方文档
提交评论