Showing results for 
Search instead for 
Did you mean: 

Block intercom and page when line is in use SPA50X


I have several SPA509G running SIP on asterisk. I have two line keys setup on each. My problem is when someone is on the phone if another person intercoms them the active call is placed on hold and the second line key picks up the intercom. Is there a way to block intercom when a extension is active on the SPA phones?

4 Replies 4

Darren DeCroock

Setting up intercom, or paging, on the SPA50x phones:  Please refer to the admin guide at the following link:

The section on Paging starts on page 47, or page 58 of the pdf...

Hope this helps,


Thanks for the quick reply. I have read the admin doc however my problem is not getting paging to work, in fact paging and intercom work great. The issue is the intercom picking up even when the user is active on a call. It picks up on the other line key and holds the active phone call. Any insight into that scenario?

I had a user let me know today that we have the same issue on our SPA504g phones (running 7.4.4).  Paging works fine, it just puts the active call on hold and plays the page. The active call needs to take precedence over anything coming in and should not be cut off unless the extension user so chooses.

I put together a solution from various other forums online. Basically you cannot use the built in paging group in freepbx, you have to create your own.

Edit extensions_custom.conf and add this script. It checks to see if the phone is active instead of available. It will take some modifying depending on your extentions length of digits.

exten => _PAGE.,1,GotoIf($[ ${AMPUSER} = ${EXTEN:4} ]?skipself)
exten => _PAGE.,n,GotoIf($[ ${FORCE_PAGE} != 1 ]?AVAIL)
exten => _PAGE.,n,Set(AVAILSTATUS=not checked)
exten => _PAGE.,n,Goto(SKIPCHECK)
exten => _PAGE.,n(AVAIL),GotoIf($[${DEVICE_STATE(SIP/${EXTEN:4})} = INUSE]?skipself)
exten => _PAGE.,n(SKIPCHECK),Noop(Seems to be available (state = ${AVAILSTATUS})
exten => _PAGE.,n,GotoIf($["${DB(DND/${DB(DEVICE/${EXTEN:4}/user)})}" = "YES"]?skipself)
exten => _PAGE.,n,Macro(autoanswer,${EXTEN:4})
exten => _PAGE.,n,Dial(${DIAL},${DTIME},${DOPTIONS})
exten => _PAGE.,n(skipself),Noop(Not paging originator)
exten => _PAGE.,n,Hangup
exten => _PAGE.,AVAIL+101,Noop(Channel ${AVAILCHAN} is not available (state = ${AVAILSTATUS}))
exten => Debug,1,Noop(dialstr is LOCAL/PAGE10@ext-paging-custom&LOCAL/PAGE11@ext-paging-custom) <--- ADD YOUR EXTENSIONS HERE
exten => 80,1,Answer
exten => 80,n,Set(_FORCE_PAGE=0)
exten => 80,n,Macro(user-callerid,)
exten => 80,n,Set(_AMPUSER=${AMPUSER})
exten => 80,n,Page(LOCAL/PAGE10@ext-paging-custom&LOCAL/PAGE11@ext-paging-custom)<--- ADD YOUR EXTENSIONS HERE

If you are having a similar problem with phone to phone intercom this is the solution that worked for me:

exten => _*1x,1,GotoIf($[${DEVICE_STATE(SIP/${EXTEN:1})} = INUSE]?inuse)
exten => _*1x,2,SIPAddHeader(Call-Info:\; answer-after=0)
exten => _*1x,3,Dial(${DB(DEVICE/${EXTEN:1}/dial)},5, A(beep))
exten => _*1x,4,Hangup()
exten => _*1x,5(inuse),Voicemail(${EXTEN:1}@default)
exten => _*1x,6,Hangup()

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Recognize Your Peers