login | register
Sun 12 of Oct, 2008 [17:56 UTC]

voip-info.org

Discuss [3] History

Asterisk cmd FollowMe

Created by: peletiah,Last modification on Tue 04 of Mar, 2008 [02:08 UTC] by jaaster

FollowMe

Synopsis

Find-Me/Follow-Me application
Introduced with Asterisk 1.4, see patch 5574

Description

 FollowMe(followmeid|options):

This application performs Find-Me/Follow-Me functionality for the caller as defined in the profile matching the <followmeid> parameter in followme.conf. If the specified <followmeid> profile doesn't exist in followme.conf, execution will be returned to the dialplan and call execution will continue at the next priority.
Forked (=simultaneous) dialing of multiple numbers in the same step is supported with this application if you'd like to dial multiple numbers in the same followme step.

 Options:
   s    - Playback the incoming status message prior to starting the follow-me step(s)
   a    - Record the caller's name so it can be announced to the callee on each step
   n    - Playback the unreachable status message if we've run out of steps to reach the
          or the callee has elected not to be reachable.

The settings in followme.conf allow for an entry that points to the astdb, something like this:

 number => family/key
 number => family/key

Important note: The app_followme that's in 1.4 right now do NOT make use of any assets in AstDB.

Details

Scenario

  • Call comes in, outside caller dials "100"
  • Desk phone for user Joe rings. No answer
  • Joe's house phone rings.
  • Joe's wife picks up and hears a voice "Please press any key to accept a call for extension 100."
  • Joe's wife hangs up.
  • Joe's cell phone rings.
  • Joe picks up and hears a voice "Please press any key to accept a call for extension 100."
  • Joe presses 1 and says "Hello this is Joe".

Alternately, in the penultimate step
  • Cell voice mail picks up.
  • Voice says "Please press any key to accept a call for extension 100". No keys pressed since it's a voice mail
  • Call is routed to Asterisk voicemail.

The a follow-me number to call is specified in followme.conf. You can specify as many of these numbers as you like. They will be dialed in the order that you specify them in the config file OR as specified with the order field on the number prompt. Therefore forked (parallel) dialing of multiple numbers in the same step is supported.

Often people want to force their 'follow me' to simply be on or off. So, when it's on, it doesn't ring their desk phone at all, just goes straight to cell/etc. When it's off, it only goes to desk phone, and nowhere else. You can achieve thisvia extensions.conf by setting a DB key to turn it off and setting a DB key again to turn it back on.

Question: Has the following been implemented as well?
"Set the extensions that enable it and disable follow-me via a featuremap in features.conf, and then you just needed to include => followme in the context where you want to be able to enable/disable the functionality and it would work."

Example

Example 1

extensions.conf:

 exten => _4411,1,Answer
 exten => _4411,2,Dial(SIP/${EXTEN},12,t)
 exten => _4411,3,GotoIf($"${DIALSTATUS}" = "NOANSWER"?:4:5)
 exten => _4411,4,Followme(${EXTEN})
 exten => _4411,5,VoiceMail(u${EXTEN})
 exten => _4411,6,Hangup

followme.conf:

 [4411]
 context=>default
 context=>music
 number=>4410,30
 number=>4420,30

Example 2: Using AstDb

As noted above, this option (integration with AstDB) is not available, at least up to 1.4.17, and in the bug itself, it is showing as an idea for future implementation !

This allows to use the dialplan to update the number values in followme.conf, like this:

 exten => _*5X.,1,Set(DB(FM${EXTEN:2:1}/${CALLERIDNUM})=${EXTEN:3})

In which case users can call in *51 followed by the number to call (follow), and the dialplan will add that to FM1, for the second number they would dial *52 and that would be added to FM2, and so on. In followme.conf you would then have:

 number => FM1/8143
 number => FM2/8143

and so on. And if an entry in the astdb is empty app_followme will ignore it.

Example 3

