Help:Page script putting existing calls on hold & allow

Okay, this bit of scripting has got me a functional all-page and individual extension paging, and my “special” paging group. I need help with a bit of scripting to keep this from placing existing calls on hold and patching the page through. I have tried sticking exten = s,1,ChanIsAvail(${ARG1}|js) into the macro-intercom context and into the individual paging bits (modified to fit, of course) but all that does it end the call as soon as I dial *96, as though it is dumping me from the conference since my line is “in use”. As it stands now, the obnoxious factor alone of being able to just bust right in has got me withholding this from my end-users.

exten = s,1,Answer
exten = s,n,Playback(/var/lib/asterisk/sounds/beep)
exten = s,n,Set(TIMEOUT(digit)=5)
exten = s,n,WaitExten(10)
exten = *,1,Set(TIMEOUT(absolute)=60)
exten = *,n,SIPAddHeader(Call-Info: ;answer-after=0)
exten = *,n,Page(SIP/104&SIP/103&SIP/102&SIP/101&SIP/100&SIP/105&SIP/106&SIP/123&SIP/125&SIP/114&SIP/144&SIP/131&SIP/119&SIP/128&SIP/127&SIP/115&SIP/112&SIP/130&SIP/124&SIP/126&SIP/107&SIP/108&SIP/113&SIP/109&SIP/145&SIP/149|q|)
exten = 666,1,Set(TIMEOUT(absolute)=60)
exten = 666,n,SIPAddHeader(Call-Info: ;answer-after=0)
exten = 666,n,Page(SIP/101&SIP/102&SIP/103&SIP/104)
exten = _XXX,1,Set(TIMEOUT(absolute)=60)
exten = _XXX,n,SIPAddHeader(Call-Info: ;answer-after=0)
exten = _XXX,n,Page(SIP/${EXTEN}|d|)

exten = 850,1,VoiceMailMain
exten = 8500,n,Hangup
include = voicemenu-custom-1
exten = 400,1,MeetMe(${EXTEN}|MsI)
exten = 401,1,MeetMe(${EXTEN}|MsI)
exten = 402,1,MeetMe(${EXTEN}|MsI)
exten = 403,1,MeetMe(${EXTEN}|MsI)
exten = 404,1,MeetMe(${EXTEN}|MsI)
exten = 300,1,Goto(voicemenu-custom-1|s|1)
exten = 301,1,Goto(voicemenu-custom-2|s|1)
exten = 302,1,Goto(voicemenu-custom-3|s|1)
exten = o,1,Goto(default,100,1)
exten = 303,1,Goto(voicemenu-custom-4|s|1)
exten = 304,1,Goto(voicemenu-custom-5|s|1)
exten = 305,1,Goto(voicemenu-custom-6|s|1)
exten = 306,1,Goto(voicemenu-custom-7|s|1)
exten = 144,1,Goto(ringroups-custom-1|s|1)
exten = 127,1,Goto(ringroups-custom-2|s|1)
exten = 100,1,Goto(ringroups-custom-3|s|1)
exten = *96,1,goto(macro-intercom,s,1)
;exten = *96,1,Set,(TIMEOUT(absolute)=60)
;exten = *96,n,Page(Local/101@page&Local/102@page&Local/103@page&Local/104@page|d|)
exten = 8,1,Directory(default,incoming,f)
exten = 9,1,Directory(default,incoming)