ChallyCai / doubango

Automatically exported from code.google.com/p/doubango
0 stars 1 forks source link

Nonce is not taken in Authorization header of REGISTER #19

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Use IMSDROID to send a REGISTER
2. 401 Authorized is back and nonce is taken in WWW-authenticate header
3. but no nonce in the second REGISTER message

What is the expected output? What do you see instead?
It is expected nonce is put in  Authorization header of REGISTER

What version of the product are you using? On what operating system?
v1.0.263

Please provide any additional information below.

Original issue reported on code.google.com by gaotongq...@gmail.com on 25 Aug 2010 at 6:20

GoogleCodeExporter commented 9 years ago
Hi,
As you are using IMSDroid I have transferred the issue to that tracker.
Here is the link: http://code.google.com/p/imsdroid/issues/detail?id=43
Could you please attach the capture trace (Wireshark)? 

Original comment by boss...@yahoo.fr on 25 Aug 2010 at 11:15

GoogleCodeExporter commented 9 years ago
BTW, I have the same issue on some commercial deployments. They are using 
Alcatel-Lucent servers. Are you using the same server?

Original comment by boss...@yahoo.fr on 25 Aug 2010 at 11:19

GoogleCodeExporter commented 9 years ago
Hi, Thank you very much for the quick response!

See attachment for the wireshark trace for this scenario.

Thanks,

Original comment by gaotongq...@gmail.com on 25 Aug 2010 at 11:29

Attachments:

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
OK. You are using ALU servers. See comment 2.
I'm already working on the issue.
Could you please test this version: 
http://imsdroid.googlecode.com/svn/trunk/debug/imsdroid-debug-1.0.214.apk

Original comment by boss...@yahoo.fr on 25 Aug 2010 at 11:45

GoogleCodeExporter commented 9 years ago
Hi,

Thanks again!

It is still failed, I find following errors in the log file:

