Local (URI) call succeed, public calls fail (solved)

Discussions about using SIP Sorcery on your own computer/server
Post Reply
Nebukadnezar
Posts: 47
Joined: Tue Aug 10, 2010 1:46 pm

Local (URI) call succeed, public calls fail (solved)

Post by Nebukadnezar » Fri Sep 17, 2010 8:26 am

Goodday to all,

I have a small server running the latest SVN software, with three remote clients (connecting from the internet via SpeedTouch 780 routers) and (almost) all works well. The router at my end also is a SpeedTouch 780 with a phone connected to it. That last phone is giving me problems:

I can make calls to the other three accounts on their local account number (URI) but outgoing calls to public numbers fail.

Below the log traces of both type of calls.

call to (local) 70xxx account works:

Code: Select all

as (56:26:200): AppServerCore INVITE received, uri=sip:70xxx@192.168.0.5;transport=UDP, cseq=1.
as (56:26:263): Call Manager processing new call on thread sipcallmanager-processcalls-1 for INVITE to sip:70xxx@192.168.0.5;transport=UDP.
as (56:26:356 admin): Using dialplan 70xxx-in for In call to sip:70xxx@192.168.0.5;transport=UDP.
as (56:26:388 admin): Executing script dial plan for call to 70xxx.
as (56:26:528): Dial plan execution starting on thread dialplanscript-3 for admin.
as (56:26:700 admin): Ruby Common
as (56:26:731 admin):  Received-URI:70xxx        URI-Length:5
as (56:26:747 admin):  URI-Host:192.168.0.5
as (56:26:778 admin):  From:anonymous(?) Name:Anonymous(?)
as (56:26:794 admin):  Incoming-Call:True        Outgoing-Call:False
as (56:26:888 admin):  VoIP/SIP device-Online:True
as (56:27:216 admin):  Accepting call from SIPSorcery.AppServer.DialPlan:0:in `ExecuteScript'SIPSorcery.AppServer.DialPlan:0:in `<ExecuteDialPlanScript>b__b'mscorlib:0:in `ThreadStart_Context'mscorlib:0:in `Run'mscorlib:0:in `Run'mscorlib:0:in `ThreadStart'
as (56:27:263 admin): *****************************************************
as (56:27:294 admin): Commencing Dial with: 70xxx@local.
as (56:27:341 admin): Call leg is for local domain looking up bindings for 70xxx@xxxxxxxxxx.org for call leg 70xxx@local.
as (56:27:388 admin): 1 found for 7xxx8@xxxxxxxxxx.org.
as (56:27:419 admin): ForkCall commencing call leg to sip:70xxx@192.168.0.254:5060.
as (56:27:434 admin): SIPClientUserAgent Call using alternate outbound proxy of udp:192.168.0.5:5060.
as (56:27:450 admin): Switching to sip:70xxx@192.168.0.254:5060 via udp:192.168.0.5:5060.
as (56:27:481 admin): SDP on UAC call had RTP socket mangled from 192.168.0.254:1488 to 212.187.xx.xx:1488.
as (56:27:622 admin): Information response 180 Ringing for sip:70xxx@192.168.0.254:5060.
as (56:27:638 admin): UAS call progressing with Ringing.
as (56:29:372 anonymous): Cancelling call for sip:70xxx@192.168.0.5;transport=UDP. (Cancelled at this point)
SIPServerUserAgent got cancellation request.
as (56:29:450 admin): Client call cancelled halting dial plan.
as (56:29:497 admin): Dialplan call was terminated by client side due to ClientCancelled.
as (56:29:512 admin): Cancelling all call legs for ForkCall app.
as (56:29:544 admin): Cancelling forwarded call leg, sending CANCEL to sip:70xxx@192.168.0.254:5060.
as (56:29:606 admin): Dial command was halted by cancellation of client call after 2.17s.
DialPlanExecutingScript StopExecution on dialplanscript-3.
as (56:29:653 admin): Dialplan cleanup for admin.
as (56:29:887 admin): Response 487 Request Terminated for sip:70xxx@192.168.0.254:5060.
as (56:29:950 admin): Dial plan execution completed with normal clearing.
as (56:29:965): Dial plan finished for admin, gc memory=8222872, physical memory=81883136, running script count=1.
Executing script dialplanscript-3 removed from running scripts list, running script count=0.
Call to outside number fails:

