Sofia 是 FreeSWITCH 使用的 SIP栈。 当您在配置中的任何位置看到“sofia”时,请考虑“这是 SIP 内容”。SIP 是一个疯狂的协议,如果你不小心,它也会让你发疯。继续阅读有关在 FreeSWITCH 配置中设置 SIP/Sofia 的信息。
mod_sofia 公开 Sofia API 并设置 FreeSWITCH SIP 端点。
端点
FreeSWITCH 端点代表一个完整的用户代理,并控制处理呼叫所需的信令协议和媒体流。端点类似于坐在您办公桌上的物理 VoIP 电话。它向外界讲述特定协议,例如 SIP 或 Verto,并为 FreeSWITCH 核心解释该协议。
配置文件
sofia.conf.xml 包含 mod_sofia 的配置设置
调试 Sofia-SIP
Sofia-SIP 组件可以输出各种调试信息。调试输出的细节由调试级别决定。该级别通常是特定于模块的,并且可以通过特定于模块的环境变量进行修改。所有模块还有一个默认级别,由环境变量#SOFIA_DEBUG 控制。
控制日志记录和其他调试输出的环境变量如下:
SOFIA_DEBUG 默认调试级别 (0..9)
NUA_DEBUG 用户代理引擎 (nua) 调试级别 (0..9)
SOA_DEBUG SDP Offer/Answer 引擎 (soa) 调试级别 (0..9)
NEA_DEBUG 事件引擎 (nea) 调试级别 (0..9)
IPTSEC_DEBUG HTTP/SIP 认证模块调试级别 (0..9)
NTA_DEBUG 事务引擎调试级别 (0..9)
TPORT_DEBUG 传输事件调试级别 (0..9)
TPORT_LOG 如果设置,在传输层打印出所有解析的 SIP 消息
TPORT_DUMP 文件名,用于从传输中转储未解析的消息
SU_DEBUG su 模块调试级别 (0..9)
定义的调试输出级别是:
- 0 SU_DEBUG_0() - 致命错误,
- 1 SU_DEBUG_1() - 严重错误,子系统级别的最小进度
- 2 SU_DEBUG_2() - 非严重错误
- 3 SU_DEBUG_3() - 警告、进度消息
- 5 SU_DEBUG_5() - 信令协议动作(传入数据包,...)
- 7 SU_DEBUG_7() - 媒体协议操作(传入数据包,...)
- 9 SU_DEBUG_9() - 进入/退出函数,非常逐字逐句的进展
从 1.0.4 开始,这些参数可以通过以下方式从控制台控制
sofia loglevel <all|default|tport|iptsec|nea|nta|nth_client|nth_server|nua|soa|sresolv|stun> [0-9]
"all" 将改变每个组件的日志级别
日志级别 0 会关闭调试,要将它们全部关闭,您可以这样做
sofia loglevel all 0
要报告错误,您可以打开更详细的调试
sofia global siptrace on
sofia loglevel all 9
sofia tracelevel alert
console loglevel debug
fsctl debug_level 10
您还可以在 FreeSWITCH 客户端应用程序 fs_cli 中控制 SIP 调试输出。
sofia profile <profilename> siptrace on|off
在较新的软件版本上,您现在可以为所有配置文件发出 siptrace:
sofia global siptrace [on|off]
要将 SIP 调试详细信息放在 /usr/local/freeswitch/log/freeswitch.log
文件中,请使用
sofia tracelevel info (或任何其他日志级别名称或编号)
要在启动时自动将 SIP 详细信息放入日志文件,请将其添加到 sofia.conf.xml
:
<global_settings>
...
<param name="tracelevel" value="DEBUG"/>
...
</global_settings>
以及 sip 配置文件 xml 文件的以下内容:
<profiles>
...
<profile name="...">
...
<param name="sip-trace" value="yes"/>
...
</profile>
...
</profiles>
配置文件相关
访问控制列表
您可以使用 sofia 配置文件中的以下选项,通过 IP 地址限制 REGISTER 或 INVITE(或两者)的访问。
<param name="apply-inbound-acl" value="<acl_list|cidr>"/>
<param name="apply-register-acl" value="<acl_list|cidr>"/>
有关其他访问控制,请参阅ACL
列表配置见acl.conf.xml
禁用保持
禁止此配置文件上的所有呼叫将呼叫置于保持状态:
<param name="disable-hold" value="true"/>
强制 SIP 配置文件使用静态 IP 地址
默认的 FreeSWITCH 配置将自动确定本地网络接口的 IP 地址。如果要手动设置 IP(例如,如果您在单台机器上有多个网络接口),可以在 Sofia 配置文件中设置以下参数:
<param name="rtp-ip" value="192.168.1.3"/>
<param name="sip-ip" value="192.168.1.3"/>
其中 192.168.1.3 是您希望它绑定到的 IP。
以及在 sofia.conf.xml
文件中:
<param name="auto-restart" value="false"/>
这将防止配置文件在检测到网络地址更改时自动重新启动。
- 分类: FreeSWITCH FreeSWITCH学习 呼叫中心
- 标签: FreeSWITCH