Weird error with * -- Please help!

OK, so I can’t figure this one out.

When people call my house, my phone will ring ONCE, and then hang up. At first, I thought it was a fluke, but it happens all the time now. If you hang up, and call right back, it works just fine. If you wait around 10+ minutes, and call back, it starts up again. This is the error in the CLI that I get:

[Jan 22 07:26:14] WARNING[4190]: chan_sip.c:1881 retrans_pkt: Maximum retries exceeded on transmission 65096e8d6a452bf67791e8d367dd046e@64.118.82.164 for seqno 102 (Critical Response)

[Jan 22 07:26:14] WARNING[4190]: chan_sip.c:1898 retrans_pkt: Hanging up call 65096e8d6a452bf67791e8d367dd046e@64.118.82.164 - no reply to our critical packet.

What’s going on? And if it’s “not replying to our critical packet” then why does my phone ring, and why is Asterisk seeing the call come in?

Thanks in advance.

need much more detail.

first, how is your house connected to the PSTN? SIP provider (which one?) Zap channel?

post the relevant configs for whatever channel the PSTN is connected on, SIP or ZAP

post the full CLI output when this happens. You might also try SIP SHOW REGISTRY or something. If that doesnt reveal much try SIP DEBUG (if it’s a SIP provider) and post that…

Are your ports forwarded? do you have SIP.conf set up right for your router?

I use the VoIP provider ViaTalk. They send the call via my cable internet to my Asterisk box. I don’t use ZAP at all…

I did post everything from the CLI regarding that error. That’s with verbose set to 3. Yes, I have all the correct ports forwarded.

I will try to capture this with a sip debug turned on, however, I can’t get it to do it all the time… it’s really annoying…

Any other ideas that this could be?

make sure you have insecure=very for the sip.conf section? Also make sure you dont have firewall issues or anything. Make sure externip= and localnet= are set in sip.conf. make sure the viatalk entry has nat=yes.

if that doesnt help post a sip debug of a failed call…

I have the following scheme design:

Local users — AsteriskNOW Beta4 — NAT item — Internet — NAT ITEM — Users

–>I have included the following parameters in each account in the users.conf:
nat = yes
qualify = 3000

–> In sip.conf I have configured
nat = yes
canreinvite = nonat ;also tried no
port = 5060
bindaddr = 0.0.0.0
externip = xxx.xxx.xxx.xxx ; Public IP
localnet = 192.168.0.0/255.255.255.0 ; several lines with the IPs of the local nets

–> And in rtp.conf:
rtpstart=10000
rtpend=20000

A user outside the local network can call other users (both in the local network and in the Internet), but they can’t hear each other, there is no sound.
If a user outside calls the voicemail he can hear the voicemail menu, but after 20seconds the call is finished by Asterisk, this is what I get from Asterisk:
– Executing [85000@default:1] VoiceMailMain(“SIP/5060-083126d8”, “”) in new stack
– Playing ‘vm-login’ (language ‘en’)
[…]
[May 7 13:01:40] WARNING[4750]: chan_sip.c:1881 retrans_pkt: Maximum retries exceeded on transmission 1447a6-c0a80101-0-5@80.24.208.94 for seqno 1 (Critical Response)
[May 7 13:01:40] WARNING[4750]: chan_sip.c:1898 retrans_pkt: Hanging up call 1447a6-c0a80101-0-5@80.24.208.94 - no reply to our critical packet.
== Spawn extension (default, 85000, 1) exited non-zero on ‘SIP/5060-083126d8’

When analysing the call with Ethereal I discovered that the SIP messages are correctly interchanged between the user and Asterisk, but the RTP traffic from the useris destinated to the private IP address of Asterisk instead of to its public IP. I think that this is caused because the Asterisk sends a SIP/SDP Status: 200 OK, with session description message to the user and the Connection informations is “IN IP4 192.168.100.150” instead of “IN IP4 puclic.ip.of.asterisk”.

What should I configure to get this scheme work properly?

first, define a reasonable range (300 ports) of RTP, and port forward it to *

what I think may be happening is perhaps the other side is using the same NAT range as the * localnet? Try changing them to 192.168.1.x or something…
also make sure that all the phones on the other end are using STUN, or some other way of knowing what their local IP is…

It seems to work with Asterisk Beta5, at least in this version I can call to the voicemail and Echo test extension and the call is not dropped, the Contact Information in the SIP description is correct: the public IP of Asterisk. I can here the voice mail and the Echo from my own micro

Nevertheless, when I tried to place a call between two extensions behind the same NAT router they couldn’t hear each other. The caller sends the RTP traffic to the public IP of the callee and the public IP of Asterisk sends RTP traffic to the caller. To get all the RTP traffic through the Asterisk instead of sending it to the public IP of the callee. To get this I set in every user account in users.conf canreinivite = no. Until not it was only set in the sip.conf.

Now it is working. in Beta5. Trying the canreinvite=no in Beta4 still doesn’t work