c语言实现UDP-server将freeswitch媒体流传输到其他服务01

一:自定义application

我们来回顾一下,freeswitch自定义application

自定义application:需要定义

SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_app_shutdown);

SWITCH_MODULE_LOAD_FUNCTION(mod_app_load);
SWITCH_MODULE_DEFINITION(mod_app, mod_app_load, NULL, NULL);
SWITCH_STANDARD_APP(app_start_function);

SWITCH_MODULE_LOAD_FUNCTION

即定义此app后,在freeswitch中进行 load mod_app 后执行的代码,通常将一些初始化代码放入其中。

SWITCH_MODULE_SHUTDOWN_FUNCTION

模块卸载后,执行的代码,通常将load中的内存进行释放,避免内存泄漏

SWITCH_STANDARD_APP 即你定义的app在路由中被使用是,执行的代码

二:代码整体架构设计

那么我如何进行设计,完成此次服务呢,服务大致分为如下几块功能

a、自定义freeswitch模块中,在load方法中,进行对应配置读取,udpserver的初始化

b、自定义freeswitch模块中,在shutdown方法中,释放udpserver的初始化

c、第三方独立模块,接收udp流【我们可以使用java netty实现udp client】

e、ASR实时语音处理模块、ESL连接控制freeswitch模块

我们选择从mod_application 将数据发送至第三个服务,以增加一个模块的形式,来释放自己的能力,当然可以直接在freeswitch 自定义模块中完成所有这些操作,但这样代码冗余,尤其在不熟悉freeswitch源码前提下,这么干效率极低,产生的风险极高。

三:freeswitch 源码中一些细节

增加一个APP,

switch_application_interface_t *app_interface;

SWITCH_ADD_APP(app_interface, "yourapp", "yourapp", "yourapp", app_function, "[name]", SAF_NONE);

通过SWITCH_ADD_APP增加一个app, 参数第五个为回调函数

SWITCH_STANDARD_APP(app_function)

下一节,我们来实现application具体细节,以及udpserver实现

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值