freeswitch开发笔记2 流式录放音

需求:freeswitch放音和录音使用远程文件,不可再本地生成文件,不可挂载
1.前期思路 放音:在文件内存处将文件变成语音流并上传至freeswitch内存中
录音:使用远程写入文件的方式,重写写入函数

freeswitch模块mod_shout支持流式录放音
https://freeswitch.org/confluence/display/FREESWITCH/mod_shout
icecast流媒体服务器
修改一下配置 fileroot是自行修改代码后加的配置项,存储录音文件的路径
放音文件放在webroot下
0.0.0.0
/home/umg/icecast/log
/usr/local/share/icecast/web
/home/umg/icecastfile
/usr/local/share/icecast/admin

修改代码 source.c

.

	    //if (mountinfo && mountinfo->dumpfile) //huangzl
    {
        char *filename = source->dumpfilename;
        ice_config_t *config = config_get_config_unlocked ();
        source->dumpfilename = malloc(strlen(config->fileroot_dir) + strlen(source->mount)+1);
        sprintf(source->dumpfilename, "%s%s", config->fileroot_dir, source->mount);
        //source->dumpfilename = strdup (mountinfo->dumpfile);
        free (filename);
    }
    //else
    //    source->dumpfilename = NULL;

修改代码 cfgfile.c

.

else if (xmlStrcm
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FreeSWITCH 的 Dialplan 是用 XML 文件编写的,它定义了呼叫路由、语音信箱、队列、语音菜单等呼叫中心功能。以下是编写 Dialplan 的基本步骤: 1. 创建 Dialplan 文件:在 FreeSWITCH 的配置文件夹中创建 Dialplan XML 文件,例如 `dialplan.xml`。 2. 定义 Dialplan:在 Dialplan 文件中定义 `<include>` 标签,引用其他 Dialplan 模块。 3. 定义 Context:在 Dialplan 文件中定义 `<context>` 标签,定义呼叫路由的上下文。 4. 定义 Extension:在 `<context>` 标签中定义 `<extension>` 标签,定义呼叫路由。 5. 定义 Action:在 `<extension>` 标签中定义 `<action>` 标签,定义呼叫路由的动作。 6. 定义变量:在 `<extension>` 标签中定义 `<var>` 标签,定义变量。 7. 使用条件语句:在 `<extension>` 标签中使用 `<condition>` 标签,定义条件语句。 8. 使用循环语句:在 `<extension>` 标签中使用 `<anti-action>` 标签,定义循环语句。 9. 定义语音信箱:在 `<context>` 标签中定义 `<mailbox>` 标签,定义语音信箱。 10. 定义语音菜单:在 `<context>` 标签中定义 `<menu>` 标签,定义语音菜单。 以上是 Dialplan 的基本编写步骤。需要注意的是,在编写 Dialplan 时,需要遵循 FreeSWITCH 的语法规则,并且需要考虑呼叫路由的优先级、呼叫转移、呼叫会议等各种情况。同时,需要结合 FreeSWITCH 的其他模块,如 IVR、语音信箱、队列等,实现完整的呼叫中心功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值