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接口相关推荐

  1. appcontroller.php,php用什么开发app接口

    可以使用 REST模式 来开发 App 接口,首先建立一个公共控制器,再建其他控制器继承它即可. 确定好返回的数据内容格式及信息码: (推荐学习:PHP视频教程)<?php // App接口公共 ...

  2. PHP开发APP接口(二)

    这里将会调用前面博客的数据库连接单例.文件缓存类和开发APP接口(一) [php] view plain copy  print? <?php // http://app.com/list.ph ...

  3. php写简单接口_使用PHP如何编写简单的App接口

    这篇文章主要介绍了使用PHP编写简单的App接口的一些个人的步骤以及经验总结,有需要的小伙伴可以参考下 本篇是笔记尝试写的第一个PHP接口,并在iOS开发中尝试应用测试.今天给大家分享如何自己写接口来 ...

  4. php 面向接口,php开发app接口

    一.app接口简介:与PHP面向对象的接口不同,是通信接口地址 1.条件: 1)接口地址 2)接口文件 3)接口数据 2.如何通信 1)类似BS模式 3.客户端app通信格式区别:xml和json 1 ...

  5. php开发APP接口 接收客户端的图片

    php开发APP接口 接收客户端的图片 header( "Content-Type: image/jpeg" ); $filename = time(). '.png' ; $st ...

  6. 支付宝 app接口对接流程上

    最近开发一个app,需要对接支付宝,现在来整理一下流程吧 1.登录蚂蚁金服开放平台,创建一个移动应用 创建应用中所需要的参数apicloud中会有 2.添加功能,配置公钥(应用公钥) 应用创建成功后, ...

  7. app接口设计之signature签名的php实现

    app接口设计之signature签名的php实现 ps:本人亲测,阿里云2核4G5M的服务器性价比很高,新用户一块多一天,老用户三块多一天,最高可以买三年,感兴趣的可以戳一下:阿里云折扣服务器 1. ...

  8. PHP:APP接口开发

    环境简介 LNMP 1.Linux 2.Nginx 3.MySQL 4.PHP APP接口 客户端与服务端数据的交换 HTTP通讯三要素 1.URL 地址 2.Method 方式 3.Params 内 ...

  9. php app接口开发,「PHP开发APP接口实战005」基础示例接口的实现一

    前一章,我们对接口参数基本定义做了一个简要说明.里面提到了几个示例接口,接下来,我们就来讲解这个几点个示例接口的具体实现. 「PHP开发APP接口实战004」基础响应参数说明 前言 由于我们的接口返回 ...

  10. 苏州实时公交app接口根据站台查询公交状态

    苏州实时公交app接口根据站台查询公交状态,查询公交详细信息. 接口名称:苏州实时公交app接口 接口平台:api接口 接口地址:http://apis.juhe.cn/szbusline/bus 支 ...

最新文章

  1. idea/eclipse下Maven工程集成web服务(tomcat、jetty)
  2. 企业网络推广——企业网络推广中如何解决网站排名提升难题?
  3. HDU2699+Easy
  4. 【采用】反欺诈之四大杀器
  5. spring 监听器 IntrospectorCleanupListener简介
  6. JQuery中的层级选择器
  7. SAP CRM organization Model(组织架构模型)自动决定的逻辑分析
  8. 51nod1675-序列变换【莫比乌斯反演】
  9. react 事件处理_在React中处理事件
  10. layui实现select下拉选择框组件(含代码、案例、截图)
  11. thymeleaf的属性优先级
  12. MFC消息映射与消息传递内幕
  13. 微型计算机系统中 麦克风属于,模块1-2 计算机基础知识测验题目(50小题)
  14. 5分钟快速入门GIS(GIS基础)(GIS当中常见数据)
  15. GB35114 A级过检
  16. 深度学习与计算机视觉教程(14) | 图像分割 (FCN,SegNet,U-Net,PSPNet,DeepLab,RefineNet)(CV通关指南·完结)
  17. 速卖通API获得aliexpress商品详情,按关键词搜索,分类详情等数据
  18. 免费的css模板下载
  19. OpenCore Configurator for Mac(黑苹果系统引导工具)
  20. 淘宝店小蜜配置手册——店小蜜的配置框架

热门文章

  1. 打车软件是不是一个市场泡沫?
  2. Oracs Beta1 非 VPC版出来了
  3. opc客户端_通过OPC接口将TOP Server与Proficy iFix配合使用(上)
  4. x = cos x 的解析形式
  5. Confluence 6 附件存储配置
  6. CentosRedhat下bcm43142博通无线网卡linux驱动之二
  7. 源码大招:不服来战!撸这些完整项目,你不牛逼都难! 1
  8. SharePoint 使用ECMAscript对象模型来读取帖子列表
  9. 动态修改ViewPagerIndicator CustomTabPageIndicator Tab标签文字颜色
  10. 如何在VM ware虚拟环境下建立纯软双机热备