yuanjianjiang / imsdroid

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

One way voice #429

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
a) Before posting your issue you MUST answer to the questions otherwise it
will be rejected (invalid status) by us
b) Please check the issue tacker to avoid duplication
c) Please provide network capture (wireshark) or Android log (DDMS output)
if you want quick response

What steps will reproduce the problem?
1. Make a call to a cellular number.
2. Receive the call on the remote end.

What is the expected output? What do you see instead?
- Expected output is to get voice on both sides and we hear voice on the remote 
end only.

What version of the product are you using? On what operating system?
- The latest checkout from svn from 2.0 branch on Android 2.3 and 4.0 and 4.1.

Please provide any additional information below.
We have our own SIP server which works with X-Lite and other similar clients. 
When we try to make it work with IMSDroid, while all signalling works, no voice 
is heard on the IMSDroid end. Attached is the wireshark capture for the same 
scenario. We tried enabling/disabling multiple codecs, NATT AOR hacks and so on 
but the problem seems to be always there. 

Original issue reported on code.google.com by abhi.i...@gmail.com on 6 Feb 2013 at 3:46

Attachments:

GoogleCodeExporter commented 9 years ago

Original comment by boss...@yahoo.fr on 6 Feb 2013 at 11:22

GoogleCodeExporter commented 9 years ago
remarks:
- You should use a newer version. 687 is too old.
- You should always provide information on who is who. In your capture there 
are tens of SIP REGISTER/MESSAGE requests from different IPs and ports: hard 
for an external person to understand what's going on.
This said:
- The trace shows that IMSDroid is sending the INVITE (pkt #21746) and request 
incoming RTP on port #56756
- The server sends a 183 (pkt #21774, session version #1141667750) and request 
incoming RTP on port #6012
- The server also sends a 200 (pkt #28261, session version #1141667751) and 
request incoming RTP on port #6012
As you can see, session version in the 183 and 200 are different which is not 
correct as the 183 is not reliable and must contain a "preview". For more 
information, rfc6337 section 3.1.1.
There are two ways to fix the issue on your server:
1- Do not increment the session version
2- Or adds support for 100rel

I don't really know if the one-way issue is related to this problem but what we 
can also see is that:
- IMSDroid is sending RTP packets to port #6012 as requested by your server
- Your server is not sending RTP packets to IMSDroid (port #56756)
It's hard for us to know why your server is not sending RTP pkts (up to you)

Original comment by boss...@yahoo.fr on 6 Feb 2013 at 12:01

GoogleCodeExporter commented 9 years ago
Thanks for the help. I will try the ideas you mentioned (both on the server and 
updation of imsdroid) and update here with my findings.

Original comment by abhi.i...@gmail.com on 6 Feb 2013 at 5:01

GoogleCodeExporter commented 9 years ago

Original comment by boss...@yahoo.fr on 8 Feb 2013 at 12:46

GoogleCodeExporter commented 9 years ago
Fixed by r540

Original comment by boss...@yahoo.fr on 11 Feb 2013 at 12:32