[Asterisk-bsd] Pickup reinvite

Tim St. Pierre tim at communicatefreely.net
Mon Dec 10 20:20:26 CST 2007


Yes, NAT is a royal pain.  I think I should do some more research into what 
routers can talk to what phones, because some of them seem to have figured 
this out, and they all work fine.

I'm generally relying on method 2 (below), which has been completely reliable, 
EXCEPT with pickup.

It's losing the SIP connection, as you suggest, and based on the debug output, 
Asterisk is sending responses to the internal IP address in the contact 
instead of the registration address that it has been using for everything 
else.

It ONLY fails with Pickup.  Transfer works, calls in and out work fine.


On Monday 10 December 2007 18:55, Tony Jago wrote:
> Welcome to the wonderful world of nat. "No response to our critical packet"
> is telling you there is a problem with your SIP signaling (not the RTP
> stream). It means that asterisk is sending out a SIP packet, probably the
> re-invite and getting no response back from the other device. This is
> probably becase the NAT is blocking the packet. Every different NAT router
> handles NAT and SIP differently. You probably need to setup port forwarding
> for each of your sip device behind the nat. This means changing the SIP
> port and the RTP port range for every phone. The phone need to be an static
> IP's and the ports forwarded through the router.
>
> The other option which *may* work is to have your phones keep the nat
> session alive by constantly sending a SIP packet to the asterisk server.
> This is a bit of a hack and isn't as reliable as setting everything up
> correctly with port forwarding.
>
> Tony
>
> ----- Original Message -----
> From: "Tim St. Pierre" <tim at communicatefreely.net>
> To: "Asterisk on BSD discussion" <asterisk-bsd at lists.digium.com>
> Sent: Tuesday, December 11, 2007 8:40 AM
> Subject: [Asterisk-bsd] Pickup reinvite
>
>
> Hello Folks.
>
> I'm wondering if anyone has any helpful hints.
>
> I recently upgraded to 1.4.11, and I'm having problems with pickup, both
> directed, and the pickup feature.
>
> My server is on the public internet, and all phones are behind a NAT
> router, somewhere else on the public internet.
>
> When a ringing phone is picked up by another phone, you have audio for a
> few seconds, then the call is dropped.
>
> The console shows "No response to our critical packet"
>
> A SIP debug of the conversation between the phone and the server shows a
> re-invite request right when the call drops.  The phone is of course using
> the internal IP address as it's contact, and it looks to me like the server
> is trying to use it.
>
> I have canreinvite=no for both the general sip.conf, as well as per-peer.
>
> I am using the whole range of Aastra Enterprise IP phones.
>
> Interestingly enough, some phones show their true IP address and port in
> the Asterisk registration database.  I believe this is where the phones
> have successfully communicated with a uPNP router, and discovered their
> public address.  These phones can successfully pickup the call.
>
> If I pipe the pickup call through the Local channel, it works.
>
> Why is asterisk still trying to re-invite even though I have explicitly
> told it not to in the config?
>
> It worked fine in 1.2
>
> Any suggestions, or requests for more information?
>
> Thanks for any help.
>
> -Tim

-- 
Tim St. Pierre

IP telephony specialist
sip://5101@communicatefreely.net
Toronto: 647 722 6930
Toll-Free 1 888 488 6940
tim at communicatefreely.net



More information about the Asterisk-BSD mailing list