[Asterisk-Users] A neat "hot seating" mplementation

Howard Lowndes lannet at lannet.com.au
Mon Jan 31 15:19:06 MST 2005


On Tue, 2005-02-01 at 08:12, Eric Bishop wrote:
> Has anyone implemented "hot seating" in any neat way? This where
> people can log in to any phone in the company and have their
> calls/voicemail come to that particular handset.....

I think this usually called "follow me" and is a variation on "call
forward immediate".  I have successfully done cfim where the user, at
their home station, can redirect their calls to another station, but I
haven't yet got around to fm, where the user is at a foreign station and
directs * to do a cfim to his new station.  It shouldn't be difficult
and is really only an extension of cfim.  I used DBPut, DBGet and DBDel
to implement it.

Here's the part of the dial plan that goes in the "internal" call
context:

  '_1[1-7]Z' =>     1. NoOp(Chan:${CHANNEL} Cntxt:${CONTEXT} Exten:${EXTEN} Prio:${PRIORITY} Time:${TIMESTAMP} Clid:${CALLERID}) [pbx_config]
                    2. SetVar(CFIM=0)                             [pbx_config]
                    3. Macro(cfim|${EXTEN})                       [pbx_config]
                    4. GotoIf($[${CFIM} = 0]?10:cfim|${CFIM}|1)   [pbx_config]
                    10. Macro(voice|SIP/${EXTEN}|${EXTN_TIMEOUT}|t|${EXTEN}) [pbx_config]

and then this is the macro-cfim:

[ Context 'macro-cfim' created by 'pbx_config' ]
  's' =>            1. NoOp(Chan:${CHANNEL} Cntxt:${CONTEXT} Exten:${EXTEN} Prio:${PRIORITY} Time:${TIMESTAMP} Clid:${CALLERID} Arg1:${ARG1}) [pbx_config]
                    2. DBGet(CFIM=CFIM/${ARG1})                   [pbx_config]
                    3. Playback(call-forwarding)                  [pbx_config]
                    103. NoOp()                                   [pbx_config]

This is where I allow them to set and clear their cfim details, in
another internal context:

  '*84' =>          1. NoOp(Chan:${CHANNEL} Cntxt:${CONTEXT} Exten:${EXTEN} Prio:${PRIORITY} Time:${TIMESTAMP} Clid:${CALLERID}) [pbx_config]
                    2. Wait(1)                                    [pbx_config]
                    3. Read(CFIMNUM|custom/callforward-number)    [pbx_config]
                    4. DBPut(CFIM/${CALLERIDNUM}=${CFIMNUM})      [pbx_config]
                    5. Wait(1)                                    [pbx_config]
                    6. Playback(your)                             [pbx_config]
                    7. Playback(call-forward)                     [pbx_config]
                    8. Playback(has-been-set-to)                  [pbx_config]
                    9. SayDigits(${CFIMNUM})                      [pbx_config]
                    10. Hangup()                                  [pbx_config]
  '*85' =>          1. NoOp(Chan:${CHANNEL} Cntxt:${CONTEXT} Exten:${EXTEN} Prio:${PRIORITY} Time:${TIMESTAMP} Clid:${CALLERID}) [pbx_config]
                    2. DBDel(CFIM/${CALLERIDNUM})                 [pbx_config]
                    3. Playback(call-fwd-cancelled)               [pbx_config]
                    4. Hangup()                                   [pbx_config]

HTH, but usual disclaimers apply.


> _______________________________________________
> Asterisk-Users mailing list
> Asterisk-Users at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-users
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
-- 
Howard.
LANNet Computing Associates;
Your Linux people <http://www.lannetlinux.com>
------------------------------------------
"When you just want a system that works, you choose Linux;
when you want a system that just works, you choose Microsoft."
------------------------------------------
"Flatter government, not fatter government;
Get rid of the Australian states."





More information about the asterisk-users mailing list