1. TLS
freeswitch自1.8.7版本后sofia 協(xié)議棧好像是支持了wss協(xié)議。但是一般在網(wǎng)絡(luò)拓?fù)渲?,Opensips會作為前置的SBC來控制外部協(xié)議與SIP會話。而且opensips也天然支持tls,所以部署上可以讓opensips承擔(dān)起SIP over LTS的功能。
TLS默認(rèn)端口5443
如何使用?
在opensips中修改一下控制腳本
- 首先,增加模塊(動(dòng)態(tài)庫)的引用
loadmodule "proto_tls.so"
loadmodule "tls_mgm.so"
- 其次,增加監(jiān)聽端口
listen=udp:0.0.0.0:5160 as 1.2.3.4:5160
listen=tcp:0.0.0.0:5160 as 1.2.3.4:5160
listen=tls:0.0.0.0:5443 as 1.2.3.4:5443
opensips除了tls外,也支持ws和wss協(xié)議,端口分別為5066(默認(rèn)端口)和8443(默認(rèn)端口)
- 最后,如果對方是注冊上來的,主要往tls端口上注冊即可;如果不是注冊的,那么在路由呼叫時(shí),需要指定tls端口
證書的導(dǎo)入
TLS需要指定證書,opensips的證書存放位置在${opensips_install_location}/etc/opensips/certs
使用了TLS后,通過wireshark抓包是看不到SIP消息的,因?yàn)榘际羌用軅鬏數(shù)?,wireshark解析不了
2. SRTP
Freeswitch是支持SRTP,ZRTP,WebRTC等多種媒體加密手段的。一般和cloud call center對接,如果需要涉及媒體加密,會使用SRTP。如果使用到webrtc終端,如瀏覽器終端,大多為webrtc。
如何使用?
在外呼時(shí),通過指定rtp_secure_media_inbound/rtp_secure_media_outbound來指定
注意:rtp_secure_media1.8.7版本過棄
如
rtp_secure_media_outbound=mandatory:AEAD_AES_128_GCM_8
true為permission, 后面的為加密算法。其中可選值為
# permission:
mandatory - Accept/Offer SAVP negotiation ONLY
optional - Accept/Offer SAVP/AVP with SAVP preferred
forbidden - More useful for inbound to deny SAVP negotiation
# DEPRECATED
false - implies forbidden
# DEPRECATED
true - implies mandatory
default - accept SAVP inbound if offered
# encryption suites:
AEAD_AES_256_GCM_8
AEAD_AES_128_GCM_8
AES_CM_256_HMAC_SHA1_80
AES_CM_192_HMAC_SHA1_80
AES_CM_128_HMAC_SHA1_80
AES_CM_256_HMAC_SHA1_32
AES_CM_192_HMAC_SHA1_32
AES_CM_128_HMAC_SHA1_32
AES_CM_128_NULL_AUTH
順帶提一下webrtc的使用,外呼時(shí)加入?yún)?shù){media_webrtc=true}即可
使用樣例
發(fā)送的INVITE

收到200OK

這里協(xié)商的是INVITE里candidate 5
組網(wǎng)拓?fù)涫疽鈭D
