Hello,

I have a very strange issue - we are running kamailio 3.3.2 as a part of Sip 
Provider CE and some of our clients have issues with TLS connectivity. 

1. some clients such as Jitsi on Mac OS X and Bria or idoubs on iOS can always 
connect
2. imsdroid on Android can sometimes connect and works (about 10 % of attempts)

When I run tcpudmp on the server during the unsuccessfull attempts, I see 
something like this:

> 1 1  0.0347 (0.0347)  C>S SSLv2 compatible client hello
>  Version 3.1 
>  cipher suites
>  TLS_RSA_WITH_AES_128_CBC_SHA  
> 1 2  0.0360 (0.0013)  S>C  Handshake
>      ServerHello
>        Version 3.1 
>        session_id[0]=
>        cipherSuite         TLS_RSA_WITH_AES_128_CBC_SHA
>        compressionMethod                   NULL
> 1 3  0.0361 (0.0001)  S>C  Handshake
>      Certificate
> 1 4  0.0361 (0.0000)  S>C  Handshake ServerHelloDone
> 1 5  0.0782 (0.0420)  C>S  Alert
>    level           fatal
>    value           unexpected_message
> 1    0.0785 (0.0002)  S>C  TCP FIN
> 1 6  0.1092 (0.0307)  C>S  Handshake
>      ClientKeyExchange
> 1 7  0.1092 (0.0000)  C>S  ChangeCipherSpec
> 1 8  0.1092 (0.0000)  C>S  Handshake


What I find particularly strange is that the client sends fatal alert and then 
attempts to continue with handshake. What exactly does this 
"unexpected_message" mean? Is the client letting the server know the last 
message was unexpected? Or is this telling me the server had not expected the 
message? It cannot be a certificate problem, can it?

Considering other clients were fine, I blamed our code at first, but I am no 
longer sure that is the (only) reason for this behavior. I decided to start 
from scratch and wrote an extremely simple application in plain C, that 
connects to the TLS port using openssl (which imsdroid also uses), sends some 
query and then prints response. It works fine on https sites, even on the same 
server kamailio is running and with the same certificates (our certificates 
come from Verisign CA G3). When I run ssldump, I can see handshake is fine, 
socket opened, the client is sending application data. I can see data coming in 
on the server using tcpdump. However, the data never reaches Kamailio - no sign 
of the packets in the log and no answer whatsoever (I use a fake REGISTER 
message so I would expect to get something like "Unauthorized" back).

The same happens, when I try to use openssl s_client to connect to the site and 
send "register" message (because R at the start of packet triggers 
renegotiation in s_client, uff).

My TLS settings in Kamailio are pretty much default, only using my own key and 
certificate.




regards, jjj
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to