安装
安装参考官方文档
开发问题,入门必看必学 cookbook
多看官方的 module 文档
信息参考
https://www.oschina.net/project/tag/252/sip
客户端 jssip, linphone
https://sipjs.com/
https://jssip.net/
其他sip服务
https://www.opensips.org/Documentation/Modules-3-0
kamailio.cfg 文件
1 2 3 4 5 6 7 8
| # 启用 nat 加入下面一行(不要忘记#也要加) #!define WITH_NAT
# 配置自定义域名 alias="114.linlc.cn"
# 允许 header 中没有 content-length 这个参数 tcp_accept_no_cl=yes
|
编写 websocket 代码
参考文档
注意:在编译安装 kamailio 前,需要添加 websocket 模块
1 2 3 4 5
| # 编辑源代码目录下的 modules.lst文件 vi ($KAMAILIO_SRC_PATH)/src/modules.lst
# 修改如下,后重新 make include_modules=websocket
|
如果报错 unistr.h 找不到,则需要操作系统安装 libunistring-devel,然后重新编译安装
如果编译报错,通常是操作系统没有安装 module 源文件里面需要导入的库,我们在操作系统安装下就行了
可能遇见的问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| # 开启 websocket 需用到 nat,与下面模块 loadmodule "sl.so" loadmodule "tm.so" loadmodule "xhttp.so" loadmodule "nathelper.so" loadmodule "websocket.so"
# nathelper 与 registrar 模块需要设置相同的 received_avp modparam("registrar", "received_avp", "$avp(i:42)") modparam("nathelper", "received_avp", "$avp(i:42)")
# 如需要 webrtc 传输音视频,需 rtpproxy 模块,并设置参数 loadmodule "rtpproxy.so" modparam("rtpproxy", "rtpproxy_sock", "udp:192.168.31.199:20000")
# 允许跨域 modparam("websocket", "cors_mode", 1)
# 如果websocket连接不上, event_route[xhttp:request] 里面验证了只能80,443端口,可以把验证关掉
# 在 request_route 第一行添加 add_local_rport();
|
启动 rtpproxy
1
| rtpproxy -l 192.168.31.199 -s udp:192.168.31.199 20000 -F
|