08-25 20:20:24.439: ERROR/tinyWRAP(7102): MSG: Failed to parse header -    
nonce="b4c750abe7c9036dbf3054aea940e9703dc8f84c0108",
08-25 20:20:24.439: ERROR/tinyWRAP(7102):    
opaque="Lss:scsf-stdn.imsgroup0-000.lcp.sd.ctcims.cn:5061",
08-25 20:20:24.439: ERROR/tinyWRAP(7102):    algorithm=MD5,
08-25 20:20:24.439: ERROR/tinyWRAP(7102):    qop="auth"
08-25 20:20:24.439: ERROR/tinyWRAP(7102): Content-Length: 0
08-25 20:20:24.439: ERROR/tinyWRAP(7102): 
08-25 20:20:24.439: ERROR/tinyWRAP(7102): p
08-25 20:20:24.449: ERROR/tinyWRAP(7102): ***ERROR: function: 
"tsip_message_parser_execute()" 
08-25 20:20:24.449: ERROR/tinyWRAP(7102): file: 
"src/parsers/tsip_parser_message.c" 
08-25 20:20:24.449: ERROR/tinyWRAP(7102): line: "401" 
08-25 20:20:24.449: ERROR/tinyWRAP(7102): MSG: Failed to parse header -    
opaque="Lss:scsf-stdn.imsgroup0-000.lcp.sd.ctcims.cn:5061",
08-25 20:20:24.449: ERROR/tinyWRAP(7102):    algorithm=MD5,
08-25 20:20:24.449: ERROR/tinyWRAP(7102):    qop="auth"
08-25 20:20:24.449: ERROR/tinyWRAP(7102): Content-Length: 0
08-25 20:20:24.449: ERROR/tinyWRAP(7102): 
08-25 20:20:24.449: ERROR/tinyWRAP(7102): p
08-25 20:20:24.449: ERROR/tinyWRAP(7102): ***ERROR: function: 
"tsip_message_parser_execute()" 
08-25 20:20:24.449: ERROR/tinyWRAP(7102): file: 
"src/parsers/tsip_parser_message.c" 
08-25 20:20:24.449: ERROR/tinyWRAP(7102): line: "401" 
08-25 20:20:24.449: ERROR/tinyWRAP(7102): MSG: Failed to parse header -    
algorithm=MD5,
08-25 20:20:24.449: ERROR/tinyWRAP(7102):    qop="auth"
08-25 20:20:24.449: ERROR/tinyWRAP(7102): Content-Length: 0
08-25 20:20:24.449: ERROR/tinyWRAP(7102): 
08-25 20:20:24.449: ERROR/tinyWRAP(7102): p
08-25 20:20:24.449: ERROR/tinyWRAP(7102): ***ERROR: function: 
"tsip_message_parser_execute()" 
08-25 20:20:24.449: ERROR/tinyWRAP(7102): file: 
"src/parsers/tsip_parser_message.c" 
08-25 20:20:24.449: ERROR/tinyWRAP(7102): line: "401" 
08-25 20:20:24.449: ERROR/tinyWRAP(7102): MSG: Failed to parse header -    
qop="auth"
08-25 20:20:24.449: ERROR/tinyWRAP(7102): Content-Length: 0
08-25 20:20:24.449: ERROR/tinyWRAP(7102): 
08-25 20:20:24.449: ERROR/tinyWRAP(7102): p
08-25 20:20:24.459: DEBUG/org.doubango.imsdroid.Services.Impl.SipService(7102): 
OnDialogEvent ((un)REGISTER request successfully sent.)
08-25 20:20:24.650: INFO/tinyWRAP(7102): *INFO: === REGISTER Dialog terminated 
===
08-25 20:20:24.650: INFO/tinyWRAP(7102): *INFO: == Shutting down - Phase-1 
completed ==
08-25 20:20:24.659: DEBUG/org.doubango.imsdroid.Services.Impl.SipService(7102): 
OnDialogEvent (Forbidden)
08-25 20:20:24.669: INFO/org.doubango.imsdroid.Main(7102): onRegistrationEvent
08-25 20:20:24.679: INFO/org.doubango.imsdroid.Screens.ScreenHome(7102): 
onRegistrationEvent
08-25 20:20:24.699: 
INFO/org.doubango.imsdroid.Services.Impl.ServiceManager(7102): 
onRegistrationEvent
08-25 20:20:24.699: 
DEBUG/org.doubango.imsdroid.Services.Impl.ServiceManager(7102): 
showRegistartionNotif
08-25 20:20:24.709: DEBUG/WifiService(101): releaseWifiLockLocked: 
WifiLock{org.doubango.imsdroid.Services.Impl.NetworkService type=1 
binder=android.os.BinderProxy@465e5e80}
08-25 20:20:24.709: INFO/tinyWRAP(7102): *INFO: Timer manager run()::exit
08-25 20:20:24.719: INFO/tinyWRAP(7102): *INFO: TIMER MANAGER -- STOP
08-25 20:20:24.729: INFO/tinyWRAP(7102): *INFO: Transport::run() - exit
08-25 20:20:24.729: INFO/tinyWRAP(7102): *INFO: Stopped [SIP transport] server 
with IP {192.168.1.5} on port {50004}...
08-25 20:20:24.729: INFO/tinyWRAP(7102): *INFO: Socket removed
08-25 20:20:24.729: INFO/tinyWRAP(7102): *INFO: Socket removed
08-25 20:20:24.729: DEBUG/org.doubango.imsdroid.Services.Impl.SipService(7102): 
Stack stoped
08-25 20:20:24.729: INFO/tinyWRAP(7102): *INFO: SIP STACK::run -- STOP
08-25 20:20:24.729: INFO/tinyWRAP(7102): *INFO: SIP STACK -- STOP

Original comment by gaotongq...@gmail.com on 25 Aug 2010 at 12:22

GoogleCodeExporter commented 9 years ago
Is it possible to have the trace with this version (264)?

Original comment by boss...@yahoo.fr on 25 Aug 2010 at 12:28

GoogleCodeExporter commented 9 years ago
I will get the trace tomorrow, I can only get it in another lab.

Original comment by gaotongq...@gmail.com on 25 Aug 2010 at 12:31

GoogleCodeExporter commented 9 years ago
The 'nonce' is still not in second REGISTER base on the dump.