extensions.conf:

 exten => 1111,1,Dial()
 exten => 1111,2,FollowMe(default|${EXTEN})
 exten => 2222,1,Dial()
 exten => 2222,2,FollowMe(default|${EXTEN})
 exten => 3333,1,Dial()
 exten => 3333,2,FollowMe(default|${EXTEN})
 exten => 4444,1,Dial()
 exten => 4444,2,FollowMe(default|${EXTEN})

followme.conf:

 [default]
 music=>default
 context=>default
 number =>FM1/${ARG1}
 number =>FM2/${ARG1}

 [4444]
 music=>default
 context=>default
 number=>1965751234,5
 number=>17182025678,20
 number =>FM1/${ARG1}
 number =>FM2/${ARG1}

Example 4: Follow-me without app_follow me


 ; in priority 2, you'll want to replace Zap/1 with the person you want to have called by the system
 ; you'll also want to change the voicemail context on priority 104, if you're using something besides "default"
 [incoming]
 exten => 300,1,Answer()
 exten => 300,2,Dial(Zap/1,30,grM(call-screening^${CALLERIDNUM}^${CONTEXT}^${EXTEN}^${PRIORITY}))
 exten => 300,3,Hangup()
 exten => 300,103,NoOp(${EXTEN}::${PRIORITY})
 exten => 300,104,VoiceMail(u${EXTEN}@default)
 exten => 300,105,Hangup()
 exten => t,1,Playback(connection-timed-out)
 exten => t,2,Playback(goodbye)
 exten => t,3,Hangup()

 ; You may want to replace priorities two through five with a single recording saying
 ; "You have a call from", as the current implementation is a bit choppy. You could
 ; also replace the "1-yes-2-no" file in priority 7 to something more appropriate
 [macro-call-screening]
 exten => s,1,NoOp(${ARG2}::${ARG3}::${ARG4}::)
 exten => s,2,Playback(vm-youhave)
 exten => s,3,Playback(letters/a)
 exten => s,4,Playback(call)
 exten => s,5,Playback(from)
 exten => s,6,SayDigits(${ARG1})
 exten => s,7,Read(ACCEPTCALL|1-yes-2-no|1) ; (repeatoptions)
 exten => s,8,GotoIf($["${ACCEPTCALL}" = ""] ?t,1)
 exten => s,9,GotoIf($[${ACCEPTCALL} = 2] ?s,11)
 exten => s,10,GotoIf($[${ACCEPTCALL} = 1] ?s,14:s,2)
 exten => s,11,Set(NEWPRIORITY=$[${ARG4} + 101])
 exten => s,12,Set(MACRO_RESULT=GOTO:${ARG2}^${ARG3}^${NEWPRIORITY})
 exten => s,13,Goto(s,16);
 exten => s,14,Playback(auth-thankyou)
 exten => s,15,Set(MACRO_RESULT=)
 exten => s,16,NoOp(End of macro)
 exten => t,1,Playback(connection-timed-out)
 exten => t,2,Goto(s,2)



See also



Go back to Asterisk


Comments

Comments Filter
222

333

by shido6, Wednesday 31 of January, 2007 [23:35:29 UTC]
Doesnt seem to work for me, shouldnt it be using "Background" instead of "Playback" ?

Where is it listening for my input?

-sx
222

333Request for Feature

by kenaniah14747, Sunday 29 of October, 2006 [04:12:57 UTC]
I don't suppose that we could get a dynamic access to the follow me's like the switch statement in extensions.conf. This would allow for cleaner web interfaces to be built for adding and changing the follow me for users. Just a thought.

222

333Request for Feature

by kenaniah14747, Sunday 29 of October, 2006 [04:12:35 UTC]
I don't suppose that we could get a dynamic access to the follow me's like the switch statement in extensions.conf. This would allow for cleaner web interfaces to be built for adding and changing the follow me for users. Just a thought.