Ringing instead of MOH with position announcement in queue


I’m using Asterisk 1.4 with one single queue with MoH.
I have 5 agents that are answering the queue.

My internet connection is, ADSL ~2Mbit uppstream ~8Mbit downstream

Now they have told me that if there are 2 ongoing calls, 5 calls waiting in queue and the 2 agents are using a member application on the internet the sound quallity gets werry bad, shoppy!

Therefor they lower the maximum waiting in queue to 1 instead of 5!

Then I added the r option to the queue to have it ringing instead of MoH, something that worked OK.

exten => 0,n,Queue(${QUEUE_NAME}|HhTtKkWwr)

But now it doesent announces the queue position.
It doesent play the “There are X calls waiting.”, “You are now first in line.”

Have I missed something or is this how it works?
The call is answered verry early in the dialplan!

Virtually yours // Nypon

It works efficiently because you are not generating the ringback tone. A successful announcement would change this.

In this context, Asterisk generates AST_CONTROL_RINGING, for the ringback and AST_CONTROL_PROGRESS, when it hits the annoucement. I don’t know if it will got back to AST_CONTROL_RINGING, but even systems that handle PROGRESS well will often not allow that transition.

These will be reflected as 180 Ringing and 183 Progress in SIP. Some PSTN gateways will ignore the 183 Progress, after the 180 Ringing. The dahdi driver may be doing similar.

In that case, you have to answer first, but then Asterisk will be faking the ringback.

Hi david55 and thanks for your reply!

I’m not sure that I understand all of what you are saying!

But in my case I’m only using SIP, not DAHDI.
And the call is answered before it gets sent to the queue context.

Without the “r” queue option the caller hear the MoH when they waits in the queue, and after 45sec they will hear what position they have in the queue.

With the “r” queue option the caller hear the ringing signal when they waits in the queue, but after 45sec they will NOT hear what position they have in the queue, it will just keep on ringing.

What I want is to give the caller the ringing signal and after 45sec let them hear what position they have in the queue!

I think that sending the MoH to all waiting caller is eating to much bandwidth (I don’t have to much bandwidth) and will make the call for everybody choppy!

Because of this I wanted to just send the ringing signal to the caller.

Sorry. I wasn’t reading carefully and took in the 2Mb, but not the ADSL.

When you use ringing, Asterisk responds with:

180 Ringing

This causes the upstream system to synthesize the ringback tone, so uses negligible bandwidth.

It probably precedes the annoucement with

183 Progress

to say that it wants the other end to hear what it is sending, but without answering and starting charging. The not starting charging may well cause the upstream to treat this as answer, so that it can charge.

When you go direct to MOH, I suspect it sends

183 Progress

without a prior 180 Ringing

The upstream is probably treating this as answer, but 180 followed by 183 as just 180.

Basically, if this can be fixed at all, it has to be done in the PSTN gateway.

You would have to run sip show history, to see if Asterisk tries to revert to 180 Ringing. I don’t think a PSTN gateway is allowed to revert, though.

Just for clarity, you can make this functionally work by calling Answer(), or maybe even Progress() before Queue(…,r), but you will then get your bandwidth problem back!

Ok, I understand!

Thanks for your reply!