1. TLS
freeswitch自1.8.7版本后sofia 協(xié)議棧好像是支持了wss協(xié)議。但是一般在網(wǎng)絡(luò)拓?fù)渲幸鸭瑁琌pensips會(huì)作為前置的SBC來控制外部協(xié)議與SIP會(huì)話浴骂。而且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)端口)
- 最后锄奢,如果對(duì)方是注冊(cè)上來的失晴,主要往tls端口上注冊(cè)即可;如果不是注冊(cè)的拘央,那么在路由呼叫時(shí)涂屁,需要指定tls端口
證書的導(dǎo)入
TLS需要指定證書,opensips的證書存放位置在${opensips_install_location}/etc/opensips/certs
使用了TLS后灰伟,通過wireshark抓包是看不到SIP消息的拆又,因?yàn)榘际羌用軅鬏數(shù)模瑆ireshark解析不了
2. SRTP
Freeswitch是支持SRTP栏账,ZRTP帖族,WebRTC等多種媒體加密手段的。一般和cloud call center對(duì)接挡爵,如果需要涉及媒體加密竖般,會(huì)使用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