[Freeswitch-users] call pickup vs application="intercept"

Sean Devoy sdevoy at bizfocused.com
Fri Apr 18 05:02:47 MSD 2014


Hi all,

I have just installed a new site where the receptionist has a CISCO SPA phone and 32 key extended keypad.  The buttons on the keypad are used like an operator console for various extensions.  They provide Busy Line Feature (BLF or BLA) and Speed Dial (sd). I will update the CISCO SPA section of the WIKI to document how to do this as soon as I get an email with my username and password back!

However, I think I need some clarification on "pickup" verses "intercept".  To me these two dialplans are exactly equivalent, please correct me if I missed something.  Note, I have restricted the pickup "group" to the dialed extension, eliminating the problem of multiple incoming calls when picking up in a "group".

Scenario 1:
Main dialplan routes call to extension "10" (simplified version):
<extension name="2digit_internal" >
  <condition field="destination_number" expression="^(10)$" >
   [SNIP ...]
   <action application="db" data="insert/call_pickup_uuid/${destination_number}/${uuid}"/>
    <action application="bridge" data="{sip_invite_domain=[REDECTED]}user/${destination_number}@[REDECTED]"  />
    <action application="answer"/>
    <action application="voicemail" data="default voicemail_ESTA $1"/>
    <action application="hangup"/>
  </condition>
</extension>
The application "db" line is the key to link to the events.

Now when the receptionist sees extension 10 blinking and unanswered, she can press that key to "pickup" that ringing line.
(The Cisco phone dials **10) That dialplan is:
    <extension name="directed-call-pickup">
      <condition field="destination_number" expression="^\*\*(\d\d)$">
        <action application="answer"/>
        <action application="intercept" data="${db(select/call_pickup_uuid/$1)}"/>
        <action application="sleep" data="2000"/>
      </condition>
    </extension>

The receptionist "intercepts" the call by uuid stored in the above dialplan.

Scenario 2:  (same, but different dial plan)
<extension name="2digit_internal" >
  <condition field="destination_number" expression="^(10)$" >
   [SNIP ...]
    <action application="bridge" data="{sip_invite_domain=[REDECTED]}user/${destination_number}@[REDECTED], pickup/$1"  />
    <action application="answer"/>
    <action application="voicemail" data="default voicemail_ESTA $1"/>
    <action application="hangup"/>
  </condition>
</extension>
No application "db" line, instead added ", pickup/10" to the bridge line.

Now when the receptionist sees extension 10 blinking and unanswered, she can press that key to "pickup" that ringing line.
(The Cisco phone dials **10) That dialplan is:
    <extension name="directed-call-pickup">
      <condition field="destination_number" expression="^\*\*(\d\d)$">
        <action application="answer"/>
        <action application="pickup" data="$1)}"/>
        <action application="sleep" data="2000"/>
      </condition>
    </extension>

So, is this just two different ways to skin a cat or are there subtleties that make one a preferred implementation?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20140418/2e13fa94/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.gif
Type: image/gif
Size: 70 bytes
Desc: image001.gif
Url : http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20140418/2e13fa94/attachment-0001.gif 


Join us at ClueCon 2013 Aug 6-8, 2013
More information about the FreeSWITCH-users mailing list