Problems with connecting on TLS

356 views
Skip to first unread message

Entropic Snail

unread,
Jan 30, 2013, 8:28:12 AM1/30/13
to doub...@googlegroups.com
Hi
sorry for lots of issues, but I'm having problems using TLS with the doubango library on android at the moment.  I can register a normal client, when using tcp or udp transport mechanism.  However when I use the configuration service and set the NETWORK_TRANSPORT to 'tls' i get errors. 

Is there anywhere in the library I would be able to set the keys and certificates somewhere? I've searched through the documentation and source code, I haven't been able to find out how to do this without recompiling the native library, which is going to be difficult for me to do right now.

I've looked through network logs, it does seem to be able to send encrypted data.  This is the output from the connection attempt.  Any help debugging this would be great thanks.

01-30 12:50:50.385: D/org.doubango.ngn.NgnApplication(24548): Build.MODEL=gt-i9100
01-30 12:50:50.385: D/org.doubango.ngn.NgnApplication(24548): Build.VERSION.SDK=10
01-30 12:50:51.285: D/org.doubango.ngn.NgnEngine(24548): CPU_Feature=15
01-30 12:50:51.285: D/org.doubango.ngn.NgnEngine(24548): isCpuNeon()=YES
01-30 12:50:51.305: D/org.doubango.ngn.NgnEngine(24548): Using OpenSL ES audio driver
01-30 12:50:51.320: D/org.doubango.ngn.NgnApplication(24548): sGlEsVersion=131072
01-30 12:50:51.335: D/org.doubango.ngn.NgnEngine(24548): Configure AEC[true/200] AEC_TAIL_ADAPT[true] NoiseSuppression[true], Voice activity detection[false]
01-30 12:50:51.370: D/org.doubango.ngn.services.impl.NgnConfigurationService(24548): starting...
01-30 12:50:51.370: D/org.doubango.ngn.services.impl.NgnStorageService(24548): starting...
01-30 12:50:51.370: D/org.doubango.ngn.services.impl.NgnNetworkService(24548): Starting...
01-30 12:50:51.375: D/org.doubango.ngn.services.impl.NgnHttpClientService(24548): Starting...
01-30 12:50:51.390: D/org.doubango.ngn.services.impl.NgnHistoryService(24548): Starting...
01-30 12:50:51.390: D/org.doubango.ngn.services.impl.NgnContactService(24548): starting...
01-30 12:50:51.410: D/org.doubango.ngn.services.impl.NgnSipService(24548): starting...
01-30 12:50:51.410: D/org.doubango.ngn.services.impl.NgnContactService(24548): Observer Looper enter()
01-30 12:50:51.410: D/org.doubango.ngn.services.impl.NgnSoundService(24548): starting...
01-30 12:50:51.415: D/org.doubango.ngn.services.impl.NgnHistoryService(24548): Loading history
01-30 12:50:51.520: D/org.doubango.ngn.services.impl.NgnHistoryService(24548): History loaded
01-30 12:50:51.595: D/org.doubango.ngn.services.impl.NgnSipService(24548): register()
01-30 12:50:51.600: D/org.doubango.ngn.services.impl.NgnSipService(24548): realm='sip:mydomain.com', impu='sip:je...@mydomain.com', impi='jeff'
01-30 12:50:51.605: D/org.doubango.ngn.services.impl.NgnSipService(24548): STUN=yes
01-30 12:50:51.605: D/org.doubango.ngn.services.impl.NgnSipService(24548): STUN2 - server=stun.mydomain.com and port=3478
01-30 12:50:51.605: D/org.doubango.ngn.services.impl.NgnSipService(24548): pcscf-host='mydomain.com', pcscf-port='5060', transport='tls', ipversion='ipv4'
01-30 12:50:51.605: D/org.doubango.ngn.services.impl.NgnNetworkService(24548): 192.168.0.7
01-30 12:50:51.605: D/org.doubango.ngn.services.impl.NgnNetworkService(24548): 127.0.0.1
01-30 12:50:51.605: D/org.doubango.ngn.services.impl.NgnSipService(24548): Local IP='192.168.0.7'
01-30 12:50:51.605: D/org.doubango.ngn.services.impl.NgnNetworkService(24548): acquireNetworkLock()
01-30 12:50:51.605: D/org.doubango.ngn.services.impl.NgnNetworkService(24548): netType=1 and netSubType=8
01-30 12:50:51.620: I/tinyWRAP(24548): *INFO: Stack running in CLIENT mode
01-30 12:50:51.620: I/tinyWRAP(24548): *INFO: tsk_timer_manager_start
01-30 12:50:51.620: I/tinyWRAP(24548): *INFO: Proxy-CSCF=[mydomain.com]:5060
01-30 12:50:51.620: I/tinyWRAP(24548): *INFO: pipeR fd=60
01-30 12:50:51.620: I/tinyWRAP(24548): *INFO: SIP STACK::run -- START
01-30 12:50:51.620: I/tinyWRAP(24548): *INFO: Timer manager run()::enter
01-30 12:50:51.620: I/tinyWRAP(24548): *INFO: TIMER MANAGER -- START
01-30 12:50:51.635: I/tinyWRAP(24548): *INFO: Socket added 60
01-30 12:50:51.635: I/tinyWRAP(24548): *INFO: master fd=47
01-30 12:50:51.635: I/tinyWRAP(24548): *INFO: Socket added 47
01-30 12:50:51.635: I/tinyWRAP(24548): *INFO: Transport::run() - enter
01-30 12:50:51.635: I/tinyWRAP(24548): *INFO: Starting [SIP transport] server with IP {192.168.0.7} on port {42950}...
01-30 12:50:51.665: I/tinyWRAP(24548): *INFO: Socket added 62
01-30 12:50:51.665: I/tinyWRAP(24548): *INFO: Socket added (external call) 62
01-30 12:50:51.665: W/tinyWRAP(24548): **WARN: function: "tnet_sockfd_connectto()"
01-30 12:50:51.665: W/tinyWRAP(24548): file: "src/tnet_utils.c"
01-30 12:50:51.665: W/tinyWRAP(24548): line: "1476"
01-30 12:50:51.665: W/tinyWRAP(24548): MSG: TNET_ERROR_WOULDBLOCK/TNET_ERROR_ISCONN/TNET_ERROR_INPROGRESS/TNET_ERROR_EAGAIN  ==> use tnet_sockfd_waitUntilWritable.
01-30 12:50:51.665: I/tinyWRAP(24548): *INFO: PipeR event 1
01-30 12:50:51.685: I/tinyWRAP(24548): *INFO: NETWORK EVENT FOR SERVER [SIP transport] -- TNET_POLLOUT
01-30 12:50:51.685: I/tinyWRAP(24548): *INFO: SIP STACK -- START
01-30 12:50:51.685: I/tinyWRAP(24548): *INFO: State machine: tsip_dialog_register_Started_2_InProgress_X_oRegister
01-30 12:50:51.685: D/org.doubango.ngn.services.impl.NgnSipService(24548): Stack started
01-30 12:50:51.685: D/org.doubango.ngn.services.impl.NgnSipService(24548): OnDialogEvent (Dialog connecting,1)
01-30 12:50:51.685: E/Broadcast(24548): recieved org.doubango.ngn.events.NgnRegistrationEventArgs.ACTION_REGISTRATION_CHANGED
01-30 12:50:51.690: E/Broadcast(24548): Trying to register...
01-30 12:50:53.690: D/org.doubango.ngn.services.impl.NgnSipService(24548): OnDialogEvent ((un)REGISTER request successfully sent.,1)
01-30 12:51:25.690: I/tinyWRAP(24548): *INFO: State machine: tsip_dialog_register_Any_2_Terminated_X_transportError
01-30 12:51:25.690: I/tinyWRAP(24548): *INFO: === REGISTER Dialog terminated ===
01-30 12:51:25.690: I/tinyWRAP(24548): *INFO: === NICT terminated ===
01-30 12:51:25.690: I/tinyWRAP(24548): *INFO: *** REGISTER Dialog destroyed ***
01-30 12:51:25.690: I/tinyWRAP(24548): *INFO: *** NICT destroyed ***
01-30 12:51:25.690: D/org.doubango.ngn.services.impl.NgnSipService(24548): OnDialogEvent (Transport error.,1)
01-30 12:51:25.690: D/org.doubango.ngn.services.impl.NgnSipService(24548): OnDialogEvent (Dialog terminated,1)
01-30 12:51:25.695: E/Broadcast(24548): recieved org.doubango.ngn.events.NgnRegistrationEventArgs.ACTION_REGISTRATION_CHANGED
01-30 12:51:25.695: E/Broadcast(24548): You are now unregistered :)

