Linphoneを使用する際の注意点
Linphoneで AVPF ( Audio/Video Profile with Feedback : RFC 4585 ) を有効にすると、SRTPでの通信でnull/0となります。
FreeSWITCHは AVPF をデフォルトではサポートしていないため、SRTPで通信する場合はAVPFをオフにします。
暗号スイートの整合性チェック
Linphoneの暗号化スイートをAES_CM_128_HMAC_SHA1_80に指定しないと双方の通話が暗号化されない問題。原因はFreeSwitchのSRTP暗号スイートの正規表現が、Linphoneが提示するものと一致しない(以下のAEAD末尾に_8が欠如)ためでした。
Dialplan Managerのrtp_has_cryptでLinphoneからの正規表現を追加。 (AEADのリストに AEAD_AES_128_GCM と AEAD_AES_256_GCM を追加)
Dialplan Manager
rtp_has_cryptの編集
Linphoneの暗号スイート
AEAD_AES_128_GCMAES_CM_128_HMAC_SHA1_80AEAD_AES_256_GCMAES_256_CM_HMAC_SHA1_80
FreeSWITCHの暗号スイート
AEAD_AES_256_GCM_8AEAD_AES_128_GCM_8AES_CM_256_HMAC_SHA1_80AES_CM_192_HMAC_SHA1_80AES_CM_128_HMAC_SHA1_80AES_CM_256_HMAC_SHA1_32AES_CM_192_HMAC_SHA1_32AES_CM_128_HMAC_SHA1_32AES_CM_128_NULL_AUTH
| SRTP方式 | 使える暗号 | 鍵交換方法 | 備考 |
|---|---|---|---|
| SDES-SRTP | AES_CM_128_HMAC_SHA1_80/32 | SDP 内の「a=crypto」で鍵交換 | GCM は使えない |
| DTLS-SRTP | AEAD_AES_128_GCM, AES_CM_128_HMAC_SHA1_80 など | DTLS handshake(証明書使用) | GCMが使える |
| ZRTP | 端末同士のDH交換 | ZRTP handshake | GCM 非対応(AES_CM) |
注) 同じ暗号スイートでもLinphoneとFreeSWITCHで記述形式が異なる。Linphoneでビデオ通話もSRTP対応にするには、設定で Media encryption mandatory を有効にすること。

