freeswitch的mod_curl模块

概述
有时候,我们需要在呼叫的过程中,或过程后调用web api接口。
freeswitch的mod_curl模块可以很方便的实现web api的接口调用。
mod_curl模块默认不安装,需要进入模块目录自行编译安装,并配置modules.conf.xml文件在fs启动时加载模块。
<load module="mod_curl"/>
环境
centos:CentOS 7
freeswitch:v1.10.7
GCC:4.8.5
API接口
api接口格式。
curl url [headers|json|content-type <mime-type>|connect-timeout <seconds>|timeout <seconds>] [get|head|post|delete|put [data]]
APP接口
app接口格式。
<action application="curl" data="url [headers|json] [get|head|post [url_encode_data]]"/>
测试实例
freeswitch@localhost.localdomain> curl http://10.55.55.137:8080/cb content-type application/json;charset=utf-8 connect-timeout 1 timeout 1 post '{"test":"1234","duration":15}'
2022-11-09 16:00:54.288442 [DEBUG] mod_curl.c:200 method: post, url: http://10.55.55.137:8080/cb, content-type: application/json;charset=utf-8
2022-11-09 16:00:54.288442 [DEBUG] mod_curl.c:252 Post data: {"test":"1234","duration":15}
{"status":0}
freeswitch@localhost.localdomain> curl http://10.55.55.137:8080/cb content-type application/json;charset=utf-8 connect-timeout 1 timeout 1 json post '{"test":"1234","duration":15}'
2022-11-09 16:02:31.008475 [DEBUG] mod_curl.c:200 method: post, url: http://10.55.55.137:8080/cb, content-type: application/json;charset=utf-8
2022-11-09 16:02:31.008475 [DEBUG] mod_curl.c:252 Post data: {"test":"1234","duration":15}
{"status_code":"200","body":"{\"status\":0}","version":"HTTP/1.0","phrase":"OK","headers":[{"key":"Server","value":"BaseHTTP/0.6 Python/3.10.7"},{"key":"Date","value":"Wed, 09 Nov 2022 08:02:31 GMT"},{"key":"Content-Type","value":"application/json;charset=utf-8"}]}
其中第二条带了“json”参数,返回值的code、header和消息体统一变更为json格式。
总结
简单的web api接口调用可以直接使用mod_curl模块接口。
如果需要在定时任务中调用curl接口,需要注意什么地方。
空空如常
求真得真
freeswitch的mod_curl模块的更多相关文章
- FreeSWITCH 加载模块过程解读
今天来学习FreeSWITCH 加载模块过程. 哪些模块需要编译,是由源码下的 modules.conf 文件决定的. 哪些模块在程序启动时自动加载,是由 freeswitch/conf/autolo ...
- freeswitch插件式模块接口实现方式
概述 freeswitch的外围模块是插件式的,可以动态的加载和卸载,使用起来非常的灵活和方便. 如果我们自己来设计一个开源的代码框架,相信这种插件式的模块结构是非常适合多人合作的模式. 本文对fs的 ...
- freeswitch的话单模块
概述 最近因为业务需要,在看freeswitch中话单相关的一些模块. 在voip的使用过程中,话单是重要的基础模块,涉及到计费和问题查找. 呼叫话单最重要的一点是稳定,不能有错误或遗漏. 本章对fs ...
- freeswitch使用mod_shout模块播放mp3
概述 freeswitch 在对VOIP语音通话中,可以通过playback命令播放IVR语音文件. 默认情况下,freeswitch支持wav文件,也可以直接播放VOIP中常见编解码的G711文件. ...
- freeswitch编译mod_av模块
需要先编译libav库 编译libav下载:git clone https://freeswitch.org/stash/scm/sd/libav.git cd libav ./configure - ...
- 《FreeSWITCH: VoIP实战》:SIP 模块 - mod_sofia
SIP 模块是 FreeSWITCH 的主要模块,所以,值得拿出专门一章来讲解. 在前几章时里,你肯定见过几次 sofia 这个词,只是或许还不知道是什么意思.是这样的,Sofia-SIP 是由诺基亚 ...
- freeswitch新增模块API
概述 上一章我们讲解了freeswitch的源码基本结构,以及如何新增一个插件式模块. freeswitch的架构非常适合这种业务开发模式,即以freeswitch的基本功能为开发平台,新增插件式模块 ...
- Freeswitch 添加可转码的G729编码
默认情况下Freeswitch自带的G729模块是pass-through-并不支持转码. 不过我们依然有个好奇的心, 所以我们决定添加一个支持G729转码的模块到Freeswitch. 1. 下载m ...
- Freeswitch配置之sofia
SIP模块 - mod_sofia SIP 模块是 FreeSWITCH的主要模块. 在 FreeSWITCH中,实现一些互联协议接口的模块称为 Endpoint.FreeSWITH支持很多的 End ...
随机推荐
- JCEF 初体验,window系统构建jar包
前言 本文记录如何通过jcef源代码去构建自己所需要的jar包,此文章构建的为windows64位jcef 的 jar 包,若需要构建 32 位的 jar 包,则需要按照文章将相关准备软件设置为 32 ...
- [CF1536F] Omkar and Akmar(博弈论?组合数学)
题面 [CF1536F] Omkar and Akmar 甲乙轮流在一个有 N N N 个位置的环上放字母(环上每个位置不同),每次可以放一个 A 或 B ,要求不能有相同的字母相邻,轮到某个人时不能 ...
- 【突然想多了解一点】可以用 Task.Run() 将同步方法包装为异步方法吗?
[突然想多了解一点]可以用 Task.Run() 将同步方法包装为异步方法吗? 本文翻译自<Should I expose asynchronous wrappers for synchrono ...
- MFRC522学习笔记
MFRC522主要特性 容量为8K位(bits)=1K字节(bytes)EEPROM 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位 每个扇区有独立的一组密码及访问控制 每张卡有唯一序 ...
- JTS TopologyException 问题
计算2个几何相交结果时候,报错了: val geometry = polygon.intersection(lineString) 日志如下 org.locationtech.jts.geom.Top ...
- Spark 写 Hbase
package com.grady import org.apache.hadoop.hbase.HBaseConfiguration import org.apache.hadoop.hbase.c ...
- 【读书笔记】C#高级编程 第十三章 异步编程
(一)异步编程的重要性 使用异步编程,方法调用是在后台运行(通常在线程或任务的帮助下),并不会阻塞调用线程.有3中不同的异步编程模式:异步模式.基于事件的异步模式和新增加的基于任务的异步模式(TAP, ...
- URL slug是什么?
URL slug是什么? URL slug是 URL 中最后一个反斜杠之后的部分. 为什么slug 对 SEO 很重要? slug 对于关键字 SEO 来说非常强大.如果用户要在 Google 搜索& ...
- ProxySQL Cluster 概述
文章转载自:https://blog.csdn.net/n88Lpo/article/details/79608639 前言 在ProxySQL 1.4.2 之前,ProxySQL 单点的解决方法有配 ...
- 使用metricbeat监控system和nginx
下载并解压缩metricbeat metricbeat.yml配置文件设置: setup.kibana: host: "192.168.75.21:5601" output.ela ...