Contents
EdgelessPBX Queue system allows you to receive more calls in your EdgelessPBX than your staff members are able to answer at the same time.
They will enable you to deal with your calls more efficiently and your customers will be held in a queue, listening music on hold and receiving information messages about aproximate wait time and/or their position in queue.
Queues consist of:
- Incoming calls being placed in the queue
- Members that answer the queue (extensions or users that login as agents)
- A strategy for how to handle the queue and divide calls between members
- Music played while waiting in the queue
- Announcements for members and callers
In Multi Tenant EdgelessPBX, only available Queue members are SIP Members, extensions added to the queue.
Queues
This screen lists all the system queues with the following details:
- Name:Queue name
(ex. Patience)
(Display) - Number:Queue network number
(ex. 1001)
(Display)
Edit
Edits the queue configuration
(ex. Click to edit the queue configuration)
(Button)
Delete
Deletes a queue from the system
(ex. Click to delete a queue from the system)
(Button)
Search
By selecting the ‘Search’ Command, a search menu will be displayed. Searches can be done by Name and Number
- Search:
Search phrase
(ex. Provide a search phrase here and hit enter to filter the records)
([a-z][0-9]) - Name:
Should the search filter be applied to queue names
(ex. Check the box to search queue names)
(Check box) - Number:
Should the search filter be applied to queue numbers
(ex. Check the box to search queue numbers)
(Check box)
Add/Edit Queue
Clicking on ‘Add/Edit’ Queue will open standard options shown below
- Queue Name:
Unique queue network name/identifier
(ex. Provide a unique queue identifier/name here)
([a-z][0-9]) - Queue Number:
Unique network queue number
(ex. This number is to be dialed in order to access the queue)
([0-9]) - Max Callers:
Maximum number of callers allowed to wait in a queue at the same time. This number should be set in accordance with the number of members answering the queue calls
(ex. If this field is set to 4, only 4 callers will be allowed to enter the queue. If caller number 5 tries to enter the queue he will be transferred to <%PRODUCT%> ‘Redirect Extension’ number).
([0-9])
Queue members and agents
This button opens up a screen in which you can add and manage queue members
(ex. Click on the button to manage queue members)
(Button)
When you click on the Queue members and agents button, you will get the following window where you can manage members of the current queue.
This window is divided into two tables:
- Available – which is positioned on the left and shows all the extensions on the system not assigned to this queue.
- Members – which is located on the right and shows extensions assigned to this queue.
Also, every table has the search ability so you can search for members names, numbers and type.
- #Checkbox which is used to select extensions for adding or removal from queue
(ex. Clicking on any checkbox next to an extension will show arrow buttons for adding or removal in the middle which depends on in which table checkbox is selected).
(Check box) - Name
Extension name
(ex. Sales 1)
([0-9][a-z]) - Number
Number of the extension on the system
(ex. 1001)
([0-9]) - Type
Option used to filter the list by the member type.Any – displays all entries
SIP – displays only SIP static members (SIP extensions)
IAX – displays only IAX static members (IAX extensions) - Penalty
This value can be set per member, so the system can decide which priority to use when sending calls to members
(ex. Set values between 0 and 10 where 0 is the highest priority and 10 is the lowest priority. This works best when the ring strategy is ringall).
([0-10])
Advanced Options
General
- Music On Hold:
Select MOH(Music On Hold) class name. All sound files belonging to this MOH class will be played to users in queue
(ex. User A enters the queue. After the greeting message is heard, all sound files belonging to selected MOH class are played in the background)
(Select box) - Rings to Answer
How many rings will be played to a caller before call enters the queue.
Set this value to 0 if you would like calls to hear Queue music on hold as soon as call is connected. - RTP Delay [sec]:
Delay time in seconds inserted before the queue greeting message is played. This solves the ‘half-played’ file problem. Keep this value between 1-3
(ex. User A enters the queue and hears ‘..r call is first in line…’ and wonders what was that.. what did the voice say!? Set this field to 1 so that 1 second pause is added before the message is played. Now, when user A enters the queue he will hear ‘Your call is first in line…’).
([0-9]) - Replace Caller ID:
Replace the caller id with the custom value
(ex. Type ‘Lobby – %CALLERID%’ to display the caller id information as ‘Lobby – 5552879’ where 5552879 is the actual number calling in)
([a-z][0-9]) - Language:
Define custom language for all sound files played by the queue
(ex. To play Spanish sound files to all users waiting in the queue, type ‘es’ here. NOTE: EdgelessPBX MT comes with English sound files by default. To install sound files in other languages, please see ‘ Settings: Protocols: Sip: Language’ for more information)
([a-z]) - Queue URL:
Send the following URL to agents softphone, if it supports that option, and the softphone can open that URL so agent can see callers additional info if available. This option must be supported by softphone for it to be used.
(ex. Additional info on Queue URL field can be obtained here)
([a-z][0-9]) - Custom ring tone:
Ring agent phones with custom ringtone set here
(ex. )
([0-9][a-z]) - Custom sounds folder:
When Queue Callback is turned on, you will be able to add custom queue sounds that will be played in that case.
Example:
Create a new folder for these sounds in/opt/pbxare/pw/var/lib/asterisk/sounds/
and put your custom queue sounds here.
([a-z][A-Z])
TIP: Sounds should be named as follows:
- queue-youarenext – Your call is first in line and will be answered by the next available representative)
- queue-thereare – You are currently caller number
- queue-callswaiting – Waiting to speak with a representative
- queue-holdtime – The estimated call time is currently
- queue-minutes – Minutes
- queue-seconds – Seconds
- queue-lessthan – Less than
- queue-thankyou – Thank you for your patience
- queue-periodic-announce – All of our representatives are currently busy. Please stay on the line and your call will be answered by the next available representative
Operation Times
Set the queues open/closed times. Depending on the time when call is received, the call can be redirected to different EdgelessPBX MT destinations Operation Times
- Operation Times:
Enable operation times
(ex. Yes, No)
(Option buttons) - Default Destination
EdgelessPBX MT extension all calls are redirected to during the closed time hours
(ex. 1000)
([0-9]) - Greeting:
Greeting sound file played to callers during the closed times
(ex. greeting-***)
(Select box)Description of destinations follows in this priority order:
- Open dates: Sets the working hours during which DID is to redirect calls as set in DID Add/Edit window. If any call is received during the hours not set here, ‘Custom Destination’ are checked, and if they do not apply, the call is redirected to ‘Default Destination’ (Closed dates)
- Custom Destinations: Redirects all calls received during set hours to the EdgelessPBX MT extension provided here
- Closed dates: Sets the specific date when all calls are redirected to a ‘Default Destination’. If ‘Destination’ field in the Closed dates is set, call will not go to ‘Default Destination’ but to this number.
Redirect Extension
- Redirect Extension:
Max callers redirect extension number
(ex. If queue 2000 accepts a maximum of 4 users waiting at the same time, any new user that enters queue 2000 will be redirected to the extension number provided here)
([0-9]) - Redirect to Voice Mail:
Choose whether the redirect extension is a voicemail
(ex. Yes, No, N/A)
(Option buttons)
Queue Timers
- Queue Ring Timeout:
Number of seconds during which the members will be rung, after which the Position Announcement will be played to the caller, if it is enabled
(ex. Members extensions are ringing for 10 seconds. After that time, Position Announcement is played to caller and then Agent(s) are rung again).
([0-9]) - Prioritize Queue Timeout
Used to control the priority of the two possible timeout options specified for a queue. Queue Ring Timeout field has a timeout value that can be specified to control the absolute time a caller can be in the queue. The timeout value in queues.conf controls the amount of time (along with retry) to ring a member for. Sometime these values conflict, so you can control which value takes precedence. The default N/A setting will use Queue Ring Timeout value, same as setting this to Yes. No will override Queue Ring Timeout field and use value from queues.conf.
Options: Yes, No, N/A - Max Wait Seconds:
Maximum time a caller can wait in a queue. Once this time is exceeded caller will be redirected to ‘Max Wait Extension’ number.
(ex. User A is waiting 5 minutes already in the queue. If this field is set to 300(300s = 5min), A will be redirected to ‘Max Wait Extension’ so he doesn’t lose his mind waiting)
([0-9]) - Max Wait Extension:
This option works along with the ‘Max Wait Seconds’ field. Provide the extension to which caller will be redirected once time set under ‘Max Wait Seconds’ exceeds.
(ex. User A is waiting 5 minutes already in the queue. If ‘Max Wait Seconds’ field is set to 300(300s = 5min), A will be redirected to this extension so he doesn’t lose his mind waiting)
([0-9])
Empty Queue
- Join Empty
Set whether a caller can join a queue if no agent is logged in or unavailable
Example:
It is recommended to set this option to ‘No’. Do not allow user to enter the queue if the call will not be answered by anyone. Following options are available:- Yes – Join queue if no agents or only unavailable agents are in the queue
- No – Do not join queue if no agents available
- Strict – Do not join queue in no agents or only unavailable agents are in the queue
(Option buttons)
- Leave when empty
When there are no agents inside a queue, callers will leave it depending on the setting
Example:- No – This option is disabled
- Yes – If you wish to remove callers from the queue if there are no agents present
- Strict – If there are calls queued, and the last agent logs out, the remaining incoming callers will immediately be removed from the queue
(Select box)
- Empty Destination:
When queue doesn’t have any agent logged in, redirect callers to following destination
(ex. 7001)
([0-9])
Greeting
- Greeting:
Select a greeting file to play to all callers waiting in a queue.
(ex. Record a custom sound greeting file (e.g. ‘All our representatives are busy…’) and select that file. This file will be played to all callers once they enter the queue).
(Select box)
NOTE: File name has to be in the following format ‘queue-greeting-$NAME.gsm’ - Wait Seconds:
Delay time in seconds inserted before playing the greeting message. This delay is useful when users do not hear the beginning of the greeting message. Keep this value between 1-3 seconds.
(ex. John enters the sales queue, but cannot hear the beginning of a greeting sound file file (e.g. ..ur representatives are busy…). Set this option to 1. This will insert one second of silence before the greeting file is played and should fix the partial sound file error. Now, all callers entering the queue should hear the full greeting message (e.g. All our representatives are busy…))
([0-9])
Position Announcements
- Announce Hold-Time:
Enable callers waiting in a queue to hear the hold-time announcements.
(ex. Setting this option to ‘Yes’ will enable the hold-time announcements. A single caller waiting in a queue would hear a ‘Your call is now first in line and will be answered by the next available representative. Thank you for your patience’ message).
(Option buttons) - Announce Frequency:
How often to play the hold-time announcement message (time in seconds).
(ex. If this field is set to 30, a single caller waiting in queue will hear ‘Your call is now first in line and will be answered by the next available representative. Thank you for your patience’ message every 30 seconds).
([0-9])
NOTE: If you set this option to ‘0’, the announce message will not be played. - Min. Announce Frequency
The minimum number of seconds between position announcements. Default value is 15 seconds. - Periodic Announce:
This feature rounds announcement minutes and seconds to specific format.
([0-9]) - Periodic Announce:
Select the sound file that is played periodically to callers waiting in a queue.
(ex. Record a message ‘Hang in there buddy!’ and set it as a periodic announcement. This message will be played to callers every ‘Periodic Announce Frequency’ seconds)
(Select box)
NOTE: File name has to be in the following format ‘periodic-announce-$NAME.gsm’ - Periodic Announce Frequency:
Time interval in seconds at which the periodic message is to be played.
(ex. If this field is set to 30, all callers waiting in queue will hear the ‘Periodic Announce’ message every 30 seconds, as long as they stay in the queue).
([0-9]) - First Periodic Announce Delay
The minimum number of seconds between position announcements. Default value is 15 seconds.
Agents
Send Manager events
Options: Yes, No
When this option is set to yes, the following manager events will be generated: AgentCalled, AgentDump, AgentConnect and AgentComplete.
Ring Strategy
Set the way calls are transferred to queue members answering the calls.
Available options:
- ringall – Ring all available Members until one answers (default)
- linear – When used with static members linear ringing strategy will ring interfaces in the order specified in queues.conf configuration file for that specific queue, always starting at the beginning of the list. If used with dynamic members, the members will be rung in the order in which they were logged in.
- leastrecent – Ring Member with the least Queue calls
- fewestcalls – Ring Member with the fewest completed Queue calls
- random – Ring random Member
- rrmemory – Round robin with memory. Remember where we left off
- rrordered – Same as rrmemory, except the queue member order from config file is preserved so interfaces will ring in the order specified in this configuration file. If you use dynamic members, the members will be rung in the order in which they were added.
- wrandom – Rings random interface, but uses the member’s penalty as a weight when calculating their metric. So a member with penalty 0 will have a metric somewhere between 0 and 1000, and a member with penalty 1 will have a metric between 0 and 2000, and a member with penalty 2 will have a metric between 0 and 3000. Please note, if using this strategy, the member penalty is not the same as when using other queue strategies. It is ONLY used as a weight for calculating metric.
(Select box)
- Autofill:
Should callers be served one by one or in parallel fashion
(ex. With this option turned ‘Off’, even if there are five agents available calls will not be transferred to them until first caller waiting in a queue is connected to an agent. When first caller gets served, caller number two gets served and all other keep waiting. Obviously it is recommended to keep this feature always turned ‘On’ so callers can be served in parallel)
(Option buttons) - Ring Agents in Use:
Should agents in use be rang when new caller comes into queue
(ex. If agent is already in active conversation, with this option set to ‘Yes’ Agent extension will ring when new caller enters the queue)
(Option buttons) - Auto Pause
Autopause will pause a queue member if they fail to answer a call.
Options: No – Member will not be paused, Yes – Member will be paused only in the queue where the timeout took place, All – Member will be paused in all queues he/she is a member. - Member Delay:
This field is the same as RTP Delay, only this option is set for agent answering the queue calls. Before the call is transferred, custom queue information can be played to an agent so that agent knows from which queue the call is coming from. This solves the ‘half-played’ file problem. Keep this value between 1-3
(ex. Agent X is to answer the call coming from the queue. If the ‘Queue Announce’ is set to play custom sound file(‘This call comes from the Lobby Queue’) but only ‘…s call comes…’ is heard, set this field to 1 so that 1 second pause is added before the message is played and entire message is played ‘This call comes from…’).
([0-9]) - Retry All Timeout
Time interval in seconds, for how long to wait before trying the queue agent again.
(ex. If agent Smith cannot answer the incoming queue call and hangs up the ringing line, the call will not be transferred back to his extension for a time in seconds provided in this field).
([0-9]) - Timeout Restart:
Reset the internal timer if BUSY or CONGESTION is received from agent
(ex. A call enters the queue and is transferred to Agent X. Agent X has a Polycom phone (for example) and sends a BUSY signal by hitting the ‘Reject’ key. This will reset the internal timer. The call will be transferred to other queue agent(s). The original agent will not be contacted until all other agents are tried and the call does not get answered by any of them).
(Option buttons) - Wrap-up time
After a successful call, this will determine how long to wait (time interval in seconds) before sending a new call to a potentially free agent/member.
(ex. 4)
([0-9])
Agents Announce
- Agent Announce
Select pre-recorded message that will be played to the agent before the call is connected.
NOTE: In order to be displayed in the drop down list, sound file must have ‘agent-announce-‘ prefix. - Report Holdtime
Set this option to yes to inform the agent for how long caller was in queue before the call was connected.
Recordings
- Record Queue Calls:
Once this feature is activated, all queue calls will be recorded in the desired sound format.
(ex. John enters the ‘Sales’ queue and is transferred to ‘Queue Agent Smith’. Their entire conversation is recorded and available for review from ‘Reports’).
(Option buttons) - Use MixMonitor:
MixMonitor allows you to record conversations with the possibility to adjust the heard and spoken volume and to append the next conversation in the same file. So, at the end of the day, you could have all the conversations on one channel in one file. They will be stored in the same sequence, as they are made.
(ex. Yes, No, N/A)
(Option buttons) - Monitor format:
Select the audio format all queue calls with be recorded in. Available formats: gsm, wav and wav49.
(ex. John enters the ‘Sales’ queue and is transferred to ‘Queue Agent Smith’. Their entire conversation is recorded and available for review from ‘Reports’).
(Option buttons)
Incoming Options
- Incoming Options Set the advanced queue call options.
Available options:- t – allow the called user to transfer the calling user
- T – allow the calling user to transfer the call
- H – allow the caller to hang up by hitting *
- n – no retries on the timeout; will exit queues and go to the next step
- r – ring instead of playing MOH
([a-z])
- Ring (‘r’) timeoutWhen ‘r’ is selected as Incoming Options and this timeout is used, queue will first ring entered number of seconds after which MOH will start
(ex. 10)
([0-9])
Dial Options:
- t – Allow the called user to transfer the call by hitting #
- T – Allow the calling user to transfer the call by hitting #
- r – Generate a ringing tone for the calling party, passing no audio from the called channel(s) until one answers. Use with care and don’t insert this by default into all of your dial statements as you are killing call progress information for the user. Really, you almost certainly do not want to use this. Asterisk will generate ring tones automatically where it is appropriate to do so. ‘r’ makes it go the next step and additionally generate ring tones where it is probably not appropriate to do so.
- R – Indicate ringing to the calling party when the called party indicates ringing, pass no audio until answered. This is available only if you are using kapejod’s bristuff.
- m – Provide Music on Hold to the calling party until the called channel answers. This is mutually exclusive with option ‘r’, obviously. Use m(class) to specify a class for the music on hold.
- o – Restore the Asterisk v1.0 Caller ID behavior (send the original caller’s ID) in Asterisk v1.2 (default: send this extension’s number)
- j – Asterisk 1.2 and later: Jump to priority n+101 if all of the requested channels were busy (just like behaviour in Asterisk 1.0.x)
- M (x) – Executes the macro (x) upon connect of the call (i.e. when the called party answers)
- h – Allow the called party to hang up by dialing *
- H – Allow the caller to hang up by dialing *
- C – Reset the CDR (Call Detail Record) for this call. This is like using the NoCDR command
- P (x) – Use the Privacy Manager, using x as the database (x is optional)
- g – When the called party hangs up, exit to execute more commands in the current context.
- G (context^exten^pri) – If the call is answered, transfer both parties to the specified priority; however it seems the calling party is transferred to priority x, and the called party to priority x+1
- A (x) – Play an announcement (x.gsm) to the called party.
- S (n) – Hang up the call n seconds AFTER the called party picks up.
- d: – This flag trumps the ‘H’ flag and intercepts any dtmf while waiting for the call to be answered and returns that value on the spot. This allows you to dial a 1-digit exit extension while waiting for the call to be answered – see also RetryDial
- D (digits) – After the called party answers, send digits as a DTMF stream, then connect the call to the originating channel.
- L (x[:y][:z]) – Limit the call to ‘x’ ms, warning when ‘y’ ms are left, repeated every ‘z’ ms) Only ‘x’ is required, ‘y’ and ‘z’ are optional. The following special variables are optional for limit calls: (pasted from app_dial.c)
- + LIMIT_PLAYAUDIO_CALLER – yes|no (default yes) – Play sounds to the caller.
- + LIMIT_PLAYAUDIO_CALLEE – yes|no – Play sounds to the called party.
- + LIMIT_TIMEOUT_FILE – File to play when time is up.
- + LIMIT_CONNECT_FILE – File to play when the call begins.
- + LIMIT_WARNING_FILE – File to play as a warning if ‘y’ is defined. If LIMIT_WARNING_FILE is not defined, then the default behavior is to announce (‘You have [XX minutes] YY seconds’).
- f – forces callerid to be set as the extension of the line making/redirecting the outgoing call. For example, some PSTNs don’t allow Caller IDs from other extensions than the ones that are assigned to you.
- w – Allow the called user to start recording after pressing *1 or what defined in features.conf, requires Set(DYNAMIC_FEATURES=automon)
- W – Allow the calling user to start recording after pressing *1 or what defined in features.conf, requires Set(DYNAMIC_FEATURES=automon)
Exit Digit
- Use Exit Digit
Should users be able to exit the queue by dialing a single digit and be automatically redirected to a preset EdgelessPBX destination.
Example:
John enters the sales queue. A greeting message explains that the user may quit the queue by pressing the digit defined under the ‘Exit Digit’ option, and be transferred directly to the operator or some other destination (set under ‘Extension’ option).
(Options buttons) - Exit Digit
Define the exit digit here. Once this digit is dialed by the user waiting in queue, it will transfer the call directly to ‘Extension’ destination
Example:
John enters the sales queue. The greeting message explains thatthe user may quit the queue by pressing the digit defined here (e.g. 9) and is transferred directly to the operator or some other destination (set under ‘Extension’ option).
([0-9]) - Extension
Local EdgelessPBX extension number that is dialed once the ‘Exit Digit’ is dialed.
(ex. John enters the sales queue. The greeting message explains that the user may quit the queue by pressing the digit defined under the ‘Exit Digit’ option, and be transferred directly to the EdgelessPBX extension defined here).
([0-9])