Why Vodia

The Vodia PBX has grown over more than a decade into a software product that addresses a wide range of requirements in the business communication space. Designed for multi tenancy operating on a public IP address, the PBX has had a focus on robustness and resilience from the first release.

Extensions

Extensions are at the core of every PBX. Extensions on the Vodia PBX have multiple numbers, DIDs and ANIs for inbound and outbound call identification. Each extension has a name, a company position and passwords for web and SIP access. Each extension may have its own timezone, web and IVR language and have an image associated with the extension which can be shown on VoIP phones that support showing a photo caller-ID. Extensions can have their own ringtone, permissions for various actions, address book and music on hold source.

Redirection

The PBX handles basic redirection features like do not disturb (DND) and call forward on busy, on timeout, when there is no registration or of all calls. When calling a specific PBX, other extensions can also be included in the call like in a hunt group for every extension. Users can log in at other extensions, a feature called hot desking on the Vodia PBX. Each extension may have multiple registrations which ring simultaneously when the PBX wants to engage with the user

Cell Phones

Every extension can have multiple cell phones associated with it. When someone calls the extension, the PBX will immediately or after some time include the cell phone as if it was a registered extension. This feature can be limited to specific times during the day, so that users don’t get annoyed by the calls after hours. Cell phones can also be used to place outbound calls. This makes sure that the extension outbound number is shown on the caller's display and calls are charged to the PBX, which can be important for international calls. Cell phones can also be part of hunt and agent groups, further extending the user's mobility even in environments like call centers or sales and support groups. The PBX can send text messages to the user's phone, for example when a new voicemail message is available. Those messages can even include the audio recording, if supported by the text provider.

Call Recording

Calls to and from extensions can be recorded automatically or manually. They can be recorded if the call was within a hunt group, an agent group or a direct call to the extension. Outbound calls can be recorded as well. Depending on the VoIP phone being used, the recording status can be made visible on a button of the phone, where the recording can also be turned off. The recordings can be written to the local file system or using the SIPREC standard. When they are written to the file system, users can play them back through the web interface or through a special code that starts the playing back of all call recordings. This is useful when users or managers have time to review call recordings. Recording of emergency calls can serve as valuable proof in case of prank calls, especially in public environments where people have access to phones without further authentication.

Call Transfer

Transferring calls is a core feature of every PBX. The PBX supports various attended and unattended transfers that are triggered by the user's VoIP phones. In addition to that, calls can be parked on park orbits. In order to avoid caller starvation, the PBX can automatically reassign parked calls or transfer them out of the orbit. Special modes are available to transfer calls to and from cell phones, so when arriving or leaving the office, the call does not have to get disconnected.

SPAM Call Handling

Receiving unwanted and sometimes threatening and dangerous calls has become a problem for many businesses that costs valuable time. The PBX integrates with several SPAM score providers that determine if a number is considered SPAM and returns a score. Depending on the score, the PBX decides what to do with the call. The internal address book can also be used as a source for SPAM scoring, including the possibility to allow calls only from whitelisted numbers. This includes handling of anonymous calls.

Automatic Setup

After the PBX has been installed, it automatically determines the geographic location. If the location matches one of the known countries, the PBX automatically sets the country code, the time zone, the language and downloads the right audio files for the local language. Administrators don't have to jump through all the hoops to setup the PBX the right way and instead can focus on setting a name for the system and assigning extensions to users.

Location Information

Every extension and every domain can have location information assigned. This is important when the PBX is used in schools, hotels, nursing homes or other places where the location for an emergency call is required. Also for users that frequently work from home, this can provide important information when calling an emergency number. The PBX supports select API for pulling the location information from trunk providers, eliminating the need to enter and maintain the location information.

Device Management

Interoperability has come a long way. Today there is a large choice of VoIP phones in the market that serve practically all needs in the market. The PBX takes care of discovering the devices in the LAN, configuring them to fetch the configuration from the PBX and then generating the files on the fly. The devices can be paired similar to Bluetooth or WLAN devices, eliminating the need to enter passwords. For devices that have buttons, the PBX lists the buttons along with the available modes, so that the domain administrator and the user can assign functions to them. For cloud provisioning, the PBX supports multiple vendors remote provisioning API for zero touch plug and play.

