freeswitch 部署 - housekeeper-software/tech GitHub Wiki

配置环境

解压 freeswitch_setup.tar.gz 到某个目录
执行 ./setup 公网ip  电话号码
完成

说明

修改配置,或者添加用户之类的,执行如下命令使之生效:
docker exec -it voip /bin/bash -c "fs_cli -x reloadxml"

另外,freeswitch默认侦听端口原先是5060,5061,现在更换为 18888,18889,默认端口太容器被外网扫描到了。
最近服务器因为不断被全球不同的节点尝试呼叫导致日志爆满,系统也挂了。
奇数端口用于 tls 登录。

添加用户

进入: /data/freeswitch/directory/default
以用户名为文件名建立一个xml,可以从现存的xml中复制一份。打开文件,将其中的有关名称的地方换成用户名
用户名可以不是数字,是字母和数字的组合,只要合法就行
同时需要设置密码,我们现有的账号都是使用的默认密码。如果要指定密码,就在xml文件中修改
然后执行下面的命令,使得freeswitch 加载新的账号
docker exec -it voip /bin/bash -c "fs_cli -x reloadxml"

http服务

为了能让社区服务器自动创建账号和删除账号,在freeswitch服务器将提供 webservice 接口。端口为9989
这个接口 需要提交一个账号和密码的json文件给服务器,服务器自动创建账号,并返回结果。
当然,webservice 按照如上的方式添加用户和删除用户。

配置

目前已经配置好了,只能通过阿里云呼叫移动电话或者座机,不接受反向呼叫。

制作freeswitch docker

需要到 https://id.signalwire.com/personal_access_tokens 注册一个账号, 然后在 profile里生成 Personal Access Tokens 替换下面的 $USER ,$PASSWORD

FROM debian:10
USER root

ENV DEBIAN_FRONTEND noninteractive

ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1

ADD sources.list /etc/apt/sources.list

RUN apt-get update && \
    apt-get -y install apt-utils lsb-release gnupg ca-certificates wget curl \
    && apt-get -y clean

#https://freeswitch.org/confluence/display/FREESWITCH/Debian

RUN wget --http-user=$USER --http-password=$PASSWORD -O /usr/share/keyrings/signalwire-freeswitch-repo.gpg https://freeswitch.signalwire.com/repo/deb/debian-release/signalwire-freeswitch-repo.gpg

RUN echo "machine freeswitch.signalwire.com login jingxi password pat_5ziLNLjBysUwu2iEK2XMyuVM" > /etc/apt/auth.conf

RUN 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

RUN 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

 

RUN apt-get update \
    && apt-get install -y freeswitch-meta-all \
    && apt-get -y clean

CMD ["freeswitch","-nf"]




调试

docker exec -it voip /bin/bash
fs_cli
show registrations #查看当前在线用户