No queue timeout from sip caller?

I have a queue defined with 5 sip phones. If I call the queue’s extension from a sip phone, then the timeout does not work. However, if I call that extension from outside via a phone, then it works. What am I missing? Does it have anything to do with the sip phones inviting each other?

Please post dial plan

This is my first go at it, so please be gentle…

queues.conf…[code][general]
persistentmembers=yes

;Alan default queue
[alanq]
musiconhold = default
ananounce=queue-alanq
strategy=ringall
maxlen=0
context=default
;announce-frequency=20
;announce-holdtime=yes
;reportholdtime=yes
member => SIP/21
member => SIP/22
member => SIP/23
member => SIP/25
member => SIP/31
[/code]extensions.conf…

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

#include macros.incl
#include apps.incl
#include incoming.incl
#include outgoing.incl
#include default.incl
#include nineoneone.incl
#include dialext.incl
#include phrase.incl

[globals]
TRUNK=Zap/g1
TRUNKMSD=1

EMERGENCY=0
EMERGENCY_TRUNK=Zap/10
EMERGENCY_NUM=911

CONFMAX => 6
[/code]incoming.incl (part of)…

;incoming.incl ;#included from extensions.conf [incoming] exten => 478######,1,Macro(stdin,20,A) exten => 478######,1,Macro(stdin,20,A) default.incl (part of)…

[code];default.incl
;#included in extensions.conf
[default]
include => parkedcalls
exten => s,1,Goto(s-${CIDPRE},1)
exten => t,1,Goto(t-${CIDPRE},1)
exten => i,1,Goto(i-${CIDPRE},1)

exten => s-A,1,Goto(default,20,1)
exten => t-A,1,Goto(default,20,1)
exten => i-A,1,Goto(default,20,1)

exten => s-S,1,Goto(default,100,1)
exten => t-S,1,Goto(default,100,1)
exten => i-S,1,Goto(default,100,1)

exten => s-B,1,Goto(default,100,1)
exten => t-B,1,Goto(default,100,1)
exten => i-B,1,Goto(default,100,1)

exten => s-,1,Playback(Goodbye)
exten => s-,2,Hangup
exten => t-,1,Playback(Goodbye)
exten => t-,2,Hangup
exten => i-,1,Playback(Goodbye)
exten => i-,2,Hangup

;Emergency Number
exten => 911,1,Goto(nineoneone,s,1)

;Alan’s Operator
exten => 20,1,Macro(ringqueue,${EXTEN},alanq,${CIDPRE})
;Alan’s people
exten => _2X,1,Macro(stdexten,${EXTEN},SIP/${EXTEN})
[/code]macros.incl…

[code];macros.incl
;#included into extenensions.conf
[macro-stdin]
;
; Standard incoming extension
; ${ARG1} - New Extension
; ${ARG2} - CIDPREPEND
;
exten => s,1,Set(CIDPRE=${ARG2})
exten => s,2,Goto(default,${ARG1},1)

[macro-stdexten]
;
; Standard extension macro:
; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as
; well)
; ${ARG2} - Device(s) to ring
;
exten => s,1,Wait(1)

exten => s,2,Set(DB(${ARG1}/lastnumber)=${CALLERIDNUM})
exten => s,3,Set(DB(${ARG1}/lastname)=${CALLERIDNAME})

exten => s,4,Dial(${ARG2},20,twW) ; Ring the interface, 20 seconds
; maximum
exten => s,5,Goto(s-${DIALSTATUS},1) ; Jump based on status

;exten => s-NOANSWER,1,Macro(patchme,${ARG1}) ; Unavaliable
exten => s-NOANSWER,1,Macro(vmail,${ARG1},u) ; Unavaliable
exten => s-BUSY,1,Macro(vmail,${ARG1},b) ; Busy
exten => s-.,1,Macro(vmail,${ARG1},) ; Everything else unavaliable

exten => fax,1,Set(FAXFILE=/var/spool/asterisk/fax/${STRFTIME(${EPOCH},%Y%m%M%S)}-${CALLERIDNUM}.tif)
exten => fax,n,rxfax(${FAXFILE})

[macro-vmail]
;
; Macro to define voicemail configuration
; ${ARG1} - Voicemail box (usally extension)
; ${ARG2} - Status
;
exten => s,1,Voicemail(${ARG2}${ARG1})
exten => s,2,Playback(Goodbye)
exten => s,3,Hangup

exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send to
; VoicemailMain

exten => o,1,Goto(default,0,1) ; If they press 0, send to
; Operator

[macro-patchme]
exten => s,1,NoOp(${ARG1})
exten => s,2,Set(NUMBER=${DB(${ARG1}/patchmenumber)})
exten => s,3,NoOp(${NUMBER})
exten => s,4,GotoIf($["${NUMBER}" = “”]?s-nonum,1)
;exten => s,1,playback(pls-wait-connect-call)
exten => s,5,dial(Zap/g1/${NUMBER},20,rtpw)

exten => s-nonum,1,NoOp(${NUMBER})

[macro-novm]
exten => s,1,Dial(${ARG1},45,wW) ; ring the interface for 45 seconds
exten => s,2,Playback(Goodbye)
exten => s,3,Hangup

[macro-stdmeetme]
; with limit to max number of persons in conference

exten => s,1,MeetMeCount(${MACRO_EXTEN}|count)
exten => s,2,Gotoif,$[${count} >= ${CONFMAX}]?103
exten => s,3,MeetMe(${MACRO_EXTEN}|ciMps)
exten => s,4,Goto(s|1)

exten => s,103,Background(conf-full)
exten => s,104,Hangup

[macro-stdqueue]
;
; Standard queue macro:
; ${ARG1} - Extension
; ${ARG2} - Queue name
; ${ARG3} - Prepend to CallerID Name
exten => s,1,Wait(1)
exten => s,2,Answer
exten => s,3,GotoIf($["${ARG3}" = “”]?s,5)
exten => s,4,Set(CALLERID(name)=${ARG3}:${CALLERID(name)})
exten => s,5,Queue(${ARG2}|tn|||240) ; only allow 4 minutes in queue
exten => s,6,Macro(vmail,${ARG1},u) ; Unavaliable

[macro-ringqueue]
;
; Ring queue macro:
; ${ARG1} - Extension
; ${ARG2} - Queue name
; ${ARG3} - Prepend to CallerID Name
exten => s,1,Wait(1)
exten => s,2,Answer
exten => s,3,GotoIf($["${ARG3}" = “”]?s,5)
exten => s,4,Set(CALLERID(name)=${ARG3}:${CALLERID(name)})
exten => s,5,Queue(${ARG2}|rtn|||20) ; only allow 20 seconds in queue
exten => s,6,Macro(vmail,${ARG1},u) ; Unavaliable[/code]

I understand if no one has the time to fix my bug, but I would just like to know if there is a known issues with timeout, queues, & sip, so that I do not go crazy trying to fix an issue that is not mine. Can anybody confirm the it should work?