Code: Select all

as (57:53:486): AppServerCore INVITE received, uri=sip:003120xxxxxxx@192.168.0.5;transport=UDP, cseq=1.
as (57:53:549): Rejecting public call for 0031xxxxxxx@xxxxxxxxxx.org, SIP account not found.
as (57:53:565): UAS call failed with a response status of 404.
ProcessNewCalls could not load incoming SIP Account for sip:003120xxxxxxx@192.168.0.5;transport=UDP.
SIPServerUserAgent Reject fired on already answered call.
All clients are on the same domain; the difference is that the remote routers refer to my Internet URL while my local router must refer to the internal network address of the server,
but the same SIP domain has been set:

Code: Select all

UserAgent domain             : xxxxxxxxxx.org
Primary proxy address        : 192.168.0.5:5060
Secondary proxy address      : 0.0.0.0:5060
Primary registrar address    : 192.168.0.5:5060
Secondary registrar address  : 0.0.0.0:5060
Listening port               : 5060
Expire time                  : 600
Expire time delta            : 1
Notifier address             : 192.168.0.5:5060
Subscribe expire time        : 3600
Call Waiting reply           : 182
Transport                    : UDP
rtpmapstaticPT               : Disabled
reinvite_stop_audio          : Disabled
PRACK                        : Disabled
Clir format                  : standard
DTMF */# in INFO method      : 1011
Clip consider displayname    : yes
SDP packet time              : 20
Replace #                    : Enabled
Symmetric codec              : Enabled
Reinvite at calling fax detect : Disabled
SIPURI port                    : Enabled
rport                          : Enabled
SDP username                   : 70788
ringtoneat183                  : Disabled
T38 Port increment             : 0
Ping timer                     : 0
Min SE timer                   : 0
Session expires timer          : 0
Expires timer                  : 0
Any suggestion as to why this setup fails is most welcome
Last edited by Nebukadnezar on Thu Sep 30, 2010 5:24 pm, edited 2 times in total.

Aaron
Site Admin
Posts: 4652
Joined: Thu Jul 12, 2007 12:13 am

Re: Local (URI) call succeed, public calls fail

Post by Aaron » Sun Sep 19, 2010 11:43 am

The outgoing call being attempted is not being recognised as coming from one of your SIP accounts.

Code: Select all

as (57:53:486): AppServerCore INVITE received, uri=sip:003120xxxxxxx@192.168.0.5;transport=UDP, cseq=1.
as (57:53:549): Rejecting public call for 0031xxxxxxx@xxxxxxxxxx.org, SIP account not found.
The fact that you're getting "Rejecting public call" means your sipsorcery server is treating the call as coming from an unauthenticated SIP client. The reason it will be doing that is because it did not recognise the From header domain in the SIP client's request. If the call came from outside your local network then perhaps the SIP client used your public IP address in the From header. If so you should add that IP address as an alias to your domain in your sipsorcery server config.

Nebukadnezar
Posts: 47
Joined: Tue Aug 10, 2010 1:46 pm

Re: Local (URI) call succeed, public calls fail

Post by Nebukadnezar » Mon Sep 20, 2010 1:44 pm

Thanks Aaron,

The SIP client was local, but originates from the (locally) connected SpeedTouch router, and the (router based) client was successfully registered through the internal interface. I guess that the router, sitting inbetween SIP servers got a bit confused about its own identity! I made it send out request on the outside interface (domain URL, and enabled NAT loopback) and that fixed it.

Thanks again.

Edit:

Unfortunately, I did not have this issue solved at all; NAT(loopback) etc. had nothing to do with this issue. However, I did get it solved and I am somewhat ashamed to explain how, and what caused this.
I provisioned some services on the SpeedTouch ST780WL, and one of those services was CLIR; and it was activated (*31) by default and CLIR suppresses your identity and makes it impossible to get authenticated on sipsorcery; dialing the deactivate prefix (#31) solved the issue.

Post Reply