本文档主要介绍的是发送短信的场景。语音通讯后续补充。
业务场景:由于产品部署在视频网、或者公安网这种内部网络,无法使用互联网,发送短信提醒的实现方案有两种
一种是是使用短信猫设备,插入手机卡,调用短信猫服务发送短信
一种就是使用本文介绍这种方式使用FreeSwitch服务+语音网关设备(插入手机卡)

FreeSwitch是什么

FreeSwitch 是一个软交换,是一个SIP Server,是一个IP-PBX

SIP: 是一种源于互联网的IP,语音会话控制协议。
SIP Server: 可以提供一个SIP服务,供给IP电话之间会话
IP-PBX 基于IP的公司电话系统

常用的使用场景

  • 使用FreeSwitch当做SIP服务
  • 如果需要跟外部通讯,需要购买语音网关这个设备,设备需要接入电话线或者插电话卡
  • 如果有IP话机可以接入购买的网关,或者FreeSwitch服务

网关是什么

·····
网关是用来连接运营商的,使得FreeSwitch可以和实体电话或者手机卡通讯

  1. 网关上有FXO口可以用来连接运营商的线路
  2. 网关上有FXS口用来通过RJ11电话线连接实体电话
  3. 网关还会提供路由功能,可以让IP电话直接通过wifi或者LAN口相连。(但是我们的使用场景是直接连接 到FreeSwitch,网关只用了以上的两个用途)
    ···

FreeSwitch服务配置介绍

Conf目录下
····
freeswitch.xml 总配置文件,引入以下各个配置文件
vars.xml 配置FreeSwitch用到的变量
主要默认密码的配置:
default_password
outbound_call_id
outbound_call_name
external_rtp_ip
external_sip_ip
internal_sip_port
internal_tls_port
external_sip_port
external_tls_port

autoload_configs 目录
acl.conf.xml 配置
event_socket.conf.xml 配置fs_cli客户端的连接方式

chatplan 文字聊天配置
dialplan 拨号配置
directory SIP分机的默认配置文件,默认有20个。网络电话,或者实体电话都可以注册进来
ivr_menus 语音会话
jingle_profiles 连接google talk
sip_profiles sip的配置文件

FreeSwitch启动方式

  • Windows方式
    这个比较简单,直接Cmd执行FreeSwitchConsole
    出现这个标识,标识启动成功。可以测试或者修改配置。
  • Linux启动方式,由于都是内网环境,直接安装依赖很多还是用docker容器部署的时候比较方便
1. docker volume create --name freeswitch-sounds
// 上边这个主要是映射FreeSwitch里的语音文件,里边会有各种铃声和小段录音,打招呼的录音,挂断前的录音等。不关注语音提示的可以不用关心。我们也会自建一些报警的录音。
2. vi /etc/systemd/system/freeswitch-docker.service  创建一个Systemctl服务。但是实际这个服务启动的是docker容器
[Unit]
Description=freeswitch Container
After=docker.service network-online.target
Requires=docker.service[Service]
Restart=always
TimeoutStartSec=0
#One ExecStart/ExecStop line to prevent hitting bugs in certain systemd versions
ExecStart=/bin/sh -c 'docker rm -f freeswitch; \docker run -t --network bridge --name freeswitch \-p 5060:5060/udp -p 5060:5060 \-e SOUND_RATES=8000 \-e SOUND_TYPES=music:en-us-callie \-v freeswitch-sounds:/usr/share/freeswitch/sounds \-v /etc/freeswitch/:/etc/freeswitch \safarov/freeswitch'ExecStartPost=/bin/sh -c 'sleep 5; \IP_ADDR=$(docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" freeswitch); \/sbin/iptables -A DOCKER -t nat -p udp ! -i docker0  --dport 17000:17999 -j DNAT --to $IP_ADDR:17000-17999; \/sbin/iptables -A DOCKER -p udp ! -i docker0 -o docker0 -d $IP_ADDR --dport 17000:17999 -j ACCEPT'ExecStop=-/bin/sh -c 'IP_ADDR=$(docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" freeswitch); \/sbin/iptables -D DOCKER -t nat -p udp ! -i docker0  --dport 17000:17999 -j DNAT --to $IP_ADDR:17000-17999; \/sbin/iptables -D DOCKER -p udp ! -i docker0 -o docker0 -d $IP_ADDR --dport 17000:17999 -j ACCEPT; \/usr/bin/docker stop freeswitch; \/usr/bin/docker rm -f freeswitch;'[Install]
WantedBy=multi-user.target把以上配置复制倒freeswitch-docker.service文件里。
可以自行修改docker启动的时候的目录映射名称等。
这个里边还开放了好多端口。建议关闭防火墙 Systemctl stop firewalldchmod +x /etc/systemd/system/freeswitch-docker.service
systemctl daemon-reload
systemctl start freeswitch-docker// fs_cli是连接freeswitch的客户端,如果执行得倒容器里边执行,方便使用直接映射倒容器外边
vi ~/.bashrc
alias fs_cli='docker exec -i -t freeswitch /usr/bin/fs_cli'
source ~/.bashrc

以上服务就起来了

网关设备的配置






配置freeswitch

配置网关
conf/sip_profiles/external/gateway.xml

<include><gateway name="gateway"> <!-- 网关的名字 --> <param name="username" value="5"/> <!-- sip账号 --> <param name="password" value="1234"/> <!-- sip密码 --><param name="realm" value="192.168.11.1" /> <!-- sip地址,购买的网关的默 认服务地址 --> </gateway> </include>

