[Help]Asterisk setup questions

Hey everyone,

I am trying to set up a VoIP server for our office. I have run into two problems, which I will post both for you. I am new to Asterisks but if you post some basic commands if you need something I will be able to get any information I didn’t provide.

The server has a public IP address but the office is behind a firewall running NAT. When I first set everything up, I was able to have a softphone (xten lite) and also a hardphone Grandstream Budge Tone 100 connect to the server. I was able to call each phone without any problems. I then connectd another Grandstream phone and used the same process as before. Once I had both hardphones connected, I wasn’t always able to call the other phones. When one hardphone would contact the other hardphone I was able to talk back and forth, no problems. Yet the other softphones couldn’t connect either. So, I removed the second hardphone to double check and make sure that wasn’t causing the problem. After I reloaded the new settings, none of the softphones or hardphones where able to reigster with the server. Here is an example of a message.

Jan 12 18:10:06 NOTICE[14728]: chan_sip.c:11328 sip_poke_noanswer: Peer ‘budgeTone’ is now UNREACHABLE! Last qualify: 0

I tried a few things, enabling NAT globally, instead of just in the part just for the phone. However, that didn’t help. I also tried changing the refresh value but that didn’t work either. I didn’t have access to the firewall, but it seems odd that it just started to deny it. I went and cleared my build files and rebuilt the asterisk configurations againbut I am getting the same problem.

My question is does anyone know what could be wrong or can point me in the direction of what could be causing it.

As for the audio problem. Well I will deal with that once I get this figured out.

I have figured out the first error. It was a NAT issue. I made one of the hardphones public and that one works fine. I made another one behind NAT and it works, but after a while I get the same problem. But if I call the public phone it all sinks right up. So our network admin and myself will look into the NAT issue.

Now for the second part. I know it is sound device related. The server is a 2U server running fedora core 4. When I call fro mthe CLI to the extension I made for the phone I get the following errors repeatedly.

Jan 13 19:39:47 WARNING[8077]: chan_oss.c:585 setformat: Unable to re-open DSP device /dev/dsp: No such file or directory

Is that because I am calling from the CLI?
When I call the demo I see the following:

-- Executing Playback("SIP/budgeTone-90c3", "demo-thanks") in new stack
-- Playing 'demo-thanks' (language 'en')

== Spawn extension (local, #, 1) exited non-zero on ‘SIP/budgeTone-90c3’

So I know it is finding the file and playing it, I think, but I do not hear anything. Could it be the codec that it is using or the rate at which things are being played?

Thanks for any suggestions.

I’m getting the same chan_oss error about DSPs when using Dial from the CLI, because I don’t have a soundcard. It is still a useful command to validate signaling, but any received RTP packets trigger all kinds of warnings.

This part may be something to clean up in Asterisk code: seems like a warning is spewed for each packet or something, because the warnings keep scrolling and the CLI becomes useless; I have to bust out of the asterisk -r session and make a new session to get the warnings to stop.

Here’s pseudo-code for improving what I think is wrong (disclaimer: without having looked through the source and not being a c programmer)

 if (RTP packet to be played but no DSP etc) {
      if  (lastwarning >= $warnInterval) {
           print to stderr '$warning'
     }
 }

In general, this is probably a useful concept to employ for all types of warnings to improve system stability under high load and error conditions. Don’t want to print an unnecessary warning message if a few variable setting and a comparison operation can prevent it.

reiterating my disclaimer: I’m not a real programmer.

Thanks skeagy, but that really didn’t help me much. If the error is because the server doesn’t have a sound card then that is fine, I will take your suggestion of using the remote terminal or just ignoring those for testing.

The problem is that when I call into a queue, voicemail, the demo I do not hear anything.

I looked into tcpdump and noticed that I was sending a lot of information to the server during teh call, but I never received any information from the server. I am thinking it isn’t sending the audio back over the ethernet line and to my phone. Which this is the main problem, since the office wants to replace our existing system with voice, queues, etc. Currently the firewall has no settings, so it is wide open sitting out there. Once I get things basic things configured it will be locked down, but for now, it just leaves tons of possible problems out.

Any thoughts?