Entropic Snail

unread,
Jan 30, 2013, 8:46:31 AM1/30/13
to doub...@googlegroups.com
Can you tell me if it could be possible that the connection is rejected because we lack a signed ssl certificate?.  Is this checked in the library?

Mamadou DIOP

unread,
Jan 31, 2013, 5:29:55 AM1/31/13
to doub...@googlegroups.com
--
You received this message because you are subscribed to the Google Groups "discuss-doubango" group.
To unsubscribe from this group and stop receiving emails from it, send an email to doubango+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Entropic Snail

unread,
Feb 1, 2013, 12:34:06 PM2/1/13
to doub...@googlegroups.com
Ok, thanks,
This kind of works, but I'm a little confused, the function refers to both a public and private key, which I take it is the public and private key that I can generate of the device, and a ca key.  Currently my server is using a self signed certificate.  I have tried using the server certificate, or my own certificate or my own public key on here, but I get this error with all 3 options:

02-01 17:29:45.655: E/tinyWRAP(24095): ***ERROR: function: "tnet_tls_socket_init()"
02-01 17:29:45.655: E/tinyWRAP(24095): file: "src/tls/tnet_tls.c"
02-01 17:29:45.655: E/tinyWRAP(24095): line: "357"
02-01 17:29:45.655: E/tinyWRAP(24095): MSG: SSL_CTX_use_certificate_file failed [0].
02-01 17:29:45.655: E/tinyWRAP(24095): ***ERROR: function: "tnet_tls_socket_ctor()"
02-01 17:29:45.655: E/tinyWRAP(24095): file: "src/tls/tnet_tls.c"
02-01 17:29:45.655: E/tinyWRAP(24095): line: "444"
02-01 17:29:45.655: E/tinyWRAP(24095): MSG: Failed to initialize SSL socket [-3].
02-01 17:29:45.655: I/tinyWRAP(24095): *INFO: Socket added 65
02-01 17:29:45.655: I/tinyWRAP(24095): *INFO: SIP STACK::run -- START
02-01 17:29:45.655: I/tinyWRAP(24095): *INFO: Timer manager run()::enter
02-01 17:29:45.655: I/tinyWRAP(24095): *INFO: Socket added (external call) 65
02-01 17:29:45.660: W/tinyWRAP(24095): **WARN: function: "tnet_sockfd_connectto()"
02-01 17:29:45.660: W/tinyWRAP(24095): file: "src/tnet_utils.c"
02-01 17:29:45.660: W/tinyWRAP(24095): line: "1476"
02-01 17:29:45.660: W/tinyWRAP(24095): MSG: TNET_ERROR_WOULDBLOCK/TNET_ERROR_ISCONN/TNET_ERROR_INPROGRESS/TNET_ERROR_EAGAIN  ==> use tnet_sockfd_waitUntilWritable.

