sofia

freeswitch源码阅读 之 sofia模块

北战南征 提交于 2019-12-20 08:50:38
sofia模块在freeswitch中的位置非常重要, 所有的sip通话都和它有关, 那么我们就看一下该模块的执行流程。 一、 实现的功能: 1. sip注册; 2. 呼叫; 3. Presence; 4. SLA, 等。 二、 主要的方法, 有三个, 分别为: [cpp] view plain copy #define SWITCH_MODULE_LOAD_FUNCTION(name) switch_status_t name SWITCH_MODULE_LOAD_ARGS #define SWITCH_MODULE_RUNTIME_FUNCTION(name) switch_status_t name SWITCH_MODULE_RUNTIME_ARGS #define SWITCH_MODULE_SHUTDOWN_FUNCTION(name) switch_status_t name SWITCH_MODULE_SHUTDOWN_ARGS [cpp] view plain copy </pre><pre name= "code" class= "cpp">SWITCH_MODULE_LOAD_FUNCTION(mod_sofia_load); SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_sofia_shutdown); SWITCH_MODULE

freeswitch 呼叫的奥秘

☆樱花仙子☆ 提交于 2019-12-14 05:39:20
以下命令均可以按tap 补全记住开头即可 举个例子来说,杀掉正处于活跃状态、目标号码是1000的通话,命令为: fsctl hupall normal_clearing dialed_ext 1000 加载外部模块 load <mod_name> 检测模块是否存在 module_exists <module> 重载外部模块 reload [-f] <mod_name> 重新加载xml reloadxml 输出多种(模块)状态报告。 show codec - 列出所有编码 show application - 列出所有应用程序 show dialplan - 列出拨号方案涉及的模块 show file - 列出所有支持的文件类型 show calls - 列出当前的通话[count] show channels - 列出当前的通道 [count|like ] show modules - 列出所有模块 show nat_map - 列出地址映射表 show registrations - 列出所有注册用户 status --显示当前FreeSWITCH的运行状态 sofia status --显示注册网关 sofia status profile [ip/注册文件] [reg] 查看freeswitch 配置信息 输出日志等级 sofia tracelevel debug

freeswitch反注册记录

假装没事ソ 提交于 2019-11-27 12:02:40
应用情景: 使用阿里服务器,落地使用本地的模拟线路(O口网关)。 1、FreeSWITCH 服务器开一个账号,比如 5000 internal , O口 SIP设置页面按照网关注册 5000 的账号信息。 2、dialplan 中添加拨号规则: <condition field="destination_number" expression="^(\d{8,12})$"> <action application="lua" data="reregister.lua 5000 $1"/> </condition> 3、FreeSWITCH scripts/ 目录下 生产如下 reregister.lua : gatewayNumber = argv[1] destNumber = argv[2] api = freeswitch.API(); -- 获取网关注册的地址,主叫号码替换 local domain = freeswitch.getGlobalVariable("domain"); local sofiaContactStr = api:executeString("sofia_contact " .. gatewayNumber .."@" .. domain); local dialStr = string.gsub(sofiaContactStr,