Can't hear caller waiting tone

Hi all.

In the company I work for, we have a machine with Asterisk 1.2.4 and two PCI cards, a Digium TE110P and a TDM400P (with two analog lines pluged-in).

Everything is working fine except that if someone calls (the call enters through TE110P), he/she can’t hear the caller waiting tone (I think that’s the correct name for this, I’m not too fluent with english). The call is answered immediatly by Asterisk.

Obviously this is a bad thing because the customer is paying for the call from the beginning. We want to give her/him a chance to hangup before the call is answered by the IVR.

So what should I change to specify Asterisk to generate waiting tone for about 15 seconds (4 tones or so). The dial plan, zapata.conf… ?

Here is the zaptel.conf:

loadzone=es defaultzone=es span=1,0,0,ccs,hdb3,yellow bchan=1-15 bchan=17-31 dchan=16 fxsks=32-35

and the zapata.conf:

[code][channels]
language=es
context=default
signalling=fxo_ks
faxdetect=no
rxwink=300
usecallerid=yes
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
musiconhold=default
callprogress=no
restrictcid=no
rxgain=0.0
txgain=0.0
immediate=no

context=centralita1
switchtype = euroisdn
signalling = pri_cpe
pridialplan = unknown
prilocaldialplan = unknown
priindication = outofband
echocancel = yes
echocancelwhenbridged=yes
echotraining = no
rxgain = -1.0
txgain = -1.5
immediate = no
callerid = asreceived
group=1
callgroup=1
pickupgroup=1
channel => 1-15,17-21
context=centralita12
signalling=fxs_ks
faxdetect=no
group=12
callgroup=12
pickupgroup=12
echocancel = yes
echocancelwhenbridged=yes
echotraining = no
hanguponpolarityswitch=yes
rxgain = -1.0
txgain = -1.5
channel => 32-33
callerid = asreceived[/code]

Thanks a lot.

this would be termed “ringtone” or “ringing tones”.

the call progress depends on what’s contained in the [centralita1] context in extensions.conf. show us that now.

Thanks for the fast answer. Here is the extensions.conf fragment for that context:

[code][general]
static = yes
writeprotect = no

[globals]
CONSOLE = Console/dsp
language = es
TRUNK = Zap/4
TRUNKMSD = 1

[centralita1]
exten => 100,1,Goto(default,100,1) ; 1
exten => 101,1,Goto(default,101,1) ; 1
exten => 102,1,Goto(default,102,1)
exten => 103,1,Goto(default,103,1)
exten => 104,1,Goto(default,104,1) ; 1
exten => 105,1,Goto(default,105,1)
exten => 106,1,Goto(default,106,1)
exten => 107,1,Goto(default,107,1)
exten => 108,1,Goto(default,108,1)
exten => 109,1,Goto(default,109,1)
exten => 110,1,Goto(default,110,1)
exten => 111,1,Goto(default,111,1)
exten => 112,1,Goto(default,112,1)
exten => 113,1,Goto(default,113,1)
exten => 114,1,Goto(default,114,1)
exten => 115,1,Goto(default,115,1)
exten => 116,1,Goto(default,116,1)
exten => 117,1,Goto(default,117,1)
exten => 118,1,Goto(default,118,1)
exten => 119,1,Goto(default,119,1)
exten => 120,1,Goto(default,120,1)
exten => 121,1,Goto(default,121,1)
exten => 121,1,Goto(default,121,1)
exten => 122,1,Goto(default,122,1)
exten => 123,1,Goto(default,123,1)
exten => 124,1,Goto(default,124,1)
exten => 128,1,Goto(default,128,1)
exten => 129,1,Goto(default,129,1)
exten => 130,1,Goto(default,130,1)
exten => 131,1,Goto(default,131,1)
exten => 132,1,Goto(default,132,1)
exten => 133,1,Goto(default,133,1)
exten => 134,1,Goto(default,134,1)
exten => 135,1,Goto(default,135,1)
exten => 141,1,Goto(default,141,1)
exten => 146,1,Goto(default,146,1)
exten => 153,1,Goto(default,153,1)
exten => 160,1,Goto(default,160,1)
exten => 161,1,Goto(default,161,1)
exten => 180,1,Goto(default,180,1)
exten => 181,1,Goto(default,181,1)
exten => 190,1,Goto(default,190,1)
exten => 196,1,Goto(default,196,1)
exten => 198,1,Goto(default,198,1) ; 1
exten => 199,1,Goto(default,199,1)
exten => 200,1,Goto(default,200,1) ; 1
exten => 968320230,1,Goto(grupo600,s,1) ; 1
exten => 968507716,1,Goto(default,147,1) ; 1
exten => 968526035,1,Goto(default,144,1) ; 1
exten => 968526085,1,Goto(default,145,1) ; 1
exten => h,1,Hangup
exten => i,1,Answer
exten => i,2,Playback(pbx-invalid)
exten => i,3,Goto(s,3)
exten => s,1,NoOp
exten => s,2,Answer
exten => s,3,GotoIfTime(00:00-09:00|mon-fri||?menu-nocturno,s,5)
exten => s,4,GotoIfTime(14:00-16:00|mon-fri||?menu-nocturno,s,5)
exten => s,5,GotoIfTime(19:30-23:59|mon-fri||?menu-nocturno,s,5)
exten => s,6,GotoIfTime(00:00-23:59|sat-sun||?menu-nocturno,s,5)
exten => s,7,DigitTimeout(1)
exten => s,8,BackGround(bienvenidapaqui)
exten => s,9,Goto(grupo400,s,1)
exten => 968320046,1,GotoIfTime(00:00-09:00|mon-fri||?menu-nocturno,s,5)
exten => 968320046,2,GotoIfTime(14:00-16:00|mon-fri||?menu-nocturno,s,5)
exten => 968320046,3,GotoIfTime(19:30-23:59|mon-fri||?menu-nocturno,s,5)
exten => 968320046,4,GotoIfTime(00:00-23:59|sat-sun||?menu-nocturno,s,5)
exten => 968320046,5,Goto(s,3) ; 1
exten => t,1,Goto(grupo400,s,1)
exten => _X.,1,Goto(i,1)
exten => 968320063,1,Goto(ivr7001,s,1)
exten => 968508678,1,Goto(ivr5001,s,1)