Troubleshooting

When things are not working as they are supposed to do, the PBX offers a few tools for easy troubleshooting of problems. Each domain contains their own log file, which is a key productivity feature in multi-tenant environments. For resolving problems with calls, the PBX can generate PCAP files that provide useful information of why the call did not work as it should. Log files can be automatically deleted after a few days, providing a long enough history without the risk that the hard drive fills up over time.

Monitoring

The PBX comes with built in SNMP sensors that can report important information about the current status of the PBX, including number of calls and registrations and whether specific trunks are registered. The PBX can send out an email every midnight about the performance of the last day. The PBX keeps track of MOS scores and supports the RTCP-XR protocol for measuring inbound as well as outbound traffic quality.

Certificates

In order to make secure communication possible without devices and browsers complaining about untrusted certificates, the PBX supports the ACME protocol to automatically generate those certificates for each domain in use. When used together with the DNS REST client in the PBX for selected DNS providers, the PBX can even generate and automatically renew certificates for devices that are in the LAN. For PBXs that operate on public routable IP addresses, the PBX can generate certificates without DNS control. Where supported, the PBX provisions the certificates to the VoIP phones, so that they can use a secure connection to the PBX.

Session Border Controller

In order to make traversal of firewalls and NAT routing easier, the PBX includes a Session Border Controller (SBC). It makes far-end NAT for home offices possible and also enables the PBX to operate behind NAT as well. The PBX works with multiple adapters and supports a mix of IPv4 and IPv6 addresses, so that it can be used in multiple VLAN, VPN, LAN and WAN. Automatic white- and blacklisting makes the PBX robust against popular VoIP attacks. This is critical for operating the PBX on a public IP address in multi-tenant environments, but also important to protect single-instance installations from fraud.

Multi-Tenant Support

For hosted PBX, the PBX can handle multiple domains on the same server. The tenants share the same IP address similar to web servers, tremendously reducing maintenance work. Each domain can have its own login, accounts, its own TLS certificate, its own CDR and recording logs and troubleshooting logs, providing a complete tenant experience. Administrators can limit what the domain administrators can see or change in their domain, for example take away control over SIP trunks and DID assignments. Each domain may use its own logo and their own customizations if necessary.

Mailbox

The mailbox is another standard feature that practically every PBX offers. The Vodia PBX can play various announcements, including the name of the extension or a choice of personal greetings. When there is a new message, the PBX notifies the user via the message waiting indication of the VoIP phone, by email or by SMS. If a message is not retrieved within a certain time, the PBX can call the user up and deliver the message. This can be escalated to a manager that will be called if the user did not retrieve the message. Messages can be shared with other mailboxes. The PBX integrates with the Google Speech-to-Text API for converting the recorded message into a text preview.

Auto Attendant

The auto attendant helps to direct incoming callers to the right account on the PBX. It supports a multitude of pre-recorded or custom announcements. Callers can search for users by their name. Together with service flags, the routing can be programmed depending on time of day. The routing can be programmed remotely for days when it is not possible to get to the office (snow days). The auto attendant includes dual language support.

Conferencing

The PBX contains an audio bridge for conferencing participants in. Conferences can be ad-hoc where participants just dial into a conference room, possibly protected by a PIN code. They can also be scheduled, where each participants receives an invitation that can be added to the calendar. The PBX can also call up the participants. In call-to-conference mode, the PBX calls a list of participants up whenever someone enters the conference room. This is typically used for emergency calls where multiple people need to be given information about an important event. Conference calls can be recorded for later review.

Hunt Groups

For low call volume groups, hunt groups provide an easy way to distribute calls in a group. Incoming calls are handled in parallel to other incoming calls. The PBX supports three call stages that escalate calls to different group of participants. Ring melodies and music on hold can be assigned specifically for the hunt group. Hunt groups can also include regular phone numbers and cell phones in the stages. Calls can be recorded for each hunt group, and the PBX can send out emails about the calls at the end of the day.

Agent Groups

