Difference between revisions of "Proposed Asterisk Dialplan"
From LinuxMCE
(still more content.) |
(More content) |
||
Line 1: | Line 1: | ||
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. | 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. | ||
+ | |||
+ | This is being added to, as I write more and more of the schema, and will get much...much bigger. --[[User:Tschak909|Tschak909]] 07:30, 18 July 2013 (CEST) | ||
==Dial Plan Flow== | ==Dial Plan Flow== | ||
Line 64: | Line 66: | ||
=== Security Plugin Phone Extensions === | === Security Plugin Phone Extensions === | ||
− | ==== | + | ==== Security Notfiications (999) ==== |
* run AGI to determine which rooms have been affected, generate audio message | * run AGI to determine which rooms have been affected, generate audio message | ||
Line 70: | Line 72: | ||
** Orbiters then Other numbers (uses one outgoing channel) | ** Orbiters then Other numbers (uses one outgoing channel) | ||
*** Ring each orbiter for 15 seconds, if no answer, then ring the next orbiter | *** Ring each orbiter for 15 seconds, if no answer, then ring the next orbiter | ||
+ | **** If answer, Play Security IVR | ||
*** If no more orbiters, ring each "other number" for 15 seconds, if no answer, then ring next other number. | *** If no more orbiters, ring each "other number" for 15 seconds, if no answer, then ring next other number. | ||
+ | **** If answer, Play security IVR | ||
*** (what to do here if everybody has been rung, and no answer?) | *** (what to do here if everybody has been rung, and no answer?) | ||
** Other numbers then Orbiters (uses one outgoing channel) | ** Other numbers then Orbiters (uses one outgoing channel) | ||
*** Ring each "other number" for 15 seconds, if no answer, then ring the next number. | *** Ring each "other number" for 15 seconds, if no answer, then ring the next number. | ||
+ | **** If answer, Play security IVR | ||
*** If no more "other numbers", ring each Orbiter for 15 seconds, if no answer, then ring the next orbiter. | *** If no more "other numbers", ring each Orbiter for 15 seconds, if no answer, then ring the next orbiter. | ||
** Both orbiters and other numbers at the same time. (uses two outgoing channels) | ** Both orbiters and other numbers at the same time. (uses two outgoing channels) | ||
*** spawn two threads, one for "Orbiters" one for "Other numbers", for each thread | *** spawn two threads, one for "Orbiters" one for "Other numbers", for each thread | ||
**** Ring each number for 15 seconds, if no answer, then ring the next number. | **** Ring each number for 15 seconds, if no answer, then ring the next number. | ||
+ | ***** If answer, Play security IVR | ||
**** (What to do when all numbers have been rung?) | **** (What to do when all numbers have been rung?) | ||
+ | |||
+ | ===== Security IVR ===== | ||
+ | |||
+ | * 1 to Reset the Alarm | ||
+ | ** Play "Alarm has been reset." | ||
+ | * 2 to Ignore the alarm | ||
+ | * 3 to call emergency contacts | ||
+ | * 4 to Notify neighbors | ||
+ | * 5 to speak to the person in the house | ||
Line 117: | Line 132: | ||
* 402 - Lana | * 402 - Lana | ||
* 403 - Nina | * 403 - Nina | ||
+ | |||
+ | === Security Extensions === | ||
+ | * 999 - Security | ||
+ | * 998 - Fire | ||
+ | * 997 - Air Quality | ||
+ | * 996 - Movement | ||
+ | * 995 - Information | ||
+ | * 994 - Doorbell | ||
+ | * 993 - Monitor Mode | ||
+ | * 992 - Babysitter Mode | ||
+ | * 991 - Speak to person inside house (this needs to be changed in all the code, this was 998) |
Revision as of 06:30, 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.
This is being added to, as I write more and more of the schema, and will get much...much bigger. --Tschak909 07:30, 18 July 2013 (CEST)
Contents
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)
- Is the number listed in Callers for me(?) for a user.
- Transfer to outside number
- Dial outside #
- Ring extensions
- Get house mode and branch between five possible states:
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
- While ringing, user has the opportunity to:
- Ring specified extension
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
- If checkbox is selected for give option for voicemail, play message, listen for "#"
- If checkbox selected, and If # pressed, go to user voicemail
- Execute next step which is one of four possible states: (TOP)
- 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
- Ring Extensions
- Loop back around to (TOP)
- If all instructions are carried out and still unresolved, drop back to menu (101)
Security Plugin Phone Extensions
Security Notfiications (999)
- run AGI to determine which rooms have been affected, generate audio message
- Determine priority in the following order
- Orbiters then Other numbers (uses one outgoing channel)
- Ring each orbiter for 15 seconds, if no answer, then ring the next orbiter
- If answer, Play Security IVR
- If no more orbiters, ring each "other number" for 15 seconds, if no answer, then ring next other number.
- If answer, Play security IVR
- (what to do here if everybody has been rung, and no answer?)
- Ring each orbiter for 15 seconds, if no answer, then ring the next orbiter
- Other numbers then Orbiters (uses one outgoing channel)
- Ring each "other number" for 15 seconds, if no answer, then ring the next number.
- If answer, Play security IVR
- If no more "other numbers", ring each Orbiter for 15 seconds, if no answer, then ring the next orbiter.
- Ring each "other number" for 15 seconds, if no answer, then ring the next number.
- Both orbiters and other numbers at the same time. (uses two outgoing channels)
- spawn two threads, one for "Orbiters" one for "Other numbers", for each thread
- Ring each number for 15 seconds, if no answer, then ring the next number.
- If answer, Play security IVR
- (What to do when all numbers have been rung?)
- Ring each number for 15 seconds, if no answer, then ring the next number.
- spawn two threads, one for "Orbiters" one for "Other numbers", for each thread
- Orbiters then Other numbers (uses one outgoing channel)
Security IVR
- 1 to Reset the Alarm
- Play "Alarm has been reset."
- 2 to Ignore the alarm
- 3 to call emergency contacts
- 4 to Notify neighbors
- 5 to speak to the person in the house
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
Security Extensions
- 999 - Security
- 998 - Fire
- 997 - Air Quality
- 996 - Movement
- 995 - Information
- 994 - Doorbell
- 993 - Monitor Mode
- 992 - Babysitter Mode
- 991 - Speak to person inside house (this needs to be changed in all the code, this was 998)