freeswitch批量添加用户
默认情况下,freeswitch内置了1000-1019这20个用户,如果需要添加更多用户,可以按如下步骤操作:
一、复制用户文件
\FreeSWITCH\conf\directory\default 下有1000.xml ~ 1019.xml 这20个用户的配置文件,以1000.xml为例:
1 <include>
2 <user id="1000">
3 <params>
4 <param name="password" value="$${default_password}"/>
5 <param name="vm-password" value="1000"/>
6 </params>
7 <variables>
8 <variable name="toll_allow" value="domestic,international,local"/>
9 <variable name="accountcode" value="1000"/>
10 <variable name="user_context" value="default"/>
11 <variable name="effective_caller_id_name" value="Extension 1000"/>
12 <variable name="effective_caller_id_number" value="1000"/>
13 <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
14 <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
15 <variable name="callgroup" value="techsupport"/>
16 </variables>
17 </user>
18 </include>
可以写一段代码,以1000.xml为模板,批量创建其它用户的xml:
import org.apache.commons.lang3.StringUtils; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; public class CreateFreeswitchUser { public static void main(String[] args) throws IOException {
String template = "D:\\soft\\FreeSWITCH\\conf\\directory\\default\\";
String templateContent = read(template + "1000.xml");
//创建99个用户
for (int i = 1; i < 100; i++) {
String newUser = "1" + StringUtils.leftPad(i + "", 3, '0');
String newContent = templateContent.replaceAll("1000", newUser);
String newFileName = template + newUser + ".xml";
write(newFileName, newContent);
System.out.println(newFileName + " done!");
}
} static String read(String fileName) throws IOException {
File f = new File(fileName);
if (!f.exists()) {
return null;
}
FileInputStream fs = new FileInputStream(f);
String result = null;
byte[] b = new byte[fs.available()];
fs.read(b);
fs.close();
result = new String(b);
return result;
} static void write(String fileName, String fileContent) throws IOException {
File f = new File(fileName);
if (f.exists()) {
f.delete();
}
FileOutputStream fs = new FileOutputStream(f);
fs.write(fileContent.getBytes());
fs.flush();
fs.close();
}
}
二、调整\FreeSWITCH\conf\dialplan\default.xml
创建用户的xml后,freeswitch怎么知道加载这些新用户的xml呢?答案就在dialplan\default.xml这个文件里:
1 <extension name="Local_Extension">
2 <!-- 这里可以修改正则范围,允许所有分机号-->
3 <condition field="destination_number" expression="^([0-9]\d+)$">
4
5 <!-- ... -->
6 <action application="set" data="call_timeout=120"/>
7 <!-- ... -->
8
9
10 </condition>
11 </extension>
主要是改下正则表达式,允许所有数字。另外,默认还有一个N秒不接认为超时的配置,默认是30秒,如果有需要调整的,也可以一并修改。
三、调整\FreeSWITCH\conf\dialplan\public.xml
1 <extension name="public_extensions">
2 <!-- 允许所有分机号 -->
3 <condition field="destination_number" expression="^([0-9]\d+)$">
4 <action application="transfer" data="$1 XML default"/>
5 </condition>
6 </extension>
重启freeswitch,即可生效。
freeswitch批量添加用户的更多相关文章
- 用户管理 之 在Linux系统中,批量添加用户的操作流程
一.阅读此文件您需要掌握的基础知识: <Linux 用户(user)和用户组(group)管理概述><用户(user)和用户组(group)配置文件详解><Linux 用 ...
- 【转载】干货再次来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载八)用命令实现批量添加用户
Windows添加用户需要至少5个界面,而Linux一条命令就搞定了,这是不是高效人士办公第一法则呢.本文不给你一堆参数和选项,不让你见识教条主义,只给你最实用的代码. 想每天能听到小妞的语音播报,想 ...
- 利用shell实现批量添加用户
批量添加用户并设置随机密码,把添加的用户的名字和密码保存到文件中. [root@lamp scripts]# cat user.sh #!/bin/sh ` do pass=$(-) //取随机数的方 ...
- (1)使用bash脚本实现批量添加用户
脚本实现内容: 可以指定用户名前缀,指定添加数量的批量添加用户脚本,密码为10为随机小写字母,并把用户名和密码写入文件中. 脚本代码: #!/bin/bashread -p "用户名前缀:& ...
- (转)通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加
通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加 原文:http://www.21yunwei.com/archives/4773 有一个朋友问我如何批量创建用户和设置密码 , ...
- Centos6配置samba服务器并批量添加用户和文件夹
一.需求 局域网内有若干用户,所有用户访问一个共享目录 每个用户在共享目录里有自己的文件夹 每个用户都可以读取其他人的文件夹 每个用户只能对自己的文件夹有写入权限 所有用户都属于filesgroup组 ...
- gitlab api批量操作 批量添加用户
import os,time import requests,json # def downloadFile(name, url): # headers = {'Proxy-Connection': ...
- 工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本
一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello ...
- centos7 lvm合并分区脚本初探-linux性能测试 -centos7修改网卡名字-jdk环境安装脚本-关键字查询文件-批量添加用户
1.#!/bin/bash lvmdiskscan | grep centos > /root/a.txt a=`sed -n '1p' /root/a.txt` b=`sed -n '2p' ...
- shell编写一个批量添加用户脚本
shell编写一个批量添加用户脚本 5.1问题 本例要求在虚拟机server0上创建/roo ...
随机推荐
- 设计即合规: 开放AI生态中的用户数据治理实践
Hugging Face Hub 已成为 AI 协作的核心平台,托管了数万个模型.数据集以及交互式应用程序 (Space). 在开放生态系统中,用户知情同意的管理方式与那些更 "数据饥渴&q ...
- DialogHub上线OpenHarmony开源社区,高效开发鸿蒙应用弹窗
作为鸿蒙应用开发者,在使用ArkUI现有能力进行弹窗开发时,总会遇到一些让人纠结的交互问题:应用内进行消息提示时,既要求消息内容支持图文混排,又要求弹窗本身不能打断用户交互(页面滑动.页面点击.键盘输 ...
- 【ROS】1.2 创建工作空间与功能包
创建流程 创建文件夹A,A下创建文件夹src:mkdir -p A/src src下:catkin_init_workspace A下:catkin_make src下,创建工作包learning_p ...
- spring boot迁移计划 第Ⅰ章 --chapter 1. rust hyper 结合rust nacos-client开发nacos网关 part ② hyper网关
1. toml依赖 hyper = { version = "1", features = ["full"] } tokio = { version = &qu ...
- WPF透明框设置Demo
<Window x:Class="GuiDB.EBMultiEditTextWin" xmlns="http://schemas.microsoft.com/win ...
- codeup之日期差值
description 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天. Input 有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD Outp ...
- 信息工程大学第五届超越杯程序设计竞赛(同步赛)A遗失的旋律
题目链接 :A-遗失的旋律_信息工程大学第五届超越杯程序设计竞赛(同步赛) (nowcoder.com) 本场比赛的数据都很水,导致很多题暴力都能过,(出题人背大锅, 说实话,如果数据不水, 这场感觉 ...
- File与IO流之File基础
File构造方法: public File(String pathname){} //将字符串路径变成File对象 public File(String parent , String chlid){ ...
- BZOJ2720 [Violet 5] 列队春游 题解
Problem 对于一个数列 \(S\),\(S_0= \infty\),设对于 \(S_i\),\(S_{a_i}\) 是 \(S_i\) 之前第一个大于等于 \(S_i\) 的数.给定 \(S\) ...
- Aug. 2023 普及组模拟赛 3
题面 T1 最大生成树 Meaning 给定一个完全图,两点之间的边权为这两个点点权之差的绝对值,求这个图的最大生成树. Solution 对于最小生成树,我们可以考虑 Kruskal 算法. Kru ...