Yate as a PBX
(→Call hunting) |
(→Custom features) |
||
(2 intermediate revisions by one user not shown) | |||
Line 55: | Line 55: | ||
===Custom features=== | ===Custom features=== | ||
− | If you want to add additional features to your PBX you will probably need to define them in the routing logic or a combination between extending [[pbxassist]] configuration file and the routing logic. | + | If you want to add additional features to your PBX you will probably need to define them in the [[How_To's#Routing|routing]] logic or a combination between extending [[pbxassist]] configuration file and the routing logic. |
'''See also''' | '''See also''' | ||
Line 61: | Line 61: | ||
* [[javascript]] | * [[javascript]] | ||
* [[How_To's#Routing|Routing]] | * [[How_To's#Routing|Routing]] | ||
+ | * [[Standard PBX keys]] | ||
+ | |||
+ | [[Category:PBX]] [[Category:Server]] |
Latest revision as of 17:20, 31 October 2013
Yate can be used as a PBX. Depending on the functionality you want you can use a combination of Yate modules and external scripts.
Because putting it all together can be a hassle and can take quite a lot of time, Null Team launched FreeSentral, a full IP PBX based on Yate that is easy to set up and use.
By default Yate's PBX functionality is disabled because it reduces the number of calls Yate can handle for other types of setups. That is because in order to offer PBX features Yate needs a lot more control over the call leg than it's usually needed for other types of setups. This allows us to have control over the telephony channel without having a performance issue.
Contents |
[edit] Yate modules and scripts for PBX functionality
- pbxassist - Configurable PBX with hold, transfer and conference capabilities
- moh - Music on hold
- conference - Conference module
- park - Call parking
- pickup - Call pickup
- pbx - support modules for other modules
- queues, queue_in.php, queue_out.php - Queues and call distribution to operators
- voicemail.php, leavemail.php - Voicemail support
[edit] Basic PBX functionality in Yate
The basic PBX functionality in Yate is implemented in pbxassist module. This module offers support for putting a call on hold, starting and managing a confereces and performing attended and unattended call transfer.
Note: This module is not loaded by default
[edit] Additional PBX functionality
[edit] Call parking and pickup
Yate offers modules that implement call parking and picking up but the logic for this is custom. The used keys and how you define the parking orbits logic is up to you.
The easiest way to get this working is to extend the pbxassist configuration file to catch more pressed digits. You can define custom sections for call park and pickup.
When user presses this digits a chan.operation message will be emited with a custom "operation" parameter. This message can be handled by a javascript/external script.
[edit] Voicemail
In share/scripts directory from yate's sources you can find voicemail.php and leavemail.php.
- leavemail.php - is used to record a voicemail message for a user. If user doesn't answer call for a specific period of time or is offline you have to route a call to it.
- voicemail.php - users use this to listen and manage their voicemail messages. You associate a number with this service. When call to this number is name you have to route call to it.
See IVR Setup to get an idea on how to set this up.
[edit] AutoAttendant
The Auto Attendant is a service that greets the user and allows him to reach different branches of a company.
In Yate this is usually an IVR script.
See Writing an IVR for instructions on how to build your own.
[edit] Call forwarding
Call forwarding is completely a routing feature. To set this up you have to implement the forwarding rules. Basic rules (for few users) could be added in regexroute but most of the time this won't be enough. The rules are usually stored in a database so routing would have to be implemented in register module or custom javascript/external script.
Depending on how complex this rules are you will probably need to use the callfork module to define them.
[edit] Call hunting
This is also a routing feature for which you will need callfork. Using callfork you can setup sequential/circular/and a lot of other dialling patterns.
[edit] Queues
You can use the queues module that implements queuing of incoming calls and distribution of these calls to operators using database queries.
[edit] LCR/multiple dial plans
This should be implemented in the routing logic. Distributing the calls between the various providers is up to you.
[edit] Custom features
If you want to add additional features to your PBX you will probably need to define them in the routing logic or a combination between extending pbxassist configuration file and the routing logic.
See also