Block intercom and page when line is in use SPA50X

Unanswered Question
Mar 18th, 2010
User Badges:

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?

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 0 (0 ratings)
diyciscoguy Thu, 03/18/2010 - 12:55
User Badges:

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?

jonschlatter Wed, 04/07/2010 - 19:22
User Badges:

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.

diyciscoguy Thu, 04/08/2010 - 05:57
User Badges:

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/[email protected]-paging-custom&LOCAL/[email protected]-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/[email protected]-paging-custom&LOCAL/[email protected]-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:[email protected])
exten => _*1x,6,Hangup()


This Discussion

Related Content