Can you tell me which key is needed for the ca key when using a self generated certificate?
thanks
01-30 12:50:51.600: D/org.doubango.ngn.services.impl.NgnSipService(24548): realm='sip:mydomain.com', impu='sip:...@mydomain.com', impi='jeff'

Entropic Snail

unread,
Feb 6, 2013, 9:53:40 AM2/6/13
to doub...@googlegroups.com
I've managed to get past this error so far, but still unable to connect.  I've done a network log, it seems to be doing a tls handshake, and then sending the request, but then nothing.  This is the output from the library:
02-06 16:36:26.875: D/org.doubango.ngn.services.impl.NgnSipService(7204): register()
02-06 16:36:26.875: D/org.doubango.ngn.services.impl.NgnSipService(7204): realm='sip:mydomain.com', impu='sip:je...@mydomain.com', impi='jeff'
02-06 16:36:26.880: D/org.doubango.ngn.services.impl.NgnSipService(7204): STUN=yes
02-06 16:36:26.880: D/org.doubango.ngn.services.impl.NgnSipService(7204): STUN2 - server=stun.mydomain.com and port=3478
02-06 16:36:26.880: D/org.doubango.ngn.services.impl.NgnSipService(7204): pcscf-host='mydomain.com', pcscf-port='5060', transport='tls', ipversion='ipv4'
02-06 16:36:26.885: D/org.doubango.ngn.services.impl.NgnNetworkService(7204): 192.168.1.162
02-06 16:36:26.885: D/org.doubango.ngn.services.impl.NgnNetworkService(7204): 127.0.0.1
02-06 16:36:26.885: D/org.doubango.ngn.services.impl.NgnSipService(7204): Local IP='192.168.1.162'
02-06 16:36:26.885: D/org.doubango.ngn.services.impl.NgnNetworkService(7204): acquireNetworkLock()
02-06 16:36:26.885: D/org.doubango.ngn.services.impl.NgnNetworkService(7204): netType=1 and netSubType=8
02-06 16:36:26.895: I/tinyWRAP(7204): *INFO: Stack running in CLIENT mode
02-06 16:36:26.895: I/tinyWRAP(7204): *INFO: tsk_timer_manager_start
02-06 16:36:26.895: I/tinyWRAP(7204): *INFO: Proxy-CSCF=[mydomain.com]:5060
02-06 16:36:26.895: I/tinyWRAP(7204): *INFO: pipeR fd=51
02-06 16:36:26.895: I/tinyWRAP(7204): *INFO: SIP STACK::run -- START
02-06 16:36:26.895: I/tinyWRAP(7204): *INFO: Timer manager run()::enter
02-06 16:36:26.895: I/tinyWRAP(7204): *INFO: TIMER MANAGER -- START
02-06 16:36:26.900: I/tinyWRAP(7204): *INFO: Socket added 51
02-06 16:36:26.900: I/tinyWRAP(7204): *INFO: master fd=46
02-06 16:36:26.900: I/tinyWRAP(7204): *INFO: Socket added 46
02-06 16:36:26.900: I/tinyWRAP(7204): *INFO: Transport::run() - enter
02-06 16:36:26.900: I/tinyWRAP(7204): *INFO: Starting [SIP transport] server with IP {192.168.1.162} on port {50292}...
02-06 16:36:26.945: I/tinyWRAP(7204): *INFO: Socket added 59
02-06 16:36:26.950: I/tinyWRAP(7204): *INFO: Socket added (external call) 59
02-06 16:36:26.950: I/tinyWRAP(7204): *INFO: PipeR event 1
02-06 16:36:26.950: W/tinyWRAP(7204): **WARN: function: "tnet_sockfd_connectto()"
02-06 16:36:26.950: W/tinyWRAP(7204): file: "src/tnet_utils.c"
02-06 16:36:26.950: W/tinyWRAP(7204): line: "1476"
02-06 16:36:26.950: W/tinyWRAP(7204): MSG: TNET_ERROR_WOULDBLOCK/TNET_ERROR_ISCONN/TNET_ERROR_INPROGRESS/TNET_ERROR_EAGAIN  ==> use tnet_sockfd_waitUntilWritable.
02-06 16:36:26.995: I/tinyWRAP(7204): *INFO: NETWORK EVENT FOR SERVER [SIP transport] -- TNET_POLLOUT
02-06 16:36:27.000: I/tinyWRAP(7204): *INFO: SIP STACK -- START
02-06 16:36:27.010: D/org.doubango.ngn.services.impl.NgnSipService(7204): Stack started
02-06 16:36:27.010: I/tinyWRAP(7204): *INFO: State machine: tsip_dialog_register_Started_2_InProgress_X_oRegister
02-06 16:36:27.010: D/org.doubango.ngn.services.impl.NgnSipService(7204): OnDialogEvent (Dialog connecting,1)
02-06 16:36:27.015: E/Broadcast(7204): recieved org.doubango.ngn.events.NgnRegistrationEventArgs.ACTION_REGISTRATION_CHANGED
02-06 16:36:27.020: E/Broadcast(7204): Trying to register...
02-06 16:36:29.020: D/org.doubango.ngn.services.impl.NgnSipService(7204): OnDialogEvent ((un)REGISTER request successfully sent.,1)
02-06 16:37:01.019: I/tinyWRAP(7204): *INFO: State machine: tsip_dialog_register_Any_2_Terminated_X_transportError
02-06 16:37:01.019: I/tinyWRAP(7204): *INFO: === REGISTER Dialog terminated ===
02-06 16:37:01.019: I/tinyWRAP(7204): *INFO: === NICT terminated ===
02-06 16:37:01.019: I/tinyWRAP(7204): *INFO: *** REGISTER Dialog destroyed ***
02-06 16:37:01.019: I/tinyWRAP(7204): *INFO: *** NICT destroyed ***
02-06 16:37:01.024: D/org.doubango.ngn.services.impl.NgnSipService(7204): OnDialogEvent (Transport error.,1)
02-06 16:37:01.024: D/org.doubango.ngn.services.impl.NgnSipService(7204): OnDialogEvent (Dialog terminated,1)
02-06 16:37:01.029: E/Broadcast(7204): recieved org.doubango.ngn.events.NgnRegistrationEventArgs.ACTION_REGISTRATION_CHANGED
02-06 16:37:01.034: E/Broadcast(7204): You are now unregistered

Do you have any example of TLS working on android or on IMSDroid?
Any help appreciated
Thanks
Reply all
Reply to author
Forward
0 new messages