FreeSWITCH是一个B2BUA。
主要呼叫流程有以下两种:
* bob 向 FreeSWITCH 发起呼叫,FreeSWTICH 接着启动另一个 UA 呼叫 alice,两者通话;
* FreeSWITCH 同时呼叫 bob 和 alice,两者接电话后 FreeSWITCH 将 a-leg 和 b-leg 桥接(bridge)到一起,两者通话。
其中第二种又有一种变种。如市场上有人利用上、下行通话的不对称性卖电话回拨卡获取不正当利润:bob 呼叫 FreeSWITCH,FreeSWITCH 不应答,而是在获取 bob 的主叫号码后直接挂机;然后 FreeSWITCH 回拨 bob;bob 接听后 FreeSWITCH 启动一个 IVR 程序指示 bob 输入 alice 的号码;然后 FreeSWITCH 呼叫 Alice……
Session 与 Channel
对每一次呼叫,FreeSWITCH 都会启动一个 Session(会话,它包含SIP会话,SIP会在每对UAC-UAS之间生成一个 SIP Session),用于控制整个呼叫,它会一直持续到通话结束。其中,每个 Session 都控制着一个 Channel(信道),Channel 是一对 UA 间通信的实体,相当于 FreeSWITCH 的一条腿(leg),每个 Channel 都有一个唯一的 UUID。另外,Channel 上可以绑定一些呼叫参数,称为 Channel Variable(信道变量)。Channel 中可能包含媒体(音频或视频流),也可能不包含。通话时,FreeSWITCH 的作用是将两个 Channel(a-leg 和 b-leg,通常先创建的或占主动的叫 a-leg)桥接(bridge)到一起,使双方可以通话。
通话中,媒体(音频或视频)数据流在 RTP 包中传送(不同于 SIP, RTP是另外的协议)。一般来说,Channel是双向的,因此,媒体流会有发送(Send/Write)和接收(Receive/Read)两个方向。
分享到:
相关推荐
FreeSWITCH VoIP 实战 ...本书的内容将包括 FreeSWITCH 的基本概念、安装和配置、呼叫流程控制、媒体处理、安全机制等多方面的内容。读者将能够通过本书快速地掌握 FreeSWITCH 的使用方法,并应用于实际项目中。
FreeSWITCH 主要使用 C、C++ 开发,使用了大量的成熟的第三方软件库,功能丰富,可伸缩性强,并可以使用 Lua、Javascript、Perl 等多种嵌入式语言控制呼叫流程。 FreeSWITCH 的文档非常丰富,它采用 wiki 系统,都...
理解XML Dialplan的概念和语法对于构建自定义的呼叫流程至关重要。 6. **安全与认证**:Freeswitch提供了安全机制,包括TLS加密、SASL认证等,以保护通信数据的安全。 7. **监控与日志**:监控Freeswitch的运行...
在深入探讨freeSwitch的SIP模块之前,我们先来了解一下基本概念。FreeSwitch是一款开源的、多线程、多平台的通信系统,它支持多种协议,包括SIP(Session Initiation Protocol),这是一种用于多媒体通信的信令协议...
6. **呼叫控制**:学习如何创建、修改和结束呼叫,以及如何处理复杂的呼叫流程。 7. **安全与加密**:了解TLS和SRTP在保障通信安全中的应用,以及如何配置FreeSWITCH以增强安全性。 8. **高级特性**:探索...
在对FreeSwitch的SIP模块进行分析时,我们需要理解SIP协议的工作流程,熟悉各种SIP消息的结构和含义,同时关注FreeSwitch如何将这些概念转化为实际的代码逻辑。这涉及到对FreeSwitch源码的阅读和理解,特别是SIP模块...
FreeSWITCH是一个开源的、多平台的通信软件,主要用于构建VoIP(Voice over Internet Protocol)系统,支持多种协议,如SIP、Skype for Business、WebRTC等,可用于创建软交换、电话系统、呼叫中心解决方案等多种...
在"FreeSWITCH_VoIP实战.doc"文档中,可能会详细讲述如何部署和配置FreeSWITCH,包括安装步骤、基本设置、模块管理、路由策略、连接外部设备(如硬件电话或PBX)、创建呼叫流程、集成WebRTC等实战内容。此外,文档...
**SIP呼叫流程**: 1. 呼叫方UA发送INVITE请求到被叫方的代理服务器,携带SDP信息。 2. 被叫方代理服务器查找被叫方的位置,转发INVITE请求。 3. 被叫方UA收到请求,发送200 OK响应,包含其SDP信息。 4. 呼叫方UA...
- **拨号计划**:拨号计划是FreeSWITCH的核心概念之一,它定义了如何处理来电和去电。用户可以根据需要自定义拨号规则。 - **录音和回放**:FreeSWITCH支持录音功能,可以记录通话内容。同时,也支持播放预录制的...
- **概念解释**:由于NAT设备可能阻塞SIP和RTP通信,因此需要特殊的技术来确保穿透。 - **STUN/TURN/ICE协议**:实现NAT穿透的关键技术。 #### FreeSwitch基础和配置部分 **21. FreeSwitch简介** - **定义**:...
- 呼叫流程:详解从拨号到通话结束的整个过程。 - 转接与会议:如何在FreeSWITCH中实现电话转接和多用户电话会议。 7. **录音与媒体存储** - 录音功能:学习如何使用FreeSWITCH进行通话录音,并管理录音文件。 ...
7. **XML控制**:通过XML配置文件,可以定义复杂的呼叫流程和业务逻辑。 8. **可扩展性**:允许开发人员编写自定义模块,以满足特定的业务需求。 9. **安全性**:支持防火墙穿透、加密通信(如ZRTP、SDES、TLS)...
书中可能涵盖了FreeSWITCH的基本概念、核心功能、配置和管理,以及实际应用场景的案例分析,旨在提升读者在FreeSWITCH领域的技能和知识水平。 **本书面向的读者** 本书的目标读者群体包括但不限于以下几类: 1. ...
- **开源组件**: Freeswitch作为IPBX平台,为整个呼叫中心提供底层通信支持。 ##### 2. 关键组件介绍 - **GUI(Graphical User Interface)**: 图形用户界面,用于简化用户的操作过程,提供直观的操作体验。 - **SIT...
文档在描述上会使用技术术语和概念,比如呼叫流程控制、事件通知、状态报告、命令执行等,这些是构建呼叫中心应用程序时必须考虑的核心功能。 由于文档是英文版,还应当注意到它可能包括一些行业内的专有名词和缩写...
3. **SIP协议**:如果项目涉及到SIP,需要了解SIP的基本概念,如呼叫信令、路由和会话管理。 4. **错误处理**:学习如何在C#中优雅地处理异常,确保程序的健壮性。 5. **JSON序列化**:使用fastJSON库将数据转换为...
在深入讲解这个demo之前,我们先了解一些基本概念: 1. **SIP(Session Initiation Protocol)**:SIP是一种应用层控制协议,用于创建、修改和终止多媒体会话,如语音和视频通话。它是互联网标准协议之一,常用于...
这个“SIP学习帮手SIP中文资料汇编”提供了丰富的中文资源,旨在帮助初学者更轻松地理解和掌握SIP协议的核心概念和应用。 在学习SIP时,了解其基本架构和功能至关重要。SIP是一个基于文本的协议,使用TCP或UDP作为...
6. **Dial Plan and Call Control**:允许自定义拨号计划和通话控制逻辑,以便实现复杂的业务流程,例如呼叫转移、录音等。 7. **Security**:SIP.js 支持TLS加密,保证通信安全,防止中间人攻击。 为了开始使用...