Freeswitch学习

本文详细介绍了Freeswitch的配置文件结构,包括vars.xml中的全局变量,autoload_configs目录下的模块配置,以及directory目录下的用户配置。此外,还讲解了如何添加新的SIP用户,包括创建新的用户配置文件和更新拨号计划。最后,提到了重新加载配置的步骤,以确保更改生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Freeswitch 配置文件

转载配置文件解读

配置文件默认的目录是 /usr/local/freeswitch/conf

conf/目录和文件说明
|——vars.xml一些常用变量
|——autoload_configs目录、存放自动加载的配置文件
| |——modules.conf.xml配置当FreeSWITCH启动时自动装载哪些模块
| |——*.xml一般来说每个模块都有一个配置文件
|——dialplan拨号计划
| |——default.xml默认的拨号计划配置、一般用于内部用户路由
| |——public.xml默认的拨号计划配置、一般用于外部来话路由
|——directory用户目录
| |——default默认的用户目录配置
| ——*.xmlSIP用户、每个用户都有一个文件
|——sip_profilesSIP配置文件
| |——internal.xml一般SIP profile、或称作一个SIP-UA、监听在本地IP及端口5060
| |——externa.xml另一个SIP-UA、用作外部连接、端口5080

一、freeswitch.xml
freeswitch.xml文件是所有XML文件的粘合剂,它没有特别的作用,主要就是将不同的配置文件包含到不同部分(Section)中,从而生成一个大的XML配置文件

二、vars.xml
vars.xml 主要通过 X-PER-PROCESS 指令定义了一些全局变量,全局变量使用 KaTeX parse error: Can't use function '$' in math mode at position 16: {var} 表示,临时变量以 $̲{var} 表示,在实际使用中…{local_ip_v4}

三、autoload_configs目录
该目录下的各种配置文件是在系统启动的时候载入,一般来说都是模块级的配置文件,每个模块对应一个(主要并不是所有的模块都有配置文件),文件名一般以“模块名.confi.xml”的方式命名(模块名中不包含“mod_“)
启动载入根据配置文件module.conf.xml决定

四、directory目录
该目录中的配置文件决定了当FreeSWITCH作为注册服务器时,那些用户可以注册,即用于配置SIP用户

五、ivr_memues目录

该目录下放了一些默认的IVR菜单的例子

2、freeswitch 添加用户

Freeswitch默认的20个用户(1000-1019),如果需要更多的用户,那就需要添加一个新用户,所以就涉及到了Freeswitch的配置问题。例如我们要添加一个用户叫jack ,分机号为1020,只需要到相应的目录进行复制修改,并且把effective_caller_id_name 修改为jack

2.1 增加新用户配置文件

  1. 配置文件目录

    cd /usr/local/freeswitch/conf/directory
    
  2. 复制分机文件

    touch 1020.xml
    并且将1000.xml内容拷贝到1020,并且修改1000为1020即可
    
  3. 修改分机名

    <variable name="effective_caller_id_name" value="JACK"/>
    

2.2 修改拨号计划(Dialplan)使其他用户可以呼叫它

  1. 进入目录

    cd /usr/local/freeswitch/conf/dialplan
    
  2. 添加拨号记录

     <extension name="Local_Extension">
          <condition field="destination_number" expression="^(10[01][0-9]|1020)$">
            <action application="export" data="dialed_extension=$1"/>
            <!-- bind_meta_app can have these args <key> [a|b|ab] [a|b|o|s] <app> -->
            <action application="bind_meta_app" data="1 b s execute_extension::dx XML features"/>
    

    增加1020 分机号

  3. 重新加载
    然后在命令行中reload

    freeswitch@loacl> reloadxml
    
### Freeswitch 源码学习指南 #### 了解基础架构 深入理解 FreeSWITCH 架构对于掌握其工作原理至关重要。FreeSWITCH 是一个多线程应用程序,设计用于处理并发通信会话。核心组件包括事件驱动引擎、模块化框架以及多种协议支持[^1]。 #### 探索关键功能实现 播放与录音是 FreeSWITCH 中的重要特性之一,在早期版本中通过 `switch_core_file_write` 函数完成文件写入操作。尽管随着系统的演进变得更为复杂,研究这些基本机制仍然有助于深入了解整个平台的工作方式[^2]。 #### 获取官方资源和支持文档 访问官方网站 (https://freeswitch.org/) 不仅可以找到最新的发行版和安装指导,还有丰富的开发者社区贡献的技术文章、论坛讨论等内容可供参考。此外,GitHub 上也有活跃的开源项目仓库提供详细的提交记录和问题追踪信息[^3]。 #### 实践环境搭建 无论是基于 Linux 还是 Windows 平台,按照官方说明准备好开发测试环境都是必不可少的第一步。例如,在 Unix 类系统上可以通过命令行启动服务;而在 Windows 下则需先获取合适的二进制分发包并依照向导提示完成配置过程。 ```bash # 在Linux环境下启动Freeswitch服务实例 cd /usr/local/freeswitch/bin/ ./freeswitch ``` 为了更高效地探索源代码结构,建议利用现代IDE工具如 Visual Studio Code 或者 IntelliJ IDEA 配合插件来进行断点调试、函数跳转等功能辅助分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值