Hi,
With the advent of TLS support for SER, i was testing it with KPhone
(TLS being used between SER proxies only, Kphone-to-SER via UDP).
Turned out that kphone would not respond to any message (it would
receive them, but plain ignore them).
The problem: TLS as transport mode in the VIA headers was not
supported,
thus, the SIP messages were considered not valid.
I am attaching a patch to correct this for kphone 4.1.0, but i guess it
can be applied
with little modifications to earlier versions (4.0.3 to 4.0.5) but i am
not sure.
Regards,
Cesc
PATCH STARTS HERE:
Index:
dissipate2/sipclient.cpp===================================================================---
dissipate2/sipclient.cpp (revision 1)+++
dissipate2/sipclient.cpp (working copy)@@ -1034,6 +1034,9 @@
printf( "SipClient: Sending TCP
Response\n" ); outsocket = new TCPMessageSocket;
break;+ case
SipVia::TLS:+ printf( "SipClient: TLS in
top via, not supported (full TLS support not implemented)\n"
);+ break; case
SipVia::BadTransport: printf( "SipClient: Bad
transport on incoming Via\n" ); break;@@ -1232,6
+1235,9 @@ printf( "SipClient: Sending TCP
Response\n" ); outsocket = new TCPMessageSocket;
break;+ case
SipVia::TLS:+ printf( "SipClient: TLS in
top via, not supported (full TLS support not implemented)\n"
);+ break; case
SipVia::BadTransport: printf( "SipClient: Bad
transport on incoming Via\n" ); break;Index:
dissipate2/sipvia.h===================================================================---
dissipate2/sipvia.h (revision 1)+++ dissipate2/sipvia.h (working
copy)@@ -49,6 +49,7 @@ enum Transport { UDP,
TCP,+ TLS, BadTransport };
/**Index:
dissipate2/sipvia.cpp===================================================================---
dissipate2/sipvia.cpp (revision 1)+++ dissipate2/sipvia.cpp (working
copy)@@ -37,6 +37,7 @@ switch ( t ) { case UDP: return "UDP";
case TCP: return "TCP";+ case TLS: return
"TLS"; case BadTransport: return "BAD"; } return
QString::null;@@ -46,6 +47,7 @@ { if ( t.compare(
getTransportString( UDP ) ) == 0 ) { return UDP; } if ( t.compare(
getTransportString( TCP ) ) == 0 ) { return TCP; };+ if ( t.compare(
getTransportString( TLS ) ) == 0 ) { return TLS; }; return
BadTransport; }
PATCH ENDS HERE
Unclassified
Show replies by date