juniorlm87 / csipsimple

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

Alternative SIP UDP port ignored during sending of SUBSCRIBE, PUBLISH, INVITE requests #2860

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
I'm running Asterisk 11.3 as SIP server on a Raspberry Pi behind of a DSL 
router which external IP address is resolved via a Dyn-DNS service. 
SIP within Asterisk is bound to an alternative UDP port (5065 instead of 5060) 
especially for security reasons.

CSipSimple (1.02.03 r2457) is running on a LG Nexus 4 (with Android 5.0.1) 
which is connected via WiFi to another DSL router. The SIP server is configured 
as "<domain-name>:5065" in the CSipSimple account. The registration to Asterisk 
is successful but outgoing calls to other SIP clients via Asterisk are not 
working. 
Incoming calls from other SIP clients via Asterisk are successful.

It can be seen in log file pjsiplogs_15-01-03_120829_modified.txt (which I will 
send via e-mail) that the SIP server domain name is resolved and the 
alternative SIP UDP port is considered before sending the SIP REGISTER request:

12:08:29.756  sip_resolve.c  ..DNS resolver not available, target 
'foo.example.com:5065' type=Unspecified will be resolved with getaddrinfo()
12:08:29.763  sip_resolve.c  ..Target 'foo.example.com:5065' type=Unspecified 
resolved to '84.190.13.27:5065' type=UDP (UDP transport)
12:08:29.764   pjsua_core.c  ..TX 586 bytes Request msg REGISTER/cseq=43380 
(tdta0xb7b940d0) to UDP 84.190.13.27:5065:

The SIP server domain name is resolved every time before sending SUBSCRIBE, 
PUBLISH and INVITE requests but the alternative SIP UDP port is not handled 
properly, for example

12:08:30.436  sip_resolve.c  ......DNS resolver not available, target 
'foo.example.com:0' type=Unspecified will be resolved with getaddrinfo()
12:08:30.436  sip_resolve.c  ......Target 'foo.example.com:0' type=Unspecified 
resolved to '84.190.13.27:5060' type=UDP (UDP transport)
12:08:30.436   pjsua_core.c  ......TX 769 bytes Request msg PUBLISH/cseq=12964 
(tdta0xb7bb8f90) to UDP 84.190.13.27:5060:

CSipSimple uses the standard port 5060 (instead of 5065) for sending SUBSCRIBE, 
PUBLISH and INVITE requests. These requests are not received and therefore
not answered by Asterisk. This is the reason why outgoing calls are not working.

It does not help to bind CSipSimple to UDP port 5065 itself.

CSipSimple worked OK on the same LG Nexus 4 before with an earlier Android 
version. The same scenario has been checked now with CSipSimple running on 
another smartphone 
(HTC Desire Z) with an old Android version (2.3.3). In the latter case all SIP 
requests are sent to the alternative port and outgoing calls are working. 
The interesting point is that sip_resolve.c outputs cannot be found in the 
regarding log file.

Original issue reported on code.google.com by andgo...@googlemail.com on 4 Jan 2015 at 3:16

GoogleCodeExporter commented 9 years ago
Hi,

The problem is most of the time due to the fact sip proxy field is not 
configured. Can you check it's properly configured in your case.
For more details about why you should configure it you can read for example : 
issue 2530. But there is a lot of other about that since it's a common mistake 
to think configuring registrar should automatically get anything going through 
the registrar on its configured port/transport while it could be a valid 
configuration to go direction through udp on default sip port when dialing 
something like user@domain.com
(it will go on udp through 5060 unless you are using an account configured with 
a proxy, else you should dial user@domain:5065 )

Original comment by r3gis...@gmail.com on 4 Jan 2015 at 10:39