freeswitch中使用webapi操作控制

Publish: September 25, 2020 Category: 编程 No Comments

FreeSwitch支持多种方式的控制配置,使用webapi方式相对其他方式命令简单,比较直观。期认证方式为HTTP Basic认证方式,也就是在发送控制命令的时候携带用户名密码即可。

如果开启了mod_curl模块,在浏览器中访问 http://your-host:8080/webapi/help 会看到如下所有命令。

.    Shutdown  mod_commands
acl  <ip> <list_name>  Compare an ip to an acl list  mod_commands
alias  [add|stickyadd] <alias> <command> | del [<alias>|*]  Alias  mod_commands
amr_debug  <on|off>  Set AMR Debug  mod_amr
av  debug [on|off] | show <formats | codecs>  AV general commands  mod_av
banner    Return the system banner  mod_commands
bg_system  <command>  Execute a system command in the background  mod_commands
bgapi  <command>[ <arg>]  Execute an api command in a thread  mod_commands
break  <uuid> [all]  uuid_break  mod_commands
cdr_csv  parameters  cdr_csv controls  mod_cdr_csv
chat  <proto>|<from>|<to>|<message>|[<content-type>]  chat  mod_dptools
coalesce  [^^<delim>]<value1>,<value2>,...    

以上只列举了一部分。

阅读剩余部分...

freeswitch安装图形用户界面FreeSwitch Portal

Publish: September 18, 2020 Category: 运维 No Comments

使用侵入性最低的方案。FreeSwitch Portal

freeswitch portal为内置模块,开箱即用(Out of the Box)
安装完成之后只需要启用就可以

fs_cli
load mod_xml_rpc

如果想跟随freeswitch启动则直接操作配置文件具体如下:

#conf/autoload_configs/modules.xml 中去掉如下注释:
<load module="mod_xml_rpc"/>

阅读剩余部分...

使用Docker在Debian10中构建FreeSwitch镜像

Publish: September 18, 2020 Category: 运维 No Comments

尝试了多种方案,包括ubuntu下的编译安装等,由于依赖原因都没有很好的解决。最终选定官方推荐的直接安装编译的安装包。
构建过程如下:
由于我是在阿里云ECS中构建的上述服务,首先安装docker


apt install docker.io
docker pull debian
docker run -idt --name=freeswitch debian /bin/bash

添加新的source资源:

apt-get update && apt-get install -y gnupg2 wget lsb-release
wget -O - https://files.freeswitch.org/repo/deb/debian-release/fsstretch-archive-keyring.asc | apt-key add -
echo "deb http://files.freeswitch.org/repo/deb/debian-release/ `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list
echo "deb-src http://files.freeswitch.org/repo/deb/debian-release/ `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list

更新源并安装:
默认情况下freeswitch的配置文件在/etc/freeswitch目录,资源文件在/usr/share/freeswitch目录。


apt-get update && apt-get install -y freeswitch-meta-all

启动


freeswitch

基于MQTT协议的物联网设备平台设计总结

Publish: September 3, 2020 Category: 编程 No Comments

IoT(Internet of Things),是当下出现频率非常高的一个词汇,无论是可穿戴设备、工业设备、商用设备通过连接互联网,实现彼此协作以及和后端服务协同交互,极大提高了设备灵活性,高可用性。
互联网的基础协议是TCP/IP。而MQTT是基于TCP/IP协议栈构建,相比其他协议更为简单,而且生态系统丰富,受到广大开发者的青睐。相比传统的HTTP协议,MQTT协议有如下优势:

  • 协议轻量级,带宽占用小
  • 通过业务层设计能实现全双工通信
  • 实时通信
  • 灵活的订阅发布模式
  • 协议简单

MQTT协议简介

MQTT 最初由 IBM 于上世纪 90
年代晚期发明和开发。它最初的用途是将石油管道上的传感器与卫星相链接。顾名思义,它是一种支持在各方之间异步通信的消息协议。异步消息协议在空间和时间上将消息发送者与接收者分离,因此可以在不可靠的网络环境中进行扩展。虽然叫做消息队列遥测传输,但它与消息队列毫无关系,而是使用了一个发布和订阅的模型。在
2014 年末,它正式成为了一种 OASIS 开放标准,而且在一些流行的编程语言中受到支持(通过使用多种开源实现)。

模型简介:

1599093713(1).png

在整个MQTT协议中有三个角色,分别是:发布者(Publisher)、代理(Broker)、订阅者(Subscriber)。如果以C-S架构来看发布者和订阅者都是客户端,代理是服务器,发布者和订阅者是独立的也是相对的。

完整流程

启动Broker,订阅者向服Broker订阅相关主题,发布者向Broker代理发布主题信息,订阅和发布没有前后顺序依赖,Broker代理向所有订阅该主题的订阅者推送消息。




阅读剩余部分...