See attachment for the new dump file.

Original comment by gaotongq...@gmail.com on 26 Aug 2010 at 12:52

Attachments:

GoogleCodeExporter commented 9 years ago
I'm investigating the issue.
The problem is that the "WWW-Authenticate" header sent from your server is 
incorrect according to its ABNF.

Original comment by imsframe...@gmail.com on 26 Aug 2010 at 4:29

GoogleCodeExporter commented 9 years ago
could you share what's wrong with the "WWW-Authenticate" in 401?

We have no interworking issues for a lot of SIP soft phones including another 
Android client SipDroid.

Thanks,

Original comment by gaotongq...@gmail.com on 26 Aug 2010 at 5:27

GoogleCodeExporter commented 9 years ago
The stack (doubango) has also been tested against several IMS Cores. I only 
have problems with ALU servers.
Here is the ABNF for the header (same as RFC 3261): 
http://www.tech-invite.com/Ti-abnf-sip-hf.html#WWW-Authenticate
Challenge is defined like this: challenge   =   ("Digest" LWS  digest-cln  
*(COMMA  digest-cln)) / other-challenge
This means that you cannot have CRLF between "digest-cln", only COMMA should be 
used as separator.
If you have Eclipse and can rebuild the source code it could help me to resolve 
the issue. Off course I will send you some patches.

Original comment by boss...@yahoo.fr on 26 Aug 2010 at 5:36

GoogleCodeExporter commented 9 years ago

According to RFC 3261 Section 7.3.1., Header fields can be extended over 
multiple lines by preceding each extra line with at least one SP or horizontal 
tab (HT). The line break and the whitespace at the beginning of the next line 
are
treated as a single SP character.

if we look at 20.44 WWW-Authenticate

   A WWW-Authenticate header field value contains an authentication
   challenge.  See Section 22.2 for further details on its usage.

   Example:

      WWW-Authenticate: Digest realm="atlanta.com",
        domain="sip:boxesbybob.com", qop="auth",
        nonce="f84f1cec41e6cbe5aea9c8e88d359",
        opaque="", stale=FALSE, algorithm=MD5

it is also possible to have 0X0D0A after ","

Thanks

Original comment by gaotongq...@gmail.com on 26 Aug 2010 at 7:36

GoogleCodeExporter commented 9 years ago
Hi,

My Exlipse is ready for imsdroid, could you send me the patches to solve this 
issue.

Thanks a lot!

Original comment by gaotongq...@gmail.com on 27 Aug 2010 at 12:40

GoogleCodeExporter commented 9 years ago
any update?

Original comment by gaotongq...@gmail.com on 30 Aug 2010 at 10:15

GoogleCodeExporter commented 9 years ago
Pushed new version (1.0.271). Could you please try with it and send me both 
Eclipse and network traces?
Thanks

Original comment by boss...@yahoo.fr on 30 Aug 2010 at 10:18

GoogleCodeExporter commented 9 years ago
Hi, Thank you very much for the fix! 

The register is successful now.

See attachment for network trace and android trace as following:

