笔者在使用 mod_sofia
的过程中发现有一些配置项非常有用,在这里分享给大家。
- user-agent-string 和 manage-presence
建议 user-agent-string
配置为 FreeSWITCH 1.10
,manage-presence
配置为 false
这样 FreeSWITCH 呼出时发送的 invite 包尽可能小,否则有可能超过 mtu。
- manual-redirect
建议 user-agent-string
配置为 true
,
这样在执行 bridge 之后如果收到的回应是 302,那么就自动进到 dialplan 重新路由。
默认值是 false
,意味着 FreeSWITCH 自动处理 302,改向到新地址,但这样往往不是我们想要的结果(比如缺少权限检查等)。
- enable-3pcc
如果跟思科 CM 对接,建议 user-agent-string
配置为 true
,因为思科喜欢用 3pcc
- parse-all-invite-headers
如果 parse-all-invite-headers
配置为 true,FreeSWITCH 处理收到的 invite 消息,把 invite 头尽可能处理成通道变量。
- all-reg-options-ping 和 ping-mean-interval 以及tcp-unreg-on-socket-close
这三个配置项放一起讲,因为跟 FreeSWITCH 处理 sip 注册请求有关。
如果 all-reg-options-ping
配置为 `true',那么 FreeSWITCH 主动发 sip 心跳给注册成功的 ua,这在 nat 环境下非常有用。
ping-mean-interval
可以配为 28,FreeSWITCH 每隔 28 秒发一次 sip 心跳。
如果 tcp-unreg-on-socket-close
配置为 true
,这个可以顾名思义了。
- bind-params
默认同时 bind udp 和 tcp。
如果只想 bind tcp,可配置为 transport=tcp
。
这样来自国外的 sip 攻击会减少很多。
- NDLB-force-rport
如果碰到 sip nat 方面的问题,可以尝试修改 NDLB-force-rport
。
nat 是个很难的问题,限于篇幅,不再展开。
以上这些配置项的读取处理都在 sofia.c
,建议大家可以试用一下,如果你你找到了更多有用的配置项,欢迎在评论区留言。