hudamalmsteen / csipsimple_test

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

tcp and udp #171

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
TCP connects but won't make or receive calls UDP works fine. 

Original issue reported on code.google.com by jesn...@gmail.com on 27 Aug 2010 at 1:18

GoogleCodeExporter commented 9 years ago
Is the account configured to register over TCP?

There is two things in pjsip (and so in csipsimple) for TCP/UDP/TLS :
* transport (the channel used to communicate with servers) by defaults both tcp 
and udp are activated. This are local bindings transport channels. They can 
(should) be both activated that doesn't affect directly which transport will be 
used for communications.
* the accounts configuration which can choose or not to use tcp. By default 
accounts use tcp. Advanced account provide a way to quickly force TCP. Expert 
account can also provide you a way, but you have to add ;transport=tcp to the 
registration uri if I don't mistake.
Then if I've well understood the sip flow, that's up to server and client to 
negociate between tcp & udp. Server can decide to use udp even if you announce 
tcp.

If you deactivate udp from network settings and keep udp (implicit) in the 
account, nothing will works then.

Original comment by r3gis...@gmail.com on 29 Aug 2010 at 11:23

GoogleCodeExporter commented 9 years ago
Is this fixed? I tried tcp protocol and it does not work. I have HTC Hero with 
Android 2.1 and run 12-32 DEV. I unchecked TCP in network settings and 
csipsimple no longer registers on the server. We run Asterisk 1.62x with TCP 
enabled.

Original comment by dcitele...@gmail.com on 14 Sep 2010 at 9:11

GoogleCodeExporter commented 9 years ago
Is your account configured to register using TCP? 
That's much more important than the TCP and UDP setting in network (which are 
local transport bindings). I'm not sure, but UDP is maybe necessary for example 
for DNS resolution. 
As consequence, in all case, it's a good idea to left both UDP & TCP checkbox 
ticked.

If you want an account to register over tcp, you should use the "Advanced 
wizard" and choose "Use TCP". As consequence your account will register and 
make calls over TCP. If you are not sure whether TCP or UDP is used, you can 
send me your logs. I'll say you whether TCP or UDP is in use.

But if TCP is checked in Advanced wizard => TCP transport will be used. 
If you check/uncheck TCP or UDP in network settings you will prevent the 
application to communicate over TCP or UDP (which, I repeat, is not a good 
idea, unless you know exactly what you want to do).

@jesnels : what wizard did you used and what are the content of the field 
registrar & proxy?

Original comment by r3gis...@gmail.com on 14 Sep 2010 at 10:07

GoogleCodeExporter commented 9 years ago
I have been having big problems with TCP since I upgraded to the latest dev 
version (12-32). The registration does not seem to complete for any of the 
providers that I had it working with before. Seems like it keeps looping and 
detecting ip address changes. The result is I can no longer connect to neither 
my voxalot, sipsorcery or my other provider account which supports tcp. The 
same kind of behaviour for all three.

I am going to investigate this further as this was working fine before. On the 
postive side the version I was using before was giving me great battery life 
(days not hours) using the combination of no-wake lock and tcp and good call 
quality over 3G with iLBC codec :-)

Original comment by michael....@gmail.com on 17 Sep 2010 at 8:57

GoogleCodeExporter commented 9 years ago
In the expert account wizard if I add the ";transport=tcp" string manually at 
the end of the reigstrar and proxy uri's and select UDP instead of TCP it works 
as expected. Guessing their is a bug in the UDP/TCP selection function in the 
wizard.

Original comment by michael....@gmail.com on 17 Sep 2010 at 9:20

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Mine issue: sip client over 3g can connect only to tcp 2020 port of voxalot 
(standart 5060 is not working). In wifi network 5060 is good. Sipdroid can 
register with 2020 port on both carriers, while csipsimple can connect on 3g on 
2020 only and 5060 on wifi. Of course its extremely uncomfortable to change 
ports on different networks. In profile tcp protocol is selected.

Original comment by xnov...@gmail.com on 26 Sep 2010 at 4:25

GoogleCodeExporter commented 9 years ago
@xnova : are you sure you are setting the account port - only available in 
account settings - and not the local binding port - available in settings > 
network?

There is a common confusion between the two settings. I've to remove the option 
in "network settings" since most of the time it's useless to change it.
If you transform your account to an advanced or expert one, you'll be able to 
change the port for the account by formatting the server to something like 
voxalot:2020.
Once this done, you can left settings > network > tcp port to whatever you want 
that don't really matter if there is no firewall in the middle, and it has no 
link with the port you have to conenct to on the server.

Original comment by r3gis...@gmail.com on 26 Sep 2010 at 4:39

GoogleCodeExporter commented 9 years ago
Thanks for a tip! it worked, csip will report successful registration and I can 
make a test call to voxalot server. however I don't hear the other side when I 
place a call to my mobile (my usial test: I would call myself, receive a call 
over gsm, reject it and listen if I hear operator voice reply "User can't 
reveive your call at the moment..."). For the while it's just silence. 

Original comment by xnov...@gmail.com on 28 Sep 2010 at 8:42

GoogleCodeExporter commented 9 years ago
@xnova : maybe you should try to activate STUN in settings.

Original comment by r3gis...@gmail.com on 17 Oct 2010 at 11:18