diff --git a/freeswitch/Debian11编译安装FreeSWITCH1.10.md b/freeswitch/Debian11编译安装FreeSWITCH1.10.md
new file mode 100644
index 0000000..02dfdd4
--- /dev/null
+++ b/freeswitch/Debian11编译安装FreeSWITCH1.10.md
@@ -0,0 +1,489 @@
+# Debian11编译安装FreeSWITCH1.10
+
+---
+
+[toc]
+
+---
+
+## 安装操作系统
+
+### 配IP时可能需要用到DNS信息
+
+| 地区运营商 | DNS |
+|---|---|
+|江苏移动|112.4.0.55, 221.131.143.69|
+
+### 给root配一个复杂点的密码,同时再配置一个非root的管理员账号
+
+|账号|密码|
+|---|---|
+|root|BU1#0sgqX$|
+|wkzz|WKzz051223|
+
+> 江苏移动用mirrors.163.com源速度比较快
+
+### 系统安装完成后可以进行系统升级并安装一些基础软件
+
+```shell
+apt update && apt upgrade -y
+apt install -y wget git vim lrzsz net-tools
+```
+
+### 在Debian系统里想要SSH登录root账号
+
+```shell
+vim /etc/ssh/sshd_conf
+```
+
+修改内容如下:
+
+```ini
+#PermitRootLogin prohibit-password
+PermitRootLogin yes
+
+#PasswordAuthentication yes
+PasswordAuthentication yes
+```
+
+修改后重启一下ssh服务
+
+```shell
+/etc/init.d/ssh restart
+```
+
+### 添加静态路由解决个别IP无法被本机PING通的问题
+
+```shell
+vim /etc/network/interfaces
+```
+
+在`iface ens192 inet static`配置段的后面添加两行
+
+```ini
+ up ip route add 183.211.245.35/32 via 183.211.245.1
+ down ip route del 183.211.245.35/32 via 183.211.245.1
+```
+
+修改后的完整配置应该类似下面:
+
+```ini
+iface ens192 inet static
+ address 183.211.245.51/25
+ gateway 183.211.245.1
+ up ip route add 183.211.245.35/32 via 183.211.245.1
+ down ip route del 183.211.245.35/32 via 183.211.245.1
+```
+
+### 配置DNS
+
+```shell
+vim /etc/resolv.conf
+```
+
+文件内容如下:
+
+```ini
+nameserver 112.4.0.55
+nameserver 221.131.143.69
+```
+
+修改配置后重启网卡(具体设备名称因机而异):
+
+```shell
+ifdown ens192 && ifup ens192
+```
+
+### 在Debian系统里启用ll命令
+
+```shell
+vim ~/.bashrc
+```
+
+解除alias ll行的注释或者添加一行:
+
+```ini
+alias ll='ls $LS_OPTIONS -l --color=auto'
+```
+
+退出终端重新进入或者使用下面命令生效:
+
+```shell
+source ~/.bashrc
+```
+
+## 安装lua和luarocks环境
+
+### 下载并安装lua5.4.4
+
+> lua安装包的下载地址:
+
+```shell
+apt install -y build-essential libreadline-dev unzip
+```
+
+```shell
+cd /usr/src
+wget http://www.lua.org/ftp/lua-5.4.4.tar.gz
+tar zxvf lua-5.4.4.tar.gz
+cd lua-5.4.4
+make linux test
+make install
+```
+
+> 合并命令:`cd /usr/src && wget http://www.lua.org/ftp/lua-5.4.4.tar.gz`,下载成功后再执行`tar zxvf lua-5.4.4.tar.gz && cd lua-5.4.4.tar.gz && make linux test && make install && cd ..`
+
+### 下载并安装luarocks3.9.0
+
+> luarocks安装包的下载地址
+
+```shell
+cd /usr/src
+wget https://luarocks.github.io/luarocks/releases/luarocks-3.9.0.tar.gz
+tar zxfv luarocks-3.9.0.tar.gz
+cd luarocks-3.9.0
+./configure
+make
+make install
+```
+
+> 合并命令:`cd /usr/src && wget https://luarocks.github.io/luarocks/releases/luarocks-3.9.0.tar.gz`,下载成功后再执行 `tar zxfv luarocks-3.9.0.tar.gz && cd luarocks-3.9.0 && ./configure && make && make install && cd ..`
+
+## 编译安装FreeSWITCH
+
+### 安装FreeSWITCH
+
+> 不知道后来从什么时间点开始,通过signalwire的源去安装FreeSWITCH所需依赖包时,需要使用向Signalwire平台申请的Access Token,临时提供一个`pat_jMxihv2uTh3ivpPdSqUMffB3`
+
+```shell
+# 这个token不要照抄,要替换成自己的
+TOKEN=pat_jMxihv2uTh3ivpPdSqUMffB3
+
+apt update && apt install -yq gnupg2 wget lsb-release
+wget --http-user=signalwire --http-password=$TOKEN -O /usr/share/keyrings/signalwire-freeswitch-repo.gpg https://freeswitch.signalwire.com/repo/deb/debian-release/signalwire-freeswitch-repo.gpg
+
+echo "machine freeswitch.signalwire.com login signalwire password $TOKEN" > /etc/apt/auth.conf
+echo "deb [signed-by=/usr/share/keyrings/signalwire-freeswitch-repo.gpg] https://freeswitch.signalwire.com/repo/deb/debian-release/ `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list
+echo "deb-src [signed-by=/usr/share/keyrings/signalwire-freeswitch-repo.gpg] https://freeswitch.signalwire.com/repo/deb/debian-release/ `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list
+
+apt update
+
+# Install dependencies required for the build
+apt build-dep freeswitch -y
+
+# then let's get the source. Use the -b flag to get a specific branch
+cd /usr/src/
+git clone https://github.com/signalwire/freeswitch.git -b v1.10 freeswitch
+cd freeswitch
+
+# Because we're in a branch that will go through many rebases, it's
+# better to set this one, or you'll get CONFLICTS when pulling (update).
+git config pull.rebase true
+
+# ... and do the build
+./bootstrap.sh -j
+./configure
+make
+make install
+```
+
+### 安装音频文件(英文)
+
+```shell
+cd /usr/src/freeswitch
+make cd-sounds-install
+make cd-moh-install
+make uhd-sounds-install
+make uhd-moh-install
+make hd-sounds-install
+make hd-moh-install
+make sounds-install
+make moh-install
+
+# cd /usr/src/freeswitch && make moh-install && make sounds-install && make hd-moh-install && make hd-sounds-install && make uhd-moh-install && make uhd-sounds-install && make cd-moh-install && make cd-sounds-install
+```
+
+## 配置FreeSWITCH
+
+### conf/vars.xml中的配置项
+
+> 主要是sip用户默认密码、stun地址、sip端口号等配置
+
+```shell
+vim /usr/local/freeswitch/conf/vars.xml
+```
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### conf/sip_profiles/internal.xml中的配置项
+
+> 主要是与内部sip账号相关的配置
+
+```shell
+vim /usr/local/freeswitch/conf/sip_profiles/internal.xml
+```
+
+```xml
+
+
+
+
+
+
+
+
+```
+
+### conf/autoload_configs/acl.conf.xml中的配置项
+
+> 主要用来制定可(通过ESL)连接FreeSWITCH的IP规则
+
+```shell
+vim /usr/local/freeswitch/conf/autoload_configs/acl.conf.xml
+```
+
+下面的文件内容要根据实际情况配置,不能照抄。
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### conf/autoload_configs/event_socket.conf.xml中的配置项
+
+> 用于配置ESL相关参数
+
+```shell
+vim /usr/local/freeswitch/conf/autoload_configs/event_socket.conf.xml
+```
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### conf/autoload_configs/modules.conf.xml中的配置
+
+> 负责开启或关闭一些模块,开启模块时需要确定模块已经被正确安装
+
+```shell
+vim /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml
+```
+
+```xml
+
+
+
+
+
+
+```
+
+### 关闭ipv6配置
+
+> 为了提高一点启动效率而已,如果需要IPV6就跳过这一步
+
+```shell
+cd /usr/local/freeswitch/conf/sip_profiles/
+mv external-ipv6.xml external-ipv6.xml.removed
+mv internal-ipv6.xml internal-ipv6.xml.removed
+```
+
+### 做freeswitch和fs_cli的软连接
+
+```shell
+ln -sf /usr/local/freeswitch/bin/freeswitch /usr/local/bin/
+ln -sf /usr/local/freeswitch/bin/fs_cli /usr/local/bin/
+```
+
+## 配置ufw防火墙
+
+```shell
+apt install -y ufw
+# 基础规则
+ufw default allow outgoing && ufw default deny incoming && ufw allow ssh
+# FS-SIP
+ufw allow 5060
+# FS-SIP-EXTERNAL
+ufw allow 5080
+# FS-WS
+ufw allow 5066/tcp
+# FS-WSS
+ufw allow 7443/tcp
+# Event Socket
+ufw allow 8021/tcp
+# FS-RTP
+ufw allow 16384:32768/udp
+# FS-MRCP-RTP
+ufw allow 4000:5000/udp
+# ufw开机自启
+systemctl enable ufw
+# 启动ufw
+ufw enable
+# 检查ufw开机项
+systemctl list-unit-files | grep ufw
+```
+
+## 启动FreeSWITCH
+
+```shell
+# 控制台启动,退出即关闭服务
+freeswitch -nonat
+# 也可以后台启动,启动后需要使用fs_cli查看控制台,需要用shutdown命令关闭服务
+freeswitch -nc -nonat
+```
+
+## fs_cli连接
+
+```shell
+vim ~/.fs_cli_conf
+```
+
+```ini
+[default]
+host => 127.0.0.1
+port => 8021
+password => ClueConAAAA
+debug => 6
+```
+
+做了以上配置后,直接`fs_cli`就能查看控制台,`...`退出控制台
+
+## SIP终端注册测试
+
+> 假设这个FreeSWITCH服务器和SIP终端的网络是互通的
+
+**注册信息:**
+
+|项|值|
+|---|---|
+|服务器IP|FreeSWITCH服务器的IP或域名|
+|SIP端口号|5060,或是在vars.xml中配置的其他端口号|
+|用户名|1001~1019中的任意一个分机号都行|
+|密码|654654321,或是在vars.xml中配置的其他默认密码|
+|网络协议|TCP或UDP都可以|
+
+> 如果终端分机注册成功,用分机呼叫`9664`可以听到通话保持音乐,呼叫`9196`可以听到`echo`效果(你说什么他回什么),如果以上结果正常,说明本次FreeSWITCH服务器安装成功,可以开始后面的具体的开发和配置了。
+
+## 向已安装的FreeSWITCH添加模块
+
+### 添加mod_shout模块
+
+> mod_shout模块可以将通话录音保存为mp3文件
+
+先进入FreeSWITCH的源码目录
+
+```shell
+cd /usr/src/freeswitch
+vim modules.conf
+```
+
+修改如下内容
+
+```ini
+# 找到mod_shout一行,解除行首的注释
+formats/mod_shout
+```
+
+保存退出后,再执行下面的命令
+
+```shell
+make mod_shout-install
+```
+
+待编译安装完成后,在FreeSWITCH的安装目录`/usr/local/freeswitch`中的`mod`目录下就已经存在`mod_shout.so`这个文件了。
+
+接下来要回到FreeSWITCH的安装目录
+
+```shell
+cd /usr/local/freeswitch
+vim conf/autoload_configs/modules.conf.xml
+```
+
+编辑文件内容
+
+```xml
+
+
+```
+
+最后进入FreeSWITCH控制台`fs_cli`,在控制台中执行命令`load mod_shout`,到此mod_shout模块已经安装完成并在FreeSWITCH服务器生效。
+
+### 添加mod_unimrcp模块
+
+> mod_unimrcp模块可以通过mrcp协议实现实时语音识别和语音合成能力
+
+先进入FreeSWITCH的源码目录
+
+```shell
+cd /usr/src/freeswitch
+vim modules.conf
+```
+
+修改如下内容
+
+```ini
+# 找到mod_mod_unimrcp一行,解除行首的注释
+asr_tts/mod_unimrcp
+```
+
+保存退出后,再执行下面的命令
+
+```shell
+make mod_unimrcp-install
+```
+
+待编译安装完成后,在FreeSWITCH的安装目录`/usr/local/freeswitch`中的`mod`目录下就已经存在`mod_unimrcp.so`这个文件了。
+
+接下来要回到FreeSWITCH的安装目录
+
+```shell
+cd /usr/local/freeswitch
+vim conf/autoload_configs/modules.conf.xml
+```
+
+编辑文件内容
+
+```xml
+
+
+```
+
+最后进入FreeSWITCH控制台`fs_cli`,在控制台中执行命令`load mod_unimrcp`,到此mod_unimrcp模块已经安装完成并在FreeSWITCH服务器生效。
diff --git a/freeswitch/安装freeswitch1.10.md b/freeswitch/安装freeswitch1.10.md
index fa14784..253fa98 100644
--- a/freeswitch/安装freeswitch1.10.md
+++ b/freeswitch/安装freeswitch1.10.md
@@ -2,6 +2,8 @@
---
+> 2022年6月,这个文档已经失效,按照这个文档操作将不会成功,转至Debian11编译安装FreeSWITCH1.10,亲测成功。
+
## 安装centos7.9(2009)操作系统
略
@@ -147,13 +149,13 @@ make install
- 安装音频文件(英文)
```bash
-make cd-sounds-install && \
-make cd-moh-install && \
-make uhd-sounds-install && \
-make uhd-moh-install && \
-make hd-sounds-install && \
-make hd-moh-install && \
-make sounds-install && \
+make cd-sounds-install
+make cd-moh-install
+make uhd-sounds-install
+make uhd-moh-install
+make hd-sounds-install
+make hd-moh-install
+make sounds-install
make moh-install
# make moh-install && make sounds-install && make hd-moh-install && make hd-sounds-install && make uhd-moh-install && make uhd-sounds-install && make cd-moh-install && make cd-sounds-install
diff --git a/freeswitch/搭建STUN服务.md b/freeswitch/搭建STUN服务.md
index 59aeefe..af95f42 100644
--- a/freeswitch/搭建STUN服务.md
+++ b/freeswitch/搭建STUN服务.md
@@ -20,27 +20,46 @@ http://www.stunprotocol.org/
```bash
# 安装依赖
-yum install gcc g++ make
-yum install boost-devel
-yum install openssl-devel
+yum install -y gcc gcc-c++ make boost-devel openssl-devel
# 下载安装包
cd /usr/local/src
curl -OL http://www.stunprotocol.org/stunserver-1.2.16.tgz
# 解压
tar xvf stunserver-1.2.16.tgz
+# 转移目录
+mv stunserver /usr/local/
# 安装
-cd stunserver
+cd /usr/local/stunserver
make
# 校验
./stuntestcode
-# 运行
+# 启动服务
./stunserver &
```
## 防火墙
```bash
-firewall-cmd --permanent --add-port="3478/udp"
+firewall-cmd --permanent --add-port=3478/udp
+firewall-cmd --reload
+```
+
+## 开机启动stun服务
+
+```bash
+vim /etc/rc.local
+```
+
+在最后添加一行
+
+```bash
+/usr/local/stunserver/stunserver &
+```
+
+对rc.local添加执行权限
+
+```bash
+chmod +x /etc/rc.d/rc.local
```
## 配置freeswitch