[grupo400]
exten => s,1,Answer
exten => s,2,SetMusicOnHold(default)
exten => s,3,Queue(c-grupo400|tT|||300)
exten => h,1,DeadAGI(log_llamadas.agi,${EXTEN},${DIALSTATUS})
exten => h,2,HangUp

[menu-nocturno]
exten => s,3,PlayBack(CONTESTADORGOVI2)
exten => s,4,HangUp
exten => s,5,PlayBack(contestador)
exten => s,6,HangUp[/code]

Note that 968320046 is the number customers have to dial.

As you can see the code is a bit messy. It’s auto-generated by a manager.

If something more is needed, just ask!.

Thank you.

your [grupo400] context has an Answer() entry in it. does it work as wanted when you etiher remove this (and renumber) or substitute it for a NoOp() ?

Thank you, I’ll try that as soon as possible.

Hi.

I’ve done the following test:

[code][centralita1] ; TE110P points to this context
exten => 968523119,1,Set(GROUP()=968523119)
exten => 968523119,2,GotoIf($[ ${GROUP_COUNT()} > 1 ] ? 103)
exten => 968523119,3,Goto(ivr3001,s,1)
exten => 968523119,4,Hangup()
exten => 968523119,103,Congestion()
exten => 968523119,104,Hangup()

[ivr3001]
exten => _X.,1,Goto(default,i,1)
exten => s,1,DigitTimeout(1)
exten => s,2,BackGround(welcome)
exten => s,3,ResponseTimeout(1)
exten => t,1,Goto(grupo300,s,1)
exten => i,1,Answer()
exten => i,2,Playback(pbx-invalid)
exten => i,3,Goto(s,1)
exten => h,1,HangUp()

[grupo300]
exten => s,1,NoOp()
exten => s,2,SetMusicOnHold(default)
exten => s,3,Queue(c-grupo300|tT|||10)
exten => t,1,Playback(tt-allbusy)
exten => t,2,HangUp()
exten => h,1,DeadAGI(log_llamadas.agi,${EXTEN},${DIALSTATUS})
exten => h,2,HangUp[/code]

So Asterisk is answering the call immediatly. There’s no ring tone (it starts to play the welcome message).

Of course, If I do this:

[centralita1] ; TE110P points to this context exten => 968523119,1,Ringing() exten => 968523119,2,Wait(5) exten => 968523119,3,Set(GROUP()=968523119) exten => 968523119,4,GotoIf($[ ${GROUP_COUNT()} > 1 ] ? 105) exten => 968523119,5,Goto(ivr3001,s,1) exten => 968523119,6,Hangup() exten => 968523119,105,Congestion() exten => 968523119,106,Hangup()

I hear the ring tone but I know almost nothing about telephony so here is the question. If I do that, when Asterisk execute the Ringing command, is the caller paying for the call?. Or more generally…when is the caller starting to pay for the call?

Thanks for your time.

as soon as Asterisk is asked to send any data or audio, it has to answer first, and therefore your caller incurs a cost. this changes with the technology used, some have signalling methods that allow call rejection without caller cost.

i’ve not tried to implement a queue without answering before, so can’t say whether just dumping an incoming channel into a queue will result in what you want … the caller to just keep ringing until they give up or an agent answers.

by no means a complete test, but on my home 1.2.17 box i just created a queue, and it would appear that when using the ‘r’ option for Queue() ringing instead of MoH, Asterisk doesn’t answer the call … which should mean no cost.

this needs testing and confirming of course :smiley:

Thank you very much for your help. Everything seems to be working as expected now.