`
- 浏览:
31922 次
- 性别:
- 来自:
珠海
-
1 switch_core_state_machine 状态机部分概要
- 状态机部分实现在switch_core_state_machine.c文件,处理函数是switch_core_session_run()
- 状态机状态的跳转条件主要是外围逻辑控制,并不是状态机内置好固定的跳转条件,也有跳转条件是状态机内部设定,例如由CS_ROUTING->CS_EXECUTE
- 改变状态机通过调用: switch_channel_set_state()
- 当状态发送变化后,状态机内部通过switch_channel_set_running_state()改变running_state,并执行相关的回调来通知其状态已经发生改变了。
2 状态发生改变时,依次执行下面回调
- endpoint_interface->io_routines->state_run()
- session->event_hooks.state_run() //可以通过switch_core_event_hook_add_state()获得
- endpoint_interface->state_handler //在STATE_MACRO()
- switch_event_fire() //触发SWITCH_EVENT_CHANNEL_CREATE之类的事件,可以通过switch_event_bind()获得
3 mod_sofia的状态机跳转
- CS_NEW -> CS_INIT : 收到nua_callstate_received时,有SDP
- CS_INIT -> CS_ROUTING : sofia_on_init()
- CS_ROUTING -> CS_EXEUTE:
- CS_EXEUTE ->...
...继续
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本文仅对freeSwitch SIP模块的基本架构和工作流程进行了概述,更深入的细节如具体代码分析、性能优化等主题将在后续文档中展开。希望通过本文的分享,能激发更多技术交流与探讨,共同推动IT领域的发展。
**FreeSwitch 深度解析** FreeSwitch 是一个开源、多平台的通信系统,它作为一个强大的电话软交换解决方案,广泛应用于语音、视频和聊天服务。这个项目的核心目标是提供一个可扩展、灵活且稳定的通信平台,能够支持...
### Freeswitch Q&A 文档知识点总结 #### VOIP基础部分 **1. VOIP/FreeSwitch学习前的基础知识** - **网络基础知识**:包括TCP/IP协议、路由选择及网络拓扑结构。 - **SIP协议**:了解会话初始化协议(SIP)的...
总的来说,C语言通过ESL连接FreeSwitch涉及的知识点包括:C语言编程基础、网络编程概念(TCP/IP)、libesl库的使用、FreeSwitch的ESL协议、事件处理和日志分析。通过掌握这些,你可以构建出能够与FreeSwitch服务器...
在 FreeSWITCH 源码目录的 module.xml 文件中,需要取消对 applications/mod_callcenter 的注释,然后通过 `make` 和 `make install` 命令进行编译和安装。接着,要在 FreeSWITCH 启动时加载这个模块,这可以通过...
8. **还原浏览器设置**:如果其他方法无效,可以考虑重置浏览器设置到默认状态,但请注意这会清除所有自定义设置和保存的数据。 9. **音乐.reg文件**:在提供的文件列表中看到一个名为"music.reg"的文件,这可能是...