freeswitch新增app接口
1, 概述
freeswitch自带了许多app接口和api接口,可以满足常用的大部分需求,但是有些定制化需求仍然需要我们自己增加或修改当前接口
2, 环境
Centos:CentOS release 6.7 (Final)
Freeswitch:v1.6.5
3, 目的
原本的回拨流程:
呼叫1001用户
originate {origination_uuid=1}user/1001 &echo()
1001 answer后呼叫1002用户
originate {origination_uuid=2}user/1002 &echo()
1002answer后发送命令把1001和1002桥接起来
uuid_bridge 1 2
新的需求:
1002返回sip 183消息后,需要把1002的彩铃透传给1001
为了实现这一点,我们就需要在1002ring后,把1001和1002桥接起来
并且原本的流程中,originate1002到uuid_bridge之间的实现有些繁琐和冗余(因为&echo()的关系,需要收到answer和execute之后才能执行uuid_bridge,否则有可能桥接失败)
新的回拨流程:
呼叫1001用户
originate {origination_uuid=1}user/1001 &echo()
1001 answer后呼叫1002用户,并把1001和1002桥接起来
originate {origination_uuid=2}user/1002 &uuid_bridge(1,2)
新的问题:
originate 1002的时候,&后面需要的是一个app接口,但是uuid_bridge是一个api接口,不能这样调用
研究之后决定,新增一个实现uuid_bridge的功能的app接口,app_uuid_bridge()
4, 代码
修改fs1.6.5\src\mod\applications\mod_dptools\mod_dptools.c
#define APP_UUID_BRIDGE_SYNTAX "UUIDA UUIDB"
SWITCH_STANDARD_APP(app_uuid_bridge_function)
{
char *uuida;
char *uuidb;
char *mydata, *argv[2]= { 0 };
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG,"app_uuid_bridge_function\n");
if (!zstr(data)&& (mydata = switch_core_session_strdup(session, data))) {
switch_separate_string(mydata,',', argv, (sizeof(argv) / sizeof(argv[0])));
} else {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session),SWITCH_LOG_ERROR, "No uuid specified.\n");
return;
}
uuida = argv[0];
uuidb = argv[1];
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG,"app_uuid_bridge_function(UUIDA=%s, UUIDB=%s)\n", uuida, uuidb);
switch_ivr_uuid_bridge(uuida, uuidb);
}
SWITCH_ADD_APP(app_interface, "app_uuid_bridge","app_uuid_bridge", "bridge by uuid",app_uuid_bridge_function, APP_UUID_BRIDGE_SYNTAX, SAF_SUPPORT_NOMEDIA);
5, 编译安装
cd fs1.6.5/src/mod/applications/mod_dptools/
make
make install
6, 运行
因为mod_dptools是接口模块,无法unload,只能重启freeswitch
/usr/local/freeswitch/bin/freeswitch -stop
/usr/local/freeswitch/bin/freeswitch -nc
7, 测试
originate{origination_uuid=1}user/1001 &echo()
originate{origination_uuid=2}user/1002 &app_uuid_bridge(1,2)
1002ring之后,1001就可以听到1002的彩铃声音了
如果有更好的方法或建议,请留言,谢谢
freeswitch新增app接口相关推荐
- appcontroller.php,php用什么开发app接口
可以使用 REST模式 来开发 App 接口,首先建立一个公共控制器,再建其他控制器继承它即可. 确定好返回的数据内容格式及信息码: (推荐学习:PHP视频教程)<?php // App接口公共 ...
- PHP开发APP接口(二)
这里将会调用前面博客的数据库连接单例.文件缓存类和开发APP接口(一) [php] view plain copy print? <?php // http://app.com/list.ph ...
- php写简单接口_使用PHP如何编写简单的App接口
这篇文章主要介绍了使用PHP编写简单的App接口的一些个人的步骤以及经验总结,有需要的小伙伴可以参考下 本篇是笔记尝试写的第一个PHP接口,并在iOS开发中尝试应用测试.今天给大家分享如何自己写接口来 ...
- php 面向接口,php开发app接口
一.app接口简介:与PHP面向对象的接口不同,是通信接口地址 1.条件: 1)接口地址 2)接口文件 3)接口数据 2.如何通信 1)类似BS模式 3.客户端app通信格式区别:xml和json 1 ...
- php开发APP接口 接收客户端的图片
php开发APP接口 接收客户端的图片 header( "Content-Type: image/jpeg" ); $filename = time(). '.png' ; $st ...
- 支付宝 app接口对接流程上
最近开发一个app,需要对接支付宝,现在来整理一下流程吧 1.登录蚂蚁金服开放平台,创建一个移动应用 创建应用中所需要的参数apicloud中会有 2.添加功能,配置公钥(应用公钥) 应用创建成功后, ...
- app接口设计之signature签名的php实现
app接口设计之signature签名的php实现 ps:本人亲测,阿里云2核4G5M的服务器性价比很高,新用户一块多一天,老用户三块多一天,最高可以买三年,感兴趣的可以戳一下:阿里云折扣服务器 1. ...
- PHP:APP接口开发
环境简介 LNMP 1.Linux 2.Nginx 3.MySQL 4.PHP APP接口 客户端与服务端数据的交换 HTTP通讯三要素 1.URL 地址 2.Method 方式 3.Params 内 ...
- php app接口开发,「PHP开发APP接口实战005」基础示例接口的实现一
前一章,我们对接口参数基本定义做了一个简要说明.里面提到了几个示例接口,接下来,我们就来讲解这个几点个示例接口的具体实现. 「PHP开发APP接口实战004」基础响应参数说明 前言 由于我们的接口返回 ...
- 苏州实时公交app接口根据站台查询公交状态
苏州实时公交app接口根据站台查询公交状态,查询公交详细信息. 接口名称:苏州实时公交app接口 接口平台:api接口 接口地址:http://apis.juhe.cn/szbusline/bus 支 ...
最新文章
- idea/eclipse下Maven工程集成web服务(tomcat、jetty)
- 企业网络推广——企业网络推广中如何解决网站排名提升难题?
- HDU2699+Easy
- 【采用】反欺诈之四大杀器
- spring 监听器 IntrospectorCleanupListener简介
- JQuery中的层级选择器
- SAP CRM organization Model(组织架构模型)自动决定的逻辑分析
- 51nod1675-序列变换【莫比乌斯反演】
- react 事件处理_在React中处理事件
- layui实现select下拉选择框组件(含代码、案例、截图)
- thymeleaf的属性优先级
- MFC消息映射与消息传递内幕
- 微型计算机系统中 麦克风属于,模块1-2 计算机基础知识测验题目(50小题)
- 5分钟快速入门GIS(GIS基础)(GIS当中常见数据)
- GB35114 A级过检
- 深度学习与计算机视觉教程(14) | 图像分割 (FCN,SegNet,U-Net,PSPNet,DeepLab,RefineNet)(CV通关指南·完结)
- 速卖通API获得aliexpress商品详情,按关键词搜索,分类详情等数据
- 免费的css模板下载
- OpenCore Configurator for Mac(黑苹果系统引导工具)
- 淘宝店小蜜配置手册——店小蜜的配置框架
热门文章
- 打车软件是不是一个市场泡沫?
- Oracs Beta1 非 VPC版出来了
- opc客户端_通过OPC接口将TOP Server与Proficy iFix配合使用(上)
- x = cos x 的解析形式
- Confluence 6 附件存储配置
- CentosRedhat下bcm43142博通无线网卡linux驱动之二
- 源码大招:不服来战!撸这些完整项目,你不牛逼都难! 1
- SharePoint 使用ECMAscript对象模型来读取帖子列表
- 动态修改ViewPagerIndicator CustomTabPageIndicator Tab标签文字颜色
- 如何在VM ware虚拟环境下建立纯软双机热备