Как включить SRTP с pjsip в Android? - PullRequest
0 голосов
/ 08 мая 2019

Я устанавливаю TLS + SRTP на моем приложении VoIP в Android.Пока я скомпилировал PJSIP 2.8 с OpenSSL 1.0.2g.выполнение вызова без srtp работает нормально, но когда я заставляю использовать SRTP, вызов не выполняется.

Я включаю SRTP со следующим кодом:

AccountConfig.getMediaConfig().setSrtpUse(pjmedia_srtp_use.PJMEDIA_SRTP_MANDATORY);
AccountConfig.getMediaConfig().setSrtpSecureSignaling(1);

TLS работает нормально, потому что если я установилsecureSignaling на 1 (нужен транспорт TLS) и srtpUse для отключения, я все еще могу позвонить, и он работает нормально.

Я проверил свой сервер с помощью Zoiper, и Zoiper мог сделать безопасный вызов.Итак, я уверен, что проблема в моей конфигурации SRTP.

Это мои конфиги в приложении для Android:

Транспорт TLS:

sipTpConfig.getTlsConfig().setMethod(pjsip_ssl_method.PJSIP_TLSV1_METHOD);
sipTpConfig.getTlsConfig().setVerifyServer(false);
sipTpConfig.getTlsConfig().setVerifyClient(false);
sipTpConfig.getTlsConfig().setRequireClientCert(false);
Port = 5061

и Media Config:

AccountConfig.getMediaConfig().setSrtpUse(pjmedia_srtp_use.PJMEDIA_SRTP_MANDATORY);
AccountConfig.getMediaConfig().setSrtpSecureSignaling(1);
AccountConfig.getMediaConfig().getTransportConfig().getTlsConfig().setMethod(pjsip_ssl_method.PJSIP_TLSV1_METHOD);

На моем Сервере (Asterisk 13.26) у меня есть эти конфиги:

Sip.conf:

[general]
context=internal
externaddr= 192.168.1.2
externip= 192.168.1.2
externtcpport=5060
externudpport=5060
externtlsport=5061
tcpbindaddr=0.0.0.0:5060
udpbindaddr=0.0.0.0:5060
tlsbindaddr=0.0.0.0:5061
allowguest=no
allowoverlap=no
srvlookup=no
allow=all
alwaysauthreject=yes
canreinvite=no
nat=force_rport,comedia
session-timers=refuse
localnet=192.168.1.0/255.255.255.0
tcpenable=yes
srtpcapable=yes
tlsenable=yes
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlscafile=/etc/asterisk/keys/ca.crt
tlscipher=ALL
tlsclientmethod=tlsv1
encryption=yes
direct_media=no
media_encryption_optimistic=false
media_encryption=sdes

[6002]
type=friend
host=dynamic
secret=12345
context=internal
transport=tls

кто-нибудь имел ту же проблему или знает способ исправитьэто?

лог файлы андроида и звездочки: https://drive.google.com/file/d/18j98zp9FWJGRSvRdKy5k96VNbjUYaRc5/view?usp=sharing https://drive.google.com/file/d/1eAeX5Gd6phIvKDLCRjVyD6uZV_CP9h6p/view?usp=sharing

...