[Home]

Summary:ASTERISK-03195: Call in Queue is hung up after 60 sec
Reporter:hal (hal)Labels:
Date Opened:2005-01-05 18:04:26.000-0600Date Closed:2011-06-07 14:10:03
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Applications/app_queue
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) Debug_Queue_60sec.txt
Description:Incoming calls in a queue are hungup after 60 sec, regardeless what timeout in the Queue App is set.


****** ADDITIONAL INFORMATION ******

extensions.conf:
exten => 129,3,Queue(gws-wartefeld|n|||300)

queues.conf:
[default]

[gws-wartefeld]
music = default
strategy = ringall
context = queue-out
wrapuptime=10
announce-frequency = 15
announce-holdtime = yes
joinempty = yes
member => Agent/6301
member => Agent/6302
member => Agent/6303


Comments:By: nick (nick) 2005-01-05 19:06:47.000-0600

Please post (at least) some high-verbosity CLI output from when the call gets hung up.

More details make bugs easier to track down.

Thanks.

By: Mark Spencer (markster) 2005-01-05 20:31:51.000-0600

Try answering the line first.  You may have a provider who does not allow you to remain ringing for > 30 seconds.

By: hal (hal) 2005-01-06 04:34:35.000-0600

Mark, I've changed extensions.conf to answer the call first, then dial into the
queue. The Problem still remains...
Here is my changed portion of extension.conf:

exten => 870663,1,Answer()
exten => 870663,2,GotoIfTime(9:00-19:00|mon-fri|*|*?queue,129,1)
exten => 870663,3,Dial(SIP/6301&SIP/6302&SIP/6303,5,tr)
exten => 870663,4,Dial(Local/6320,30,tr)
exten => 870663,5,SetLanguage(de)
exten => 870663,6,Voicemail(6320)
exten => 870663,7,Hangup

Attached I give you a detailed debug of the call from cli.
>>Debug_Queue_60sec.txt>>

Thanks a lot for your fast response

By: Kevin P. Fleming (kpfleming) 2005-01-06 09:17:59.000-0600

Why is there Voicemail() being invoked in that session? Is it possible that one of your agent calls forwarded to voicemail?

By: bmerrills (bmerrills) 2005-01-06 10:20:34.000-0600

I found this issue quite some time ago when I was using an AGI to route a call through to a queue. I found a quick and dirty solution was to play an audio file over the channel before joining the queue. Seemed to fix it

By: hal (hal) 2005-01-06 10:49:47.000-0600

Kpflemming, voicemail is invoked *after* the queue timeouts, or did I miss something.
Here the extensions.conf:

exten => 129,1,SetLanguage(de)
exten => 129,2,Playback(gws_welcome_queue)
exten => 129,3,Queue(gws-wartefeld|n|||900)
exten => 129,4,Playback(gws_alle_sprechen)
exten => 129,5,Voicemail(s6320) ; voicemail starts here
exten => 129,6,Hangup

Bmerrills, where an how did you "play an audio file over the channel", before an agent gets the call, or before the call comes first in the queue?

Thanks to all

By: bmerrills (bmerrills) 2005-01-06 10:56:48.000-0600

I have the following:

exten => _0.,1,SetCDRUserField(${EXTEN})
exten => _0.,2,SetCIDNum(0${CALLERIDNUM})
exten => _0.,3,AGI(agi_CallDirector.exe|${EXTEN})

The AGI then simply passed the call into a queue. However, I noticed that if the call was over 60s long, then it ended, without any reason.

I noticed that another instance where i did a similar thing (passing into a queue) didn't have the same cut off. The reason seemed to be because i issued a Playback(pleasehold) before putting the call through to a queue. I added the playback line, and i've never had the problem again.

By: Kevin P. Fleming (kpfleming) 2005-01-06 11:00:12.000-0600

You are right, I missed the Voicemail line in your dialplan, my mistake.

Is the caller hearing music on hold while the call is ringing the agents?