Agent groups are more powerful in distributing calls in a group. Callers are lined up; the PBX can announce waiting positions and estimated waiting time. While waiting, the PBX can mix announcements into the music on hold. The PBX can render speech that announces call recording and other messages. As with hunt groups, agents are called on their VoIP phones, their Web UI, or on their cell phones. Agent groups can handle multiple identities and announce the identity at the beginning of the call. This is useful in virtual offices where front desk staff answers calls on behalf of clients. There are different algorithms for distributing the calls, and there are ways to measure agent performance. Callers can automatically be added to the domain address book, ensuring that revisiting callers reach the same agent each time when possible.

Outbound Calling

In addition to the inbound calling, agent groups also support calling up lists that have to be uploaded through the PBX web interface. The PBX can either have the agent initiate the call or start calls autonomously and then assign calls to available agents.

Paging

Sending a one-way audio message to users is an efficient and fast way of communication in teams. For example, in shops users can trigger overhead pages, or the PBX can schedule lunch break pages. The PBX supports unicast or multicast paging, peer-to-peer multicast for optimal performance. Pages can be live, recorded or uploaded. Recorded pages avoid echo loops. It is even possible to send a confirmation email when the page is completed.

Hospitality Integration

In order to integrate with property management systems (PMS) the PBX includes a PMS client that can send CDR to the PMS, and report maid codes and do-not-disturb events. For hotels, the admin can define whether room-to-room calls are allowed and what dial plans clients can use after check in, depending on their check-in type. Guests can program their wake up call through the phone in the room. The PBX supports popular hotel room VoIP phones as well as FXS gateways for simple hotel room phones.

CRM Integration

The PBX comes with a CRM integration. The HubSpot integration generates a record for each call and automatically adds a contact if the number was not found in the contact list. The SaleForce integration plugs into the SalesForce web interface and serves as a softphone within SalesForce. As further generic methods, the PBX supports ActionURL and server-side EMCA script for integrating with non-mainstream CRM systems.

Call Data Records

Call data records (CDR) provide important information about what calls were made on the system. They can be written as simple CSV files to the file system, or sent over HTTP and TCP connections to remote servers for storage and further processing. The PBX is even able to send records directly to MongoDB and MySQL (coming soon). Complex records contain information about the call legs and call recordings in JSON or XML format. There are several ecosystem partners that accept Vodia PBX CDR into their CDR processing system for billing and analytical purposes.

Address Books

Each extension and each domain has their own local address book which can be used to look up incoming numbers, determine whether to admit or reject calls and to place outbound calls using speed dial numbers. The address book is integrated with VoIP phones that support the LDAP protocol. In addition to that, the PBX integrates with Microsoft and Google contacts and automatically downloads the address from there.

REST API

The PBX uses a REST API in the web interface for all interaction with the inner settings of the PBX. The API is available for programming tasks on the PBX like creating accounts, retrieving lists or setting redirects. This makes it possible to run the PBX as a functional entity in the network and automate steps like creating domains, settings, rates and whatever would otherwise have to be done manually.

SIP Trunks

In order to connect the PBX to the public telephone network, the PBX uses one or more SIP trunks. It comes with a list of known providers where the administrator has to enter only the username and the password in order to set the trunk up. One or more dial plans distribute outbound calls on the trunks, making it easy to use different trunks for different routes. Outbound calls can be protected by PIN code and users can be prompted to enter a client matter code for each call. SIP trunks can use TLS and SRTP on the Vodia PBX if the trunk provider supports that.

Email

Every extension should have an email address associated with it. If the email address is a Google account, this email address can be used to log into the account without a password. The PBX can send emails when there is a new voicemail, when there was a missed call or just for every call. It can also send emails when the status of the extension has changed, for example DND was turned on. The user frontend contains a small instant message tool where agents can send messages within the PBX through the web interface.

Web UI

Users can also log into the web interface of the PBX. There they can manage their settings, their address books, set up conferences and many more things. They can also use the web browser as a soft phone, make and receive calls all through the same user interface. The web interface can also be used on mobile devices, turning the mobile phone into a softphone as well. Our Android app runs the web UI in a small app that links it to the telephone.

FAX Support

When someone wants to send a FAX, the PBX can detect this and route the call to the right destination. The PBX supports the T.38 protocol which makes FAX transport more robust against packet loss. When using T.38, the PBX can also receive a FAX and forward it by SMTP to the user's email account as a PDF attachment. Extensions may have separate FAX numbers, so that FAX calls do not collide with regular voice calls.