freeswitch1.6 录音功能

本文详细介绍了Freeswitch中使用record_session进行录音的方法及注意事项。包括如何仅录制主叫或被叫的声音,以及如何利用mod_native_file模块进行未指定格式的录音。此外,还提到了当使用该模块时某些录音请求参数将失效的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

record_session进行录音时,如果保存的文件没有后缀,
会使用mod_native_file模块,不对声音进行编解码,直接将收到的声音数据保存到两个文件中。
文件名有in,代表收到主叫的声音。
文件名有Out,代表传给主叫的声音。

查看支持的录音文件命令

freeswitch@PC-201705271510>show file
file,L16,mod_native_file
file,PCMA,mod_native_file
file,PCMU,mod_native_file
file,PROXY,mod_native_file
file,PROXY-VID,mod_native_file
file,SPEEX,mod_native_file
file,VP8,mod_native_file
file,VP9,mod_native_file
file,adpcm,mod_sndfile
file,aiff,mod_sndfile
file,al,mod_sndfile
file,alaw,mod_sndfile
file,au,mod_sndfile
file,avr,mod_sndfile
file,caf,mod_sndfile
file,file,mod_dptools
file,file_string,mod_dptools
file,gsm,mod_sndfile
.......

如在dialplan增加

<action application="record_session" data="$${recordings_dir}/${caller_id_number}-${strftime(%Y-%m-%d-%H-%M-%S)}"/>

只录主叫的声音

<action application="set" data="RECORD_READ_ONLY=true"/>

只录传给主叫的声音。

<action application="set" data="RECORD_WRITE_ONLY=true"/>

RECORD_WRITE_ONLY和RECORD_READ_ONLY同时设置为true,只录制read

使用mod_native_file模块录音,RECORD_ANSWER_REQ、RECORD_BRIDGE_REQ、RECORD_APPEND等,都变无效了。参见switch_ivr_record_session函数,把flags都清除了。

if ((ext = strrchr(file, '.'))) {
	 ......

	} else {
		int tflags = 0;

		......

		if ((flags & SMBF_WRITE_STREAM)) {
			tflags |= SMBF_TAP_NATIVE_WRITE;
		}

		if ((flags & SMBF_READ_STREAM)) {
			tflags |= SMBF_TAP_NATIVE_READ;
		}

		**flags = tflags;**
	}

您的支持,是我持续创作的动力!!!!
在这里插入图片描述

1. 了解VoIP和SIP协议 在开始学习FreeSWITCH之前,您应该了解VoIP和SIP协议的基础知识。VoIP是“Voice over Internet Protocol”的简称,它使得可以通过互联网传输语音和多媒体信息。而SIP协议是 VoIP中最重要的协议之一,它负责建立、维护、修改、解散会话。 建议阅读材料: - Understanding VoIP: What is Voice over IP and How it Works - SIP Tutorial: Session Initiation Protocol 2. 学习Linux和命令行 FreeSWITCH是一款基于Linux操作系统的开源软件。因此,了解Linux并能够在命令行中有效使用是必要的。您需要知道如何安装和配置Linux操作系统,基本的命令和文件操作,以及如何管理系统和服务。 建议阅读材料: - The Linux Command Line - Linux Basics for Hackers 3. FreeSWITCH基础知识 学习FreeSWITCH的基础知识是必要的。了解FreeSWITCH的架构、组件、配置文件、模块等基础知识,可以使您更好地理解FreeSWITCH的工作原理。可以从官方的文档中开始学习,从Hello World的入门到API的使用都可以了解。 建议阅读材料: - FreeSWITCH Official Documentation - FreeSWITCH 1.6 Cookbook 4. 熟悉FreeSWITCH的模块 FreeSWITCH 是可扩展的,并内置了许多模块,可以通过配置文件启用。熟悉FreeSWITCH的各种模块可以帮助您更好地应用和扩展FreeSWITCH。这里列举一些常用的模块: - mod_sofia:SIP和SDP处理模块 - mod_dialplan_xml:用于呼叫路由的控制器 - mod_python:用于自定义应用程序以及与其他Web框架交互 - mod_conference:用于多方音频、视频会议 - mod_rtmp:用于流媒体传输 - mod_callcenter:用于呼入呼出中心的自动呼叫分配 建议阅读材料: - FreeSWITCH 1.6 Cookbook - FreeSWITCH 1.6.5 Documentation 5. 熟悉FreeSWITCH的API FreeSWITCH 提供了多种编程语言的接口,如 Python、Lua、JavaScript、Java、NET等。学习如何使用这些API可以让您更好地自定义和扩展FreeSWITCH。 您可以使用API来控制和监视FreeSWITCH,例如添加自定义应用程序、处理呼叫事件、监听录音文件等。 建议阅读材料: - FreeSWITCH Official Wiki - FreeSWITCH 1.6 Cookbook 6. 实际应用 通过实际应用,您可以将学到的知识应用到实际的场景中。例如,您可以构建一个呼叫中心应用程序、电话会议系统、多媒体流处理应用程序等。实践可以帮助您更好地了解FreeSWITCH的工作原理和解决问题。 建议阅读材料: - FreeSWITCH Official Wiki - FreeSWITCH 1.6 Cookbook 最后,需要注意的是,学习FreeSWITCH是一个长期的过程。您需要继续学习新的技术和应用,并了解最新的开发趋势。使用社区和在线资源,加入邮件列表和社交媒体,和其他人交流和分享经验,都可以帮助您不断提高技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值