如果这时已经启动了FreeSwitch可以重启也可以通过命令加载
命令

sofia profile internal restart
sofia status

拨通电话播放录音的命令

originate sofia/gateway/gw3/1852xx3053 &playback(D:/5.wav)

发送短信的命令

chat sip|noreply@mydomain|external/sip:18522xx3053@192.168.11.1|测试短信

以上是windows环境,直接在freeswitcConsole里执行的。

可以用fs_cli执行
linux这样执行

fs_cli --execute="chat sip|noreply@mydomain|external/sip:1852xxx3053@192.168.1.107:5080|测试短信"// 注意192.168.1.107是网关设备的地址

Freeswitch服务+语音网关设备发送短信功能相关推荐

  1. springboot集成阿里云短信服务,实现发送短信功能

    springboot集成阿里云短信服务,实现发送短信功能 准备工作: 1.登陆阿里云->进入控制台->开通短信服务(进入后根据提示开通) 2.充值(借人家平台发短信你以为不要钱的?我充了3 ...

  2. thinkphp6对接阿里云短信服务完成定时发送短信功能

    1.导入阿里短信包 通过composer下载依赖包 composer require alibabacloud/dysmsapi-20170525 2.0.22 具体可参见阿里云短信服务 >&g ...

  3. 魔方APP项目-05-注册功能实现,手机号唯一验证接口、客户端进行手机号验证、保存用户注册信息接口、客户端用户进行注册、使用云通讯发送短信,服务端实现发送短信验证码的api接口、客户端实现点击发送短信

    用户模块 注册功能实现 1.手机号码唯一验证接口 在开发中,针对客户端提交的数据进行验证或提供模型数据转换格式成字典给客户端.可以使用Marshmallow模块来进行. 为了方便导包,所以我们设置当前 ...

  4. TP5 封装多业务的发送短信功能(包括国际短信)

    1.准备工作 1.1.准备依赖包 这个网站提供的都是PHP包,挺有用的 https://packagist.org/ 另外还可以在GitHub上面下载 https://github.com/ 1.短信 ...

  5. 【短信发送】实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现

    实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现 一.开通腾讯云短信服务 二.工具类--使用qcloudsms实现短信发送 三.Spring Boot项目引入短信发送功能 我们发 ...

  6. TP5调用阿里云短信接口实现发送短信功能

    TP5调用阿里云短信接口实现发送短信功能 工作需要,对接阿里云的短信服务,借此记录一下(网站 www.lelee.top) 主要分为两个部分,一是下载官方的Demo事例,这个不需要多说,自己去下载就行 ...

  7. 实现 Java 发送短信功能

    前言 前几日,有粉丝后台私信我如何实现发送短信的功能,刚好久一刚刚用到了这个功能,就把具体的实现过程记录下来,分享给大家. 我们日常使用的软件或者网站,大部分都在使用短信业务,比如注册.验证码功能.还 ...

  8. 7 分钟实现 Java 发送短信功能!

    阅读文本大概需要 7 分钟. 前言 前几日,有粉丝后台私信我如何实现发送短信的功能,刚好久一刚刚用到了这个功能,就把具体的实现过程记录下来,分享给大家. 我们日常使用的软件或者网站,大部分都在使用短信 ...

  9. java 阿里云 发送短信功能实现

    1. 注册短信平台(以阿里云为例) 常用短信服务平台:阿里云.华为云.腾讯云.京东.梦网.乐信等 2. 注册成功后,开通短信服务 3. 设置短信签名.短信模板.AccessKey AccessKey ...

最新文章

  1. 服务器管理神器 开源堡垒机 jumpserver 实战教程
  2. java包的命名规则技巧
  3. 配置Vlan访问控制
  4. Minimum grid
  5. 小甲鱼 OllyDbg 教程系列 (十六) : 简单病毒的逆向分析
  6. 阿里最快数周内提交赴港上市申请?回应:不予置评
  7. 用SignalR 2.0开发客服系统[系列5:使用SignalR的中文简体语言包和其他技术点]
  8. php最基础的也是其最容易出错的地方
  9. mui 页面滚动解决方案
  10. MATLAB 简单神经网络案例
  11. ie浏览器样式兼容写法_浏览器兼容性以及写法
  12. 在计算机术语中 将ALU控制器和,计算机组成原理试管理-题集
  13. 【Java EE 学习 21 下】【使用java实现邮件发送、邮件验证】
  14. 基于MQ-135传感器和Arduino开发板的烟雾探测器
  15. 记得第一次看见他的时候,他刚被收容所送
  16. 2021全球与中国船舶电子导航系统市场现状及未来发展趋势
  17. LAUDA Scientific接触角测量仪之一键双液滴技术计算固体表面自由能
  18. 分离策略在趋势和盘整条件下的优化
  19. 商品结算页面html代码,前端开发jQuery购物车结算页面代码
  20. 大规模MIMO系统中基于CSI的卷积神经网络定位

热门文章

  1. 寻找最小生成树的欧拉路径,即一笔画问题
  2. html字体根据宽度自动调整,css – 根据div大小调整字体大小
  3. Bubble Babble Binary Data Encoding的简介以及bubblepy的安装使用方法
  4. 道阻且长,行则将至,行而不辍,未来可期
  5. MP4文件格式的相关内容
  6. Mac 升级 Bash 到最新版本
  7. Kubernetes CKA认证运维工程师笔记-Kubernetes故障排查
  8. 替身机器人,看我用脑电波控制你
  9. phabricator 结合 arcanist 使用
  10. DTL语言学习(四){% spaceless %}、{% autospace %}和{% verbatim %}标签