By: Mark Spencer (markster) 2005-01-06 11:05:03.000-0600

How are these calls coming in?

By: hal (hal) 2005-01-06 11:15:31.000-0600

Bmerrils, could you send your agi-script as file-upload?
Why is it a .exe file?

Kpflemming, the caller hears moh as expected.

Mark, the call comes in by this context:

; Anschluß Zentrale

exten => 870663,1,Answer()
exten => 870663,2,GotoIfTime(9:00-19:00|mon-fri|*|*?queue,129,1)
exten => 870663,3,Dial(SIP/6301&SIP/6302&SIP/6303,5,tr)
exten => 870663,4,Dial(Local/6320,30,tr)
exten => 870663,5,SetLanguage(de)
exten => 870663,6,Voicemail(6320)
exten => 870663,7,Hangup

Thanks

By: Kevin P. Fleming (kpfleming) 2005-01-06 11:19:33.000-0600

I think Mark wanted to know what the "source" channel was... Zap, SIP, IAX2, etc.

I don't see the Queue call in that dialplan snippet you posted, is it the Local/6320 Dial() that's putting them into the queue?

If your original post, you had the Queue() call as extension 129 priority 3, so I guess that must be part of this same context? If so, it would be helpful to see the whole thing, not broken-out pieces, if you can post that.

By: bmerrills (bmerrills) 2005-01-06 11:25:02.000-0600

1) It's an exe because we produce a number of our AGIs in C# (using mono).
2) I'm sorry, but i can't provide the code, however it does simply invoke the EXEC methods to place the caller into a queue and/or use the Playback method.
3) The call comes in directly the the dialplan i posted last time, from a Zap interface (provided by a digium quad E1 with EuroISDN and pri_net sig type).

Hope this helps alittle...

By: hal (hal) 2005-01-06 15:56:09.000-0600

Kpflemming, you 're right, with the complete extensions.conf it should be easier to find the bug. In my first post I didn't wanted to lavish you with all that stuff. Now, here is "the whole thing".
I'm not shure if the includes in the default section are really necessary, but it works so far.

The call reaches the dialplan in context isdngw2-in. It has been sent by a patton isdn-gateway smartnode 1200 as sip.
I also tried to change an test extension to:
exten => 872000,2,Dial(Local/6301,120,tr)

But this call is also running in an timeout after 60 seconds, the parameter 120, which should let the extension ring for 120 seconds, seems not to work.
The call is not terminated by the isdn-gateway, scince after the 60 seconds, the next priority of this extension is used.
It seems, there is an hardcoded default value for hangup after 60 seconds somewhere...

Hope, these informations help


;;;;;start of extensions.conf

[general]
static=yes
writeprotect=yes

[default]

include => mailbox
include => ansage
include => teilnehmer
include => test
include => queue-out
include => queue
include => isdngw2-in
;include => isdngw2-out
include => parkedcalls
exten => asterisk,1,VoiceMailMain(${CALLERIDNUM})

[queue]

exten => 128,1,AgentCallbackLogin(${CALLERIDNUM})
exten => 128,2,Hangup

exten => 129,1,SetLanguage(de)
exten => 129,2,Playback(gws_welcome_queue) ; Das Playback an dieser Stelle ist wichtig, sonst l䵦t die Queue nicht!!!!!!
;exten => 129,2,Playback(Hier vielleicht eine Hauptansage f? Queue!!!!!!)
exten => 129,3,Queue(gws-wartefeld|n|||900) ; Hier geht's in die Queue, wenn nach 60 Sekunden nicht beantwortet,
exten => 129,4,Playback(gws_alle_sprechen)
exten => 129,5,Voicemail(s6320); dann geht's hier weiter zum AB, Weiterleitung etc.
;exten => 129,2,system(echo "http://192.168.161.106/index.htm?number=${CALLERIDNUM}"|mail -s "Neuer Anruf von ${CALLERIDNUM} um ${DATETIME}" guido@halpdc.gwsnettech.local)
exten => 129,6,Hangup

