
FreeSwitch
argpunk
以梦为马
展开
-
FreeSwitch 的初始化及其模块加载过程
FS 主函数main()Freeswitch的主函数是在文件switch.c中定义的,该文件的260行是整个程序的入口,主函数主要完成的功能是包括,命令行解析,初始化apr库,构建全局内存池,模块加载和初始化核心组件。 初始化apr库是由apr_initialize()函数完成的,apr库是apache的可移植动态库,完成相关的内存池,线程管理的跨平台工作。该函数的调用在主函数原创 2012-02-02 15:23:34 · 6918 阅读 · 0 评论 -
FreeSwitch 模块加载过程
switch_loadable_module_load_module_ex函数原型如下:static switch_status_t switch_loadable_module_load_module_ex(char *dir, char*fname, switch_bool_t runtime, switch_bool_t global, constchar **err)传入这原创 2012-02-03 11:45:52 · 3622 阅读 · 0 评论 -
B2B在FreeSwitch中的呼叫流程
假设1003 呼叫 10021003向FS发送inivte消息:sofia模块收到sip消息后回调sofia_event_callback进入sofia_handle_sip_i_invite为1003建立session与channel,进入1003的channel状态机。一次执行:1003的CS_INIT1003的CS_ROUTING1003的CS_EXECUTE:原创 2012-02-06 15:53:49 · 4013 阅读 · 0 评论 -
FreeSwitch Lua编程接口(1)dialplan里的配置
Dialplan里的配置可以为freeswitch配置一个或若干个号码,当其他的sip终端通过拨打此号码时,通过拨号路由,查找到此号码,从而执行lua脚本。在Dialplan里的配置如下: 需要说明的是:dialplan是通过xml寻找拨号规则的,具体流程为:①sip信令到达,invite消息原创 2012-02-06 15:54:35 · 4996 阅读 · 0 评论 -
FreeSwitch全局配置文件处理流程
FreeSwitch中配置文件读取顺序在FS里,最先读取的配置文件是置于安装目录下的conf文件夹下的freeswitch.xml文件,在程序启动初始化阶段,会调用switch_xml_init()函数来完成该配置文件的读取和预处理工作。这里所说的预处理是在在FreeSwitch调用自己的xml解析器解析配置文件时,如果遇到文档标志为X-PRE-PROCESS,便会对相应的参数作出处理。例如下原创 2012-02-04 15:27:31 · 2648 阅读 · 0 评论 -
FreeSwitch B2B 状态转换流程(1)
以1002 呼叫 1003 为例。Sip的状态流程1002向FS发起INVITE消息,经过一次认证通过,1002在此向FS发起INIVTE消息。此时FS所做的处理为:1. 捕获该sip消息,在sofia中有一个对于ua Event消息事件的枚举定义:typedef enum nua_event_e { ………. nua_i_invite;//这个值原创 2012-02-09 14:55:06 · 4621 阅读 · 0 评论