记录安装过程。
wget https://npmmirror.com/mirrors/node/v16.18.1/node-v16.18.1-linux-x64.tar.xz
tar -xvf node-vv16.18.1-linux-x64.tar.xz
mkdir -p /usr/local/nodejs
mv node-vv16.18.1-linux-x64/* /usr/local/nodejs/
创建软链接
# 建立node软链接
ln -s /usr/local/nodejs/bin/node /usr/local/bin
# 建立npm 软链接
ln -s /usr/local/nodejs/bin/npm /usr/local/bin
更换镜像源
# 设置国内淘宝镜像源
npm config set registry https://registry.npm.taobao.org
# 查看设置信息
npm config list
验证是否安装成功
node -v
npm -v
git clone https://github.com/onsip/SIP.js.git
npm install
npm run build-demo
安装
wget http://nginx.org/download/nginx-1.22.1.tar.gz
tar -xvf nginx-1.22.1.tar.gz -C /usr/local
cd nginx-1.22.1
./configure --prefix=/usr/local/nginx --with-stream --with-http_ssl_module --with-stream_ssl_preread_module --with-stream_ssl_module
make && make install
# 启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# 重启
/usr/local/nginx/sbin/nginx -s reload
/usr/local/nginx/sbin/nginx -s stop
wget http://files.freeswitch.org/downloads/ssl.ca-0.1.tar.gz
tar zxfv ssl.ca-0.1.tar.gz
cd ssl.ca-0.1/
perl -i -pe 's/md5/sha1/g' *.sh
perl -i -pe 's/2048/2048/g' *.sh
生成根证书
./new-root-ca.sh
为我们的服务器生成一个证书
./new-server-cert.sh server
签署证书使证书生效
./sign-server-cert.sh server
cat server.crt server.key > /usr/local/freeswitch/certs/wss.pem
status 查看fs的状态
sofia status 查看sofia的状态
查看注册信息
1. sofia profile internal siptrace on打开siptrace
2. 注册手机到fs,处理拨打电话等一系列操作
3. sofia profile internal siptrace off关闭siptrace
sofia status profile internal reg 查看注册的电话信息
查看调试信息
uuid_debug_media 按table补全 all
W表示发 R表示读
W的seq是发包是顺序的,R的seq可能不是顺序的,那就是丢包或者乱序了,需要存以个buffer去排列,延时会高一点,但是信息内容是不会丢的,延时300毫秒是能接受范围
ts记录的是时间戳,每一个包都有一个时间戳
show application查看所有的application
show channels查看当前通话的数据
uuid_kill uuid 命令挂断某个电话
hupall 挂断所有电话
show calls显示几路通话,两个电话为一路
originate {sip_auto_answer=true}user/1003 &echo设置自动应答,有的支持有的不支持
通道变量可以传递信息,也可以改变通道的行为
设置application=“set” data="自定义的通道变量或者系统的"
console loglevel debug修改日志级别为debug,或者f8
originate user/1003 &echo呼叫
originate user/1003 &park挂起 单腿通话,等待接通,不带声音
originate user/1003 &hold挂起 有等待声音
originate user/1003 &palyback(/root/welcome.wav) 播放指定的音乐
originate user/1003 &record(/tmp/voice.wav) 录音保存到(地址)
originate user/1003 &bridge(user/1002)桥接到1002
uuid_bridge <uuid_1002> <uuid_1003>根据1002和1003的uuid桥接
获取sip消息得方法
freeswitch执行
sofia global siptrace on打开sip 日志信息
sofia global siptrace off关闭sip日志信息
查看外网地址cmd命令
curl ifconfig.me
TURN(转发方式穿越的NAT)
解决对称NAT的问题
STUN(NAT回话穿越应用程序)
解决锥形NAT的问题
是一种网络协议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT路由器之后的主机之间创建UDP通信
ICE(交互式连通建立)
综合利用TURN和STUN等技术,使其在合适的情况下工作,弥补单独使用某种协议带来的缺陷
/usr/local/src/ssl.ca-0.1/wss.pem
/usr/local/src/ssl.ca-0.1/server.key