I have an asterisk install at an office with about 90 polycom phones. A recent issue has just popped up where the people in the office are experiencing breaks or “dead spots” during calls where either the caller or the callee cannot hear what is being said on the other side of the line. Has anyone experienced this before?
Yes, I have. It was because I was using silence suppression with the phones that I had.
Asterisk doesn’t work well with silence suppression. If your phone has it enabled, I’d turn it off.
Otherwise, I’d check the overall traffic of the network. Remember that the RTP traffic is UDP, and can be blocked by collisions with other IP traffic. If you’re office is frequently moving large files, (someone in the office watching a lot of Youtube?) you can easily interrupt the audio stream for a phone.
Also, check your network settings on your switch and the network card. Make sure you have full duplex selected, and the highest throughput that your card and switch can support.
I checked my sip.conf file that all the phones share and VAD (which somehow links into silence suppression somehow ) is disabled. ( = 0 ) no one is allowed to use you tube during office hours except during lunch, when most people use facebook. The switches are gigabit ethernet switches with about 90 computers ( 1 phone and computer per staff member ) there are quite a few network applications but i am told by the it manager that the network load is really low. I know all the phones are using alaw to communicate with the server. how much of the bandwidth would be occupied when there is a PRI line attached at 30 concurrent calls are taking place?
Silence suppresion is a setting in the phone itself. It’s not controlled by the Asterisk box. Be sure to check the setup of your phone.
A gigabit switch can usually negotiate a connection in the 100 or even 10 megabit range. Switches generally match what the server/PC asks for. Be sure the settings on the server are the highest they can be.
You’ll have to be a bit more specific about your bandwidth question…
Bandwidth on the server network port? The PRI? The network backbone?
Are you using re-invites? Are the calls from desk to desk? Desk to outside?
All of these have to be considered…
The sip.conf file is downloaded by each phone when the phone reboots so i am pretty sure all the phones are set to have silence suppression off, besides this PBX has been running for almost a year now and i am sure that the issue would have popped up already.
About the bandwidth. For almost most of the day about 70% of the PRI is being used. Some times all 30 channels are being used. I was just wondering how this would all impact the call quality when it is all running into one box and then into the PSTN, since i know A-law and Mu-law are quite resource intensive codecs when compared to the others.
can re-invite is set to no and the calls where i am having the problems with is from outside to inside and inside to outside. I havent heard any problems with internal calls.
Could my PRI be causing all this trouble?
It could be any number of things…
Slow server processor, network traffic on the server network card, memory leaks in the server…
You might simply try to restart the server to see if the problem corrects itself. If it does, you probably have a memory leak or a stuck process slowing things down on the server.
The sip.conf file isn’t the file that would be downloaded. It’s used by Asterisk to speak to the phone. It would be another file created for the polycom phones. Each phone should have it’s own configuration file with it’s own extension, features, etc.
The easiset way to check the phones settings is with a browser. Find a phone, and get it’s IP address. Connect to the phone’s IP address with a browser, and check it’s configuration there.
I am not talking about the sip.conf file that is in the asterisk directory. This file is provided with every firmware download from the polycom site. It has things in it like being able to view buddies and various other sip activities that the phones are cable of carrying out.
The processor on the system is a dual xeon with 3 gigs of memory so I definately do not think the problem is there. When i bring up “top” from the command line it has affinity to only one processor and usually only takes up a maximum of 30% with an average sitting somewhere around 9%.
I do not know how to check the traffic on a network interface, if you could guide me on how to do this that would be greatly appreciated. The server also constantly sits with about a gig of ram available with about 500 megs of swapspace available, so i do not think that the problem is a memory leak either.
I usually don’t get directly involved with server performance diagnosis. It’s not something that’s done well from a forum.
Have your network person help you with this.
BTW… Asterisk isn’t a multi-threaded application, so dual processors aren’t much of a help.
i figured that it wasnt, its just that processor power isnt an issue since there are plenty of other (4 in total ) processors that other apps can use.
But i guess you are right anything not asterisk related i have to leave off this forum at least. anyway thanks for the help. if anyone else has experienced and gotten rid of this kind of problem please let me know we are actually starting to get some negative comments about our company in the office.
Any processes on the server that are not multi-threaded will ignore the other processors.
Non multi-threaded processes will always use the first processor in a multi core system.
i thought CPU scheduling was supposed to balance the loads across multiple processes, isnt that one of the advantages of having a multi processor environment as well as being able to run multi threaded applications faster
It’s the CPU scheduler that handles the multi-threaded processes. Each process in a server can address only one processor. The scheduler keeps track of which one a process thread is using.
Simply having a CPU scheduler does not give a non multi-threaded process the ability to address multiple processors.
In a multi-core system, non multi-thread processes always use the first core processor.