Hello. I have a very strange issue with Asterisk:
If I put someone on hold, the hold music can ONLY be heard by the person on hold if he makes noise into the microphone.
I have tested this with both a soft- and hard-phone, connecting via IAX2 and SIP. From the hardphone I’m using GSM encoding.
When I put the party on hold, if the party is completely silent, NO hold music can be heard. But if the party taps on the receiver, or whistles into it, or speaks, or makes any type of noise, the hold music can then be heard from the speaker. Then if the party is silent again, the music immediately stops playing from the speaker.
This happens whether we’re using a handset, speakerphone, or microphone/speakers.
Is this an echo cancellation issue? As I stated, the same thing happens whether I use a soft or hardphone. Do I need to change some setting to do with echo cancellation or is this a GSM issue? I’m quite confused here.
Thank you for your help, in advance!
My Asterisk configuration:
Fedora Core 4
Asterisk 1.4.0
Soft phone: IDEFISK (IAX2)
Hard phone: Grandstream GXP-2000 (SIP)
sounds like whatever is calling in is using silence suppression. make sure that’s turned off on your pstn interface.
you may also have a timing issue, check to make sure asterisk has a non-broken timing source…
[quote=“IronHelix”]sounds like whatever is calling in is using silence suppression. make sure that’s turned off on your pstn interface.
you may also have a timing issue, check to make sure asterisk has a non-broken timing source…[/quote]
Hi, and thanks for replying. Just to clarify this:
I have no PSTN connections. This is a voIP-only system. I’m still waiting for my voip provider to turn on the outside connection, and I’m doing testing in the interim between local extensions.
The problem occurs between two local extensions - a PC and a hardphone. And it occurs no matter which end I put on hold.
When talking between the two, it seems to work fine (the small bit I’ve been able to test) although IDEFISK seems to mess up the sound really bad.
How do I change echo cancellation options for SIP or IAX devices?
How do I determine whether Asterisk’s timing source is broken?
Thank you!
ah in that case the problem is almost certainly with your gxp2000 phone. go in its configuration and set silence suppression to NO.
Try a MeetMe conference room, meetme will not work at all without timing. Also making an exten that goes only to MusicOnHold can test for broken timing… if things seem odd run zttest out of the zaptel source folder
[quote=“IronHelix”]ah in that case the problem is almost certainly with your gxp2000 phone. go in its configuration and set silence suppression to NO.
Try a MeetMe conference room, meetme will not work at all without timing. Also making an exten that goes only to MusicOnHold can test for broken timing… if things seem odd run zttest out of the zaptel source folder[/quote]
OK, here’s what I did:
I created an extension as follows:
exten => 9,1,PlayBack(hello-world)
exten => 9,2,WaitMusicOnHold(10)
exten => 9,3,PlayBack(vm-goodbye)
exten => 9,4,Hangup()
When I dial ‘9’ from either IDEFISK or the Grandstream phone, I get the same results:
- I hear “Hello World” clearly. (whether or not I am making noise into the mic)
- If I make noise into the microphone, I can hear the hold music playing clearly. If I am completely silent, no hold music plays.
- After 10 seconds, I hear the word “Goodbye” clearly. (whether or not I am making noise into the mic)
- The connection is disconnected by the Hangup routine.
I checked the Grandstream settings and silence suppression is already off.
The Grandstream has the most recent firmware.
It seems to be an issue with Asterisk itself trying to do noise suppression. is there a way to turn this off or adjust the sensitivity?
Thanks again!
do you have zaptel installed and configured? Is the ztdummy module loaded?
No, I don’t think this module is loaded. (I’m not very familiar with Asterisk, sorry!) I’ve looked in /usr/lib/asterisk/modules and there is no module called “zaptel” or “ztdummy”. There are no kernel modules for zaptel loaded. There is nothing in /etc/asterisk/asterisk.conf which would load zaptel modules.
Here’s some more information:
I finally got my voip provider to turn on my account, so I don’t have to do internal tests any more. And from my Grandstream phone, calling in from my voip provider (ViaTalk) from a PSTN line, the quality is very good. But I noticed that when calling out, the quality was terrible. Then I noticed on the Grandstream’s screen, the outgoing calls were using GSM codecs, but incoming calls were using PCMU. So I changed the Grandstream settings to use PCMU as the audio codec when calling out. The quality is great now. And if I call my IDEFISK softphone, and push ‘hold’ on the softphone, hold music plays perfectly on the Grandstream. But if I press the Hold button on the Grandsteam, the same problem happens on the computer. You have to tap on the mic or something to hear hold music.
AND: no external callers can hear hold music at all, whether or not they make noise into the mic. So if I call a standard PSTN number using my Grandstream, and hit Hold, it’s dead air.
Again, I do appreciate any advice on this, and any configuration recommendations for this Asterisk configuration. My goal is to have a voip-only phone system, eliminating my PSTN line and using my cable internet for phones. I plan to set up several grandstreams in the office, one for each user (probably 4-5 max) with two lines coming from ViaTalk. At some point, I may add hardware to provide fax lines to my PSTN fax machine. But that’s not a necessity.
I do want my users to be able to call each other, and to make outside calls, transfer calls between each other, and stuff like that. At some point, I may implement an automated attendant and voicemail as well.
Thanks again!
ahh, first you might want to force the ulaw (pcmu) codec. to do this you can do it in sip.conf, either globally in the general section (gets overridden if defined for a peer) or for each peer.
just put:
disallow=all
allow=ulaw
that will first disable everything, then only enable ulaw. This will result in the highest audio quality and thus bandwidth usage.
As for zaptel, zaptel is another package that is maintained by Digium. Asterisk is the soft-pbx, but Zaptel is the driver package that allows * to talk to interface cards. Zaptel also provides a timing source which Asterisk requires for several things.
The way to do this would be to download and compile zaptel, then recompile Asterisk. Remember that you then need the zaptel module loaded. You can usually do make config which will set up a init script for zaptel that loads it on boot. same with asterisk.
Hi again! I spoke with my voip provider (ViaTalk) who told me that they only support the ULAW protocol. I entered the settings you described below, and it seems to work great!
I didn’t install the Zaptel driver yet. Do you think this is needed if I won’t have any PSTN phones? If so, I’ll go ahead and install it. What kinds of problems will I run into if I don’t install it?
I also had some trouble getting hold music to play when I call out to someone through my voip provider, but I put this in my musiconhold.conf file:
format=ulaw
and now it plays fine both to internal and external calls.
Is this the best way to solve the problem, or do I need to re-encode all my music on hold files for ulaw instead of gsm?
Thanks again for all your help!
[quote=“IronHelix”]ahh, first you might want to force the ulaw (pcmu) codec. to do this you can do it in sip.conf, either globally in the general section (gets overridden if defined for a peer) or for each peer.
just put:
disallow=all
allow=ulaw
that will first disable everything, then only enable ulaw. This will result in the highest audio quality and thus bandwidth usage.
As for zaptel, zaptel is another package that is maintained by Digium. Asterisk is the soft-pbx, but Zaptel is the driver package that allows * to talk to interface cards. Zaptel also provides a timing source which Asterisk requires for several things.
The way to do this would be to download and compile zaptel, then recompile Asterisk. Remember that you then need the zaptel module loaded. You can usually do make config which will set up a init script for zaptel that loads it on boot. same with asterisk.[/quote][/code]
I had a similar problem but only with call transfer
Scenario: cisco 7941, gxp2000 and patton M-ATA
call cisco with gxp, press transfer key (in asterisk 1.4 the # key don’t work DAMN!!! there is a patch in res_features.c but i don’t able to patch it, any idea???) the sounds play if i beat the phone!!! Do you have tried this ?
with cisco it’s all ok (the best phone i ever tried )
but If i call directly musiconhold it play correctly, for examples:
exten => 300,1,Answer()
exten => 300,n,MusicOnHold()
I think there is a command to put in the dialplan or in sip config to make working this, in the web configuration i have tried any flag or command but it’s lost time.
The firmware is the last :Software Version: Program-- 1.1.1.14 Bootloader-- 1.1.1.5
It’s ok now!!!
Download asterisk 1.4 via CVS, resolve most error in first release :mrgreen: :mrgreen:
Good luck