# fs-install
**Repository Path**: oakhole/fs-install
## Basic Information
- **Project Name**: fs-install
- **Description**: freeswitch 安装脚本。
- **Primary Language**: Shell
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 1
- **Created**: 2023-05-11
- **Last Updated**: 2026-08-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## FS 安装及配置
### 系统环境
CentOS 系统 7.x mini
#### 内核参数 `ulimit` 配置
```shell
ulimit -c unlimited
ulimit -d unlimited
ulimit -f unlimited
ulimit -i unlimited
ulimit -n 999999
ulimit -q unlimited
ulimit -u unlimited
ulimit -v unlimited
ulimit -x unlimited
ulimit -s 240
ulimit -l unlimited
```
#### 防火墙配置
```shell
# 关闭 ipables 服务
systemctl stop iptables.service
systemctl disable iptables.service
```
`SIP端口`: 5060 / 5080
`RTP端口`: 16384 - 32768
#### 网络配置
- 多网卡配置, 或云服务器配置
`ip route add 221.181.213.19/32 via 10.44.241.177`
### FS 安装
使用 fusionpbx 脚本安装 Freeswitch。
- **前置条件**
配置``
```shell
yum install -y git
git clone https://gitee.com/oakhole/fs-install.git && cd fs-install && chmod +x install.sh
install.sh
```
开启 `sngrep` 监控 sip 消息,使用 sip 客户端登录用户 `1000、1001` 到 `IP:5060` 的 sip 消息并相互呼叫验证服务是否可用。
### FS 服务配置
#### 建议配置
- 默认分机密码
```xml
```
- 变更 sip 监听 IP 和 端口
```xml
```
- 语音编码
```xml
```
- `SPS` 和 `max_session`, 对应 caps 值和最大会话数。默认值 sps=30,max_session=1000
`fsctl sps` 或 `fsctl max_session` 查看当前运行环境中的默认值。
```xml
```
- ACL
```xml
```
- 落地网关
```xml
```
- SBC 媒体配置
`default`: 默认模式,协商转发转码媒体流,适合呼叫中心场景。
`proxy-media`: 代理模式,转发不处理,不对 SDP 信息进行处理,适合 SBC 场景解决 nat 问题。
`bypass-media`: 旁路模式,不转发不处理,性能最高,适合信令代理、黑名单、计费等场景。
```xml
```
- 呼入路由
```xml
```
- 外呼路由
```xml
```
- 删除冗余配置
```txt
conf/chatplan/default.xml
conf/dialplan/*
conf/directory/*
conf/ivr_menus/*
conf/jingle_profiles/*
conf/mrcp_profiles/*
conf/sip_profile/*ipv6*.xml
conf/skinny_profiles/*
```
#### 优化配置(选择性)
- 使用内存,freeswitch 内置的数据库 sqlite 对性能影响也很大, 磁盘 IO 在每次呼叫都有发生,所以可以把 core db 放到 ram 里。
```xml
```
或者,在启动时禁止数据库,启动时加参数 `-nosql`, 完整启动命令为 `freeswitch -nc -nonat -nosql`
- 关闭 media timer,关闭 sip profile 的 media 检测。
```xml
```
- 关闭不必要的模块,如 xml_cdr,默认写通话记录到磁盘,影响性能。模块配置注释 `mod_xml_cdr` 后重启。
```xml
```
- 对于 caps 很高的应用,为了提高系统吞吐量,可以使用 session 线程池,在 switch.conf.xml 文件修改 session-pool 为 true。
```xml
```