[queue-out]

exten => 1,1,DIAL(SIP/6301,30)
exten => 2,1,DIAL(SIP/6302,30)

[test] ; Hier können neue Funktionen getestet werden

include => default
;exten => 1237,1,Answer
exten => 1237,1,SetMusicOnHold(default)
;exten => 1237,2,Answer
;exten => 1237,3,MusicOnHold()
exten => 1237,4,Dial(SIP/1237)

;exten => 1237,1,Answer
;exten => 1237,2,SetMusicOnHold(default)
;exten => 1237,3,Playback(vm-theperson)
;exten => 1237,4,MP3Player(/mp3/westernhagen_johnny_walker.mp3)
;exten => 1237,5,Wait(5)
;exten => 1237,6,MusicOnHold()

;exten => 1237,1,voicemail2,u1237
;exten => 1237,2,voicemail2,b1237

[teilnehmer]

include => test
include => queue-out
include => sipgate
include => isdngw2-in
;include => queue

exten => 6601,1,WaitMusicOnHold(30)

;exten => 6301,hint,Sip/6301
;exten => 6301,1,Macro(stdexten,SIP/6301)
exten => 6301,1,Dial(SIP/${EXTEN},20,tT)
exten => 6301,2,SetLanguage(de)
exten => 6301,3,Voicemail(6301)
exten => 6301,4,Hangup
exten => 6301,102,Busy

;exten => 6302,hint,Sip/6302
;exten => 6302,1,Macro(stdexten,SIP/6302)
exten => 6302,1,Dial(SIP/${EXTEN},20,tT)
exten => 6302,2,SetLanguage(de)
exten => 6302,3,Voicemail(6302)
exten => 6302,4,Hangup
exten => 6302,102,Busy

;exten => 6303,hint,Sip/6303
;exten => 6303,1,Macro(stdexten,SIP/5603)
exten => 6303,1,Dial(SIP/${EXTEN},20,tT)
exten => 6303,2,SetLanguage(de)
exten => 6303,3,Voicemail(6303)
exten => 6303,4,Hangup
exten => 6303,102,Busy

;exten => 6304,hint,Sip/6304
;exten => 6304,1,Macro(stdexten,SIP/6304)
exten => 6304,1,Dial(SIP/${EXTEN},20,tT)
exten => 6304,2,SetLanguage(de)
exten => 6304,3,Voicemail2(6304)
exten => 6304,4,Hangup
exten => 6304,102,Busy

;Allgemeiner Anrufbeantworter mit Wavedatei gwsNetTech

exten => 6320,1,SetLanguage(de)
exten => 6320,2,Wait(2)
exten => 6320,3,Voicemail(su6320)
exten => 6320,4,Playback(vm-goodbye)
exten => 6320,5,Hangup
include => queue
include => isdngw2-out
[parkedcalls]

;exten => 70,1,Answer
;exten => 70,2,SetMusicOnHold(random)
;exten => 70,3,ParkAndAnnounce(PARKED,60,SIP/01,70,4)
;exten => 70,4,Macro(rg-inbound,20,tr)
;exten => 70,5,Goto(aa-nooneavail,s,1)
exten =>  80[1-5],1,ParkedCall(${EXTEN})

[ansage]
exten => s,1,Answer
exten => s,2,SetMusicOnHold(default)


[mailbox]
; Hier wird die allgemeine Mailboxkonfiguration aufgerufen

; Die 198 dient zur Konfiguration einer beliebigen Mailbox
; Die Mailbox, die man konfigurieren will, wird abgefragt.

exten => 198,1,VoicemailMain()
exten => 198,2,Hangup

; Hier wird die eigene(oder die des Aparates, von dem man aus anruft)
; bearbeitet.

exten => 199,1,VoicemailMain(s${CALLERIDNUM})
exten => 199,2,Hangup

[sipgate]

