默认情况下,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批量添加用户的更多相关文章

  1. 用户管理 之 在Linux系统中,批量添加用户的操作流程

    一.阅读此文件您需要掌握的基础知识: <Linux 用户(user)和用户组(group)管理概述><用户(user)和用户组(group)配置文件详解><Linux 用 ...

  2. 【转载】干货再次来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载八)用命令实现批量添加用户

    Windows添加用户需要至少5个界面,而Linux一条命令就搞定了,这是不是高效人士办公第一法则呢.本文不给你一堆参数和选项,不让你见识教条主义,只给你最实用的代码. 想每天能听到小妞的语音播报,想 ...

  3. 利用shell实现批量添加用户

    批量添加用户并设置随机密码,把添加的用户的名字和密码保存到文件中. [root@lamp scripts]# cat user.sh #!/bin/sh ` do pass=$(-) //取随机数的方 ...

  4. (1)使用bash脚本实现批量添加用户

    脚本实现内容: 可以指定用户名前缀,指定添加数量的批量添加用户脚本,密码为10为随机小写字母,并把用户名和密码写入文件中. 脚本代码: #!/bin/bashread -p "用户名前缀:& ...

  5. (转)通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加

    通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加 原文:http://www.21yunwei.com/archives/4773 有一个朋友问我如何批量创建用户和设置密码 , ...

  6. Centos6配置samba服务器并批量添加用户和文件夹

    一.需求 局域网内有若干用户,所有用户访问一个共享目录 每个用户在共享目录里有自己的文件夹 每个用户都可以读取其他人的文件夹 每个用户只能对自己的文件夹有写入权限 所有用户都属于filesgroup组 ...

  7. gitlab api批量操作 批量添加用户

    import os,time import requests,json # def downloadFile(name, url): # headers = {'Proxy-Connection': ...

  8. 工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本

    一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello ...

  9. 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' ...

  10. shell编写一个批量添加用户脚本

                                                          shell编写一个批量添加用户脚本 5.1问题 本例要求在虚拟机server0上创建/roo ...

随机推荐

  1. Linux系统的一些基本文件和目录管理命令

    pwd:查看当前目录所在位置. ls:查看当前目录下的文件和目录.例如我们查看根目录下的文件和目录: (注:蓝字的是目录,白字的是文件,绿字的是可执行的文件或装有可执行文件的目录,红字是压缩包) 如果 ...

  2. WSL 安装配置 MySQL

    在 WSL 安装并配置 MySQL 与在 Ubuntu Server 安装配置 MySQL 一样的步骤.简要记录一下配置的过程. 安装 MySQL 参考微软官方文档[1]安装MySQL. sudo a ...

  3. HarmonyOS NEXT开发实战教程—搜索页

    今天忙里偷闲,分享一个搜索页实现过程,先上效果图: 界面部分比较简单,大体分为导航栏.历史搜索.猜你想搜和热搜榜几个部分,历史搜索采用用户首选项进行存储数据. 导航栏部分相关代码如下: Flex({d ...

  4. P2150 [NOI2015] 寿司晚宴 题解

    P2150 [NOI2015] 寿司晚宴 刚开始看错题了,推了一个与原题类似的 DP 方程,然后不会优化,笑了. 思路 首先看到 \(n\) 很小,然后质因子个数就更少了. 因此第一反应是将所有的质因 ...

  5. vue3 基础-表单元素双向绑定

    通常是在 form 表单相关的场景中会用到双向绑定相关, 核心是 v-model 的应用. input 输入框 <!DOCTYPE html> <html lang="en ...

  6. ShadowSql之开源不易

    ShadowSql集本人以前为公司内部开发的ORM之众长 再次进化而来,性能更好也更通用 其一.历时3个多月,已经发布了8个版本 在此期间深感做个开源项目非常的不易 好在现在本人想要的功能基本都已经开 ...

  7. LLM主要架构

    LLM本身基于Transformer架构 自2017年,Attention is all you need诞生起,原始的Transformer模型不同领域的模型提供了灵感和启发 基于原始的Transf ...

  8. RPC实战与核心原理之分布式环境下如何快速定位问题

    分布式环境下如何快速定位 回顾 如何建立可靠的安全体系,关键点就是"鉴权",我们可以通过统一的鉴权服务动态生成秘钥,提高 RPC 调用的安全性. 分布式环境下定位问题有哪些困难 举 ...

  9. 【教程】Ubuntu 16.04 配置 CLion 开发 ROS Melodic

    [教程]Ubuntu 16.04 配置 CLion 开发 ROS Melodic 目录 [教程]Ubuntu 16.04 配置 CLion 开发 ROS Melodic 笔者环境 步骤 下载安装 CL ...

  10. Java 自定义线程池的线程工厂

      本文分享创建线程工厂 ThreadFactory 的三种方式,以方便大家快速创建线程池,并通过线程工厂给每个创建出来的线程设置极富业务含义的名字. 线程池大小考虑因素   由于需要自定义线程池,故 ...