08-31 12:01:49.084: INFO/org.doubango.imsdroid.Services.Impl.SipService(254): 
realm=sip:gll03.lucentlab.com, impu=sip:+15451100001@gll03.lucentlab.com, 
impi=privid15451100001@gll03.lucentlab.com
08-31 12:01:49.123: INFO/org.doubango.imsdroid.Services.Impl.SipService(254): 
pcscf-host=135.2.121.85, pcscf-port=5060, transport=UDP, ipversion=ipv4
08-31 12:01:49.142: INFO/NotificationService(65): enqueueToast 
pkg=org.doubango.imsdroid 
callback=android.app.ITransientNotification$Stub$Proxy@43c03228 duration=0
08-31 12:01:49.175: DEBUG/org.doubango.imsdroid.Services.Impl.SipService(254): 
Stack started
08-31 12:01:49.182: DEBUG/org.doubango.imsdroid.Services.Impl.SipService(254): 
OnDialogEvent (Dialog connecting)
08-31 12:01:49.222: 
INFO/org.doubango.imsdroid.Services.Impl.ServiceManager(254): 
onRegistrationEvent
08-31 12:01:49.232: 
DEBUG/org.doubango.imsdroid.Services.Impl.ServiceManager(254): 
showRegistartionNotif
08-31 12:01:49.253: INFO/org.doubango.imsdroid.Main(254): onRegistrationEvent
08-31 12:01:49.283: DEBUG/org.doubango.imsdroid.Services.Impl.SipService(254): 
OnDialogEvent ((un)REGISTER request successfully sent.)
08-31 12:01:49.283: INFO/org.doubango.imsdroid.Screens.ScreenHome(254): 
onRegistrationEvent
08-31 12:01:49.573: ERROR/tinyWRAP(254): ***ERROR: function: 
"tsip_header_Dummy_parse()" 
08-31 12:01:49.573: ERROR/tinyWRAP(254): file: 
"src/headers/tsip_header_Dummy.c" 
08-31 12:01:49.573: ERROR/tinyWRAP(254): line: "271" 
08-31 12:01:49.573: ERROR/tinyWRAP(254): MSG: Failed to parse 'Dummy' header.
08-31 12:01:49.593: DEBUG/org.doubango.imsdroid.Services.Impl.SipService(254): 
OnDialogEvent ((un)REGISTER request successfully sent.)
08-31 12:01:49.993: DEBUG/org.doubango.imsdroid.Services.Impl.SipService(254): 
OnDialogEvent (Dialog connected)
08-31 12:01:50.002: DEBUG/org.doubango.imsdroid.Services.Impl.SipService(254): 
Doing post registration operations
08-31 12:01:50.023: 
DEBUG/org.doubango.imsdroid.Services.Impl.HistoryService(254): Loading history
08-31 12:01:50.033: 
DEBUG/org.doubango.imsdroid.Services.Impl.ContactService(254): Loading contacts 
(local)
08-31 12:01:50.234: DEBUG/dalvikvm(254): GC freed 11500 objects / 588952 bytes 
in 155ms
08-31 12:01:50.234: 
INFO/org.doubango.imsdroid.Services.Impl.ServiceManager(254): 
onRegistrationEvent
08-31 12:01:50.234: 
DEBUG/org.doubango.imsdroid.Services.Impl.ServiceManager(254): 
showRegistartionNotif
08-31 12:01:50.283: 
DEBUG/org.doubango.imsdroid.Services.Impl.ContactService(254): Contacts 
loaded(local)
08-31 12:01:50.325: INFO/org.doubango.imsdroid.Main(254): onRegistrationEvent
08-31 12:01:50.364: DEBUG/org.doubango.imsdroid.Services.Impl.SipService(254): 
OnDialogEvent (Dialog connecting)
08-31 12:01:50.364: INFO/org.doubango.imsdroid.Screens.ScreenHome(254): 
onRegistrationEvent
08-31 12:01:50.404: DEBUG/org.doubango.imsdroid.Services.Impl.SipService(254): 
OnDialogEvent (Dialog terminated)
08-31 12:01:50.432: 
DEBUG/org.doubango.imsdroid.Services.Impl.HistoryService(254): History loaded
08-31 12:01:50.632: DEBUG/dalvikvm(254): +++ not scanning 
'/system/lib/libwebcore.so' for 'delete_CallSession' (wrong CL)
08-31 12:01:50.642: DEBUG/dalvikvm(254): +++ not scanning 
'/system/lib/libmedia_jni.so' for 'delete_CallSession' (wrong CL)
08-31 12:01:50.642: DEBUG/dalvikvm(254): +++ not scanning 
'/system/lib/libexif.so' for 'delete_CallSession' (wrong CL)
08-31 12:01:50.642: DEBUG/dalvikvm(254): +++ not scanning 
'/system/lib/libsrec_jni.so' for 'delete_CallSession' (wrong CL)

Original comment by gaotongq...@gmail.com on 31 Aug 2010 at 5:13

Attachments:

GoogleCodeExporter commented 9 years ago

Original comment by boss...@yahoo.fr on 1 Sep 2010 at 6:57