include => default
exten => _9.,1,Dial(SIP/${EXTEN:1}@sipgate,60,tr)
;include => isdngw2-out
exten => _9.,2,Congestion
exten => _9.,102,Busy

[incomingsipgate]

exten => h,1,Hangup
exten => 5339504,1,Dial(SIP/6301,10,tr)
exten => 5339504,2,Dial(SIP/6301,10,tr)
;exten => 5339504,3,DIAL(SIP/01791267353@sipgate,60,tr)
exten => 5339504,3,SetLanguage(de)
exten => 5339504,4,Voicemail2(6301)
exten => 5339504,5,Hangup

[isdngw2-in]

; Anschluß Zentrale

exten => 870663,1,Answer()
exten => 870663,2,GotoIfTime(9:00-19:00|mon-fri|*|*?queue,129,1)
exten => 870663,3,Dial(SIP/6301&SIP/6302&SIP/6303,5,tr)
exten => 870663,4,Dial(Local/6320,30,tr)
exten => 870663,5,SetLanguage(de)
exten => 870663,6,Voicemail(6320)
exten => 870663,7,Hangup

;Anschluß Guido Hecken

exten => 874053,1,Dial(SIP/6301,60,tr)
exten => 874053,2,SetLanguage(de)
exten => 874053,3,Voicemail(6301)
exten => 874053,4,Hangup

; Anschluß Nebennummer

exten = 872000,1,GotoIfTime(9:00-19:00|mon-fri|*|*?queue,129,1)
;exten => 872000,1,Dial(SIP/129,60,tr)
exten => 872000,2,Dial(Local/6320,30,tr)
exten => 872000,3,SetLanguage(de)
exten => 872000,4,Voicemail(6320)
exten => 872000,5,Hangup

include => queue

[isdngw2-out]

; Alles, was es bis hierhin geschafft hat, also nicht lokal ist,
; wird auf das ISDN-Gateway geroutet.

exten => _X.,1,Dial(SIP/${EXTEN}@192.168.161.135,60,trT)
exten => _X.,2,Congestion
exten => _X.,102,Busy

;;;;;end of extensions.conf

By: Kevin P. Fleming (kpfleming) 2005-01-06 18:40:34.000-0600

OK, first, I think you need to post your extensions.conf file on asterisk-users and get some help in cleaning it up... It seems that you are a bit confused with the way contexts and extensions work, although that's not the cause of this problem.

For example, in the isdngw2-in context, you have a GotoIfTime that jumps directly to extension 129 priority 1 in the queue context, but you are also "include"ing the queue context into the isdngw-in context. This is not needed at unless the ISDN gateway is actually going to send you calls targeted to extension 129 (defined in the queue context), which I'm sure it won't be doing :-)

Now, I haven't seen your agents.conf file, but if you are defining Agent 6301 as "Local/6301", then I can see the source of your problem... In context "teilnehmer", under extension 6301, you have a Macro(stdexten,SIP/6301) call. You don't show the stdexten macro in your extensions.conf file, but if you are using the default one, it has its own timeout specified (and you might have changed it to 60 seconds). After the stdexten macro finishes, then you Dial() directly to the SIP peer, which is redundant, since the stdexten macro just did that.

If I were you, I would start over with the simplest possible configuration, and only add stuff into it when you know for _sure_ that it does exactly the right thing. For example, I doubt you need to be using Local channels as much as you are at all, especially in combination with Agents.

Given this configuration, and the fact that other users are not experiencing the problem you are, I'd have to guess that this problem is being caused by your configuration somewhere. Unfortunately we don't have time to dissect your entire configuration to find it :-(

By: Kevin P. Fleming (kpfleming) 2005-01-06 18:56:14.000-0600

Based on evidence to date, this appears to be a user configuration issue. You may reopen if you can identify a specific problem with the Queue application.

By: Kevin P. Fleming (kpfleming) 2005-01-06 18:58:15.000-0600

reopening to fix status