Yate as a PBX

From Yate Documentation
(Difference between revisions)
Jump to: navigation, search
(Call forwaring)
(Call forwaring)
Line 42: Line 42:
 
====Call forwaring====
 
====Call forwaring====
 
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 [[Regular expressions|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.
 
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 [[Regular expressions|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.
 +
<br/>
 +
Depending on how complex this rules are you will probably need to use [[Call Forker|the callfork module]].
  
 
====Call hunting====
 
====Call hunting====

Revision as of 14:15, 16 August 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 creating a performance issue.

Contents

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

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

Additional PBX functionality

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.

Voicemail

In share/scripts directory from yate's sources you can find voicemail.php and leavemail.php.

  • leavemail.php - 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.

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.

Call forwaring

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.

Call hunting

Queues

LCR/multiple dial plans

Custom features

Personal tools
Namespaces

Variants
Actions
Preface
Configuration
Administrators
Developers