Open Source Training Seminar FreePBX Paid Support

Ticket #1010 (closed Feature Requests: fixed)

Opened 2 years ago

Last modified 1 year ago

add speeddial module

Reported by: gregmac Assigned to: gregmac
Priority: minor Milestone: 2.2
Component: Phonebook Module Version:
Keywords: Cc:
Confirmation: SVN Revision (if applicable):
Backend Engine: All Backend Engine Version:

Description

Need a speeddial module to work with new phonebook module (source:modules/branches/2.2/phonebook).

This probably means that the phonebook should be modified to have another field for "speed dial number", so the actual number is modified there.

The GUI for this module can set options, such as:

  • Speed dial prefix
  • If speed dials can be set by a feature code (example in #132)
  • Reserved ranges for user vs system speed dials (or even if user speed dials are allowed at all)

Change History

07/05/06 20:49:42 changed by gregmac

I'm rolling up several other tickets into this one: #56, #207, #825, #132

07/05/06 21:28:52 changed by gregmac

  • owner changed.
  • component changed from Other Module to Phonebook Module.

07/10/06 13:17:21 changed by webrainstorm

Hi all, yes, modifying the phonebook module will be the best choice. I can work on it during the weekend and probably relase a beta version by the end of the week (including some bugfixes on the actual version).

Just a question:

What do you mean with user vs system speed dials ?

Each user should configure its own speed dials ? User speed dials should be looked up using as primary key the pair callerID, speeddialNumber ? How can an user configure its speed dial without an user portal ? just through an IVR ?

07/25/06 04:43:45 changed by gregmac

  • owner set to gregmac.

User speed dial will be with feature codes or with a user portal

User speed dials will be stored in:

  • /AMPUSER/xxx/speeddials/yyy = zzzzzzzzzz

where xxx = extension, yyy = speed dial number, zzzzzzz = number to call

Personal phone book names (only used by user portal) will be stored in

  • /AMPUSER/xxx/cidname/zzzzzzzz = name_to_display

The system-wide settings, for reference, are in:

  • /sysspeeddials/yyy = zzzzzzzzz
  • /cidname/zzzzzzzz = name_to_display

User speed dial numbers should always override system numbers (if they conflict).

According to NANPA, the vertial service codes for speed dial are *74 and *75, so we can use one of those to set.

For dialing:

  • Ranges should be set in amportal.conf since changing them can have non-trival consequences (ie, not being able to access speed dials outside the range)
  • Optional prefix configured in general settings, or perhaps a speed dial page, or feature codes page. If no prefix, then it means the speed dial number itself is dialed directly.

Speed dials go in a context like ext-speeddials. The speeddial module can build this context with, for example:

  • Range 10-29 user, Range 30-59 system, no prefix:
    exten => _[12]X,1,Macro(app-userspeeddial,${EXTEN},${CALLERID(number)})
    exten => _[3-5]X,1,Macro(app-sysspeeddial,${EXTEN})
    
  • Range 10-19 user, 20-55 system, no prefix:
    exten => _[12]X,1,Macro(app-userspeeddial,${EXTEN},${CALLERID(number)})
    exten => _[2-4]X,1,Macro(app-sysspeeddial,${EXTEN})
    exten => _5[0-5],1,Macro(app-sysspeeddial,${EXTEN})
    
  • Range 100-199 user, 200-599 system, prefix #:
    exten => _#1XX,1,Macro(app-userspeeddial,${EXTEN},${CALLERID(number)})
    exten => _#[2-5]XX,1,Macro(app-sysspeeddial,${EXTEN})
    

Obviously, generating the patterns to match ranges is a bit non-trivial.. Additional, we need to generate the context when the range is changed either in amportal.conf, or the prefix is changed in the GUI.

Perhaps range would be better in a speeddial GUI config screen, so it can set the flag to regenerate config?

07/25/06 04:48:53 changed by gregmac

User setting of speed dials will be something like:

User: *75 pbx: "please enter the speed dial location in the range" "twenty" "to" "thirty-nine" User: 34 pbx: "please enter the phone number to dial" User: 5551234 pbx: "speed dial thirty-four is set to 5 5 5 1 2 3 4"

or

pbx: "there is already a number in that location, press 1 to hear it, 2 to change it" user: 1 pbx: "Speed dial thirty-four is set to 5 5 5 4 3 2 1" -> loop to prior menu

or

pbx: "Invalid speed dial location" -> loop to beginning

07/26/06 21:52:20 changed by webrainstorm

I agree with speeddial range config in the web GUI This way we can do more accurate checks when user would like to change the range

How can we deal with problem of overlapping of speeddials and extensions (if speeeddials are configured without a prefix) ??

I propose a general implementation of a is_ext_avail($ext, &existingexts) function. It shoud return a boolean value; if FALSE, &existingexts should be an array populated with the description of the extension requested and the module using it (suggestions are welcome)

Each module should have a modulename_extensions() function (more or less like destinations) which should return a list of extension number configured by that module with a description.

This way it will be easy for modules to check the availability of a specific number in the whole dialplan.

Speeddial module, for example, would return the whole range of speeddials as busy extensions

Feedback appreciated

08/02/06 01:52:27 changed by gregmac

Okay, it looks like it's going to make this much much simpler to just do speed dialing with a prefix. The prefix can of course be a number, or * code, or whatever.

If we can figure out a better way in the future, then maybe speeddial 2.0 will support no prefix.

08/03/06 09:58:16 changed by gregmac

Initial version commited in r2212 (requires SVN trunk)

08/04/06 03:55:16 changed by gregmac

  • status changed from new to closed.
  • resolution set to fixed.

speed dial 1.0 added in [2218]

01/08/07 11:46:44 changed by

  • milestone deleted.

Milestone 2.2 deleted

01/08/07 13:12:24 changed by vgster

  • milestone set to 2.2.
Donate



Support
Download
Develop
Forums
News
Documentation
Paid Support
About

Paid Ads