Difference between revisions of "Proposed Asterisk Dialplan"

From LinuxMCE
Jump to: navigation, search
(Ring specific user (3xx))
(more content.)
Line 5: Line 5:
 
===Call from outside line (1xx)===
 
===Call from outside line (1xx)===
 
*Call comes in from outside line
 
*Call comes in from outside line
**Get house mode and branch between four possible states:
+
**Get house mode and branch between five possible states:
 
***Ring extensions
 
***Ring extensions
****All checked extensions (2xx) are rung.
+
****All checked extensions (2xx) are rung in parallel.
 
***Transfer to a specific user
 
***Transfer to a specific user
 
****Transfer to specified (3xx) extension
 
****Transfer to specified (3xx) extension
Line 27: Line 27:
 
**Yes? ...then
 
**Yes? ...then
 
***Ring specified extension
 
***Ring specified extension
 +
****While ringing, user has the opportunity to:
 +
*****Transfer to a specific phone (2xx)
 +
*****Transfer to a specific user (3xx)
 +
*****Transfer to an outside number (dial specified number given to dial pad)
 +
*****dial someone else in to conference before we all pick up (this is strange, but the button is there!)
 +
*****Send to General voicemail (100)
 +
*****Drop the call
 
****If extension does not pick up within specified IVR delay time, Transfer to (101) for IVR menu
 
****If extension does not pick up within specified IVR delay time, Transfer to (101) for IVR menu
  
Line 34: Line 41:
 
**No, it is a normal caller, Process normal caller routing (see normal/priority user routing below)
 
**No, it is a normal caller, Process normal caller routing (see normal/priority user routing below)
 
**Yes, it is a priority caller, Process priority caller routing (see normal/priority user routing below)
 
**Yes, it is a priority caller, Process priority caller routing (see normal/priority user routing below)
 +
 +
====Normal/Priority User Routing====
 +
 +
For each user, there is a set of routing steps to be executed serially, depending on if the user is a normal or priority caller, and then based on the current USER mode. A user is a priority caller if they are listed in the priority callers list. Any number of steps can be created, and a dial plan segment should be created for each one.
 +
 +
* Get house mode
 +
**If Normal caller, select normal caller steps given house mode
 +
**If Priority caller, select priority caller steps given house mode
 +
*** Execute next step which is one of four possible states:
 +
**** Ring Extensions
 +
***** Parallel ring selected extensions (2xx)
 +
**** Transfer to another user
 +
***** Transfer call to specified (3xx) extension
 +
**** Go to user's voicemail
 +
***** Transfer call to specified user voicemail
 +
**** Transfer to an outside number
 +
*** If all instructions are carried out and still unresolved, drop back to menu (101)
 +
 +
==Lists for...==
 +
 +
=== House Modes ===
 +
* Armed - At Home
 +
* Armed - Away
 +
* Armed - Extended Away
 +
* Entertaining
 +
* Sleeping
 +
* Unarmed - At Home
 +
 +
=== User Modes ===
 +
* At Home
 +
* Away
 +
* Do Not Disturb
 +
* Sleeping
 +
 +
=== Incoming Call extensions ===
 +
* 100 - General Voicemail box
 +
* 101 - IVR menu
 +
 +
=== Example Phone extensions ===
 +
* 201 - Living Room
 +
* 202 - Bedroom Master
 +
* 203 - Den
 +
* ...
 +
 +
=== Example User extensions ===
 +
* 301 - Thom
 +
* 302 - Lana
 +
* 303 - Nina
 +
* ...
 +
 +
=== Example User voicemail extensions ===
 +
* 401 - Thom
 +
* 402 - Lana
 +
* 403 - Nina

Revision as of 05:38, 18 July 2013

We desperately need to write a new Asterisk dial plan to replace the AMP generated one that has become far too bit-rotten to be of any substantial use. This page will track the conceptual flow of what will be needed for the new post Asterisk 1.8+ dialplan.

Dial Plan Flow

Call from outside line (1xx)

  • Call comes in from outside line
    • Get house mode and branch between five possible states:
      • Ring extensions
        • All checked extensions (2xx) are rung in parallel.
      • Transfer to a specific user
        • Transfer to specified (3xx) extension
      • Go to a specific user's voicemail
        • Transfer to selected user's voicemail
      • Present a menu to select Home user (101)
        • Is the number listed in Callers for me(?) for a user.
          • Transfer to user extension. (3xx)
        • Present menu audio, and select between options:
        • If explicit extension is selected, ring said extension. (Do we want to allow all extensions to be pressed here?)
        • If User number is selected, Transfer to user (3xx)
        • If General Voicemail, drop to general voicemail box (100)
      • Transfer to outside number
        • Dial outside #

Ring specific extension (2xx)

  • Does current house mode allow extension to be rang?
    • No? Bounce to Menu (101)
    • Yes? ...then
      • Ring specified extension
        • While ringing, user has the opportunity to:
          • Transfer to a specific phone (2xx)
          • Transfer to a specific user (3xx)
          • Transfer to an outside number (dial specified number given to dial pad)
          • dial someone else in to conference before we all pick up (this is strange, but the button is there!)
          • Send to General voicemail (100)
          • Drop the call
        • If extension does not pick up within specified IVR delay time, Transfer to (101) for IVR menu

Ring specific user (3xx)

  • Find user via AGI script, map to a list of (2xx) extensions.
  • Is number on Priority caller list?
    • No, it is a normal caller, Process normal caller routing (see normal/priority user routing below)
    • Yes, it is a priority caller, Process priority caller routing (see normal/priority user routing below)

Normal/Priority User Routing

For each user, there is a set of routing steps to be executed serially, depending on if the user is a normal or priority caller, and then based on the current USER mode. A user is a priority caller if they are listed in the priority callers list. Any number of steps can be created, and a dial plan segment should be created for each one.

  • Get house mode
    • If Normal caller, select normal caller steps given house mode
    • If Priority caller, select priority caller steps given house mode
      • Execute next step which is one of four possible states:
        • Ring Extensions
          • Parallel ring selected extensions (2xx)
        • Transfer to another user
          • Transfer call to specified (3xx) extension
        • Go to user's voicemail
          • Transfer call to specified user voicemail
        • Transfer to an outside number
      • If all instructions are carried out and still unresolved, drop back to menu (101)

Lists for...

House Modes

  • Armed - At Home
  • Armed - Away
  • Armed - Extended Away
  • Entertaining
  • Sleeping
  • Unarmed - At Home

User Modes

  • At Home
  • Away
  • Do Not Disturb
  • Sleeping

Incoming Call extensions

  • 100 - General Voicemail box
  • 101 - IVR menu

Example Phone extensions

  • 201 - Living Room
  • 202 - Bedroom Master
  • 203 - Den
  • ...

Example User extensions

  • 301 - Thom
  • 302 - Lana
  • 303 - Nina
  • ...

Example User voicemail extensions

  • 401 - Thom
  • 402 - Lana
  • 403 - Nina