Vodia PBX Documentation

Vodia PBX Documentation

Resources

The Vodia PBX has grown for more than ten years into a complex tool that offers a lot of features, but also requires the know-how on how to run it. On this documentation portal you can find information on how to configure and operate the Vodia PBX. On the left side of the page, you can find the documentation structure. Although we also support mobile devices, the documentation layout is most useful on large screen devices.

In addition to this web page, there are additional documentation and support resources available:

  • Forum. You are welcome to participate in the interactive forum at forum.vodia.com. This is a public question/answer forum sorted by topics, where you may search for similar questions that you might have or raise new questions. The forum is searchable, so that you might find the answer to your question without having to wait for someone to respond.
  • Ticket. If you like to open an individual trouble ticket, please visit vodia.zammad.com Individual tickets can be useful if you need someone to log in to your PBX, take a look and potentially fix the problem for you.

If you find errors or missing pieces in the documentation, or you think that certain parts of the documentation need to be improved, please open a ticket with us and be as specific as possible. It can be hard to document software with a look from the inside. We appreciate feedback that helps us to improve the customer experience.


Videos

For certain topics we have recorded videos that show how to use the PBX. Documentation that contain videos are tagged with a YouTube logo Image removed. next to their link. If you feel that we need to address specific other topics, please feel free to let us know what you would like to see.


Ports Used by the Vodia Phone System

When deploying the Vodia PBX with cloud service providers like AWS, Azure , Google Cloud or Digital Ocean it often becomes necessary to set the firewall up for the PBX. Port forward the following ports in your cloud firewall environment in order for your remote uses to connect and register SIP desktop phone as well as eliminating one way audio. The numbers in the table are the default. They can be changed from the PBX web interface. You can also check with netstat what ports are open on the PBX.
If you want to use only use the Vodia apps from outide of the LAN, you need to open only he HTTPS and the RTP ports. For the apps to work, HTTPS does not have to be on the standard port 443.

Protocol Port Description Comments Required For
UDP and TCP 5060 SIP Used for SIP signaling internal and external for remote users. VoIP phones, SIP Trunks
TCP 5061 SIPS Used for secure SIP signaling internal and external for remote users VoIP phones
TCP 80 HTTP Port used for web site access and LetsEncrypt robot. For LetsEncrypt to work, this port number must be 80 and cannot be changed. LetsEncrypt Robot
TCP 443 HTTPS Port used for web page access from users and apps Apps and User Login
TCP 2345,2346 LDAP Ports are used by many VoIP phones for looking up address book entries VoIP phones
UDP 49152-65535 RTP Choose a large range of RTP ports to avoid possible conflicts and reduce the risk of outside traffic hitting the ports VoIP phones and Apps

Most ports can be changed to random port numbers. This reduces the exposure to scanners. Because in most cases VoIP phones are provisioned automatically, ports 5060 and 5061 can be on random ports. The LDAP ports are by default on non-standard ports. Port 80 needs to be on the standard port to have the LetsEncrypt certicicate service work properly. Port 443 can also run on a non-standard port, the system will automatically redirect from port 80 to the right port. However when users are supposed to log in, it is recommended to keep the standard port 443 so that the URL does not contain a port number.

Telling the PBX what address to use

For servers that don't have a public IP address on their local network interface (e.g. EC2) the PBX needs to know what IP address to present to the SIP devices. In admin mode, navigate to Settings → SIP → Settings and set the IP routing list .

  • If you are using the URL for polling the public IP address, you can use the keyword "public" which will be replaced with the actual public IP address. The PBX will automatically determine the public IP address.
  • If you want always to present a specific public IP address, you can just put the IP address there, for example "23.24.25.26".
  • If you want to send packets to devices in the private network, you can use the keyword "private". For example "private public" would check if the destination is a private IP address and the server has a private IP address in that subnet, then it would use the private IP address. Otherwise it would use the public IP address.

Using the SIP IP replacement list is usually not necessary and creates unneeded complexity and problems. If the public IP address keeps changing, the PBX can download the address from a public IP address API (e.g. api.ipify.org). If the address does not change, the address polling is not neccessary. The system will automatically learn its public IP address from the Vodia license server during startup.

httpsdocvodiacomsitesdefaultfilesinline-imagesScreenShot2020-09-11at45145PM.png


Settings

The Vodia PBX system has multi-tenant capability. To implement this functionality, the Vodia PBX uses domains. A domain can be thought of as a logical group of users and is very similar to email domains. Users within the same domain on the Vodia PBX can call each other without going through a trunk. They can also access the same address book and share features, such as call monitoring and call park/pickup.

A Vodia PBX domain name should be fully qualified and configured in the DNS server so that traffic can be routed to the proper IP address of the PBX. If this is not possible, then you can set the outbound proxy field in the system. This will configure the registrar to the domain name. If you have only one domain on the system, be sure to leave the alias local host as the domain name or as the alias to it. This will enable the Vodia PBX to locate extensions without looking at the domain name.

Entire domains can be exported for use for other domains using a .tar file.

General Settings

Go to your selected domain in the Vodia PBX web interface. Click on General Settings under Advanced as shown above.

General

If you have more than one emergency number, use a space between the numbers (e.g., 911 199). By default, this setting is blank (i.e., it is not set to 911).

  • Name of the Domain: This field allows you to give the domain a descriptive name. The name can contain special characters and spaces and may include upper and lowercase characters. The name will be used by the system when sending emails with call data records for the domain. This name is independent from the domain name that is set by the system administrator.
  • Default Dial Plan: This dial plan will be used by the domain, but users can override this with their own dial plan based on need. Most of the accounts in a domain will use the default dial plan. If you do not set a default dial plan, you will likely have problems placing outbound calls. Therefore, it is strongly recommended to choose a default dial plan.
  • Default IVR Language: This setting can be configured by the administrator and is not needed on the domain level in single-domain environments.
  • Google sign in client ID: The ID for signing in with Google, see Login with Google .
  • Google contacts client ID: The ID for the Google address book, see Google Contacts .
  • Google contacts client secret: The secret for the Google address book, see Google Contacts .
  • Pattern list for setting the IVR language from caller-ID: When determining the language for the audio prompts, the PBX can try to match a list of patterns against the caller-ID for the incoming call and if it matches, set the language accordingly. The format for this list is (space-seperated) "pattern:lang". The pattern is matched against the first digits of the caller-ID, which is first converted into the global format. The language must be one of the installed languages. For example "49:de 33:fr" would choose German if the call comes from a number starting with "+49xxx".
  • Tone Language: This setting can be configured by the administrator and is not needed on the domain level in single-domain environments.
  • Default Web Language: This setting can be configured by the administrator and is not needed on the domain level in single-domain environments.
  • Music on Hold Source: You can select the source of music that will be used when a call is put on hold. The party who is on hold hears the music that is chosen here. See also Chapter 21, "Music on Hold."
  • Ringback source This settings overrides the system default ringback tone for the domain.
  • Ringback when busy This settings overrides the system default ringback tone when busy for the domain.
  • Timezone: The system can handle multiple time zones simultaneously, making it possible for users to select a time zone that corresponds with their geographic location. This setting influences the time on mailbox messages and the telephone display. Before the system can apply the time zone to the user's extension, it needs a time zone configuration file (timezones.xml). The name of the time zones is reflected in the lang_xx.xml file, where xx is replaced by the respective language.
  • Default location If there is no location assigned to an extension, this setting will be used.
  • Country Code: This setting determines how phone numbers are processed. Typically the setting is set automatically during installation. Leaving the setting empty will disable processing phone numbers.
  • Area Code: This is the telephone area code for the domain. This is generally NPA in the NPA-NXX-XXXX number (e.g., 978, 212, etc.). If you put a "-" there, it means that the area code is explicitly set to null; this is necessary in some countries that don't use 0 as the domestic calling prefix.
  • Starting characters to be removed from outbound numbers: In old PBX systems, users had to dial prefix numbers in order to make outbound calls (for example, "9"). Even though with modern PBX that pattern is not useful anymore, there are still users that can't dial numbers without such a prefix. In such situations, this setting defined what number the PBX will remove from the beginning of the number that the user has dialed.
  • Default ANI Using this setting, you can configure each domain with a default ANI (Automatic Number Identification). For more information, see Trunk ANI .
  • Classroom DND Override - Use this setting to give the admin permissions to over ride the DND set for any classroom extensions.
  • Classroom DND Control - The service flag can be assigned to this setting, to take effect permissible by time set under different service flags.
  • Extensions may use star code to change ANI This setting determines weather users in the domain may use the code for changing the ANI (*59 by default). There are several possibilities for this setting:
    • Cannot change ANI (default): This essentially disables the feature.
    • Only own ANI: Every account may have several ANI. This option will put the selected ANI at the front of the list, essentially making it the primary ANI of the account. This option makes sure that the user cannot take a ANI from another account.
    • Any ANI in this domain: With this option, the user can assign any ANI that exists in the domain to the account. This makes it possible to move ANI around in the domain.
    • Any NANPA ANI: With this option, the user can set up any ANI with 10-digits (NANPA = North American Numbering Plan Association). The SIP trunk provider has to be able to present that number.
    • Enter any ANI: Using this option, the user can assign any number as ANI for the extension. This will again require that the SIP trunk provider will be able to present the number.
  • Trust Caller-ID This setting is used to specify whether the caller-ID should be used to authenticate, rather than asking users to enter their PIN numbers.
  • Emergency Numbers This setting allows you to establish which numbers will be considered "emergency numbers" on the domain. Once the user dials an emergency number, the system sends an email alert to the configured extension if an alert has been configured for this type of system event . The system also dials the local police station number that was entered into the user's Emergency Destination Number setting. To set the callback number for the user, see the EPID setting. A general callback number for all users across the domain can also be set using the ANI for emergency setting.
  • Emergency call emails The system will send an email to the provided addresses when someone dials an emergency number. The list is seperated by semicolons.
  • ANI for emergency calls This ANI will be used when a user dials an emergency number unless there is more specific information available on extension level.
  • Paging account for emergency call notifications The system will initiate a page to the specified account when someone dials an emergency number.
  • Default auto attendant The default auto attendant is used when the system needs an auto attendant number, for example in the virtual private assistant. The setting is also used when there is no routing rule for a trunk and the destiantion cannot be found.
  • Use last 7 digits when cellphone matching: In some cases, the admin might have saved only last 7 digits of the cell phone in the PBX database. This setting comes in handy to force the PBX to perform a search based on the last 7 digits of the received number.
  • Send welcome email when an extension is created: If this setting is checked, new users will automatically receive a welcome email.
  • Delete all aliases when deleting the primary account: Aliases will be deleted when primary accounts are deleted.
  • Send P-Asserted Header in calls to extensions: When this setting is turned on, the system will include the header when calling extensions. This is useful in some environments when the extension name should be on the display.
  • Park reminder: When someone parks a call, there is a risk that this call stays in the park orbit for a long time, without anybody taking care about the caller. The park reminder will call the one who parked the call back after a certain timeout if the call was not picked up by somebody else.
  • Transfer reminder after: Similar to the park reminder, there is a risk that after a blind transfer the caller ends up with a ringing call, but nobody picking up. The transfer reminder will transfer the call back if the call could not be connected.
  • Disconnect the call on these error codes from a forked leg: This setting affects the behavior of the auto attendant and the call of extensions outside of group calls. If the PBX receives an error code that is listed in the space-separated list in this setting, it terminates also all other forked calls to the extension and treats the call as rejected by the user.
  • URL for sending text messages to cell phones: When the PBX needs to send a text message to the domain administrator, it uses the URL provided in this setting. For more information, see Event Notifications .

From/To Headers

  • Change names in To/From-headers: Usually it is okay if the system changes the names in the To/From headers in the SIP packets. For example, this makes sense when the address book matches the caller-ID and the system should present the address book entry. However, if the system is used as a SIP device in an operator environment, you may want to make sure that the system does not change headers. In such cases, this setting should be set to No .
  • Use extension ANI for DISA: When a user places an outbound call from from his cell phone, the system uses the ANI of the extension and not not the Caller-ID of the cell phone. With this settings this behavior can be changed on domain level.
  • Account name display format: This setting controls how names are put together when the first name and the last name needs to be represented in one string.

CDR Settings

  • CDR URL: The CDR URL field controls where CDRs are written. The system can write CDRs to a CSV file, an email address, a server address, or to a SOAP destination. To populate the CDR URL field, use the syntax shown below. CDRs can be viewed only after they have been collected and organized through an external call accounting application. For more information, see the CDR documentation.

Billing Settings

Use address book: The system will automatically take the CMC from the address book record.

  • CMC authentication for outbound calls: This setting works in tandem with the "C" checkbox located in the dial plan. When the "C" is checked on a particular trunk in the dial plan, this domain setting will be used to generate the CMC for the CDR when that trunk is used for an outbound call; otherwise, it will be ignored. The following indicates how the CMC will be generated for the CDR:

  • These next options apply to CMC codes that have been generated by the third-party software that is being used to do the billing. If the CMC codes are 4 digits, choose the "4 digit" option; if they are 5 digits, choose the "5 digit" option, etc. If they are a combination of digits, then use the "Terminate CMC with #" option. This will enable the caller to enter CMC codes are varying lengths, followed by the # sign.

    • Terminate CMC with #: The CMC has to be terminated explicitly with a # sign
    • 4..10 digits: The length of teh CMC is fixed to 4..10 digits. There is no need to terminate the CMC.
  • Billing Tones: This field allows you to configure whether domain users will hear a beep during the call when using the pre-pay feature of the system.

    • No tones: The system does not play any tones
    • Beep for every charge unit: The system plays a short beep for every minute which is charged
    • Beep only for last charge unit The system plays a tone only when the last available minute has started
  • Credit for outbound calls: This setting allows you to place a limit on outbound calling for the entire domain. Once the extensions as a group have reached the maximum, outbound calls can no longer be placed.

Recording Default for this Domain

This section allows you to define domain-level call recording settings. Recorded calls will be saved in the recordings directory.

  • Record incoming calls from hunt group: This setting controls the recording on an extension (applies to calls coming from the hunt group for the entire domain).
  • Record incoming calls from agent group: This setting controls the recording on an extension (applies to calls coming from the agent group for the entire domain).
  • Record incoming calls from extension: This setting controls the recording on an extension (applies to calls coming from another extension for the entire domain).
  • Record outgoing calls to internal numbers: This setting controls the recording on an extension (applies to calls going to another extension for the entire domain).
  • Record outgoing calls to external numbers: This setting controls the recording on an extension (applies to calls going to external numbers for the entire domain).
  • Record outgoing calls to emergency numbers: This setting controls the recording on an extension (applies to calls going to an emergency number).
  • Play a message before start recording: When this setting is turned on, the PBX will play a message when recording has started. This is to tell the involved parties that recording is in progress.
  • Customer ID and Site ID: These settings can be referenced in the file names, so that each domain can have a unique identifier. This is important when using external tools that process the recording files. This setting is available since version 5.3.2.

Midnight Events

At midnight, the system can perform several maintenance tasks, including the generation and sending of CDR reports.

  • Send daily CDR report to: The system sends daily CDR reports to the email addresses listed in this field. Use semicolons between multiple email addresses, since email addresses may contain spaces (e.g., Fred Feuerstein <ff@domain.com >; Carl Clements <cc@domain.com >). To test this feature, click theTry button once you've entered an email address rather than waiting until midnight. Keep in mind that this is just a link, and you may have to save your list before clicking the link.
  • Reset DND Flags: DND is a major problem if users forget that they've set their extensions to DND and then open a trouble ticket next morning because they've stopped receiving calls! This setting can prevent that. When the Reset DND Flags has been enabled, the system resets all DND flags on the domain each day at midnight.
  • Reset Hot Desking: Forgetting to deactivate a Hot Desking situation has similar consequences to forgetting to turn off DND, so use this setting if you want the system to reset hot desking each day at midnight.
  • Reset Block CID: As with the previous two settings, this is another setting that is beneficial to reset each day at midnight.
  • Send emails to CDR email address for domain level blacklisted calls: When someone calls into the auto attendant, hunt group, or agent group and is put onto the blacklist, the system will notify the person who receives the CDR report. The report will be sent daily at midnight.
  • Log out agents from all ACDs: When this setting is enabled, all agents will be logged out of all agent groups each day at midnight.

Provisioning Parameters

When the system automatically generates files for the configuration of extensions, it needs a few settings from the domain.

  • Default PnP Dialplan Scheme: This setting allows you to set auto-dial and configure timeout-based dialing. These settings are used by the phone and not the system . The PnP Dialplan Scheme setting allows you to tell the system how many numbers your extensions contain (either 2, 3, or 4 digits). This will initiate automatic dialing once the required number of digits has been entered. If your extensions are all 3 digits long and include only digits 2 through 7, you should choose 3-digit extensions [2-7]xx. Then if a user dials 201, the system will identify that an extension has been dialed and will not wait for more digits. If NA is set and Country Code 1 is used, then anytime someone dials 1, the system will know to dial that country. For this reason, extensions should not begin with a 1.

User must press enter: When this scheme is selected, the user of the extension will be required to press the confirm button on the phone before the dialing will begin. This behavior is similar to cell phones, where users are required to press the green send button. This scheme can prevent problems because it is difficult to predict how many digits the phone must collect before it has enough digits for a complete number.

When the user is located in the North America area (www.nanpa.com ), the length of the number is predictable for national calls and calls of other extensions in the domain. However, calls to international destinations or star codes are difficult to predict, so users will be required to press the confirm button to start the call.

For other countries, the "Europe" scheme might be appropriate. As with the rest of the world outside of NANPA, the length of a telephone number is practically unpredictable and users will be required to press the confirm button to start the call. The "Europe" scheme will dial automatically only if the destination is another extension.

Note : If you want to create a customized dial plan, you can do this from either the snom phone or through the binary files of the system. In the case of the latter, you will need to request the appropriate file from snom and place it into the /html directory (you may need to create the html directory). After you have modified the file, save it and reboot both the phone and the system.

Example : In the event you want to exclude numbers higher than 5 from the default of [2-7]xx so that users will not be required to enter a 1 when dialing local numbers beginning with 604 or 778, you need to replace [2-7] with [2-5] in the file named snom_3xx_dialplan_usa3.xml (assuming you are using a snom phone).

  • Authentication User/Password: This setting makes it easier to carry out domain level settings of phones. Using this setting, the administrator can create identical user names and passwords for all devices in a domain.

This password will bypass users passwords. However, an extension@domain is still required. The default user name is admin, and the default password is password.

  • Authentication PIN: This setting allows you to override the user's PIN, which is used on the phone itself. Administrative access to the phone allows you to reset the phone.
  • Outbound proxy pattern: Using this pattern, the outbound proxy that is provisioned into the phones can be controlled. For more information on this subject, see Outbound Proxy .

When logging into the phone you will see a pop up of user/pass. You will use the credentials you have entered into the Provisioning Parameters section.

In most cases administrators overlook this setting but it should be the 1st setting you configure on the system if you plan to plug and play snom devices so that you can enter your phone's web interface.

If you want to use admin mode on the phone you will have to enter the Authentication pin.

Groups

There are many places where relationships between extensions and accounts need to be defined. For example, managers need access to certain ACD or front desk staff needs to be able to see who has a voicemail in the office. For this purpose, the PBX has groups. This concept was introduced in version 68 and replaces the previous concept of having a setting for every possible use case.
A special case is the user front end where the group defines what extensions are visible to the user. This is similar to the BLF feature on a desktop phone.

Attributes

Each group has the following attributes:

  • A name. This helps identifying the group. It typically also helps understanding what the purpose for the group is. For example "ACD Managers" would include the list of extensions that are allowed to manage ACD.
  • Permissions. A group can have zero, one or more permissions, for example the right to play back recordings and the right to change the address book. Each permission has a name which is just a short text and which is referenced throughout the code of the PBX when needed.
  • Members. Group members are zero, one or more extensions.
  • Scope. In many cases, the group members have a permission in regards to other accounts of the system. For example, a front desk person might have the right to call a VIP account. In that case the scope of the group would be the VIP account. There are other permissions that don't need a scope, for example the permission to edit the shared address book. In such cases the scope is ignored. There are four types of scopes:
    • Members of the group. This scope means that the group members are the same as the scope members.
    • All accounts. With this scope, all accounts are included.
    • Specific accounts. This type lists the accounts that are within the scope of the group.
    • All execpt specific accounts. This type includes all accounts except the listed accounts.
  • Color. Groups can have a color assigned. This makes mostly sense for user front end groups where the color helps identifying groups.
  • Priority. In order to control the sequence in which groups appear in the front end, a priority can be assigned that helps sorting the groups.

Permissions

The following table shows what permissions are available:

Name Text Description Scope
User frontend group ui Define what accounts are visible on the front end to the members of this group. The accounts which will be shown on the font end
Manage groups group Members of this group can edit other groups, except groups that have the "group" permission. N/A
Manage shared address book adrbook Members of this group can edit the shared address book. N/A
Manage agent groups acd Define which extensions can manage agent groups. This includes adding agents, logging agents in and out and viewing ACD statistics. The agent groups to be managed
Redirect groups redir Manage the redirection for accounts, including agent groups and auto attendants, for example for the night mode. This permission can be used through star codes. The accounts that should be managed
Call barge In barge Permission to barge into a call. This means the person barging into the call will join the audio path with the two parties that are talking to each other. The extension that is involved in the call.
Listen in listen Permission to listen to a call. The call parties will not be notified when this is happening. The extension that is involved in the call.
Teach mode teach Permission to start teach mode. In this mode, the extension will hear what initiator of the teach call is saying, but not the other party of the call. Because of this this is often called "whisper mode". The extension that is involved in the call.
Mix audio in mixin Permission to mix audio into the call. In this mode, the parties of the call will hear what is being mixed in, but the audio is not sent back to the caller. The extension that is involved in the call.
Disturb extensions disturb Permission to call an extension even if that extension is on do-not-disturb. This is typically used for call screening where a person is on DND and redirects incoming calls to an assistant that has the permission to call the person after screening the call. The person that will be called even when on DND
Intercom intercom Permission to call an extension and have it auto-answer (typically in handsfree mode) for immediate communication. The extension to be called.
Clean up extensions cleanup Permission to perform a cleanup, typically a hotel room extension. The hotel room extension.
Only specific extensions can call user call The members of this group can be called only from specific extensions. If there is no group with this permission the system assumes that everyone can call everyone. For hotel rooms, there is a seperate setting that defines whether room-to-room calls are permitted. The extensions that can call the member.
Call cell phone cell Members of this group can call cell phone number or other extensions (e.g. with the star code for calling cell phones). If there is no group with this permission the system assumes that everyone can call cell phones. The extensions that can be called
Don't show calls to other users privacy If an extension is member of this group, the system will suppress call records and live calls with this member when possible. This group permission is useful in environment with compliance requirements. N/A
Don't list in auto attendant directory nolist If a member is in this group, the member will not be listed in the auto attendant directory. The auto attendant
BLF view and pickup pickup Members of this group can pick up calls from other accounts on a VoIP phone. If there is no group with this permission the system assumes that everyone pick up calls. The account from which the member can pick up a call
BLF view only blf Members of this group can monitor the call activity of other accounts on a VoIP phone. If there is no group with this permission the system assumes that everyone can monitor calls. The account to monitor
Play recordings playrec Members of this group can play recordings. The account or extension that recorded the call
Manage recordings manrec Members of this group can play recordings, take notes and delete recordings. The account or extension that recorded the call
User can start recording calls ahrec Members in this group can manually start call recording. If there is no group with this permission the system assumes that everyone can manually start call recording. cell
View CDR viewcdr Members of this group can see the CDR records. N/A
Manage CDR mancdr Members of this group can see the CDR records, take notes and delete them. cell
Enable app use app Members of this group will be able to use the apps. If there is no group with this permission the system assumes that everyone has the permission to use the apps. N/A
Enable web frontend web Members of this group will be able to use the web frontend. If there is no group with this permission the system assumes that everyone has the permission to use the front end. N/A
See all calls viewcalls Members of this group will see all calls in the user front end. N/A
Show caller-ID for extensions in app viewcid A member of this group can see the caller ID for accounts for connected and ringing calls. This is useful for front desk staff that needs to see caller-ID for call pickup and for staying informed about who is talking with what party. The extensions to be monitored
Permission to view mailbox status mwi A member of this group has the permission to see the mailbox status in the user front end. The extension that might have a mailbox message
Paging page A member of this group can initiate a page. The paging account
Record IVR manivr Permission to record audio for the IVR accounts. The affected account

Examples

Block certain numbers in the auto attendant

Sometimes, outside callers that haveto go through the auto attendant should not be able to call certain extensions, for example the CEO of the company. For this, the call permission can be used. In a nutshell, by defining what number can call that extension other numbers are ruled out from calling the extension. This includes auto attendants. If only a specific auto attendant should be blocked from calling the extension, the specify except matching rule can be used for the group.

Similar to that, the permission nolist defines what extensions should not listed in the dial by name directory for the auto attendant.


Action URL

Action URLs are HTTP requests that the system sends out that are triggered by certain events. These URLs carry some action information (like a command and related parameters) within the URL, the headers and body to the receiving party which can then take action on it accordingly. For example, an event like "making a call" can trigger an action URL which informs a remote entity (say a billing system) that a call was made and also, who made the call to whom and for how long. Upon receiving the information, the billing system could log it for billing.

Outgoing Action URLs

The user can define almost any kind of HTTP request for each event. That way, the user is not tied to a specific protocol but can prepare messages (URLs, headers, body) based on the receiving system’s requirements by simply filling in the required message and using specific system variables to be filled in by the system.
actionurl11.png

  • Go to your selected domain in the Vodia PBX web interface.
  • Click on Action URL under Advanced as shown above.
  • Click on any of the Action URL you would like to work on and enter the details depending upon the Authentication Method you choose. Enter the Username and Password (if required) and the Address of Server of the system that will receive the action urls.
  • PressSave.

Configuring the Event Messages

Now that the credentials are saved, the user can prepare the action url messages triggered by the different events.
actionurl21.png

  • Click on the icon as shown, to expand the message settings for a specific event like: making a call, setting up wakeup call, clearing wakeup call, missing a wakeup call, setting dnd, clearing dnd, room cleaned, calling a set emergency number.
  • Enter the settings: Method , URL , Encoding , Additional Headers and Message Body according to the requirements of the receiving system for that event.
  • Use system variables in braces which will be filled in by the system. For example {address}coule be replaced by the address of the remote system that the user entered in the Address of Server above. Note: To use braces {} within the message, like JSON example shown, use escape character \ like { or } in order to distinguish it from system variables.
  • Repeat the same process for each event for which you want to create a specific message.
  • PressSave.
  • Now when a particular event is triggered, the corresponding http request - based on the method, url, encoding, headers and body values stored for that event – will be sent to the specified address.
  • That way, the receiving system, like a property management system, can act according to the message.

Note: The room cleaned event will be triggered when the room cleaned star code (which can be set on the Star Codes page of the domain, the default is * 57) is dialed.

Specific Message Types

Parameters for "When a trunk call was made"

When an outbound trunk call is made by an agent, the system can trigger a HTTP requests that may trigger further actions. The following variables are available:

  • {domain} The name of the domain in which the call happened.
  • {from} The "From" header for the call.
  • {to} The "To" header for the call.
  • {duration} The duration of the call, in full minutes.

Parameters for "When a wake-up call was programmed"

When a wake-up call is entered by the user, the system can trigger a HTTP requests that may trigger further actions. The following variables are available:

  • {domain} The name of the domain in which the call happened.
  • {extension} The extension ID of the user that missed the call.
  • {email_address} This contains the email address or addresses of the user.
  • {email_vmail} The setting that tells the PBX weather to send a voicemail to the user, and if to attach the WAV file.
  • {parm1/2/3} A copy of the parameters 1, 2 and 3 of the extension.

Parameters for "When a wake-up call was successfully delivered"

When a wake-up call was successfully delivered, the system can trigger a HTTP requests that may trigger further actions. The variables are the same like for the "When a wake-up call was programmed" call.

Parameters for "When a wake-up call is missed"

When a wake-up call failed, the system can trigger a HTTP requests that may trigger further actions. The variables are the same like for the "When a wake-up call was programmed" call.

Parameters for "When turning DND on"

When the user turned DND on, the system can trigger a HTTP requests that may trigger further actions. The following variables are available:

  • {domain} The name of the domain in which the call happened.
  • {extension} The extension ID of the user.

Parameters for "When turning DND off"

When the user turned DND off, the system can trigger a HTTP requests that may trigger further actions. The following variables are available:

  • {domain} The name of the domain in which the call happened.
  • {extension} The extension ID of the user.

Parameters for "When hotel room is cleaned"

When a room cleanup code was called, the system can trigger a HTTP requests that may trigger further actions. The following variables are available:

  • {domain} The name of the domain in which the call happened.
  • {extension} The extension ID of the user.

Parameters for "When someone is calling an emergency number"

This request is triggered when someone dials the emergency number. There are several variables available for this request:

  • {emergencynumber} The number that has been dialed.
  • {domain} The name of the domain in which the call happened.
  • {extension} The extension ID of the user.
  • {parm1/2/3} A copy of the parameters 1, 2 and 3 of the extension.
  • {location-name} The assigned name for the location, if available.
  • {location-street} The street for the location, if available.
  • {location-city} The city for the location, if available.
  • {location-state} The state for the location, if available.
  • {location-zip} The ZIP code for the location, if available.
  • {location-country} The country for the location, if available.

Parameters for "When a new call comes in"

This request is triggered when a new call is started. There are several variables available for this request:

  • {id} The internal ID for the call.
  • {domain} The name of the domain in which the call happened.
  • {from} The "From" header for the call.
  • {from-ani-raw} The username part of the "From" header as it was received.
  • {from-ani} The username part of the "From" header in the domain country code representation.
  • {from-ani-e164} The username part of the "From" header in E164 format.
  • {from-ani-nanpa} The username part of the "From" header in NANPA format.
  • {from-ani-plus} The username part of the "From" header in a global format.
  • {from-ani-row} The username part of the "From" header in ROW-format.
  • {from-display} The display-name part of the "From" header.
  • {to} The "To" header for the call.
  • {to-ani-raw} The username part of the "To" header as it was received.
  • {to-ani} The username part of the "To" header in the domain country code representation.
  • {to-ani-e164} The username part of the "To" header in E164 format.
  • {to-ani-nanpa} The username part of the "To" header in NANPA format.
  • {to-ani-plus} The username part of the "To" header in a global format.
  • {to-ani-row} The username part of the "To" header in ROW-format.
  • {to-display} The display-name part of the "To" header.
  • {callid} .
  • {lang} The language code that was assigned to the call.
  • {clip} trueor falsefor CLIP.
  • {extension} The extension ID of the user that started the call, if available.
  • {trunk} The name of the trunk, if available.
  • {source} The source address for the call.
  • {target} The destination for the call in global format.
  • {target-ani} The target in the domain country code representation.
  • {target-ani-e164} The target in E164 format.
  • {target-ani-nanpa} The target in NANPA format.
  • {target-ani-plus} The target in a global format.
  • {target-ani-row} The target in ROW-format.

Parameters for "When a call connects to an agent"

This request is triggered when a call gets connected to an ACD agent. There are several variables available for this request (the from-* and to-* variables were added in 67.0.5):

  • {id} The internal ID for the call.
  • {domain} The name of the domain in which the call happened.
  • {from} The "From" header for the call.
  • {from-ani-raw} The username part of the "From" header as it was received.
  • {from-ani} The username part of the "From" header in the domain country code representation.
  • {from-ani-e164} The username part of the "From" header in E164 format.
  • {from-ani-nanpa} The username part of the "From" header in NANPA format.
  • {from-ani-plus} The username part of the "From" header in a global format.
  • {from-ani-row} The username part of the "From" header in ROW-format.
  • {from-display} The display-name part of the "From" header.
  • {to} The "To" header for the call.
  • {to-ani-raw} The username part of the "To" header as it was received.
  • {to-ani} The username part of the "To" header in the domain country code representation.
  • {to-ani-e164} The username part of the "To" header in E164 format.
  • {to-ani-nanpa} The username part of the "To" header in NANPA format.
  • {to-ani-plus} The username part of the "To" header in a global format.
  • {to-ani-row} The username part of the "To" header in ROW-format.
  • {to-display} The display-name part of the "To" header.
  • {callid} The Call-ID for the call.
  • {lang} The language code that was assigned to the call.
  • {clip} trueor falsefor CLIP.
  • {extension} The extension ID of the agent.
  • {group} The ID of the agent group (ACD).

Parameters for "When a new mailbox message is available"

When a user in the domain has received a new mailbox message, the system can send out a ActionURL that contains information about the message. The following variables are available:

  • {domain} The name of the domain in which the call happened.
  • {extension} The extension ID of the user.
  • {display} The extension name of the user.
  • {title} The title for the user.
  • {from} The caller-ID of the one who left the message.
  • {to} The called number.
  • {start} A timestamp when the message was received.
  • {duration} The duration of the message.
  • {filename} The filename on the file system for the message-
  • {new} A flag that shows if the message was already read by the user or marked as read.
  • {attribute} The attribute for the message, e.g. "urgent" or "private".
  • {type} The type of the message, typically "msg" for a voicemail message.
  • {callid} The Call-ID of the message.
  • {cell} A list of the cell phone that was assigned to the user.
  • {email_address} This contains the email address or addresses of the user.
  • {email_vmail} The setting that tells the PBX weather to send a voicemail to the user, and if to attach the WAV file.
  • {parm1/2/3} A copy of the parameters 1, 2 and 3 of the extension.
  • {text} The text from the voice to text transcription (if available).

Parameters for "New Call"

When there is a new call arriving at the PBX, the action may reference the following variables:

  • {id} The internal ID for the call, usually a number.
  • {from} The "from" header for the call.
  • {to} The "to" header for the call.
  • {callid} The Call-ID for the call.
  • {domain} The name of the domain in which the call happened.
  • {lang} The language code for the call.
  • {clip} The CLIP state for the call (true or false).
  • {trunk} The trunk on which the call came in, or empty if the call did not occur on a trunk.
  • {extension} The extension on which the call came in, or empty if there was no extension.
  • {source} The source address where the call came from.
  • {target} The internal destination for the call.

Shared Address Book

The domain address book allows users on the same domain to easily call each other and to see who’s calling. Users can search for contacts from either the web interface or from their IP phones. From the address book, contacts can be whitelisted or blacklisted and CMC codes can be added to a contact’s information. Address books can be uploaded to the user's phone.

To add entries manually (admin only):

  1. Click theFeatures tab under the domain, then clickAddress Book.
  2. Enter your information into the Create New Entry form, then clickCreate.
  • Number : The telephone number of the contact. This is not a SIP URI.

  • Speed Dial : You may use a two-digit star code to speed-dial this contact. Note that these star codes cannot overlap with any of the standard star codes.

  • CMC : The CMC identifies the customer in the CDR report and is used to expedite billing in offices that bill their clients for phone calls, such as law offices and other businesses that track time spent with clients. As long as the CMC has been added to the address book and the caller is calling from the phone number that is associated with that CMC, the CMC will automatically appear in the CDR report. The CMC can also be entered directly into the display of the phone (by pressing the CMC soft key) if the person is calling from a number other than the number that is in the address book. (The dial plan can be configured to prompt the caller to enter the CMC code of the person being called.)

  • Contact Type : The Contact Type dropdown allows you to blacklist or whitelist a contact.

Once contacts have been added to the domain address book, their information will be displayed to the user they call.

Using CSV Files

Domain address books can also be created using CSV files


Buttons

Setting up buttons on the phones is a very useful feature of the Vodia PBX. It makes it very easy and intuitive to set up buttons on the phones that it serves.

Provisioning Buttons

On the Vodia PBX you can set up button profiles which you can assign to different extensions.

You can also modify a button profile to customize it for a particular extension.

The profiles that have " *** "** on them means they are the default template that is being used for that make and model of the phone.

Creating a Button Profile:

httpsdocvodiacomsitesdefaultfilesinline-images801.png
httpsdocvodiacomsitesdefaultfilesinline-images93.png

  • Go to your selected domain in Vodia PBX web interface.
  • Go to Buttons page on the domain level.
  • On the buttons profiles page (as shown above), just provide a name for the profile and then select the phone make and model it needs to be assigned to. Also, press " + "after, only then, the Createbutton pops up in order to create that template. The new profile will then appear in the list on the domain level template list at the time of assignment. The above example shows a button template being created for a Cisco and a Polycom Phone

Add and Map Buttons

buttons21.png
httpsdocvodiacomsitesdefaultfilesinline-images911.png

  • Once you have created a profile, you can edit it to add or modify buttons for that profile which will hold true for all the identical model phones on that domain.
  • We have added multiple fields in the buttons section as shown below, starting on the build 60.0and above.
  • Number: This field helps you assign the button to the phone itself or the expansion module. So it's denoted by P 1, P 2, P 3 etc. meaning Page 1 button 1 (for the phone models which have only single page) and so on. If there are multiple page phone models, the denotation is P1 1, P1 2....P2 1, P2 2... so on. But, the expansion module generally can be multiple, hence they are numbered as E1 1, E1 2, E1 3...E2 1, E2 2... and so on meaning, module 1 page 1, module 2 page 1 etc. with a maximum of 3 expansion modules that can be added. We also have included the USB extension board for the Snom models. The limit of which can be 3 per button template and they range as U1 1, U1 2, U1 3....U3 1, U3 2.. so on. Following this selection you can choose a number for the button. This number determines which button on the phone will be mapped to this button and get these settings. It may be different for different phones and models. More details on button numbers are given below.
  • Identity: Now you can assign up to 9 identity buttons with the new buttons feature. Each button can be specifically chosen to be assigned to the identity of one's choice.
  • Parameter: Assign the required parameter to the button. And there are various new drop down options available on the latest 60.0 version.
  • Label: The labels are generated automatically when the Parameter field has been entered. In short the PBX takes care of that, but if you would still like to assign a different name to that particular button, you can overwrite it. Note Label is used only where phones use a display in front of their keys for labels or virtual keys.
  • Fixed: This field when checked, doesn't allow the user to change the buttons from their end. This makes it a lot easier for the System Admins to handle the buttons once they are assigned so that the user cannot fiddle with it from the user portal.
  • Choose the button Type which is a drop down list from which to choose. Button types are explained below.
  • Enter a value in the parameter field. This value will generally consist of an account on the system or an extension.

Assigning Button Profile to an Extension

httpsdocvodiacomsitesdefaultfilesinline-images921.png
buttons51.png

  • Go to your selected domain in the PBX web interface.
  • Go to the extension to which you want to assign a particular button profile.
  • Go to the Buttons section of the extension found at the top.
  • In the Choose Profile drop down, select the profile you want to assign to that extension, which can be any of the phone defaults or any other profile you might have created.
  • Press Save.
  • Furthermore, you can make changes to that chosen profile as it appears below on that page, in order to customize it for that extension. Simply make the modification within the existing profile and click Save.
  • For example, if you are using the snom 7xx series phone, you can edit the template of snom_710_buttons.xml under Phone pnp settings in Template.
  • You can modify the template on the domain or globally .
  • This customized profile (not Automatic) will also now appear in the user mode when the user logs in, where he/she can also customize it if needed in Buttons Setup page.

Note: For snom phones, if the profile for an extension is set at "Automatic" when a snom phone is provisioned by the PBX, the PBX will automatically pick the right phone model and provision it with the default button profile of that phone, set in the PBX domain.

Button Numbers

These are the numbers that you give to the buttons as you add them. They correspond to the actual buttons on a particular phone model. For most phone models the buttons are in order of 1, 2, 3 and so on which correspond to the physical buttons on the phone in that order, usually starting with top most button first.

In some models the buttons are divided in certain sections on the phone; also some phone models have some specific behavior as explained below:

  • Buttons start from 1 and go up to any number, depending on how many buttons you want to provision in a particular profile. These buttons correspond to the physical buttons on the phone in a logical physical order.
  • On Yealink, Htek, Escene and Akuvox, any buttons you don't define will be treated as a line key. So for example if you don't define buttons 1 and 2 and start buttons from 3 instead, these phones will map buttons 1 and 2 to lines.
  • On Yealink, Htek and Grandstream, the expansion pad buttons start at 101 and go up to 1000.
  • On Grandstream models, buttons 1-100 are for buttons with paper labels (if a model has those paper label buttons).
  • On Grandstream models, buttons 1001-10000 are for the VPK or MPK (Virtual Multi-purpose Keys) when available. These are the keys found at the sides of the display, with the labels shown on the display.
  • On Grandstream models, buttons 10001-10003 are for the soft key setup.
  • On Htek models, buttons 1-100 are for the line keys when available. These are the keys found at the sides of the display, with the labels shown on the display.
  • On Htek models, buttons 1001-10000 are for buttons with paper labels (if a model has those paper label buttons).
  • On snom D745, the keys are divided in pages:USB expansion modules D7:

Vision:

The relevant snom doc can be found here . (Note: We start buttons from 1, but they start from 0. Please follow the PBX button ranges (starting from 1) as documented here, as it has been taken care of internally.)

* Page 1: keys 1-8
* Page 2: keys 9-16
* Page 3: keys 17-24
* Page 4: keys 25-32
* Module 1: keys 33-50
* Module 2: keys 51-68
* Module 3: keys 69-86
* Page 1: keys 87-102
* Page 2: keys 103-118
* Page 3: keys 119-134

  • On snom D345, the keys are divided in pages:Serial expansion modules:

USB expansion modules D7:

Vision:

The relevant snom doc can be found here . (Note: We start buttons from 1, but they start from 0. Please follow the PBX button ranges (starting from 1) as documented here, as it has been taken care of internally.)

* Page 1: keys 1-12
* Page 2: keys 13-24
* Page 3: keys 25-36
* Page 4: keys 37-48
* Module 1: keys 49-90
* Module 2: keys 91-132
* Module 3: keys 133-174
* Module 1: keys 175-192
* Module 2: keys 193-210
* Module 3: keys 211-228
* Page 1: keys 229-244
* Page 2: keys 245-260
* Page 3: keys 261-276

Button Types

Not all button types are provisioned in all phones. In fact, BLF almost covers all functions, like speed dial, monitor, pickup. It can also act like park/pickup button when its parameter is set to the park orbit account instead of an extension. That is why it is used in almost all the phones for all buttons for the different functions. Even if lines, speed dial and park orbit are not available for a particular phone, BLF can take care of them all, provided the phone and its software version supports it.

Following is a list and explanation of some of the button types:

Button Type Description Phone Types Parameter

Private Line Multiple local lines can be configured on IP phones. That means if you are talking on one line, you can select another line to make a new call. Also, when another call is coming in, you can pick it up as the current one goes to hold. It also allows you to resume a particular call from a list of calls that are on hold.

snom, Grandstream No parameter

Busy Lamp Field (BLF) This mode shows when the specified extensions are in use. The corresponding LEDs are solid green when registered. When the extension is connected, the LED will be solid; when the extension is ringing, the LED will blink fast; and when the extension is holding a call, the light will blink slowly. When the LED is blinking, i.e. an extension is ringing, you can pick up the call by pressing the corresponding button but only if the phone model supports it and is configured correctly. When the user presses the button, the phone always dials the programmed extension. This mode comes in three flavors:

  • Busy Lamp Field (Monitor, speed dial and pick up): As the name says it all, it monitors, speed dials and picks up (when configured correctly) the extension according to context as explained above.
  • Busy Lamp Field (Monitor and speed dial): It works as above but does not do pick up.
  • Busy Lamp Field (Monitor only): It only does monitoring.

Speed Dial When buttons are used as speed dials, the phone will simply dial the programmed number (the LED next to the button will not light). Speed dials can be used for phone numbers, extensions, star codes, and other numbers. For example, if you want to transfer a ringing call to the voicemail of a specific extension, the parameter would need to include the following:

  • The "transfer" star code (*77)
  • The direct dial prefix for voice mail (e.g., 8)
  • The number of the extension (e.g., 40)

Example: *77840.

snom, Grandstream, Yealink 9781234567

Park Orbit Use this mode if you want to assign a button to a park orbit. Once this button has been configured, calls can be parked and retrieved by pressing this button. A parked call is indicated by a blinking light.

Important : Before you can use this button, the star codes for Call Park and Call Park Retrieve must match (e.g., *85/*85).

snom, Grandstream, Yealink Park orbit number

Shared Line Shared lines can best be compared to physical lines between the system and the central office of the old PBX days, when users had to seize a line before placing outbound calls. The Shared Line button emulates this mode. When a user picks up a shared line, other users also sharing this line see the LED go on. Users can place calls on hold by pressing the button, and other users sharing this line can pick the call up by pressing the button again on their end. This is sometimes referred to as “key system” functionality. Before this type of button will work, the CO lines must be configured on the trunk. The setting is made in the trunk itself, so you’ll need to click the Trunks tab, then scroll down to CO lines. The names that are assigned to CO-lines must be unique across the domain. For example, you can set up three CO-lines on Trunk1 with the names “co1 co2 co3” and more CO lines on Trunk2 with different names like “co4 co5 co6”.
snom, Grandstream co1 co2 co3

Cell Phone This mode allows you to pull a call from your cell phone and push a call back to your cell phone, depending on where the call is.
snom No parameter

Service Flag This mode allows you to change the status of a service flag. (This button affects only service flags that can be changed manually; it will have no impact on automatic, time-dependent service flags).
snom Service flag number

Do not disturb This mode shows that extension’s DND status. The LED will light when DND is in active mode.

snom No parameter

Agent login/logout This mode shows an agent’s login/logout status. This button can be used in a number of ways:

  • If the agent needs to log in and out of all agent groups at the same time (or if the agent belongs to only one agent group), use a single Agent login/logout button and do not specify a parameter (leave it blank).

  • If the agent belongs to numerous agent groups and needs to log in and out of a specific agent group before logging into another agent group, use multiple Agent login/logout buttons and in the parameter field, enter the agent group number. Do this for each agent group.

Once this button has been configured, the LED will light when the agent is logged in.

Important : Before you can use this button, the star codes for Agent Log in/Agent Log out must match (e.g., *64/*64).

snom Agent group account

Redirect This mode allows you to redirect calls to a predefined extension or number. To use this mode, enter the redirection target into the parameter field. Pressing the button activates redirection and lights the LED. Pressing the button deactivates redirection. This mode is useful when an executive assistant should take over calls.

snom Extension or external number

Agent Group This button allows users to monitor the status of an agent group. When a caller is waiting in the group, the LED will blink quickly. Users can then press the button to pick up the call..
snom Agent group number

Message Waiting Indicator (MWI) This button indicates when a message has arrived for the account that is entered into this field. The MWI button can be especially useful in situations where it is necessary to send the same voicemail to more than one extension. In this case, a group mailbox must be created, and the phones must subscribe to MWI for the extension of the group mail account. (This button can also be used for older phones that do not have a Message button on the telephone keypad).

snom Group mailbox

Prefix This button prepares the prefix so that any other number or button pressed after that will be added to the prefix for an action on the Yealink phones. For example it could be a transfer star code etc.
Yealink Any prefix e.g. a star code

Voice Mail This button sets up the Grandstream Voice Mail button type.

Grandstream

LDAP Search This button sets up the Grandstream LDAP Search button type to initiate LDAP search

Grandstream

Intercom This button sets up the intercom functionality on the button which allows to call an extension with the push of the button and direct connection without waiting for pickup.

snom, Grandstream Extension

Push2Talk In snom phones this button acts like the intercom button but keeps the call connected only until the button is kept pushed and disconnects when it is released.

snom Extension

Voice Recorder This button sets up the Grandstream Record button type.

Grandstream

Action URL For snom phones, this button sends the action url set in the parameter of this button.

snom Action url

DTMF For snom phones, this button plays a DTMF or a sequence of DTMF's set as the parameter of this button.

snom DTMF digit sequence

Transfer to For snom phones, it transfers the active call to the parameter set on this button.

snom Transfer destination (E.g. Extension)

Conference Server For snom phones, it puts every call on hold into a conference server.

snom Conference account

  1. Private Line not available for a particular phone doesn't mean you can't set lines on that phone. It just means the phone may have another way for setting up lines. For example, Polycom takes the beginning buttons as lines (as many lines as have been set up on the PBX) and the remaining buttons then get set up respectively according to the PBX buttons for that extension, usually BLF takes care of all the other types. For Yealink, Htek, and Akuvox etc. the buttons skipped (not set up) in the PBX become lines and the rest get set up as they appear in the assigned button profile. For example, if 1 and 2 buttons are not there in the PBX button profile and it starts with 3 onwards, then 1 and 2 for these phones will be lines and the rest as they appear in the profile.
  2. All here implies all supported phones and models like Polycom, snom, Grandstream, Cisco SPA, Yealink, Htek, Akuvox etc. And only when the buttons are available and supported in that model and software version.

FAX

FAX messages are still a widespread way of exchanging documents between companies. The PBX supports FAX messaging using the T.38 standard in two ways.

First, it connects devices that are supporting the T.38 standard. If you FAX machine is connected to analog terminal adapter (ATA) that supports T.38 and your PSTN gateway also supports T.38, then the PBX will attempt to pass the signals through. While there is no guarantee that this will work flawlessly, there is a reasonable chance that you will be able to continue printing out paper when someone on the other side wants you to do that.

Second, the PBX mailbox can listen to the FAX tone. When it detects a FAX message, it starts to use the T.38 protocol and converts the incoming FAX into an email that is sent to the owner of the mailbox, just like it has just received a voicemail. Because the PBX may have a mailbox for each user, this may eliminate the step to sort incoming FAX messages and it avoids time when dealing with paper.

Passing FAX messages through

If you have a FAX machine, you will need an ATA to receive the FAX calls and convert it into analog signals that you can plug into the FAX machine. This has the advantage that you can also send FAX messages, which is useful when documents need to be signed.

Most ATA devices have some kind of setup that makes sure that the ATA detects the FAX and then switches to the T.38 mode. Sometimes those devices also have settings to turn echo cancellation off, which is neccessary for proper FAX detection (most devices automatically turn echo cancellation off when a FAX was detected).

You can register those ATA as regular extension with the PBX. For the PBX the call will look like a regular call to an extension.

In the auto attendant, you can use the tone Fsimilar to DTMF tones to send FAX calls to a specific extension. This makes it possible to handle all calls, including calls to a FAX extension, through the auto attendant without manual interaction.

Converting FAX into emails

When using the Fax2Email feature you will have to configure you Email Settings on the system.

NOTE: It's best not to use the redirection cell phone feature when using the fax setting.

When your email is up and running assign your email address on the Extension Level . You may select in the mailbox settings ("Mailbox enabled") to play a FAX tone instead of the mailbox greeting, but the system will also be able to detect FAX with a standard annoucement. The FAX tone tells the caller that this is a mailbox that was set up to receive FAX messages.

FAX extensions

Sometimes customers have specific phone numbers in extensions that are explicity used for FAX and which should convert the FAX into an email. Typically those numbers end on business cards fas "FAX" number. In this case, you can use the setting "FAX DID numbers" in the extension settings to tell the system that when a call hits the numbers listed there, it will not try to call the registered extensions and instead send the call straight to the mailbox.


Location Setting

The location setting is used to set a location for a user from a list of locations that have been created. It can then be used to include the location information in an emergency email, when an emergency number is dialed.

Setting up locations

Many locations can be created as follows:
location11.png

  • Go to your selected domain in the Vodia PBX web interface.
  • Click on Location under Advanced as shown above.
  • Create a new location entry by entering its name, a value (which should be a unique number that the other locations aren't using, it appears as token field for the locations), and all other information for that location, like street, city, country etc.
  • PressCreate.
  • The new location should appear as a new entry into the list of locations above. It can now be chosen as an option for setting up a user's location.

Bulk Creation of Accounts Using CSV File

CSV (comma-separated values) files can expedite the bulk creation of all types of accounts, as well as the domain address book. A CSV file is a plain text file that stores tabular data from database-style tools, such as Excel. Records appear on separate lines, and the fields within each record are traditionally separated by commas (or semicolons).

Creating New Extensions

A simple way to create new extensions is to list them in the format shown in the bulk import dialog on the extension list web page in the domain. The list contains the account name, the first name, the last name, the position, the cell phone number, the email address, the MAC address for the extension, the PIN, the SIP and the web password. After pasting the CSV into the dialog, the web front end will generate an approximate preview of the import for validation purposes before the actual import begins. After pressing the Create button, the system will import those accounts.
httpsdocvodiacomsitesdefaultfilesinline-imagesimport11.png
The list of parameters that can be set during the import is not limited to the parameters above. If the first line starts with a #, the system will read this line as the parameter line name. The default for this line is #alias;first_name;last_name;position;cell;email;mac;mb_pin;web_pass;password but it can contains other parameters as well.

If the account already exists, the system will overwrite the parameters for that account. For example, the mb_size field of the extension can be set with the following CSV:

#alias;mb_size
40;100
41;10
Text

It is also possible to generate other account types. For this the column type needs to be set for every record.

Importing From File

Instead of pasting a CSV file, accounts can also be generated from files. These files can be files in the above format, however they can also be files exported from other systems. The web front-end will attempt to convert those files into a format that can be understood by the PBX back-end. Currently the import can read the following formats:

  • 3CX. The backup for a 3CX system contains a XML file that can be used when creating a new domain. The PBX will detect was extensions were configured on the 3CX system and converts the names, numbers, email-addresses and the associated MAC addresses for the extension from the file.
  • Asterisk. The PBX can ready the .conf-file from Asterisk-based systems and extract the extension names and numbers from it.

Extension Parameters

Following is a list of parameters that are part of the extension account. When creating CSV files, the only fields required are alias and type. Parameters can be added or removed based on need, and not every extension will necessarily have a value for every parameter you’ve included. In those cases, be sure to retain the comma (,) for that field so that the number of values in each line correlates with the number of parameters in the top line. For example, the first line below shows a missing ANI, and the line following it shows two commas to make provision for this missing field.

#type,alias,ani,password,web_pass,first_name,display_name,mb_pin,email_address,mac
extensions,651,,1234,1234,Carl,Clever,1234,cc@abc.com,000BBBCCCDDDE
Text
ParameterDefinitionValue
typeAccount typeextensions
aliasExtension number651
ANIOutgoing numberNA (hence blank)
passwordSIP password1234
web_passWeb (interface) password1234
first_nameUser’s first nameJohn
display_nameUser’s last nameSmith
mb_pinUser’s PIN1234
email_addressUser’s mail addresscc@abc.com
macUser’sMAC IP address000412654788

Sample Syntax

#type,alias,ani,password,web_pass,first_name,display_name,mb_pin,email_address,mac
extensions,650,9786501234,1234,1234,Fred,Feuerstein,1234,ff@abc.com,000BBBCCCDDDD
extensions,651,9786511234,1234,1234,Carl,Clever,1234,cc@abc.com,000BBBCCCDDDE
Text

Agent Group Parameters

The parameters for the agent group are as follows (only type and alias are required).

ParameterDefinitionValue
typeAccount typeACDs
aliasExtension number of the agent group663
all_agentsExtension numbers of the agents41 42 43
gap_timeThe # of seconds that system should wait between each announcement15

Sample Syntax

#type,alias,all_agents,gap_time
acds,663,40 41 42,15
acds,664,40 41 42,15
Text

Hunt Group Parameters

The parameters for the hunt group are as follows (only type and alias are required).

ParameterDefinitionValue
typeAccount typeHunts
aliasNumber of the hunt group account74
displayDisplay name for the hunt grouphunt_74
st1_extExtensions that will be part of stage140 41
st1_durNumber of seconds the system should ring stage110
st2_extExtensions that will be part of stage243 45
st2_durNumber of seconds the system should ring stage215
st3_ext(for unwanted stages leave empty)-
st4_extExtension or phone number for the final stage70

###Sample Syntax

#type,alias,display,st1_ext,st1_dur,st2_ext,st2_dur,st3_ext,st4_ext  
Hunts,74,hunt_74,140 41,110,243 45,215,,70
Text

Conference Account Parameters

The parameters for the conference account are as follows (only type and alias are required).

ParameterDefinitionValue
typeAccount typeconferences
aliasThe account number of the conference account75
lengthNumber of digits that are required for the participant's access codeDigits 4-9
nameName assigned to the conference accountSupport
pinModerator's access code123456
typeThe type of conference accountAd-hoc conference or Scheduled conference

Sample Syntax

#type,alias,name,intro,pin,upin
conferences,701,Conference Room,tone,123456,000000
Text

Paging Parameters

The parameters for the paging account are as follows (only type and alias are required).

ParameterDefinitionValue
typeAccount typehoots
aliasExtension number of the paging group account74
displayDisplay name for the paging groupFirst floor multicast
extThe extensions that are part of this paging group401 401 403 404 406
permThe extensions that are permitted to place pages from this account404 405 406 480
ipThe multicast IP address assigned to this paging account224.0.0.1:5000
modeThe paging mode assigned to this paging accountunicast multicast
permThe extensions that are permitted to place pages from this account404 405 406 480
recordDetermines which mode the page will be placed: either in live playback (false) or play recorded message (true) modefalse or true

Sample Syntax

#type,alias,display,ext,perm,ip,mode,record
hoots,705,Paging Station,400 401 402 403 404 405 406 407 408 409,*,224.1.1.2:4000,multicast,*,false
Text

Service Flag Parameters

The parameters for the service flag are as follows (only type and alias are required).

ParameterDefinitionValue
typeAccount typesrvflags
aliasAccount number of the service flag account74
displayUse this field to name the service flag.9 to 5
modeThis field is used to indicate which type of service flag should be usedAutomatic, Day/Night
allow_extEnter the extensions that are allowed to change the status of the service flag; separate the extensions by a space405 406 480
monThis field is used to indicate the times when the service flag should be inactive for Monday9:00-12:00 13:00-17:00
tueThis field is used to indicate the times when the service flag should be inactive for Tuesday9:00-12:00 13:00-17:00
wedThis field is used to indicate the times when the service flag should be inactive for Wednesday9:00-12:00 13:00-17:00
thuThis field is used to indicate the times when the service flag should be inactive for Thursday9:00-12:00 13:00-17:00
friThis field is used to indicate the times when the service flag should be inactive for Friday9:00-12:00 13:00-17:00
satThis field is used to indicate the times when the service flag should be inactive for Saturday9:00-12:00 13:00-17:00
sunThis field is used to indicate the times when the service flag should be inactive for Sunday9:00-12:00 13:00-17:00
holidayThis field is used to indicate the holidays on which the service flag should be active12/24 12/25 1/1

Sample Syntax

#type,alias,display,mode,allow_ext,mon,tue,wed,thu,fri,sat,sun,holiday
srvflags,74,Night Service Flag,automatic,404 405 480,9:00-12:00 13:00-17:00,9:00-12:00 13:00-17:00,9:00-12:00 13:00-17:00,9:00-12:00 13:00-17:00,9:00-12:00 13:00-17:00,,,12/24 12/25 1/1
Text

Address Book Creation Using CSV

The CSV import for address book creation is shown below:
csv21.png
The parameters for the domain address book are as follows. These parameters allow you to create domain address books with multiple entries. The required fields are first name, last name, and number, and the format must be as follows: first;name;number (use a semicolon as the field separator).You have to copy paste the addressbook parameter lines you want in the above format and paste it in the file name. If there are multiple entries, copy all at once and paste.

Parameter Definition Value
first Last name Smith
name First name Fred

number Phone number: The following characters are ignored by the system (although it is permissible to use these characters, they will not appear in the address book):

  • -(hyphen)
  • ,(comma)
  • (space)
  • /(backslash)
  • .(period)

(The plus +sign is permitted when entering global numbers, e.g. +49 (30) 386-1234 or +1 (978) 543 654.

speed Speed dial numbers cannot overlap with numbers that are in use as star codes.*12
cmc Client matter code 8501
cell Cell phone number(617) 399 8147

Sample Address Book Syntax

Cynthia;Smith;9781234567
Bob;Pine;6171234567;*33
Cathy;Chere;9781234567;*34;443322;9782233432
Pat;Rushetta;9781234567;*34;;9784444333

Domain Voicemail

Voicemail Settings

domainvoicemail11.png

  • Go to your selected domain in the Vodia PBX web interface.
  • Click on Voicemail under Features as shown above.
  • Here you can configure the voicemail settings.

Explanation of the Settings

  • Time until user’s mailbox picks up : This setting defines the number of seconds the system will wait before redirecting a call to a user’s mailbox when there’s been no pickup. You may override this setting in the settings for a specific extension. If you plan to use cell phones with the system, choose a longer voicemail timeout (e.g., 30 seconds), as the call setup time for a cell phone call can be lengthy and the user might need to search for the cell phone. If you do not plan to use cell phones, you can choose a shorter timeout (e.g., 15 or 20 seconds).

These next two settings allow you to specify memory capacity for voicemail messages. When configuring these settings, consider the size of your system and the information shown the table shown below.

  • Maximum number of voicemails : This setting determines the number of messages that can be stored in a user’s voicemail box. Although this setting can be overridden by the user, a reasonable default should be set at the domain level (20 is a good default number).

  • Maximum Voicemail Duration : This setting specifies the length of a mailbox message. Typically, a mailbox message should be no longer than 2 minutes.
    Number of UsersSettingsDisk Space Required

    Voicemail SizeVoicemail DurationEach UserAll Users*

    10252 min5 MB50 MB

    101002 min20 MB200 MB

    100252 min5 MB500 MB

    1001002 min20 MB2 GB

    *Assuming storage as umpressed audio

  • Voicemail PIN Digits : This setting specifies the number of digits that will be required for the voicemail PIN. Although any number larger than one digit is acceptable, we recommend you require four or five digits. See also the PIN setting in the extension account.

  • Max PIN failure attempts before PBX disconnects the call : This setting allows the domain administrator to set the number of failed attempts before the PBX disconnects the call. This setting is useful when someone else tries to access your mailbox and repeatedly enters the wrong PIN. Note: This setting is currently a domain-level setting, but in the future we can extend it to the extension level if necessary.

  • Require Entering Mailbox PIN : When this setting is enabled, users will be required to enter their PIN before retrieving voicemail messages. While retrieving messages should be simple, many office layouts often make it too easy for an unauthorized person to listen to another’s voicemail messages without authorization. This setting can be used to prevent this across the domain.

  • Calling own extension number goes to mailbox : By default, the system will send a user to the voice mailbox if he dials his own extension. However, in some situations it is useful to have the system call the registered extension.

  • Mailbox Escape Account : If the Mailbox Escape Account setting is set, a user who reaches the mailbox can press 0 to get to the account that you specify here (the user must press 0 before the beep). The number must be an internal number.

  • Mailbox Direct Dial Prefix : This setting allows users to call directly into their mailboxes or transfer a caller directly to a user’s voicemail without having to wait for the voicemail timeout. Typically, this prefix is an 8, so by dialing 8511, the caller goes directly to the voicemail greeting of extension 511. If you want to explicity specify what announcement you would like to hear, you may append a star with the prompt index, for example 8511*2 to have the system play the 2nd personal announcement for that mailbox (this feature was added in version 5.0.3).

  • External Voicemail System : This setting is used if you want to use an external voicemail system (e.g., Microsoft Exchange 2007/2010). The setting requires a telephone number that can be dialed and can include replacement fields which are used in the caller-ID representation for outbound calls. The dial plan for the called extension will decide which trunk will be used to send the call. See Appendix C for more information on Exchange.

  • Mailbox Explanation Prompt : Users who configure their extension to play a personalized message when callers reach their extension can activate this setting so that the system will deliver an explanatory message after the playback of the personalized recording. The explanatory message explains that the caller may now leave a message and informs the caller of any other options. For standard greetings, the system always explains the options.

  • Offer Camp On : This setting allows you to offer Camp On to callers, rather than limiting them to leaving voicemail or when the extension is busy. Callers will have the option to press 1 for a callback only if the callee has a valid caller-ID. Once the extension becomes available (The system will track a person’s availability by monitoring keypad activity, ring the extension with callback annoucement.

    Note : Turn off the "camp on" feature if you are using external voicemail systems such as Microsoft Exchange.

  • Call forward on no answer timeout : This setting establishes the number of seconds that the system will wait before performing a timeout action. It is advisable that this setting be less than the voicemail timeout; otherwise, the call will not be forwarded and will instead go to voicemail.

  • Play envelope information before playing the mailbox message : When this setting is enabled, envelop information will be offered to the user while retrieving voicemail messages. To retrieve the information, the user can press #5. (If this setting is not turned on and the user presses 0 to hear more options, the envelop information will be offered at that point.)

  • Disconnect the call on these error codes from a forked leg : This setting is useful in a multiple registration or cell phone forking case. By default, when the user rejects(by pressing the "X" button or "Reject" soft-key) the call on one of the many ringing devices(of the same extension), other devices continue to ring. User has to reject the call from every device in order to disconnect the call or send the call to voicemail. But by using this setting, you can force the PBX to disconnect the call (or send to voicemail) when user rejects the call at one location. The snom devices generally send 486, Polycoms send 603 error code to snomONE when the user rejects the call. So, if you use 486 603 for setting, then PBX will disconnect the call when user rejects the call at one location.


Domain Templates

To access Domain Templates, from the domain level, click on Advanced and Customize
httpsdocvodiacomsitesdefaultfilesinline-imagesScreenshotfrom2019-05-0813-06-2001.png
From this page, you can use the drop-down fields to choose the type of template and page you want to customize:

Admin Domain pages

User Portal

Email templates

Phone PnP templates

Once you have chosen the page, the HTML code will appear in the field below.
httpsdocvodiacomsitesdefaultfilesinline-imagesScreenshotfrom2019-05-0813-20-581.png

For more information on editing, see https://vodia.document360.io/v1/docs/appearance.
Once editing is complete, click Save and your changes will be applied.

Group Messaging

Group messaging can define a group and the messages that can be used by the users for immediate messaging to groups.

The fields that are required to be populated are:

Group Name: The name needed to be assigned to group, to which the message needs to be sent to.

Group Member: Assign all the extensions that the user wants to be a part of this group.

Message label: This is a placeholder for the content of the message. It is used for selection on the user portal, to display the respective message content associated with it. There can be numerous number of labels created with message content of all type in it, which can be used as set templates in different scenarios.

Message Content: This is the actual content of the message that is intended to be displayed when another extension of this group tries to message the other group member.

P.S: This feature currently only works on Snom phones.

Use case: Let's say we've created a group with 5 extensions as the group member of it. Ext A was the one who selects a particular message to be set for the particular group, which has particular extensions in it. For e.g "Fire drill, walk out of the building", so all of them would see this message on their screen. It's an instant message paging service, for when you don't have to call everyone. This makes sending an alert quicker.

Following is the manner in which a message can be constructed from the user portal of a Snom phone.
httpsdocvodiacomsitesdefaultfilesinline-images162.png
Press "Create" button and the message should now be displayed on all the phones on the go.

Template Parameter

Template parameter makes it easy to change values in templates without the need to change the phone templates themselves. This avoids conflicts when the templates are changed with the software updates. For example, parameters can be used to define the firmware path for certain phone models. If you want to use the PBX to serve the firmware files, follow these simple steps.

Create a TFTP folder in the Vodia working directory

  • If your deployment is Windows, create a TFTP folder in the working directory of the Vodia PBX at the following path: C:\Program Files\Vodia Networks\Vodia PBX
  • If your deployment is Linux, create a TFTP folder in the working directory of the Vodia PBX at the following path: usr/local/PBX

Store the phone's bin files in the TFTP folder in their respective name format. Enter the following URL for each of the phones under Value. example http://pbx/tftp/firmware.bin

Check with the phone's vendor in order to ensure that you have the correct name and format for the phone's firmware file.


Template.png

User Locations

Adding user locations

  • Go to your selected domain in the Vodia PBX web interface.
  • Click on User Locations under Advanced as shown above.
  • Choose a location for each user in the domain. The location fields should change instantly for that user as you change its location.
  • No need to save. It is instantly saved.
  • This is the location that will be used for this user now, in the emergency email, when an emergency number is dialed by this user.

How to setup your emergency numbers and emergency email.

When setting up the emergency email setting, make sure your system can successfully send out emails after setting everything up correctly, like the SMTP server etc. as explained here for the admin level, and the same can be set for the domain level under "Email Settings" on the domain "General Settings" page.

Warning: This feature is not a replacement for your 911 calls, not for how they find your location, not to depend on for emergency help. Please ensure you have access to 911 calling and all their requirements. The correct working of this feature can not be guaranteed; since it depends on a lot of factors, like the network, the system, the settings that have been setup, the email server, and any software malfunction or bug or any other reason.

location31.png

  • Go to your selected domain in the Vodia PBX web interface.
  • Click on General Settings under Advanced as shown above.
  • Set the emergency numbers "Emergency numbers". Multiple numbers can be set, separated by spaces. When one of these numbers is dialed, an email is triggered to the email addresses set in the setting below.
  • Set the emergency email setting "Emergency Call Emails (e.g. abc@mail.com;def@mail.com)". Multiple email addresses can be set, separated by semi colons. This is the email address(es), where the email(s) will be sent when one of emergency numbers in the above setting is called.
  • Now when one of the emergency numbers is dialed, email(s) will be sent to the set address(es). It will include the user (extension) which made the call, and the location infortion of that user (extension) as set above.
  • Example of the email information:

Account 42@localhost (Kyle Mason) is calling the emergency number 911 at 2016/07/01 17:35:59. From location set as: Name: domloc4 Street: def City: abc State: MA Zip code: 01801 Country: usa


Auto Attendants

The auto attendant functions like a virtual receptionist, connecting incoming calls to extensions and other devices that have been configured to the system. The auto attendant often announces a company’s name, followed by a selection of dialing options. A typical welcome message might be "Thank you for calling Company ABC, "for Sales, press 1," "for Accounts, press 2," and "for the dial-by-name directory, press 4." Callers press the number that corresponds with their selection and are directed accordingly.

autoattendants_1 (1).png

Creating an Auto Attendant

In order to create a new auto attendant, go to your selected domain in the Vodia PBX web interface. After clicking on the Add button, a pop up window would give you a chance to enter the details in the new GUI.

autoattendants_5.png

In the Account number(s) field, enter an account number.
In the Display name field, enter a descriptive name for the new auto attendant.

Note: You can assign more than one number to an auto attendant. These numbers can be internal numbers with 1, 2, 3 or more digits; however they can also be DID numbers. The numbers must be seperated by semicolons (spaces in version 67 and below).

The auto attendant will be created which you can see in the "auto attendant list" or in "all accounts list", where you can enter each auto attendant just by clicking it, in order to modify it if you want, as explained below.

Configuring an Auto Attendant

Once you've created an auto attendant account, use the following information to configure your settings.

  • Go to your selected domain in the Vodia PBX web interface.
  • Go to Auto Attendants .
  • Click on any auto attendant from the list that you want to change.
  • Here you can configure the settings. You can also go back to the list of Auto Attendants, if you want, by clicking on the List tab above.

autoattendants_3.png

Identity

Account number(s): This field takes extension number(s) and/or DID number(s). The number of DIDs that can be entered into this field is unlimited. Please note that the numbers must be seperated by semicolon starting version 68.

Name: This field allows you to create a name so that you can quickly identify the Account among other Accounts. For example, when creating aliases for an auto attendant, you might use the names Day Auto Attendant and Night Auto Attendant to distinguish the auto attendants from one another.
Outbound number (ANI) Automatic Number Identification (ANI) is a mechanism that allows phone companies to determine which account should be charged for a call. For more information, see Trunk ANI .

Behavior

Behavior settings allow you to specify a wide range of settings, e.g., dial-by-name settings, recording settings, and monitoring settings.

Extension input: This setting allows you to determine when the auto attendant will begin the search for an extension that matches the user’s input. The available options are detailed below:

  • When Extension Matches: The auto attendant will wait until the caller’s digit sequence matches an existing account. Once the auto attendant finds a match, it will call that extension. This mechanism is useful when accounts of varying name length are used; however, it might be annoying to callers who enter a non-existing number since the auto attendant will never begin the search.
  • After 1/2/3/4/5 Digit Input: The auto attendant will wait until the correct number of digits has been entered before it will begin looking for an account that matches. If the account does not exist, the system will play an announcement indicating that the extension does not exist.
  • User Must Hit Pound: The auto attendant will wait until the user hits the # sign before searching for an extension. This mode is useful in variable-length scenarios.

When an extension is dialed, perform the following action: Instead of just calling an extension (which is the default) you can also perform other actions:

  • Hot Desking: The PBX will hot desk on the dialed extension. This will require entering the PIN for the extension.
  • Start Call Review: The PBX will start the call review for the dialed agent group.
  • Goto Mailbox: Instead of calling the extension, the PBX will go straight into the users mailbox.
  • Goto conference: This mode is used to enter a conference
  • Setup wakeup call: Using this mode, the wake up call for the dialed extension can be set.

Parameter for the action: For hot desking the parameter tells the system what account to use for hot desking. For the other types, this parameter is not used.
Say name: When this setting is enabled, the system announces the name that was recorded for the account being called. If the user did not record a name, the system will play back the extension number.
Dial Plan for outbound calls: Choose the dial plan that you would like the system to use when routing calls to an outside provider (for more information about dial plans, see Dial Plans).
Page incoming calls: The system can announce the caller's information everytime there is an incoming call to the auto attendant. The details on how the call should be annouced can be found in the Paging account in the Call Announcement section.
Send daily CDR report to: The call data record (CDR) lists all calls that come into the auto attendant. The report is sent nightly at midnight to the email address listed in this field (e.g., voicemail@vodia.com). Only one email address is allowed in this field.
Send daily CDR report at (24 hour format, 15 minute intervals): This field defines when the report is sent.
Set language The auto attendant supports multiple-language environments. You may explicitly specify the language that should be used as the primary language. This setting may differ from the default language in the domain.
Second Language: If you are operating the system in a dual-language environment (for example, Germany and France), you may want to offer callers a second language. To set this up, use direct destinations as shown below. The destination that you send the caller to should have the announced language. If you do not enter a destination, the system will switch the language but continue waiting for input. When a hash sign is placed after a direct destination, the system will wait a few seconds to prevent a conflict with extensions beginning with the same number (in this case, a "1," as shown in the example below).

More than two languages

Although the system's language default is limited to two languages, additional languages can be offered by creating multiple auto attendants in different languages. For example, you could set up the first auto attendant to offer a menu of language choices (e.g., "for English, press 1," "for French, press 2," or "for German, press 3"). The first auto attendant would be the English auto attendant, the second would be French, and the third would be German. In a scenario such as this, each auto attendant would be set to its respective language. See "Audio Prompts" for more information on audio prompts and languages that can be downloaded.

Wait before answering the call: This setting determines the number of seconds that will lapse between the time the system picks up the call and the time the welcome message begins playing. Use this setting if the initial part of the greeting is cut off.
Treat star (*) as special key: This setting allows you to deactivate the functionality of the star key so that it will behave similarly to keys 0 through 9 when the auto attendant is playing a message.
Allow VPA: If this flag is turned on, the virtual private assistant will be available when a user calls from an associated cell phone.
From-header: This settings defines what to show when calling an extension, e.g. after the caller has selected the destination. See the ring groups for more information.
Redirect destination for suspected SPAM calls: If the call was classified as SPAM the system will redirect calls to the number provided in this setting.

Timeout Handling

The timeout functionality allows you to provide callers with a way to exit the auto attendant when calling from phones with no dual-tone multi-frequency (DTMF) signaling. Without DTMF signaling, callers aren’t able to press the auto attendant options and would otherwise be stuck. The timeout functionality lets you specify how long the auto attendant should wait before it redirects the call or hangs up.

Redirect Number: This setting allows to you to tell the auto attendant where to direct a call when a caller does not enter the required information within the set timeout period. Enter an extension number into this field.
Timeout (s): The auto attendant will redirect a caller to the redirect number after a specified number of seconds.
Hangup Timeout: The auto attendant will terminate a call after a specified number of seconds if the user does not enter anything. This feature call help clear a call when the PSTN gateway is not able to detect that the caller has already hung up.
Number of times to repeat the welcome message: This setting determines the number of times the welcome message is played.
Digit timeout for direct destinations: This setting defines how many seconds the system will wait for a timeout in the direct destination area.

Automatic redirection

A list of rules can be used to redirect calls to other extensions or phone numbers during certain times of the day/night or other events. The first rule that matches will be used. If there is no match, the system will not redirect the call.

  • When service flag is active: This rule applies when the selected service flag is active. A typical scenario would be a service flag that defines company holidays.
  • When service flag is not active: This rule applies when the selected service flag is not active. A typical scenario would be a service flag that defines the working hours.
  • Always: This rule always applies. This rule will be inserted by the system in certain cases, e.g. when a user turns the redirection on during a snow day.
  • In domain address book: This rule matches when the category of an address book entry matches the parameter or when there is no category and the address book entry matches. For example, this can be used to identify VIP customers and automatically redirect them into a priority queue.

Dial By Name

The Dial-by-Name feature allows callers to enter numbers from their telephone keypad. The system will search for corresponding names. So, when the caller calls the auto-attendant, along with other options, the dial-by-name option is also announced.

The search will start from all word boundaries. For example, if a person's first name is "Klaus Peter" and last name is "van Dueck", the PBX will translate that into "55287 73837 826 38325". The PBX does not translate special characters like äöüê.

The following settings are available:

Input that triggers name search: Specify the number that the user will be required to press in order to access the dial-by-name directory; for example, enter a 1 into this field if you'd like the caller to hear, "For our dial-by-name directory, press 1." If you put "start" in here, the auto attendant will automatically enter the dial by name mode when it gets started. In this mode, the user will not be able to navigate to the regular auto attendant.
Start search: This setting determines the number of digits that will be required before the system begins searching for corresponding names. The digits correspond to the letters that are on the keys (e.g., "2" = "ABC," 3 = "DEF," and so on). Key "0" maps only to the symbol "0", and key "1" maps to all other characters. When several matches are available, the system will list the available matches in a menu. The caller can always cancel the search by pressing the star (*) key.
Ask for confirmation even after the exact match: If this flag is turned on the caller needs to confirm the selection even if there is only one match.

Direct Destinations

The Direct Destinations feature is somewhat like a built-in version of the IVR system. To direct inbound calls to specified extensions, you can use the pre-configured destination fields and link them to pre-recorded announcements and user input options. Using the sample shown below, the auto attendant’s welcome message will be as follows: "For Sales, press 1. For Support, press 2. For Accounting, press 3. For all other inquiries, press 0." (The user input options are linked to extensions 555, 518, 511, and 570.)

autoattendants_4.png

When configuring straightforward, uncomplicated auto attendants, direct destinations are a great solution. However, when configuring auto attendants that require advanced IVR development and functionality, the IVR node is recommended.

Once the direct destination links have been established, the system will call the destination number whenever a caller enters the number that is associated with it. In the sample shown above, when the caller presses 1, the call will be connected to extension 555.

By placing a pound sign after the direct destination (e.g., "1#"), the system will wait 3 seconds before dialing the direct destination. This is useful if you have extension numbers in the 100 range (101, 102, etc.). The 3-second delay ensures that the caller’s complete input (e.g., 101) will be processed rather than just the first digit.

Input number: This number can be one or multiple digits; however, the system dials direct destinations immediately after a user has provided keypad input, so overlapping between a direct destination and an extension number can be a problem. For example, extensions starting with "1" would conflict with a direct destination of "1" because the system would be unable to dial the extension number. The best way to avoid this situation is to choose extension numbers that do not overlap with either direct destinations or mailbox and outbound call prefixes. The extension range 4xx through 7xx meets these criteria. Wild cards can also be used in this field.

Patterns

It is also possible to use patterns in the direct destination. For example, the pattern 2xxx means that all 4-digit numbers which start with the number 2 will match the input. The rules are the same as for the dial plan. The replacement pattern has to be put into the destination field and it may also use the same patterns like in the dial plan; however the destination may not be empty. You may use the star symbol to use the complete input pattern.

  • If circumstances render it difficult to change the extension assignments (e.g., business cards with extension numbers already in circulation), a timeout mechanism can be used. By placing a pound sign after the direct destination (e.g., "1#"), the system will wait for 3 seconds before dialing the destination.
  • To redirect fax messages to a specific destination, you can use the direct destination "F". The CNG tone that announces a fax tone is recognized by the system and is translated into the "F" key.

Audio file: This parameter defines what the system should play back. A special case is the annoucement of a second language that will prompt the caller to select the language.
Destination: This number can be either an internal number (e.g., an extension or conference room) or an external number. When more than ten direct dial options are needed, auto attendants can be nested within one another.
Gap time: This setting determines the number of seconds that will lapse between the different audio options: e.g., "For sales, press 1" (3 seconds), "For accounting, press 2" (3 seconds), etc.

Welcome greeting

The second tab for the auto attendant contains settings that control the audio behavior of the auto attendant.
Music on hold source: When the auto attendant needs to play music on hold, this settings will be used to select the source.
Background music: During the annoucements, the auto attendant can play background music which will be mixed with the annoucements. This setting controls the volume in percent with which the music is mixed into the IVR. By default this is turned off.
Play default welcome message: This flag controls wheather the default welcome message is played or not.
Default welcome message file name: This setting is used to define what welcome message should be used. By default this is aa_welcome_auto.wav. Along with this, the gap time for the annoucement can be set.

Service flag controlled annoucements

The auto attendant annoucement can also be controlled based on the state of service flags. The annoucements can be uploaded from the web interface, they can be recorded from a phone with the star codes shown on the page or they can be text which the system will read out as audio. The last entry does not depend on a service flag. If content is available, this will be rendered if no other flag matches.

Entering the destination

After the welcome greeting, the caller has to enter the destination. The PBX can generate standard prompts that explain what destinations are available which can set in this section. You can enable or disable these standard prompts. The prompts for the direct destinations are set on the "Edit" tab for the auto attendant.

Extensions

Extensions are essentially the phone numbers you give to the phones connected to the PBX, which are the extensions of the PBX. That is how one phone of the PBX can call another and how external calls can be directed to a particular extension etc. Extensions have a wide selection of settings.

Creating New Extensions

The Vodia PBX telephone system comes with some default pre-configured extensions. But of course you can create new ones.

To create extensions:

extensions_1.png

extensions_11.png

  • Go to your selected tenant in the Vodia PPX interface.

  • New GUI's pop up window gives you the option to create new extension.

  • Go to extensions by clicking on Extensions under Accounts as shown above.

  • On top, click the tab Create to create new extension(s).

  • Populate the fields for each of the extensions you want to create using the information shown below:

    • Number: This field takes an extension number and/or alias, i.e., a DID number. When entering DIDs as aliases to an extension number, use the following syntax: 505/9781234567/9781234567. To create multiple accounts at the same time, use a space between them: 505 506 507Note: Extension numbers should range from 2 to 4 digits. The number of digits must correspond to the PnP Dialplan Scheme setting so that the phone will allow the user to enter the required number of digits before it begins processing the call.

    • First Name, Last Name: The First name and Last name fields will be displayed for all internal and external calls (international characters are permitted).

    • PIN: The PIN is used in several areas of the system (e.g., when a user accesses the voicemail system from another extension or from an outside line, when calling into the system from the cell phone, when using the calling card feature, and when hot desking). When you create extensions, you can leave the PIN field empty and opt to have users set up their own PINs. Once a PIN has been set up, no one other than a user who registers with the extension credentials will be able to go to the mailbox.

    • MAC: Here you enter the MAC address of the phone (device) that you want to tie to this extension. The device will then get all its provisioning information based on this extension. You can also select '*' here which will tie this extension to the MAC of any device that requests first. You can also leave it blank if you don't want extension specific information delivered to a device during provisioning.

    • Select the dial plan from the dropdown for the extension, which it will use.

    • Of course, all these settings can also be changed later on after the extension(s) have been created.

  • Press Create.

  • The extension(s) will be created which you can see in the "extensions list" or in "all accounts list", where you can enter each extension just by clicking it, in order to modify it if you want, as explained below.

Configuring an Extension

extensions_2.png

extensions_3.png

  • Go to your selected tenant in the Vodia PBX web interface.
  • Go to Extensions
  • Click on any extension from the list that you want to change.
  • There are many settings divided into tabs:
    • The first tab is List which shows the list of extensions in case you want to choose another one.
    • The next tab is Create which, as explained above, is for creating new extension(s).
    • The next tab is General which has all the general settings of the extension.
    • The next tab is Redirection which has all settings involving redirection of the extension like DND, call forwarding, cell phone inclusion etc.
    • The next tab is Mailbox which has all the mailbox settings, including interface for uploading the greeting wave files, and shows the voicemails of the extension.
    • The next tab is Email for setting up the email address and other email settings of the extension.
    • The next tab is Registration for settings related to registrations for the extension. You may register one or more devices for one extension. When an extension is called, the system will call all registered devices in parallel. The first device that picks the call up will get the call, and the other devices will receive a CANCEL message.
    • The next tab is Permission where you can define what permissions the extension has. The permission to manage the tenant should be given only to persons who are allowed to change passwords, create or delete accounts, change dial plans and rates, and so forth. The permissions to jump into calls and listen to conversations may be legally restricted in certain countries; please use extra caution here. This feature can be completely disabled by the license key for the system. The permission to override DND is useful for assistant extensions that are responsible for screening calls. Please define the permissions as a list of extensions, separated by space. You may use wildcards, for example * to match all extensions of the tenant.
    • The next tab is Buttons for setting up the buttons of the device that will register to this extension. Here you can specify which button profile you want to assign to the extension. You may select Automatic which will automatically assign the correct default profile based on the snom phone type. Or you may also select any other profile, default or any other profile that you may have created (you can create or change any of the profiles in the Buttons page of the tenant, see Buttons. Or you may define an extension-specific profile. If you are using a selected profile (default or otherwise) you may turn this into an extension specific profile by editing it and saving at the bottom of this page.
    • The next tab is Customize which lets you change the look and feel for this user. It also allows you to change the web pages & phone config templates, etc.

General

extensions_4.png

Extension feature set: This field controls what features are available for this extension. By default, all features are available. However the tenant administrator may determine what features are available to the extension. The following types are available.

  • Classroom Extension: This type is used for classrooms. These extensions can not receive inbound calls except when a emergency number has been called. Classroom extensions turn DND on at midnight. Only other classroom extensions can call this type of extension if the permissions are set from under the Groups section (starting version 68.0). It cannot be called via inbound numbers (meaning via DID).
  • Regular Extension: This extension has no specific features or limitations.
  • Teams: This extension can be used in connection with Microsoft Teams.
  • App only: This extension can only be used with the apps. It does not support using VoIP phones.
  • Classroom extension: This extension has a feature set limited to what is needed in a classroom environment.
  • Hotel room: This extension has a feature set limited to what is needed in a hotel room setup. For example, hotel room extensions cannot tranfer calls and they cannot participate in conference calls. They cannot change service flags, and they cannot use anything that needs permissions. Only other hotel extensions can call this type of extension by default (starting version 68.0). It cannot be called via inbound numbers (meaning via DID).
  • Mailbox Only: Those extensions work as pure mailboxes, no registrations are allowed and no outbound calls are possible. However those extensions can receive FAX messages.
  • Cellphone extension: Those extensions do not accept registrations from SIP devices. However they can use cell phone numbers, which makes it possible to use them as virtual extensions on cell phones (not the apps).
  • Residential Extension: Other extensions and inbound numbers should be able to call this type of extension, if an explicit deny has not been set from under the groups settings.

Dial plan: Dial plans determine which trunks are used for outbound calls. Dial plans that are available in the tenant show up in this dial plan dropdown.
Outbound Number (ANI): ANI (Automatic Number Identification) is a service that tells the recipient of a telephone call which telephone number made the call. For more information, see Trunk ANI .
ANI for emergency calls: When this field is populated, this ANI will serve as the callback number when an emergency number has been dialed. For more information, see Trunk ANI . The Emergency ANI will now be shown, enclosed in parenthesis when displaying "All Accounts" list, in versions above 63.0.
FAX DID numbers: In this setting you can enter the numers that should be routed directly to the mailbox as FAX calls. Those numbers must be in the list of account numbers.
Send daily CDR report to: Enter the extension number(s) that should receive the CDR report for this extension. Use semicolons between multiple email addresses, since email addresses may contain spaces (e.g., Fred Feuerstein <ff@domain.com>; Carl Clements <cc@domain.com>).
Use ACD dialplan when logged in as an agent: This setting is useful for agents making outbound calls. When this setting is enabled, the dialplan selected under ACD will be used instead of the dialplan designated for that user's extension.
Number ACD groups this extension can log into: This setting allows the admin to restrict the number of agent groups the agent can be logged into at any one time.
Maximum number of CDRs: This setting allows the admin to control the number of CDRs that a particular user can retain. The admin can also control the accumulative number of CDRs that are stored on the disk (see also the tenants Maximum number of CDRs.
Maximum call duration As the name suggest, this helps set the time limit allowed on the duration of the call on the extensions. It ranges between one minute to four hours.
Proposed SIP transport protocol This is an extension level setting to choose the SIP protocol suitable as per extensions. If this is set to default, the one set in the tenant level would be considered, and if that is set to default, then one in the system level would be set as final.
Generate PCAP traces for calls The PCAP traces of the call for troubleshooting could be generated from this level. There is another option under Trunk> VoIP Providers for capturing traces which shows, both the legs of the call, unlike extension level option.
First name and Last name: These fields will be displayed for all internal and external calls (international characters are permitted).
Position: This field is for the user's position/job function in the company.
Company name: This field is reserved for the company name.
SIP Password: The SIP password influences the connection between the VoIP phone and the system. Users should not change this password, as it will interfere with access to other registered SIP devices (e.g. soft phone).
Web Password: This password is used to access the Vodia PBX web interface. Note: Use a combination of letters and digits and even a symbol to ensure password security. After you've entered a new password, the current HTTP session will stay valid until your next login. Permanent cookies will be invalidated on the next login.
PIN: The user's PIN will be used in several areas of the system (e.g., when accessing their voicemail from an outside phone, when using the calling card account, and when hot desking). For optimum security, users should be required to use at least five digits.
Timezone: This setting tells the system the user's time zone. It will affect the time stamps of the mailbox and all other time stamps related to the extension. When using the extension from a time zone that differs from the domain's time zone, users will need to override the domain setting.
IVR Language: This setting controls the language of voice prompts delivered by the system, as well as the language that is displayed on the LCD of the user's phone. (Callers will not hear the language when calling into the user's mailbox.)
Web Language: This setting allows users to control the language of the Vodia PBX web interface and in the emails they receive from the system. Users can override this setting during their initial login to the web interface.
Upload picture: The uploaded picture will be displayed whenever the user calls another extension within the same domain (as long as the other extension has picture-displaying capability). To facilitate easier picture upload during the call setup, users should use a thumbnail image size. The format of the picture depends on phone model. For snom 370 phones, use a grayscale BMP image. For models that can display color photos, use a JPEG image. The system will display the picture on the landing page of the Vodia PBX web interface.
Permissions to monitor this account: This setting defines which extensions may monitor the status of this account, for example with a BLF button. By default, all extensions are allowed to see the status of an account. The setting is a list of extensions and wildcard patterns, seperated by space characters. If the list element contains a np (no pickup) flag after a colon seperator, then the monitoring will show only if the account is idle or busy. An example for this settings would be 41 42 5* 61:np 70*:np.
Explicitly specify pickup preference: This setting allows users to specify the accounts that will be picked up when they execute the Call Pickup (*87) feature. This setting is especially useful when extensions have been grouped with certain agent groups and hunt groups, as it will prevent the wrong calls from being picked up. If a star (*) is entered into this field, the system will have no preference list to draw from and will require a park orbit number after the *87.
Explicitly specify park orbit preference: This setting allows users to specify a list of park orbits that can be used for parking calls. When park orbits have been entered into this field and the user executes the Call Park (*85) feature, the system chooses the first available orbit. When a star (*) is entered into this field, the system will have no preference list to draw from, and the user will be required to enter the number of the park orbit after entering *85.
Block outgoing caller-ID: This setting allows the user to control whether their caller-ID is shown when making outbound calls.
Enable Call Waiting: This setting allows the user to turn call waiting on and off.
Wakeup time: This field allows users to receive automatic wakeup calls from the system. Though this feature is used primarily in hospitality environments, it can also be used on an individual basis. A wakeup call can also be activated using star code *62.
Phone address book preference: This setting allows users to upload contacts from the domain and personal address books to their phones.
Include local extensions in the phone address book: This setting allows users to add extension numbers from the system to their phone.
Music on Hold This is the extension level music on hold feature which takes precedence over the one set on tenant level, given that various wav files are uploaded in the tenant to be used here.

Redirection

extensions_5.png

Do not disturb: This setting allows users to tell the system to leave their phone silent for all calls, both internal and external, and even calls from the hunt group. Only extensions with permission to override DND will be able to call the extension. DND override is an administrator setting. An extension on DND can place outbound calls at all times. You can also set DND using the *78 star code.
Duration: The DND status can automatically expire after some time. This is useful for example when someone puts the extension on DND for a lunch break and wants to make sure that it automatically turns off after the break. The following options are available:

  • 1 min - 24 hours: These values set a fixed mount of time for DND.
  • For the rest of the day: The duration depends when the user turns DND on, so that the DND status expires at the end of the day.
  • No automatic reset: When this item is selected, the DND status will not automatically turn on and needs to be turned off manually by the user.
  • Reason for DND: The user may set a reson phrase for the DND status. There are a few default entries available, but the user can also set a custom message

Default duration for DND: On the app, the user can decide for how long the DND status will last. For other devices like VoIP phones, this is not possible. In these situations, the system will use the default duration for DND for the duration of DND.
Handling of suspected SPAM calls: This setting controls the treatment of incoming calls; however, it does not affect internal calls or calls from a hunt group or agent group. See also the Black List (*92) feature.

  • Default: Uses the setting on tenant level
  • No special treatment: All calls are sent directly to the user's extension.
  • Reject Call: The caller will be informed that the user does not accept anonymous calls and will not be put through to the extension.
  • Pretend to be busy: This setting prevents the call from going through but does not tell the caller why.
  • Ask for name: The caller is prompted for his or her name and then put on hold while the extension is called. After the system reads out the recorded name, the user can decide whether to accept the call, send it to the mailbox, or reject it.
  • Ask for name even if the caller-ID is present: This setting requests the caller's name, even if the caller-ID is available. Only white list callers will be put directly through.

Threshold value for rejecting SPAM calls: This number between 0 and 100 determines when a call is considered SPAM in the context of calling the extension. If the value is not set, the value on tenant or system level is used.
SPAM score for anonymous callers: If there is no caller-ID available, the system will use the number in this setting. If the value is not set, the value on tenant or system level is used.
Hot Desking at: This setting allows users to specify an extension where they will pick up their calls. All calls (including calls from an agent group or hunt group) will be sent to this extension. For more information on hot desking see Call Forwarding Codes .
Disconnect call with busy when extension is busy: If this flag is enabled, the system will send a busy (SIP 486 Busy here) instead of connecting the call and playing a message. This works only if the call is not connected yet on SIP protocol level.
Forward all calls to: This setting allows users to redirect all calls to another extension. Only calls that are headed directly to the user's extension will be affected by this setting. If a user is part of a hunt group, agent group, or paging group, calls originating from these groups will not be redirected. The calls that are getting forwarded can be filtered by internal or external calls. Also it is possible to select the times when the call is being forwarded.
Forward calls when busy to: This setting allows users to forward all calls to the extension that is specified, only when the extension is busy. This condition is true if either the phone itself signals that it is busy or if the lines parameter has been set for the extension and this number has been reached. If this settings contains the word "busy", the system will not redirect the setting, instead attempt to send a busy signal to the caller if the call was not already connected. The same conditions like the previous settings for forwarding are available.
Forward on no answer to: This setting allows users to redirect all calls after there has been no answer for a predefined period. The waiting period is defined in the tenant but can be overridden by the call forward no answer timeout setting (next bullet item). (If the mailbox picks up earlier, this setting will have no effect; if the call is redirected, the mailbox timeout will be cancelled.)
Forward on no answer timeout: This setting determines how long the system will wait for the user to answer the phone before forwarding the call. If the setting is not available, the system will use the tenant setting for this value. If that is also not available, the default is 30 seconds. This field is effective only if the call forward on no answer field has been set.
Forward when not registered: This setting allows the user to specify where calls will be forwarded if the user's extension is no longer registered for any reason. If the user is part of a hunt group, agent group, or paging group, calls originating from these groups will not be redirected.
Include following extensions when this extension is being called: Instead of using a hunt group, the system can include other extensions when the extension received a direct call. There are no stages, but this is a simply way for setting up pickup groups where each of the group member can pick up calls from another extension.

Cell phone numbers

For the cell phone settings, there is a separate article.

Disable device types

When the system is going to call an extension, it can select which devices are getting called:

  • Disable calling mobile phone numbers: This flag determines if the system is going to call a cell phone on a cell phone number (noz the app).
  • Disable calling the app: This setting disables calling the mobile apps. The desktop apps are called regardless.
  • Disable calling VoIP phones: This setting determines if the system is calling a standard SIP registration, typically a desktop phone.

Recording

Record incoming calls from extension: This setting controls the recording on an extension (applies to calls coming from another extension for the entire tenant).
Record outgoing calls to internal numbers: This setting controls the recording on an extension (applies to calls going to another extension for the entire tenant).
Record outgoing calls to external numbers: This setting controls the recording on an extension (applies to calls going to external numbers for the entire tenantdomain).
Record outgoing calls to emergency numbers: This setting controls the recording on an extension (applies to calls going to an emergency number).

Mailbox

Every extension has a voice mailbox on the Vodia PBX; however, the administrator can disable users' mailboxes and use an external mailbox, such as Microsoft Exchange. This section applies only to the voice mailbox of the system. This tab has all the mailbox settings, including interface for uploading the greeting wave files, and shows the voicemails of the extension.

1_3.png

  • Mailbox Enabled: From this setting, users can enable or disable their voice mailbox. If it is disabled, callers will not be able to leave messages and the user will be unable to use the mailbox functions. If FAX is selected, this mailbox will not play any announcement and instead wait for the FAX signal (available from version 5.0.3).

  • Time until mailbox picks up: This setting allows users to specify how long the system should wait before redirecting calls to the user's voicemail. If Call forward no answer timeout has been set, the shorter timeout will be executed first. If Include the cell phone in calls to extension has been set (see Redirection settings), the system must be given enough time to call the user's cell phone (which may take 10 or more seconds) and enough time for the user to view the caller-ID. The default is 20 seconds.

  • Maximum number of messages: This setting allows the user to specify the maximum number of voicemail messages that should be stored at any one time. If the maximum has been reached and a caller wants to leave a new voicemail message, the system will attempt to delete a saved message. If space is still unavailable, the system will inform the caller that the mailbox is full.

  • Automatic Deletion of messages: "Make room for new messages" - This setting deletes the number of messages enough to clear the mailbox messages to make room for new messages. For e.g. if one sets the "max number of messages" to 50 and it has 40 messages in it currently and if 5 new messages arrive, then the oldest 5 will be deleted ASAP to make room for the new ones and also not hit 50 in the process.

  • Announcement Mode: From this setting, users can choose an announcement that callers will hear when reaching the their extension.

    • Anonymous Announcement: The caller will hear the number of the extension.
    • Name Announcement: The caller will hear the recorded name of the extension, if one is available.
  • Mailbox Explanation Prompt : This prompt gets played when a voicemail is left for an extension. But that can be modified using 3 drop down options under this setting:

    • Default: This setting plays the Mailbox Explanation Prompt by default.
    • Always: The Mailbox Explanation Prompt will always play, whether or not the Greeting is set for that mailbox.
    • Not on Personal Greetings: If there has personal greeting been uploaded and selected from the Files section, then those will play when someone reaches the callee's mailbox and not the Mailbox Explanation Prompt.
  • Call cell phone when new message arrives: If users have decided against forwarding their calls to their cell phone but still want to be alerted when a new message arrives on their extension, they can activate this feature. Once a caller has left a message, the system will call the user on the cell phone. After the announcement, the user must press 1 to hear the message. If the message could not be delivered, the PBX will retry up to three times.

  • Call supervisor when message was not retrieved : This setting will call the give senior / mentor / manager if the voicemail is left on this extension which wasn't heard / acknowledged within any of the specified times given in the drop-down option.

  • Send message waiting indication: When this feature is activated, users will receive a message waiting indicator (MWI)—a blinking light on their phone—that notifies them of a new message. Once the user has listened to the message, a solid light will replace the blinking light. This enables the system to alert the user the next time a new message has arrived. Star code *99 will clear the message indicator even if messages have not been read.

  • Mailbox Escape Account (overrides tenant setting): This setting gives users the option of changing the direction that a call will take once the caller presses 0 to speak with the operator. The extension that is entered into this field will receive the calls that the user thinks are directed to the operator.

  • Copy new messages into the following mailboxes: This setting and the next setting (Make messages available in the following mailboxes) allow users to create group mailboxes. A group mailbox can be used for anything from a joint boss/secretary mailbox to a place to collect after-hours calls or holiday calls. All parties will be notified of incoming messages by the MWI that is located on their individual phone (see MWI). Users can listen to the messages from their voice mailbox from an outside phone or an outside line on their own phone for instructions on accessing voicemail from an outside phone). When messages are copied in contrast to be made available, operations like delete the message and mark the message as urgent only affect the copy of the message, not the original message.

  • Make messages available in the following mailboxes: Like the previous setting (Copy new messages into the following mailboxes), this setting can be used to establish group mailboxes. However when someone deletes the message or marks it as read, all copies of the message are affected. This makes sense for mailboxes that require a one time response, for example when a customer calls into a group and wants to receive a callback.

  • Play envelope information before playing the mailbox message This setting allows the user to listen to the details of each voicemail message (for e.g time and extension number of the caller) before hearing the actual message, when the user calls their own voicemail. This setting on the extension level overrides the one on the tenant level. (Tenant → Features → Voicemail)

  • Offer calling cell phone when entering user's mailbox: Before entering the mailbox, this option gives a choice of calling the users cell phone before leaving them a voicemail.

  • Switch to T.38: - Configure the mailbox to switch to a FAX mailbox after hearing 1, 2 or 3 CED tones from this option.

Format: The greeting audio file should always be in the format WAV, Mono, 8KHz, 16KBps

Also, all the audio files that gets uploaded to the PBX need to be in the same format for the PBX to accept the audio and play it well on any of the devices such as desktop phones / apps / user portal etc.

Hint: Even if you set "Announcement Mode" to "Personal Announcement" the system will play in some situations additional announcements.
To get rid of these you have to deactivate "Offer Camp On" and set "Mailbox Explanation Prompt" to "Not on Personal recording" in the voicemail settings for the tenant, for further information have a look here: Voicemail.

Email

The email settings on this tab allow users to receive emails as notification of all incoming calls on their extension. Users can also request an audio file, or WAV file, of voicemail that has been left on their extension.

extensions_7.png

  • Email Address (e.g. abc@company.com): This feature allows users to integrate their email account with their extension account. Voicemail messages will be sent to the user's email account according to the settings chosen below (a semicolon is required when entering multiple email addresses into this field).

  • Send a mailbox message by email:

    • Do not send an email: No email will be sent. This option should be used when the user prefers to use only the phone to receive voicemail messages.
    • Send emails without attachments: Email notifications will be sent to the user for every voicemail that is received. This provides somewhat of a visual voice mailbox. The user will see the name and number of the caller and the date and time that the call arrived. To retrieve the voicemail itself, the user will need to call into the voicemail. The benefit of this mode is that emails that are relatively short can easily be read using mobile devices that support reading emails.
    • Send message as an attachment to the email: The user's actual voicemails will be attached to the email notifications. This option should be selected if email is being used throughout the day and a personal computer is being used to process the email.
  • After sending a message: This setting allows users to decide what to do with a voicemail message after it has been emailed to them:

    • Keep message as new message: The message will remain in the user's mailbox as a new message. This option has the potential danger of eventually overfilling the voice mailbox. Administrators can use the Voicemail Size setting to restrict the number of voicemail messages.
    • Mark message as read: The message will remain in the user's mailbox, but the system will drop the oldest message to make room for new messages if the mailbox becomes full. The disadvantage of this mode is that the message waiting indicator will not alert the user of new messages.
    • Delete the message: The message will be deleted after the email has been sent. This keeps the mailbox clean, but because the system does not store voicemail messages permanently, the user will need to listen to the messages from the email client.
  • Send email on missed calls: When this setting has been activated, the system sends the user an email for each missed call. Calls to a hunt group or agent group are not included.

  • Send email at the end of every call: When this setting is activated, the system sends the user an email for all calls. This feature is useful for keeping track of a group sales extension, a telemarketing campaign, or calls made to a new employee's extension. (When both "missed calls" and "all calls" have been activated, the user will receive two emails for each missed call.)

  • Send email on status changes: The user will be notified of all status changes (e.g., toggling the DND status, changing the registration status, etc.).

  • Send email when mailbox is full The user will be notified when the mailbox is full, which helps them to not loose any voicemails in near future.

  • Send emails if the call was rejected because of blacklisted number The user will be notified via e-mail if blacklisted number tries to call them anytime.

  • Send email to following address(es) if the wakeup call is not answered If, according to the wakeup time call set here search for "wakeup" the user doesn't answer the call, immediately an email is sent to the address(es) listed in here. Multiple addresses are set with a semicolon between them.

Registration

The registration tab is used to control the registrations for the account. You may register one or more devices for one extension. When an extension is called, the system will call all registered extensions in parallel. The first extension that picks the call up will get the call, and the other extensions will receive a CANCEL message.

extensions_8.png

  • Trusted IP Addresses: This setting dictates which IP address or addresses can be registered to this extension. The system will accept registrations only from the specified IP addresses. For example, if the extension has been set to 192.168.1.2, and 192.168.1.5 tries to register, it will be denied with a 403 forbidden message. Use a space as a separator when entering multiple IP addresses. To indicate subnets, use a slash and the number of significant bits behind it (e.g., 192.168.2.0/24). Please note that the PBX will not check the password if the IP address matches.
  • Bind to MAC Address: This field is used to bind the registration to a specific user agent. The MAC address is located on the back of the phones and begins with 0004 for snom phones.
  • Parameters 1 through 3: Parameters 1 through 3 allow you to configure fixed values that can be used in conjunction with the "External Voicemail System" setting at the domain level. Without using these parameter settings, using a value of 7$u in the "External Voicemail System" setting tells the PBX to prefix the user name (number) with a "7" before sending it to an external voicemail system. If you prefer to set a fixed value (e.g., 555) for the user name, set one of the parameters to a specific extension (e.g., 555) and link it to the "External Voicemail System" setting by entering 7$1 (if using parameter 1) into the "External Voicemail System" setting. The PBX will then use 7555 for the ANI. These Parameter settings can also be used during the dial plan replacement operation. By default, the PBX uses "\r" in the dial plan replacement to substitute "trunk registrar." Similarly, you can use "\x" to use the value set in Parameter 1, "\y" to use the value set in Parameter 2, and "\z" to use the value set in Parameter 3.
  • EPID: EndPoint Identifier is a random number created by the system and functions as a callback number. The EPID is sent on all 911 calls, enabling the PSAP to call the extension back directly if the phone is disconnected or the person hangs up. The EPID is essentially a DID for that extension and ensures that a returned call will reach the extension from which the call originated even if there is an auto attendant in the middle. This works to enable 911's E911 service. A general callback number for all users across the domain can also be set using the ANI for emergency setting. (See also Emergency Destination Number on this page, and the Emergency Numbers
  • Lines: The lines parameter is used during provisioning to tell the phone how many line keys it should allocate (whenever applicable). The line feature is also used to restrict the number of calls that an extension can make. For example, if 1 is used in this field, then calls cannot be made simultaneously from both the office phone and the home office phone. During an active call, the system will neither page the extension nor perform intercom calls to that extension.
  • Max. number of concurrent registrations per extensions: This setting is used to restricted the number of phones that can be registered to an extension. This is useful for service providers or enterprises that want to ensure only one phone is registered per extension.
  • Credit for outbound calls: This setting allows you to place a limit on outbound calling for the extension only. You can also place a limit on outbound calling at the domain level settings.
  • Override Codec Preference: This setting allows you to specify the codec preference for the extension. This setting is useful for a remote phone with limited bandwidth, as you can force a low bit rate codec like GSM or G.729 to be used on the extension. The format for this setting is similar to the Port Setup section of the system.
  • Emergency Destination Number: This setting is used when you are running the extension in a remote location where a different police department should be called. You will need to find the Public Safety Answering Point (PSAP) for this number; however, it is not a guarantee that a call will be routed there, so ensure that this is tested or approved if your carrier does not have 911 service. Once this setting has been populated, the number entered into this field will be dialed once a user dials an emergency number configured in the Emergency Numbers setting.
  • Log Registration Changes: This setting allows the domain administrator to specify a log level for registration log messages specifically for the extension. This setting makes tracking down registration problems easier. You can also decide who should receive an email when the registration status does change—the administrator, the user, or both.

Current Registrations

Displayed at the bottom of the Registrations page are the current registrations (if any exist) for the account. Important information includes the type of registration, the registered contact address (as indicated in the registration message), and the length of time the contact has been registered. "REGISTER" in the Type field indicates a standard registration for receiving calls. Other registrations address specific event types, like message waiting indications.

  • Clearing registrations: To clear all registrations, use the link at the bottom the page. Be sure to refresh the registration from the user agent so that you are able to call it.
  • Sending a reboot request: You may also send a reboot request to the phone by clicking the check sync link. This way, you don't have to use the web interface of the device or even go to the phone to reboot it (for example, to read new configuration data).
  • Manual registrations: You can also add a registration manually. Manual registrations are useful for devices like Microsoft speech server that do not support registrations.
  • Static registrations: Static registrations can be used to call any other number.

Permissions / Groups

  • Barge into calls of the following extensions: Call Barge-in allows a third party to barge into an in-process call. Typically, this third person is either a secretary contacting the boss or possibly a co-worker in the next cube who needs help on a call. The permissions to jump into calls and listen to conversations may be legally restricted in certain countries; please use extra caution here. Once permission has been set, Call Barge-in can be activated using the *81 star code.
  • Teaching (whisper mode) for the following extensions: Call Teach mode allows a third party on a line with only one of the parties knowing. This is typically useful in a call center when a trainer wants to offer tips to a new agent without the customer knowing. Once permission has been set, Call Teach can be activated using the *82 star code.
  • Mix audio into the calls of the following extensions: This mode allows the extension to mix audio into conversations without receiving the audio stream.
  • Listen in on calls of the following extensions: In Listen-In mode, a third party can listen in without being detected. The two parties speaking to each other are not aware of the listen-in. Users with permission to use Listen-in can activate it using the *83 star code.
  • Call the following extensions even if DND is set: If this flag is set, the account will be permitted to call the extension indicated in this field, even if that extension is currently on DND. This applies only to DND which has been set on the system. The permission to override DND is useful for extensions being used by assistants who are responsible for screening calls.
  • Intercom to the following extensions: This feature is used for communicating with one other person. The two parties must each have their own extension number. (Intercom will not work between two phones that are registered to the same extension.) Users with permission to intercom can activate it using the *90 star code.
  • Domain accounts that can be put into night mode: This feature enables users to forward domain accounts (e.g., auto attendant, hunt group, etc.) to their own extension. Domain accounts that are entered into this field can be put into night mode by this user. Star code *80 is used to activate this feature.
  • May clean up the following extensions: This feature enables an extension to clean up other extensions and is useful in a hotel implementation where voicemail must be cleaned out and greetings reset. Star code *84 is used to activate this feature.
  • Only the following extensions may call this extension: This feature can be used to limit the users who can call another user's extension.
  • May listen to automatic recordings of the following accounts: This feature enables an extension to listen to the automatic recording set on all the accounts listed on here. It can be heard by using the star-code *58.
  • Can see all recordings: If this flag is turned on, the extension will see all call recordings of the domain. This is useful for managers.

Note : When entering extensions in this section, use a space as a separator if specifying multiple extensions. You may use wildcards, for example, an asterisk (*), to match all extensions of the domain.

Buttons

This tab is for setting up the buttons of the device that will register to this extension. Here you can specify which button profile you want to assign to the extension. You may select Automatic which will automatically assign the correct default profile based on the snom phone type. Or you may also select any other profile, default or any other profile that you may have created (you can create or change any of the profiles in the Buttons page of the domain, see Buttons for more details). Or you may define an extension-specific profile. If you are using a selected profile (default or otherwise) you may turn this into an extension specific profile by editing it and saving at the bottom of this page.

extensions_10.png


Call Queues

A call queue (formally known as Agent Group), also known as automatic call distribution (ACD), is an account that routes incoming calls to a specific group of agents. Before connecting to an agent, callers are placed inside a queue, allowing agents to deal with incoming calls without losing other callers to busy signals or unanswered phones. While waiting, callers hear music and pre-recorded announcements. Call queues can be monitored using a number of monitoring methods.

Call queues are often found in offices that handle high-volume customer calls from callers who do not need to speak with a specific person but who require assistance from any of multiple persons, like sales representatives and or support staff. Call queues have a wide range of features.

By default, agents are logged into the queue. They can log themselves in and out. While they are logged out, they are still agents of the queue and will show for example in reports, but the system will not route calls to the agent. When an agent puts herself on do-not-disturb (DND), this agent is logged in however the system will also not route calls to the agent.

Agents are organized in pools. The agents in the primary pool are included unconditionally. The agents in the other pools are included when the condition for the pool is true. This makes it possible to add additional agents for example when waiting times are getting too long or all of the primary agents are logged out.

Creating a call queue

Adding a call queue

  • Go to your selected domain in the Vodia PBX web interface.
  • Go to call queues by clicking on Call Queues under Accounts as shown above.
  • On top, click the tab Add to create a new call queue.
  • In the Account number(s) field, enter an account number. You can assign multiple numbers to the account, e.g. an internal number like 60 and an external number like (617) 123 1234. Please use a semicolon as seperator.
  • Also add a descriptive name for the queue.
  • Press Create.
  • The call queue will be created which you can see in the call queue list or in the list for all accounts.

The list of call queues shows the names and the agents that are assigned to the queues. If there are calls in the queue, they will be shown in the Calls column.

Configuring a call queue

Clicking on the link in the call queue list will take you to the dialog for editing the queue and view details for the queue. There are several tabs for handling the queue.

Identity

Account Number(s): This field takes extension number(s) and/or DID number(s). The number of DIDs that can be entered into this field is unlimited. Plesse use a semicolon to seperate the numbers.

Display Name: This field allows you to create an alias so that you can quickly identify the Account among other Accounts.

Outbound number (ANI): This field shows the outgoing ANI to the callee if an agent that is logged into this queue when dials out.

ANI for SMS: With this feature the agents can show a different ANI when SMS is sent out to external numbers.

Agent Setup

Primary Agents: The primary agents which are always considered for routing incoming calls.

Extensions that can add themselves: This setting controls which agents can add themselves as primary agent to the call queue. If a star is used in this field, all extensions that use *64 will automatically be listed in this field. Agents are automatically logged in when they add themselves. Extensions can not remove them as agent, however agents can log out from the queue.

Number of logged in agents required to allow log out: This setting specifies the number of agents that must be in the queue before agents are permitted to log out. This setting is needed because agents that use VoIP phones typically are not able to see how many agents are logged in at a time.

Agent recovery time: Agents typically need some time after a call to take notes, take a breath or log out (this is also sometimes called wrap-up time). During this time, none of the queues will route a call to the agent. In some environments, a recovery time is also needed for the phone to settle the last call.

Duration for flagging a missed call: This setting determines how long a call must have been ringing before it is considered a missed call for an agent. For example, if a call rings for only 1 second and the caller hangs up, it would be unfair to flag a missed call for the agent.

Show missed call on phones when caller hangs up: Most VoIP phones show missed a missed call when the caller disconects the call. This can cause confusion if another agent picked the call up, especially if the agent decides to call the number back because it is not clear weather call was in a queue or directly to the agent. Depending on the phone model, the system can suppress the missed call indication.

  • When there is only one agent ringing: The system will show a missed call if the call was exclusively routed to the ringing agent.
  • Always: The system will always inducate a missed call to all agents that were rung up.
  • Never: The system will not indicate a missed call for any agent.

Allow multiple calls on agent - even if busy: This setting allows a call to be sent to an agent even if that agents are busy. This will cause a call waiting for the agent. This breaks the rule that one call is routed after another and makes the queue behave more like a ring group, while retaining other options the queue like logging in and out.

Allow agents to divert incoming calls: If this setting is turned on, agents can use their VoIP phones to deflect incoming calls to another destination. Please note that some phones will send call redirections by themselves, for example because a local call redirect after timeout or a call redirect for all calls was set on the device.

Allow multiple calls to ring agents in parallel: When this flag is set, the queue will proceed ringing more agents even if there are more calls ringing up agents. This generally makes sense when there are only one or only few agents added in each stage or there are a lot of agents available for accepting calls.

Agent Selection

Algorithm for Selecting next agent: The agent selection algorithm allows you to establish the method that will be used by the system when connecting a caller to an agent. Choose from the following options:

  • Random: This algorithm randomly selects the next agent. This is a reasonable algorithm in environments where it is not important as to which agent processes the call.
  • Ring longest idle first: This algorithm is designed to balance active call time amongst all the agents. The queue keeps a list of the agents and moves an agent to the end of the list when an agent connects a call. This ensures that the agent with the longest idle is at the front of the list.
  • Use preference from the Agent's setting: This algorithm uses the extensions listed in the agent setting. The agent listed first will be tried first. If that agent is busy, then the system will continue with the second one and so on.

Position for adding agent: Depending on your setting, newly logged in agents will be positioned at the front of the queue or the back.

Ring stage duration (secs): At regular intervals, the system checks agent availability and determines whether the next caller should be pulled out of the waiting state. The ring stage duration setting establishes this interval. For larger queues, shorter intervals are recommended, as it is quicker to get callers out of the queue and into a ringback state. The default value for this setting is 5 seconds.

Number of agents added per stage: In every scheduling interval, the system adds only a limited number of agents from its pool of available agents to its list of ringing agents. For large call queues, a typical value would be one or two, as this will ensure that not all agents receive calls at the same time and so that the system CPU is not overtaxed with simultaneous calls.

Use the login status for agents: Before considering an agent, by default the system checks if this agent is logged in. This option allows to ignore the login status for additional agents or for all agents.

Including additional pools

This section allows you to define condions under which the agents from the additional pools will be added to the list of agents for this queue. There are up to 5 additional pools available.
The conditions can also be used to color a call. This feature is useful when using the apps that are able to show the color of the call. For example, it makes sense to color a call red if the caller waited already more than five minutes.

When service flag is active: The additional agents from this pool will be added if the service flag is active.

When service flag is not active: The agents will be added if the service flag is not active. Having both active and inactive options make it easier to use office hours service flags.

Waited longer than …: If a caller has waited longer than the indicated time, additional agents will be added.

Number of waiting calls exceeds …: If there are more than the inducated number of calls, additional agents will be added.

After hearing ringback for (s) …: If the caller hears ringback for longer than the indicated time, additional agents will be added. This is typically the case if none of the primary agents pick the call up.

After talking for …: This condition makes only sense for selecting a color. For example this can be used if an agents is stuck with a specfic caller and needs help to resolve the situation.

After holding for …: This condition also makes only sense for selecting a color. It is typically used when an agents keeps a caller on hold for too long and needs a reminder to continue with the call.

Redirecting calls

In contrast to adding additional agents to the pool, the system can also redirect the call out of the queue. The redirection target can be any number that the queue can dial, including a mailbox (possibly using the mailbox prefix), an external number, a different queue, an auto attendant or a specific manager extension. For the redirection, the following options are available:

After hearing ringback for … redirect the call to the destination: This condition fires if the caller hears ringback for the indicated time, like with the agent inclusion above. However the queue will not include agents, but instead redirect the caller to the provided destination.

If the caller already waited longer than … redirect to the destination. Like with the agent inclusion, the condition will fire if the caller waited a certain time. Again, instead of adding more agents the call will be redirected.

Automatically log agents out after redirecting a ringing call: This setting will log agents out if the call in the queue was redirected while agents were ringing. Agents need only log back in to return to the call queue. This settings is useful to avoid callers to get stuck again and again with the same agent that has already left for the day without logging out.

Redirect destination for suspected SPAM calls: If the queue inbound call has been suspected as a SPAM call by the PBX (from the domain / admin level SPAM detection settings) then number entered here will be where these calls will be redirected.

Miscellaneous

Ring melody for agents: Distintive ring melodies help agents to identify calls that are coming from a queue. See Custom ringtones for more information.

Event for connecting the call: This setting allows you to tell the system when to pick up the line if the line has not been picked up already (for example, by an auto attendant).

  • Entering the call queue: The call is picked up when it enters the call queue. In most cases, this is suitable behavior.
  • Music playback: If the caller has to wait for an available agent, the caller is put on hold and hears music while waiting. If the call goes directly to an agent, the queue waits until the agent picks up the call before connecting it.
  • Agent picks up call: The call is not connected until the agent picks up the call, even if music on hold and/or announcements have been set. This option is useful if the waiting time in the queue is typically very short and there's no risk of the carrier disconnecting the call due to no answer.
  • Never connect: The call is never connected. This is useful if you want to provide free services to callers. This setting prevents the carrier from seeing the call. As with the other options, there is a risk that the carrier will not tolerate this behavior and will hang up the call after a certain timeout.

Priority of this queue: This setting determines which call queue will be the priority when an agent is part of multiple call queues. For example, if two calls are on two queues and the PBX has to choose this agent, it uses this setting to determine which queue call has the higher priority.

Maximum number of calls: This setting limits the number of active calls on the queue. For example, this can help avoiding situations where all inbound call channels on a PSTN gateway get clogged up.

After the maximum calls is reached: This setting determines what the system should do when the maximum calls have been reached. The system can either reject the call or instead connect the call and play a message.

Caller-ID to show to agents: This setting allows agents to see who the call is coming from. By default, the name of the calling party is displayed, but the system can be configured to display the name of the queue (see From Header in Groups ), either by itself or with the calling party. When both are shown, the system puts the caller-ID in brackets after the display name. This mode requires that the phone have enough space to display a long number. When using this mode, choose a short group name so that it requires less space.

Change caller-ID when redirecting: This flag controls weather the caller-ID change will stick to the call even after passing it on through a redirection.

Add to the address book and keep it for … If this setting is enabled, the system will add every caller into the shared address book for a certain time. This is a prerequisite for being able to route a caller to the agent that was connected during the last call.

Automatically add CMC: When this feature is turned on, the caller's CMC will appear in every CDR that is written on the disk. The CMC is used for automatic billing.

Call routing based on: This feature allows callers to be connected to agents who have handled their calls in the past.

  • Queue entry time: All callers will be placed in queue and will remain there until an agent becomes available.
  • Try to pull out callers when their last agent becomes available: Callers will be pulled from the queue if their last agent becomes available. This requires that the caller is in the address book, e.g. by automatically adding every caller to the address book.

Dial plan for outbound calls: Select the dial plan that will be used for this account, for example for redirecing calls.

Page incoming calls: The system can use a paging group to annouce calls. This is useful in environments where the agents are not always near their phones, e.g. shops.

Log agents out at midnight: In some environments it makes sense to log all agents out at midnight as a cleanup mechanism, so that agents need to take action in the morning and log in.

Turn off the cell phone forking: By default the queue will try to include the agent cell phone when trying to connect a call. This behavior can be turned on on the users profile, but it can be disabled per queue as well.

Monitoring

Send IM to these extensions: The queue can send instant messages to connected VoIP phones. This is a legacy feature and should not be used for new installations.

Send daily CDR report to: The system can send emails about the usage of the queue at specified intervals. This setting contains the email address or the email addresses of the recipients, seperated by semicolon (e.g. adr1@domain1.com; adr2@domain2.com).

Send daily CDR report at: Instead of sending email out at midnight, reports can also be generated at different times. If is possible to send at multiple times, for example at the end of the week and at the end of the day. In such cases the patterns are seperated by spaces. Reports can be send daily, weekly (specify a day of the week), monthly, quarterly and yearly.

Send nightly CDRs as: The email can contain a table with information or a graphic illustration of the queue statistics.

CRM account: If there is no CRM account available for example because no agent connected the call, this setting will provide the default CRM account.

Record incoming calls to call queue: This setting overrides the setting for automatic call recording in the settings for the tenant.

Allow agent connect ActionURL: This setting enables or disables the Action URL for connecting an agent.

Enable call pickup from extension BLF: For BLF that monitor an agent this setting controls weather a callpickup from that agents extension is possible or not. The reason for this setting is that is it generally not possible to see on a BLF button if the call is gor a queue or for the individual extension.

Redirection

In addition to the redirection conditions that depend on the calls in the queue, there are additional options for redirecting calls.

When service flag is active/not active: The redirection depends on the state of a service flag.

Always: The redirection is always active. This setting can be useful when set automatically through an external program.

When primary agents are logged out: This condition is true when all primary agents (pool 0) are logged out or are on DND.

When agents are logged out: This condition is true when all agents (including the conditional pools of agents) are logged out or are on DND.

No agent has phone registered: This condition is true when all agents which are logged in (including the conditional pools of agents) have no active VoIP phone registrations. Registrations for mobile apps are not considered in this condition.

All agents busy: This condition is true when all logged in agents including the conditional pools of agents are either on DND or in a call.

Caller in address book/not in address book: This condition is true if a caller is in the shared address book or not. This is useful to implement "VIP" redirection, e.g. to a higher priority queue.

SOAP interface

This is a legacy setting that should not be used in new deployments.

Caller Setup

Caller Setup

Audio

Ringback tone: This setting controls what the caller hears when the agent is being called:

  • Regular ringback tone when agent rings: The caller will hear the agent ringing.
  • No ringback tone, continue playing music: Instead of hearing a ringback tone, the caller will hear music. If an agent is no longer at his desk but has not logged out of the agent group, the caller will hear music on hold instead of ringback.

Music on Hold source: From the dropdown list, choose the music that the caller will hear while waiting for an agent.

Background Music: This setting enables you to continue playing the music on hold while playing the messages.

Gap between announcement(s): From the dropdown list, select the number of seconds that the system should wait between each announcement.

Queue position announcement: When Announce queue position is selected, an announcement will let callers know their position in queue. This can be done once or periodically, e.g. when the position changes.

Minimum number of callers needed for position announcement: This setting controls the queue position annoucement, so that positions are only annouced if the queue is busy.

Announce automatic recording: This flag controls weather the system generates an annoucement about the automatic call recording.

Announce estimated waiting time: This settings controls weather the caller gets an estimated waiting duration. The value for the waiting time is calculated by average of the last three callers that were connected. Depending on the amount of calls, this value can be only a rough estimate of the actual time.

Upload Messages

The number of available greetings within any queue is nine. Record only those greetings that should be used. If no greetings are needed, even an initial greeting, don't record any. When recording greetings, you need to assign a number to each greeting; for example, *0 is the entry greeting, *1 is the first greeting, *2 is the second greeting, etc. The number is entered as the last number in the string.

Callback

Instead of having callers wait in the queue, the system can instead call waiting callers back when it is their turn.

In order to enable this, the queue needs to offer a call back key which will be annouced to the caller. The queue will annouce the callback possibility when entering the queue either always, never or depending on the expected waiting duration of the caller. Typically only callers that are facing a significant waiting time will use the callback feature.

On order to avoid fraud a dial plan is needed for the callback. The number needs to match with a trunk in the dial plan. This makes it possible to use an existing dial plan or set up a dedicated dial plan for the queue.

When the user presses the selected key, the system will play an IVR that asks the caller to confirm the caller-ID or enter a different caller-ID. For numbers that are not on the dial plan, the system will immediately ask for a different caller-ID until it matches the dial plan. This ensures that only numbers which are on the dial plan will enter the callback list.

When the system calls the number, the system will play back an annoucement to the user about the callback and then puts the caller into the queue at the position where the caller would be when juts holding the call. The number of attempts and the waiting duration between the attempts is set with the general outbound calling parameters below.

acd_callback.png

Post-Call Survey

After the call is over, the system can collect a feedback from the caller. In that case, the agent needs to disconnect the call and the caller needs to stay in the call. There are two ways to receive a feedback. The first one is to redirect the call to an external survey number, for example survey services outside of the system.
The second possibiity is to use the built-in feedback mechanism that asks for a 1 to 5-star rating of the call. The rating will be logged along with the CDR for the call and is available throughout the various reporting mechanisms for the ACD.
If the caller leaves a low rating this may trigger a follow-up with the caller. For this the system offers a redirection number, which is typically a manager that will check what went wrong.

Screen Shot 2021-07-13 at 11.34.41 AM.png

Caller Options

Caller options allow the caller to exit the queue and connect to another destination. To give the caller this option, use the Caller Options fields to map telephone keypad numbers to other extensions or phone numbers.

Once extensions or phone numbers have been entered into the "Key" fields, the caller must be made aware that these options are available. The system will not do this automatically. The place to do this is through the greetings that are delivered by the system (using the *98 star code feature). One greeting or several greetings can be used to inform the caller that this additional option is available. In the following table, greeting 2 informs that caller that key 1 can be pressed to leave a message.

Greeting Message Caller Option
0 Welcome to CompanyABC. Your call is important to us. Please hold.
1 Sorry our lines are still busy . . . Have you looked at the support site for answer to your question?
2 Our newest release offers this and that . . . If you want to leave a message, please press 1 now. 503
3 Another message . . .
4 Another message . . .

The Message-Music Cycle

While the caller is waiting, the system delivers a combination of pre-recorded messages and music. The messages can be used to provide additional information about your company, or they can be used to provide the caller with additional options and/or a way to exit the queue. Each call queue can be configured to play up to nine recorded messages. Between the messages are "gaps" of music which can be configured to span 5 to 180 seconds. This messagemusic cycle continues for as long as the caller is in the queue. Message 0 is considered the entry point message (which will never be replayed), and message 1 is the first message. A queue using six different messages for its message-music cycle. Once message 6 has been played, the system returns to message 1 and repeats the cycle.

This sequencing of messages and music will continue until an agent becomes available. Once an agent is available, the system automatically takes the next call out of the queue, rings the agents, and puts the call into ringback state. Within any one queue, only one call at a time can be in ringback state, regardless of the number of agents that are available. All other calls remain queued until the ringing call is connected and at least one agent becomes available.

While it might seem logical to conclude that a caller's time in the queue has ended once the call has been placed in ringback state, this is not always the case. If an agent leaves the desk without logging out of the queue, the ringback state will continue until the system finds another agent to answer the call. To prevent nonstop ringing, you can take two precautions: (1) you can configure the queue to include additional agents at specified intervals in the ringback cycle and (2) you can configure the queue to play music during the ringback state. This will prevent the caller from hearing long periods of ringing in the event there are episodes of extended ringback.
agentgroups51.png

Record Greetings

  1. Dial *98 followed by the number of the queue, then the greeting number (e.g., *1).
  2. Press theconfirm button on the telephone keypad.

agentgroups61.png

Listening to Greetings from the Phone
To listen to greetings quickly from the phone, change the gap between announcements to 1 and call the queue directly from your phone. The recorded messages will be played quickly.

Outbound Calling

The queue's Outbound Calling page allows the queue admin to set up outbound numbers for agent dialing. Once the outbound numbers have been configured for the queue, users can initiate calling using the ACD outbound calling star code or have the system start the calling (see below).

Settings

The following settings control how the outbound calling works. Some settings also affect the automatic callback feature (see above).

Call outbound numbers up and then queue When this flag is set to on, the PBX will call the numbers up without the agents having to dial the star code. Otherwise the agents need to trigger the call.

Required number of available agents In order to make sure that the call will get to an agent, there needs to be a certain number of agents available. This settings controls that.

Maximum number of retries If the call fails, the PBX will reschedule the number for later and try again. When the number of retries has reached the maximum number the number will be marked as failed.

Maximum number of waiting callers As with the number of available agents, the number of waiting callers will slow down the calling until the queue has capacity to take an additional call.

Timeout for connecting calls This setting controls how long the PBX will keep the call ringing until giving up and considering this call attempt failed.

Key for connecting the call In many cases it is useful to ask the called number to confirm the call in order to rule out that the call has not reached a mailbox. This setting controls what key to ask for or wheather to ask for a key at all.

Duration between call attempts for a number If a call fails, the system will wait a certain time before trying to call again.

Screen Shot 2021-07-13 at 11.17.42 AM.png

Adding outbound numbers

  1. From the queue's Outbound Calling page, enter a phone number into the Add a number for outbound call field.
  2. Click Add. The number shows up under the table below. This number will be available for agent calling.
  3. Repeat these steps for additional numbers.

You can also import numbers through the CSV import dialog.

Initiating outbound calls

To initiate dialing, agents can dial *55xx (where xx is the number of the queue).

The Vodia PBX plays a few prompts to help the agent navigate during the calling process.

Managing the outbound call list

After a successful call, the Status changes to Ok for the dialed number. This means that the number will not be attempted again. If you want the Vodia PBX to attempt that number again, you have to reset the Status for that number. This can be done by selecting the check box and clicking theReset button. If you do not want to keep the number in the outbound call list, you can select the number and click Delete . This removes the number from the list.

Agent log in/out

Agents must log into the queue to begin receiving calls. When agents have finished for the day or would like to stop receiving calls from the queue, they must log out of the queue.

Agents can use one of two methods (buttons or star codes) when logging in and out of queues.

Important: Before agents can use either method, agents must be included in the Extensions that may jump in or out setting. Another setting that must be considered is the Minimum number of agents for jumping out setting (shown below). The latter setting is used to prevent the queue from becoming too small; however, if this setting is too high, agents will be unable to log out of the queue.

agentgroups91.png
Method 1: Buttons

This method allows users to use a button on their phone to log in and out of queue. When configured properly, the button will have a toggle effect. When the button is pressed, users will be logged in to all queues, and the associated LED(s) on their phone will light. When the button is pressed again, users will be logged out of all queues and the associated LED(s) will no longer be lit. If users need to log out of one queue before logging into another, multiple Agent login/logout buttons can be configured.

Important: Before you can use this button, the star codes for Agent logged in/Agent logged out must match (e.g., *65/*65).

agentgroups101.png
Method 2: Star Codes

When using star codes to log in and out of queues, users have the flexibility of logging in and out of all queues to which they belong or just a specific queue. The standard Agent logged in/Agent logged out (*64/*65) star codes (without any argument) will log the agent in to or out of all queues:

agentgroups111.png
Agents who are members of numerous queues and who need to log out of one queue before logging into another can do so by entering the queue number after the star code. Using the sample shown below, the agent will be logged out of queue 666 and will retain logged-in status for all other queues.

agentgroups121.png


Conference Rooms

Conference rooms are used to mix audio of multiple parties into a conference call. The conference is hosted on the PBX, for the participants the call appears as regular call into an account of the system.

Three-party conference

Many VoIP phones can host conferences on the device, e.g. bridge two calls into a three-party-conference. Some devices are even able to bridge moe than two calls. These calls appear on the telephone system as regular calls without being aware that a conference call is going on.

confrooms11.png

Conferences can have regular participants and moderators. Moderators have the possbility to mute participants, end the call and other special rights (see below). It is possible to have multiple moderators in a conference call.

Number of participants

The system is able to mix the audio of larger number of participants, depending on the used hardware. While the number of participants has implications on the use of CPU resources, the problem of noise accumulation becomes another limiting factor for large conferences. A participant that calls from a busy street might ruin the voice quality for all participants. Because of this it is recommended that all participants mute their devices and un-mute them only when they want to provide input into the call.

Creating a Conference Room

In order to create a new conference room, go to list of conference rooms in the Vodia PBX web interface. After clicking on the Add button, a pop up window would give you a chance to enter the details in the modal.

Create Conference Room

In the Account number(s) field, enter an account number. In the Display name field, enter a descriptive name for the new conference room.

You can assign more than one number to a conference room. These numbers can be internal numbers with 1, 2, 3 or more digits; however they can also be DID numbers for allowing calls directly into the conference room. The numbers must be seperated by semicolons (spaces in version 67 and below).

The conference will be created which you can see in the "conference room list" or in "all accounts list", where you can enter each conference room just by clicking it, in order to modify it if you want, as explained below.

Settings

Identity

Account number(s): This field takes extension number(s) and/or DID number(s). The number of DIDs that can be entered into this field is unlimited. Please note that the numbers must be seperated by semicolon starting version 68.

Name: This field allows you to create a name so that you can quickly identify the Account among other Accounts. For example, when creating aliases for an auto attendant, you might use the names Day Auto Attendant and Night Auto Attendant to distinguish the auto attendants from one another.

Outbound number (ANI): Automatic Number Identification (ANI) is a mechanism that allows phone companies to determine which account should be charged for a call. For more information, see Trunk ANI.

Dial Plan for outbound calls: Choose the dial plan that you would like the system to use when routing calls to an outside provider (for more information about dial plans, see Dial Plans).

Behavior

Mode: This setting defines the overll behavior of the conference room.

  • Ad-hoc conference: In this mode, conferences set up by dialing into the conference room.
  • Scheduled conference: In this mode, conference calls are scheduled in advance for a specific date and time.
  • Call participants when entering: The system will call a list of predefined participants when one of the participants calls into the conference.

IVR language: This setting defines what language is used when annoucements are made, unless the "languages offered on start" are used. By default, the setting of the tenant are used.

Languages offered on start: This settings containts a list of languages that are offered when the caller enters the conference. If the list is empty, the IVR language will be used.

Before entering the conference: In preparation of entering the conference room, the system can inform other partipants about the caller. The system can ask the caller to leave a name (followed by teh #sign), play a short tone or don't play any annoucements.

Moderator access code: For ad-hoc conference calls, this code is used to admit the caller into the conference room and identify that caller as moderator.

Participant access code: For ad-hoc conference calls, this code is used to admit the caller into the conference room as regular participant. If there is no code, anyone can get into the conference room without further checks.

Number of digits for access code (4-9): For scheduled conferences, this settings defines how many digits should be used to generate conference access codes.

  • Numbers to call when entering the conference: The system will call the provided numbers up and put them into the conference room when the first person enters the conference.

Record the conference: If this flag is turned on, calls in the conference room are recorded. The calls will be stored like automatically recorded calls. Users need the permission to listen to call recordings to access the recording. This setting does not apply to scheduled conferences where this can be controlled for each call.

Compress recordings: When the conference is being recorded, this settings defines if the audio should be compressed or not. Compressing the recording reduces the space required on the disk, but it reduces the quality and increases the amount of CPU needed for this task.

Music on hold source: When participants are waiting, for example until a moderator dials into the conference, this setting defines what music to hear.

Maximum number of participants: This setting limits how many participants can be in the call.

Entering conference: This setting defines the behavior at the beginning of the call:

  • Start the conference without moderator: The call starts as soon as two participants are in the call.
  • Mute all participants: The calls starts immediately, but all participants are muted and need to unmute themselves before audio becomes available.
  • Mute all participants until moderator enters the conference: The call starts when the moderator enters the call.
  • Mute all participants until moderator un-mutes the conference: The call starts when the moderator enters the call and explicitly un-mutes the call.

Exiting conference: There are severl choices about exiting the conference:

  • Continue the conference: When the moderator leaves the conference, the conference continues.
  • Mute all participants on exit: When the moderator leaves the conference, all participants are muted.
  • Hang up the conference on exit: When the moderator leaves the conference, all calls of the call are disconnected.

Scheduled Conference

The scheduled conference allows users to plan for a conference in advance. Users are informed via email of the time, date, and access code. The access code is unique for the conference room and ensures that no unauthorized users can join the conference. Before users can schedule conferences, the administrator must create at least one conference account. After the account has been created, users can schedule conferences from the Conferences tab from the user portal.

  1. Login to your user portal by using your extension and password as explained in Login .
  2. Click the Conferences icon on top right as shown.confrooms41.png
  3. Populate the form using the following information:
    • Name: This field allows participants to know the subject of the conference.

    • Date: Use MM/DD/YYYY (month/day/year) or MM/DD (month/day) format. Leaving this field blank will automatically schedule your conference for the day you populate the form.

    • Start and end times: Use the 24-hour format; for example, 14:00 for 2:00 p.m., 14:30 for 2:30 p.m., etc. The system will use the selected time zone of the extension that is logged in. The start and end times must be in the same format.

    • Participants: Enter extension numbers and/or email addresses. This requires that the system is able to send out emails. When listing multiple email addresses, use a semicolons as a space separator. The email contains a calendar event, which can be read by most scheduling tools. The tool will pop up a conference reminder with the relevant conference information.

    • Automatically initiate calls at the start time: If this is checked, the Vodia PBX calls each number that is in the participants list at the conference start time.

    • Record the conference: The recording will be placed into the user's mailbox.

    • Room: Choose a conference room.

    • Moderator options: These settings are discussed below.

    • Entering conference

      • Start the conference without moderator: Participants will be able to communicate with each other upon entering the conference.
      • Mute all participants until moderator enters the conference: Participants won't be able to communicate with each other until the moderator calls into the conference.
      • Mute all participants until moderator unmutes the conference: Participants won't be able to communicate with each other until the moderator unmutes the conference (*8).
    • Exiting conference

      • Continue the conference: Participants will be able to communicate with one another after the moderator has exited the conference. (The conference will not be deleted until after 24 hours.)
      • Mute all participants on exit: Once the moderator exits, participants' phones will be muted.
      • Hang up the conference on exit: Once the moderator exits, the system will disconnect all participants from the conference call.

The new conference will be displayed under Conferences organized (at the top of the page), listing the moderator and participant PINs. Participants will receive an email that includes conference details, such as date, time, and PIN number.

Once a conference has been created, it cannot be modified; it can only be deleted (click the delete icon in the conference list). Conferences are automatically deleted 24 hours after the conference end time; however, participants who want to continue talking before the conference is deleted can do so as long as the moderator specified Continue the conference as an exiting preference.

Ad Hoc Conference

The ad hoc conference account allows users to hold conferences at a moment's notice. No planning is required, and no emails are sent out. This method of conferencing is handled through the system and produces a high-quality three-way conference. Although this method offers a simple way to hold a conference, unauthorized users will be able to access the conference room if an access code requirement has not been set on the account.

To hold an ad hoc conference, users need to know the extension number that has been reserved for ad hoc conferencing. If the designated extension is 665, then all parties who enter 665 from their extension phones will be joined to the same call. Participants will be required to enter an access code if one has been set; otherwise, they will be joined directly into the conference room. Any number of participants can join the call. Participants can also be transferred into the conference, for example to avoid passing PIN codes to external callers.

Call Up On Entry

When configured to call participants when entering, the system will call all other participants up when on calls into the conference. This is useful in situations when a group of people need to get together when something happens. In contrast to paging, the audio mix is bidirectional, and every particpant can contribute to the call.
The system will call the numbers to call when entering the conference and automatically bring them into the conference. The callers must confirm the call by pressing 1 on their phones.

Moderator Options

When a caller acts as moderator, the following codes are available for moderating the call:

Code Behavior Role
*0 Send participant list to email address of moderator Moderator
*1 Mute audio Participant
*2 Un-mute audio Participant
*7 Mute all participants except self Moderator
*8 Un-mute all participants Moderator
*9 End the call Moderator


Hunt Groups

A hunt group is a set of extension numbers that are embedded inside a single virtual extension. Incoming calls are rotated through the pool of extensions until someone answers and the caller is connected. (Cell phones can also be configured to be included in calls made to a hunt group.)

Creating a Hunt Group

image.png

image.png

  • Go to your selected domain in the Vodia PBX web interface.
  • A pop up window would give you a chance to enter the details in the new GUI.
  • Go to hunt groups by clicking on Hunt Groups under Accounts as shown above.
  • On top, click the tab Create to create a new hunt group.
  • In the Account Name field, enter an extension number and/or alias, i.e., a DID number. When entering an alias in addition to an extension number, use the following syntax: 667/9781234567.

Note: If you use a space instead of a slash (667 9781234567), you will create two separate accounts that will be unrelated to each other.

  • To create multiple accounts at the same time, use a space between the numbers: 667 668 669
  • PressCreate.
  • The hunt group(s) will be created which you can see in the “hunt group list” or in “all accounts list”, where you can enter each hunt group just by clicking it, in order to modify it if you want, as explained below.

Configuring a Hunt Group

Once you've created a hunt group account, use the following information to configure it.

  • Go to your selected domain in the Vodia PBX web interface.
  • Go to Hunt Groups .
  • Click on any hunt group from the list that you want to change.
  • Here you can configure the settings. You can also go back to the list of Hunt Groups, if you want, by clicking on the List tab above.

Explanation and Use of Some of the Settings

image.png

Identity

Account Number(s): This field takes extension number(s) and/or DID number(s). The number of DIDs that can be entered into this field is unlimited.

Name: This field allows you to create an alias so that you can quickly identify the Account among other Accounts.

Outbound number (ANI): The hunt group uses an ANI (automatic number identification) when sending a caller to an external number. For more information, see Trunk ANI .

Stages

The extension numbers that are part of a hunt group can be arranged into groups known as stages. Each stage is configured to ring for a specified period before the system begins ringing the next stage. To continue ringing the same extension throughout all stages, include that extension in each ring stage. A last-resort or final stage number (often an auto attendant or a cell phone) can also be used when none of the extensions pick up the call. A common use case for the hunt group is to use the hunt group as the main number for incoming calls, then put the receptionist, secretaries, and assistants on the different stages.

You can also include regular numbers in the hunt groups, not only extensions. That makes it possible to call devices that cannot register as SIP endpoints. If you want to include cell phones in hunt groups, you better use the extensions number and enable the cell phone forking in the extension setting.

The hunt group supports three stages and a final stage. Each stage can be configured to ring for a different number of seconds, and the final stage can be either an internal or external phone number.

For each stage:

  1. List the extensions or numbers that should be part of that stage. When entering multiple extensions, use a space as a separator (only one number is permitted for the final stage).
  2. For duration, specify the length of time that the system should ring each stage before ringing the next. The duration of the stages must be specified in seconds.
  3. For unwanted stages, leave the fields empty.

If all extensions of a stage are unavailable, the system will immediately move to the next stage.

If you check the missed flag for the stage, the PBX will send a missed call indication to the phone when it moves to the next stage and the phone is not part of the next stage.

Note : The number of extensions permitted for the first three stages is limited by hardware only. The system must send INVITEs to all extensions in each stage, which requires more CPU.

Hunt Group Features

Custom ringing Each hunt group can be configured with different ring tones.Employees can determine which hunt group is calling.

BLF indicator The system can be configured so that the busy lamp field indicator lights up when the hunt group is in use.Hunt group activity is visible through the BLF indicator.

Group name caller-ID Hunt groups can have a unique name and can be configured to display the name of the group, the caller’s caller-ID, or both when a caller enters a hunt group.Helps management decide who belongs in each named group. Employees know the nature of the call before answering it.

Three-stage extension ringing Hunt groups can be configured to ring 1–3 different groups of extensions. The system will ring each group in succession until the call is answered.Managers can direct calls to selected groups of extensions in a specified order.

Final stage to cell phone After calling the extensions listed in stages 1 through 3, the system calls the “final stage” number, which can be an auto attendant, an extension, or an external number.Callers are sent to a manager as a final means of assistance. This feature can also be used to gauge whether the group of extensions is too small or whether the employees are working properly.

Ring stage duration Hunt group stages can be configured to ring for different durations before the system rings the next group of extensions.Call flow control can be established. Intervals that keep customers waiting a minimum amount of time can be used.

Recordable calls Calls made to hunt groups can be recorded and saved on the system.Recorded calls can be reviewed by management to fine-tune employee performance. Disputes can be easily resolved by emailing the recorded conversation.

Behavior

Behavior settings allow you to control numerous account behaviors. You can choose a ring melody, a display header, and music on hold source. You can also enter a safety net phone number that will be used if no one picks up a call. Other settings are here as well.

  • Algorithm: By default, the hunt group calls all agents, IVR nodes and numbers in each stage up and connects the call to the first that accepts the call. In the case of IVR nodes this is the first that is idle. If the algorithm "Select most idle agent per stage" the system will call only one agent per stage. This makes it possible to automatically balance the call load on several extensions in a fair way.

  • Ring Melody: This setting allows you to set the ring melody so that hunt group members will be able to distinguish regular calls from hunt group calls.

    • Custom 1 through 4: Custom ringtones allow users in a hunt group to distinguish hunt group calls from other calls. Before customized ringtones can be used, you will need to provide your own ringtones, modify the ringtones.xml file, then place it into the html directory. When the phones receives the alert-info header from the system, it will respond with a different ring tone based on the ringtone that was selected from the web interface.
    • External Call: The ring tone will be long.
    • Internal Call: This ring tone will be short.
  • From Header: This setting allows you to set the display name that hunt group members will see when someone is calling. More information on this subject is available on a separate page From Header in Groups .

  • Dial plan for outbound calls : This setting allows you to configure dial plan behavior that is different from what has been set on the extension. For example, if the dial plan on the extension does not allow for outbound calling, but you want to allow the extension to receive hunt group calls on their cell phones (see When calling the extension in a hunt group ), you can select a dial plan here that would allow for that. There are many other uses for this setting as well.

  • Page incoming calls: Click on Addand select the Paging group account that should announce the caller's information everytime there is an incoming call. Then, navigate to the Paging account and turn on the settings under Call Announcementsection as per need. Note : If it's a PBX hosted on a public server then select a Unicast Paging account (Multicast Paging won't work on a Public server). For LAN paging, both Unicast and Multicast paging can be selected to accomplish this.

  • Send daily CDR report to : The call data record (CDR) lists all calls that come into the hunt group. The report is sent at midnight each night to the email address listed in this field (e.g., voicemail@vodia.com). Only one email address is allowed in this field.

  • Permissions to monitor this account: This setting defines which extensions may monitor the status of this account, for example with a BLF button. By default, all extensions are allowed to see the status of an account. The setting is a list of extensions and wildcard patterns, separated by space characters. If the list element contains a "np" (no pickup) flag after a colon separator, then the monitoring will show only if the account is idle or busy. An example for this settings would be "41 42 5* 61:np 70*:np". The "np" flag was introduced in version 61.

  • Music on hold source : From the dropdown list, choose the music that callers will hear while waiting.

  • Record incoming calls to hunt groups : When this setting is enabled, the system will record all calls that come into the hunt group. The recordings can later be retrieved and reviewed.

  • Turn off the cell phone forking: The cell phone inclusion of the agents cell phones can be turned off specifically for this hunt group.

  • Allow agent connect ActionURL: When this flag is set the PBX will trigger the ActionURL for connecting an agent.

  • Enable call pickup from extension BLF: By default, the PBX will show that an extension is busy when a call rings the agents phones. If this flag is turned it, the PBX will make it possible to pick the hunt group up from the extension BLF.

  • Allow agents to divert incoming calls: If this setting is turned on, agents can use their VoIP phones to deflect incoming calls to another destination. Please not that some phones will send call redirections by themselves, for example because a local call redirect after timeout or a call redirect for all calls was set on the device.

  • CRM account: When using CRM integration, the system needs to associate a call to the hunt group with an account that exists on the CRM system if there was no agent that picked up the call (e.g. in the case of a missed call).

  • Redirect destination for suspected SPAM calls: If there is a suspected SPAM call, this field tells the system where to redirect the call. If the field is empty the system will accept the call.

Night Service

Night service allows you to redirect calls to other extensions during off-hours, meetings, etc. Before you can use night service, you need to create a Service Flag account.

  • Service Flag Account : Once you have created the account, enter the number of the account.
  • Always: This rule will always redirect calls. This can make sense if this is the last rule in a list of other rules.
  • No agent has phone registered: This rule is useful when an office has lost internet connectivity and all agents went offline and the agents are not using any cell phone inclusion. A redirection target can be for example another hunt group, a mailbox or another hunt group that has the cell phone inclusion turned on.
  • Night Service Number : With a service flag in place, the hunt group can redirect the calls directly to the night service number(s) shown in this field. Internal extensions and external numbers are acceptable.

Note : You may specify more than one night service flag (separated by a space). The first service flag account will correspond to the first night service number, and the second service flag account will correspond to the second night service number, etc.

From Header in Groups

In Hunt Groups and Agent Groups, the PBX is able to display more information about where the call comes from.

Generally speaking, the remote party information consists of two components, the "display name" and the URI. For example, if the display name is "Group 1" and the URI is sip:123@domain.com, the remote party information would be "Group 1" . What is being displayed, depends on the settings of the phone that you are using. Many phones are only displaying the display name; others only display the user part URI between the "sip:" and the "@" symbol.

The web interface offers the following modes:

  • Calling-Party: In this mode, it just displays the calling party like on a regular incoming call. This is the default setting for the display. An example would be "Joe Doe".
  • Group name: If you select this mode, the PBX will put the name of the group into the display of the phone; the URI remains unchanged. An example would be "Group 1" .
  • Group name (Calling Party): In this mode, the PBX will use the name of the group in the front with display name of the calling party in brackets behind it. For example, if the calling party is "Joe Doe" and the group name is "Group 1", the PBX would send "Group 1 (Joe Doe)" to the phone.
  • Group name (Calling Number): This is similar to the previous mode, but the PBX puts the username into the brackets. For example, if the calling party is "Joe Doe" and the group name is "Group 1", the PBX would send "Group 1 (2121234567)" to the phone.
  • Calling-Party (CMC): In this mode, the PBX puts the client matter code (CMC) into brackets in the display name, if present in the address book. For example, if the calling party is "Joe Doe" and the CMC for the number 2121234567 is 54256, the PBX would send "Joe Doe (54256)" to the phone.

In addition to that, you may also add other information manually into the setting. You can that by editing the template for the hunt group or agent group web page (add a option to the select for from_header). Here, you may use the following pre-set variables when generating the display name:

  • "f" is being replaced with the calling party username.
  • "t" is being replaced with the called party username.
  • "g" is being replaced with the display name of the calling party.
  • "c" is being replaced with the CMC code (if present).

For example, if the calling party username is "123" and the called party "456" and you select the Customized, then the SIP URI would look like "123 to 456" in the above examples.

REST API call

You can initiate hunt group calls from the REST API. This has the effect that the PBX will first try to connect to one of the listed destinations before calling the other side of the hunt group. This can be useful for example when including multiple parties in click to dial functions or when a message has to be played to one person in a group of people, for example for an alarm system.

The REST call has the following components:

Element Function

/rest General REST API indicator

/hunt General indicator for the hunt group

/accountID of the hunt group, including the domain name (e.g. 77@localhost)

/dial General indicator for the dial function.

/destinationDestination to call after one of the hunt group destination picks up.

All URL components must be properly URL-encoded. The request must have at least domain authentication, either by a session or by Basic authentication header.


IVR Node server

Linking an Application Server to an IVR Node using SOAP

SOAP (Simple Object Access Protocol) is an XML message-based protocol specification used to allow applications running on a decentralized, distributed environment to exchange information. It relies on Extensible Markup Language (XML) as its message format, and usually relies on other application layer protocols, such as RTP and HTTP, for message negotiation and transmission.

Sample SOAP Message

Following is a sample data interchange using the HTTP/SOAP protocol. (The indentation shown is for illustration purposes only.)

Request

POST /ivr.xml HTTP/1.1
Host: pbx.com
SOAPAction: IvrInput
Content-Type: application/xml
Content-Length: 123
<env:Envelope
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:sns="http://www.vodia.com/soap/pbx">
  <env:Body>
    <sns:IVRInput>
      <CallID>3525234@vodia.com</CallID>
      <Output>123</Output>
      <From>Fred Feuerstein <sip:ff@test.com></From>
      <To>Tom Test <sip:tt@test.com></To>
    </sns:IVRInput>
  </env:Body>
</env:Envelope>
Text

In the vodia namespace, the record CDR indicates that a CDR shall be transmitted. The CDR may have the following attributes:

  • CallID: This attribute contains the call-ID of the call and makes it possible to put the IVR input into a session context. It is also used as an identifier in the response to the request.
  • Output: The digits that the user has entered into the IVR node.
  • The To and From fields indicate the To and From headers of the call.

Response

The response on the file tells what should be done with the input. An example return could look like the following:

HTTP/1.1 200 Ok
Content-Type: application/xml
Content-Length: 123
<env:Envelope
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:sns="http://www.vodia.com/soap/pbx">
  <env:Body>
    <sns:IVROutput>
      <CallID>3525234@vodia.com</CallID>
      <Destination>123</Destination >
    </sns:IVROutput >
  </env:Body>
</env:Envelope>
Text

The response has the following attributes:

  • CallID: This attribute contains the caller-ID of the call. It is used to identify the affected call.
  • WavFile: The file that the PBX should play back (e.g. "audio_en/bi_5.wav audio_en/bi_6.wav"). The file or files must exist in the working directory of the PBX.
  • Clear: Unless set to "false" this will clear the collected input from the user.
  • Destination: This string indicates which account to switch to.

Example PHP File

This example shows how to process the CDR on an Apache web server using the PHP extension. This example just extracts the data and writes it into a plain file.

<?php
$elem="";
$callid="";
$type="";
$domain="";
$language="";
$from="";
$to="";
$fromUser="";
$toUser="";
$chargeAccount="";
$chargeNumber="";
$timeStart="";
$timeConnected="";
$timeEnd="";
$duration="";

function start_element($parser, $name, $attrs) 
{
   global $elem;
   $elem=$name;
} 

function end_element($parser, $name) 
{} 

function xml_data($parser, $data) 
{
   global $elem,
          $callid,
          $type,
          $domain,
          $from, 
          $to,
          $fromUser,
          $toUser,
          $chargeAccount,
          $chargeNumber,
          $timeStart,
          $timeConnected,
          $timeEnd;

   if($elem=="CALLID") $callid .= $data;
   else if($elem=="TYPE") $type .= $data;
   else if($elem=="DOMAIN") $domain .= $data;
   else if($elem=="LANGUAGE") $language .= $data;
   else if($elem=="FROM") $from .= $data;
   else if($elem=="TO") $to .= $data;
   else if($elem=="FROMUSER") $fromUser .= $data;	
   else if($elem=="TOUSER") $toUser .= $data;
   else if($elem=="CHARGEACCOUNT") $chargeAccount .= $data;
   else if($elem=="CHARGENUMBER") $chargeNumber .= $data;	
   else if($elem=="TIMESTART") $timeStart .= $data;
   else if($elem=="TIMECONNECTED") $timeConnected .= $data;
   else if($elem=="TIMEEND") $timeEnd .= $data;	
} 

$content = file_get_contents("php://input");

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "start_element", "end_element"); 
xml_set_character_data_handler($xml_parser, "xml_data");

if(!xml_parse($xml_parser, $content, true)) 
{ 
   die(sprintf("Get XML error parsing %s: %s at line %d",
               htmlspecialchars($content),
               xml_error_string(xml_get_error_code($xml_parser)),
               xml_get_current_line_number($xml_parser))); 
} 
xml_parser_free($xml_parser); 

$fd = fopen("C:/Temp/cdr.txt", "a");
if( $fd )
{
   fwrite( $fd, "callid = $callid, \r\n 
                 type = $type, \r\n 
                 language = $language, \r\n 
                 domain = $domain, \r\n  
                 from = $from, \r\n  
                 to = $to, \r\n  
                 fromUser = $fromUser, \r\n  
                 toUser = $toUser, \r\n  
                 chargeAccount = $chargeAccount, \r\n  
                 chargeNumber = $chargeNumber, \r\n  
                 timeStart = $timeStart, \r\n  
                 timeConnected = $timeConnected, \r\n  
                 timeEnd = $timeEnd, \r\n  ";		 	

   fclose( $fd );
   echo "ok";
}
?>

IVR Nodes

An IVR node can be configured for complex tasks so that callers can for example enter account numbers and pay bills through an external application server .

In IVR node can operate autonomously or interact with an external application server. It collects input from the user or from within the system, and calculates what to do next based on extended regular expressions (ERE).

When a caller reaches an IVR node, the system plays back the prompt that has been set for that IVR node. Once the caller answers the system by pressing the required digit(s), the system will continue processing the call. This first IVR node is typically used as an entry door into the system, and the nodes that follow are used to decide how to proceed next with the caller. For example, the IVR node can ask the customer for account information then ask an external application server where the customer should go from there. Based on the answer from the external application server, the customer is routed to the appropriate waiting queue.

An IVR node can also be used to define dialog that will be used to process calls. In this case, each node plays one prompt and asks a specific question to the caller. The first prompt may ask the caller what language is preferred and then dispatch the caller into two different node systems for two different languages. This IVR node mechanism is very flexible and allows you to either process the input internally in the system or use an external application server to decide where to go next. The IVR node collects the user input according to the list of ERE expressions that was entered in the node’s match list. In the simplest case, a static routing is sufficient without consulting the external server, but it depends on the user input.
image.png

Note: The IVR node and auto attendant are two distinct accounts. Auto attendants with basic functionality (routing callers from point A to B) do not need an IVR node and can use the built-in IVR that is available through the auto attendant account.

IVR node have a wide range of features and can be linked to an external application server .

Creating an IVR Node

image.png

image.png

  • Go to your selected domain in the Vodia PBX web interface.
  • Go to auto attendants by clicking on IVR Nodes under Accounts as shown above.
  • A pop up window would give you a chance to enter the details in the new GUI.
  • On top, click the tab Create to create a new IVR Node.
  • In the Account Name field, enter an extension number and/or alias, i.e., a DID number. When entering an alias in addition to an extension number, use the following syntax: 667/9781234567.

Note: If you use a space instead of a slash (667 9781234567), you will create two separate accounts that will be unrelated to each other.

  • To create multiple accounts at the same time, use a space between the numbers: 667 668 669
  • Press Create.
  • The IVR Node(s) will be created which you can see in the "IVR Node list" or in "all accounts list", where you can enter each IVR Node just by clicking it, in order to modify it if you want, as explained below.

Setting up an IVR Node

Once you've created an IVR account, use the following information to configure your settings.
image.png

Identity

  • Account Number(s): This field takes extension number(s) and/or DID number(s). The number of DIDs that can be entered into this field is unlimited.
  • Name: This field allows you to create an alias so that you can quickly identify the Account among other Accounts. For example, when creating aliases for an auto attendant, you might use the names Day Auto Attendant and Night Auto Attendant to distinguish the auto attendants from one another.

When choosing a name for a hunt group, use a short name if you plan to use the Group name (calling party) option in the From header to ensure that it will fit into the display of the phone.

Settings

  • WAV File: An external recorded announcement can be uploaded in wave format (8-kHz Mono, 16-bit files). Announcements can also be recorded by dialing *98888, where 888 is the IVR node account.
  • Dial Plan for outbound calls: Choose the dial plan that you would like the system to use when routing calls to an outside provider.
  • ANI: The IVR node uses an ANI (automatic number identification) when sending calls to an external number. For more information, see Trunk ANI .
  • Send daily CDR report to: The call data record (CDR) lists all calls that come into the IVR node. The report is sent at midnight each night to the email address specified here.
  • DTMF Match List: This field allows you to enter a list of match patterns that will be used by the system to direct a call once a user has pressed a number from the telephone keypad. You can also use pre-coded IVR nodes.
  • When entering DTMF match patterns, keep the following criteria in mind:
    • A space is required between list elements.
    • Each pattern must contain two fields separated by a character that does not occur anywhere else in the string, for example !".
    • The first field must contain the extended regular expression, and the second field must contain the destination. The destination may be any dialable number. If the number requires a dial plan, the default dial plan of the domain will be used. If the destination field contains a single dash (-) and the pattern matches, the PBX will disconnect the call.

Example: To specify that the caller should be directed to extension 500 after pressing 0, enter !0!500!into the DTMF field. To specify that the system should wait until a user has entered three digits before attempting to redirect the call, enter !^([0-9]{3})$!\1!.

Note: An E("end of message") or T("timeout") can also be used in the string to indicate when the call should be sent to the specified extension. For example, & !E!70!will send the call to account 70 at the end of the message, and !T!70!will send it to account 70 at the end of the timeout. (Note: The timeout relies on the IVR account's Timeout setting.)

  • From-based routing match list: This field requires syntax similar to the DTMF field.
  • To-based routing match list: This field is used when the Vodia PBX opens the IVR node. Use the same format as in DTMF Match List above. If there is a match with the From or the To header of the call, then the IVR node immediately switches the destination without playing the WAV file. This allows you to implement flexible routing schemes.
  • List of actions: If no "List of actions" is specified in the account, the system will assume that the matching pattern is the name of the account to switch to. If the "List of actions" is available, it will take appropriate action, e.g. if it is only a url (like http://appaddress.com), it will pass the destination to the application server (using the URL set in the setting) as a SOAP request to further determine what to do with it, see external application server for details. If the setting is set to action:url (see IVR Node External Application Server ), then it will trigger the action url, found on the action URL tab above. Multiple actions can be specified, separated by a space.
  • Accounts that may record a message: Enter the extensions that are allowed to record welcome messages. Use a star (*) to indicate all users.
  • Timeout (secs): The timeout specified in this field starts either when the system sends the call to the IVR node or when the user enters a digit.
  • Permissions to monitor this account: This setting defines which extensions may monitor the status of this account, for example with a BLF button. By default, all extensions are allowed to see the status of an account. The setting is a list of extensions and wildcard patterns, seperated by space characters. If the list element contains a "np" (no pickup) flag after a colon seperator, then the monitoring will show only if the account is idle or busy. An example for this settings would be "41 42 5* 61:np 70*:np". The "np" flag was introduced in version 61.

Recording Messages

Messages can be recorded using the Record Message (*98) star code, or they can be uploaded through the web interface. Both methods are detailed in the following sections. Users must have permission to record greetings before they can record greetings for an IVR node using *98. The permission is given in the IVR account itself.

Record the Message Directly

To record the message:

  1. From the telephone keypad, enter *98.
  2. Enter the IVR Node account number.
  3. Enter *1 ("1" is the greeting number).
  4. Press the Confirm button.

image.png

In the example shown above, the IVR node account is "126," and the greeting that is being recorded is greeting 1. The standard greeting is recognized by the system as greeting 0 and can be recorded by entering *98. Use the standard greeting if you want to use the same greeting for all hours of the day and night.

Upload a WAV File

WAV files allow you to record and edit your message before loading it into the system. They also allow you to use professional IVR dialogs. From the IVR Node settings:

  1. Click the Choose File button and upload the file (WAV files should be 8 kHz Mono, 16 bit).
  2. Click Save.

Input processing

The following input is available:

  • When the caller enters a digit, the PBX appends that digit to the input for that IVR node. The input string is cleared when the IVR node is being called (also when coming from another IVR node).
  • When the IVR node audio announcement ends, the PBX acts as if the user entered a Edigit.
  • When the timeout kicks in, the PBX acts as if the user entered a Tdigit.

The "DTMF Match List" contains a list of match patterns that are checked. The list elements are separated by space. Each pattern contains of two fields. The fields are separated by any character that does not occur anywhere else in the string, for example !. The first field contains the extended regular expression and the second field the replacement. The field has the same meaning as the fields in the dial plan. The second field contains the destination.

The destination may be any dial able number. If the number requires a dial plan, the default dial plan of the domain will be used. If the destination field contains a single dash (-) and the pattern matches, the PBX will disconnect the call.

A simple replacement where the caller enters "0" and is sent to extension "500" would be !0!500!. An example pattern that waits until a user has entered three digits and then returns the three digits would look like this: !^([0-9]{3})$!\1!.

The other two fields, "From-based routing match list" and "To-based routing match list" are used when the PBX opens the IVR node. The format is the same like in the "DTMF Match List". If there is a match with the "From" or the "To"-header of the call, then the IVR node immediately switches the destination without playing the WAV file. This way, you can implement flexible routing schemes.

The timeout specified in the "Timeout" field starts either when the PBX sends the call to the IVR node or then the user enters a digit.

If no "List of actions" is specified in the account, the PBX will take the output of the pattern matching as the name of the account to switch to. If the "List of actions" is available, it will pass the destination to the application for further decision what to do with it. See Linking External Application Server to an IVR Node for more information about the SOAP processing.

Using IVR Node to change extension parameters

One of the nice features about the IVR nodes is that you can use it to change extension parameters. The name of the setting is in the "name" parameter, the value in the "value" parameter. You can use parameter substitution (for example, "{input}") to set a value that was entered by the user. The account that will be changed can be in the parameter "account" (starting with version 64.1); if it is not present it will set the account that was returned by the regular expression matching.

Let's consider an example on how to reset the message waiting indicator of an extension using an IVR node.
Following has to be setup on the PBX before we can use this feature

  • Create an IVR node, say 555
  • On the IVR node 555, set DTMF match list to !([0-9]*)#!\1!(extension number followed by a #)
  • Set action:set?name=vm_indicator&value=0/0 (0/0)under "List of actions"
  • Upload the proper WAV files (something like "Please enter the extension number to reset the MWI, followed by the # sign")
  • Click Save

Once this is setup, if the operator wants to reset the voice mail for extension 200, she

  • Picks up any phone and dials 555 (this is the reset-voicemail IVR node)
  • Listens to the above set prompt, "Please enter the extension number to reset the MWI, followed by the # sign"
  • Presses the "extension number + #" (say, 200#)
  • Hangs up

At this point, the voicemail indicator for extension 200 is reset. Now you have to reboot the phone and the vm indicator on the phone will go away.

You can use similar setup to modify other extension parameters.

Transfer a call

The PBX can also generate a REFER request on the leg that has called (since version 56.6). For that use the action referwith the parameter dest. For example, action:refer?dest={input}will send a REFER to the calling leg and asks it to dial the number that was the result of the extended regular expression matching, typically the user input.

REST API call

Outbound dialing

You can initiate a IVR node call from the REST API (starting at version 5.5). This will call the number that you provide instead of having that number call the PBX. The dial plan of the IVR node will be used to make that call.

This feature makes it possible to call numbers up, for example to notify them about upcoming events and collect the feedback via the Action URL feature of the IVR node.

The REST call uses the GETmethod and has the following components:

ElementFunction /restGeneral REST API indicator /ivrnodeGeneral indicator for the IVR node /accountID of the IVR node, including the domain name (e.g. 77@localhost) /dialGeneral indicator for the dial function. /destinationDestination to call after one of the hunt group destination picks up.

You may include a parameter timeoutthat shows how long the PBX should wait before disconnecting the call before the call connects. For example https://pbx/rest/ivrnode/77@pbx.com/dial/2121234567?timeout=30.

All URL components must be properly URL-encoded. The request must have at least domain authentication, either by a session or by Basic authentication header.

Uploading WAV files

You may upload a WAV file for an IVR node. This feature can be useful to make the annoucement dynamic, for example include a time and a date in a upcoming appointment reminder. Because there is only one WAV file upload per IVR node, you must ensure that there are no overlapping uploads when you perform batch annoucements.

The REST call uses the POSTmethod and has the following components:

ElementFunction /restGeneral REST API indicator /ivrnodeGeneral indicator for the IVR node /accountID of the IVR node, including the domain name (e.g. 77@localhost) /waveGeneral indicator for the WAV upload function.

The attachment of the POSTis the WAV file. The file must be 8 kHz, mono, 128 kbit/s linear audio. If there is no attachment, the WAV file will be deleted.

Paging Groups

Advanced IP phone systems allow offices to have a fully functioning paging system without using a standalone system. Users can page other users by dialing the paging account and speaking into the phone. Recipients will hear the message from the speaker on their phones.

Paging can be thought of as a one-way audio session, as opposed to intercom, which features two-way audio for one-to-one communication. Paging allows a single extension to communicate with a few people (unicast paging) or a potentially large group of people (multicast paging).

Several paging groups can be configured on the system so that different audiences can be addressed.
Two types of paging accounts can be configured on the system: Unicast and multicast.

Unicast Paging

Unicast paging is a one-to-one call to each participant in the paging group (i.e., the system establishes a regular call to each extension through standard SIP calling). While this is usually fine for a small group, it can be burdensome for larger paging groups, since it ties up a lot of resources in the PBX. A paging group with 20 extensions is essentially a 20-person conference call. Due to the increased demand on CPU performance, this unicast paging is appropriate for paging groups consisting of no more than ten extensions.

image.png

Multicast Paging

A multicast page is essentially a predefined broadcast address that the phones or SIP user agents are programmed to listen to. Each phone can be configured to listen to as many as 10 different multicast IP addresses.

The advantage of a multicast page is that only one SIP session is established between the originator and the PBX. Subsequently, the PBX sends only one RTP stream to the multicast group on which the phones are listening. If there are 100 phones listening on a multicast page, it is equivalent to a single phone call instead of a 100-party conference call. This makes multicast paging suitable for groups that number in the thousands.

image.png

Creating a Paging Group

image.png

image.png

  • Go to your selected domain in the Vodia PBX web interface.
  • Go to agent groups by clicking on Paging Groups under Accounts as shown above.
  • A pop up window would give you a chance to enter the details in the new GUI.
  • On top, click the tab Create to create a new paging group.
  • In the Account Name field, enter an extension number and/or alias. When entering an alias in addition to an extension number, use the following syntax: 667/668.

Note: If you use a space instead of a slash (667 668), you will create two separate accounts that will be unrelated to each other.

  • To create multiple accounts at the same time, use a space between the numbers: 667 668 669
  • PressCreate.
  • The paging group(s) will be created which you can see in the “paging group list” or in “all accounts list”, where you can enter each paging group just by clicking it, in order to modify it if you want, as explained below.

Using the Paging Account from a Phone

Using the paging account is pretty straightforward.

  • If you are in live playback mode, dial the paging account number and start speaking. When you hangup, the paging stops. If there was a maximum paging duration setup, the system will cut off the paging at that time.
  • If you are in recorded playback mode, dial the paging account number and start speaking after the beep. If you want to re-record the message, press '*' during the recording (requires version 5 or higher). After you hangup, the message is scheduled for playback and will be played back as soon as possible.

Setting up the Paging Account

image.png

  • Account Number(s): This field takes extension number(s) and/or DID number(s). The number of DIDs that can be entered into this field is unlimited. This information can be changed at any time.

  • Display Name: The display name will be used to identify the source of the call. SIP phones will display this text in the display area. The Accounts page will list the display name next to the account number:

  • Streaming Mode: This setting allows you to determine how your paging group will be set up:

    • Unicast (SIP): When using unicast mode, you’ll need to provide a list of destination numbers for your paging group in the next setting (Destination). With unicast paging, the system initiates a call to all extensions listed, so be sure to limit your paging group to no more than 10 extensions. Unicast paging is not limited to the local area network, so all extensions that are connected to the system will be paged regardless of location.
    • Multicast: Multicast mode allows you to designate a single IP address as your paging group and create paging groups that encompass entire organizations without taxing bandwidth (the end systems are unaware who the members of the multicast group are and do not send SIP signaling to the individual paging devices). When you page the group using this method, all devices configured to listen on the same multicast IP address will go into paging mode as soon as they receive RTP traffic on that port.
  • Destination: Enter a group of extension numbers into this field. When using the multicast mode, these extension numbers automatically become part of the paging group specified in the Multicast-Address field, as long as the extensions are registered to phones that have been configured for plug and play. Once the paging account has been configured, the phone will pick up the IP address that has been set in the paging account, indicating that the phone is now part of that “paging group.” (To verify that the IP address has been configured to the phone, go to the phone’s web interface, click Advanced > SIP RTP , then scroll to the bottom of the page). A single phone can be configured to listen in on up to ten IP addresses or paging groups. In the example shown below, the phone has been configured to listen in on four multicast IP addresses.

  • Source: List the extensions that are allowed to page this group. Enter a star (*) to give access to all extensions.

  • Multicast-Address: Enter a multicast address into this field. The IP address range for multicast addresses is 224.0.0.0–239.255.255.255. When using a traditional paging system, use the IP address of the paging device (e.g., (192.x.x.x).

  • LAN paging: When a multicast-address is used, the PBX will try to provision phones that put the paging account on a button to use local multicast paging. This bypasses the PBX, which reduces the numbers of calls that the PBX needs to handle. However it does not work in all scenarios.

  • Codec: The system comes with G.711 and is free. Other codecs, such as G.729, require a fee due to the royalties associated with them.

  • Playback method: The playback method feature can operate in three different modes:

    • Live playback: This mode allows you to send a page in real time. With this mode, you pick up the phone, dial the paging account number, and start speaking/paging. All interested parties will hear the page.
    • Play recorded message: This mode has a store-and-forward mechanism and requires that you record the message before sending it to the interested parties. With this mode, you pick up the phone, dial the paging account number, and start speaking. The system will record the message once you hang up and will send it to the interested parties.
    • Play the associated wav file: This mode plays the associated wav file, which can be chosen (the option to choose the wav file appears) once this option is selected.
  • Enable transfer into paging group: Transferring a person into a paging group by accident can be very annoying to the person and the the group. Because of this a transfer into the paging group needs to be enabled in cases when this feature is desired.

  • Permissions to monitor this account: This setting defines which extensions may monitor the status of this account, for example with a BLF button. By default, all extensions are allowed to see the status of an account. The setting is a list of extensions and wildcard patterns, seperated by space characters. If the list element contains a "np" (no pickup) flag after a colon seperator, then the monitoring will show only if the account is idle or busy. An example for this settings would be "41 42 5* 61:np 70*:np". The "np" flag was introduced in version 61.

  • Maximum page duration: Time limit on the duration of the page, after which it is disconnected automatically.


Park Orbits

A park orbit is like a parking lot. It provides a holding place where calls can be parked while the callee is being located. Once a call has been parked on a park orbit, it can be retrieved by other users, which is very different than if the call had been placed on hold. (A call on hold requires the person who originally answered the call to track someone down and transfer the call to the right person.) With a park orbit, the person answering the phone can put the call out there for anyone to pick up. Once an account has been created, users can park the call on the orbit by executing the Call Park star code (*85 by default), followed by the account number of the park orbit.
image.png

Other users can retrieve the call by executing the Call Park Retrieve star code (*86 by default.)
image.png

You can also configure a Park Orbit button so that users can just click the button to park and retrieve the call.

Creating a Park Orbit

image.png

image.png

  • Go to your selected domain in the Vodia PBX web interface.
  • A pop up window would give you a chance to enter the details in the new GUI.
  • Go to park orbits by clicking on Park Orbits under Accounts as shown above.
  • On top, click the tab Create to create a new Park Orbit.
  • In the Account Name field, enter an account number and/or alias.
  • To create multiple accounts at the same time, use a space between the numbers: 667 668 669
  • PressCreate.
  • The park orbit(s) will be created which you can see in the "park orbit list" or in "all accounts list", where you can enter each park orbit just by clicking it, in order to modify it if you want, as explained below.

Configuring a Park Orbit

Once you've created a park orbit account, use the following information to configure your settings.

  • Go to your selected domain in the Vodia PBX web interface.
  • Go to Park Orbits .
  • Click on any park orbit from the list that you want to change.
  • Here you can configure the settings. You can also go back to the list of Park Orbits, if you want, by clicking on the List tab above.

Explanation and use of the settings

image.png

  • Account number : This field is automatically populated with the account information you entered into the Account Name field when the account was created.
  • ANI : ANI (Automatic Number Identification) is a service that tells the recipient of a telephone call which telephone number made the call. For more information, see Trunk ANI .
  • Name : By naming the park orbit, you will be able to identify it more easily.
  • Music on Hold source : From the dropdown, choose a music on hold source.
  • Park reminder : Once a call has been parked and the required time has lapsed, the system will call back the extension that parked the call. This will serve as a reminder to the user that the caller is still waiting and that no one has picked up the call.
  • Call a specific number after park reminder : If set, this feature calls a specific number after the park reminder, like a hunt group or agent group etc.
  • Message after parking the call : This setting lets you choose what to play when the call has been parked.

Service Flags

There are many places in the PBX where binary decisions have to be made. Service flags are used to make those decisions. A typical service flag would be on during office hours, and off outside office hours.

Service flags can be time-based or manual. When time based, the system automatically changes their state depending on the times that were set up. Users can still override those states with manual interactions. Manual service flags change their state only when a user explicitly changes the state.

Examples for using service flags include:

  • Routing calls outside of business hours to a mailbox
  • Determining when to call users on apps
  • Adding agents to call queues during peak hours

Service flags can be called like other accounts. Depending on the setup, this will change of the flag. The list of users that can change a service flag can be set up in the service flags settings. Service flags can be monitored on BLF, so that users can easily see their state on VoIP phones.

Creating a Service Flag

Service flags can be set up like other account types. Service flags should have a descriptive name (for example "Office Hours").

Screen Shot 2022-05-04 at 11.04.39 AM.png

The list of the service flags will show their account name, their type and the current state of the flag.

Configuring a Service Flag

Identity

Account number(s): This field takes extension number(s) and/or DID number(s). Like with the other account types, the list of numbers must be seperated by semicolon.
Display name: The descriptive name for the flag.

Description

Screen Shot 2022-05-04 at 11.05.25 AM.png

Mode: The service flag can be controlled either manually or automatically.

  • Manual: In this mode, a user has to set the state of the flag manually. Three methods are available for activating/deactivating a manual service flag: Dialing the service flag account number from the phone, configuring a service flag button on a VoIP phone, and using the Current State setting from the service flag account page.
  • Automatic: This service flag is controlled automatically according to a set schedule. Users can still manually change the state of the flag, but the system will transition the state at the set up times.

Logic: This setting is used to determine if the times specify when the flag is active or when the flag is inactive.

Current State: This setting is reserved for the manual mode only. Choose Set to activate the service flag and Clear to deactivate it.
Confirmation Tone: Choose the confirmation sound you would like to hear upon turning the service flag on or off.

  • Beep tone: The system will play a short beep to indicate that the service flag has been set or cleared.
  • Message about service being active or inactive
  • Message about day or night mode

Extensions that may change status: Enter the extensions that are permitted to change the service flag. A * indicates that all users are permitted to change the status.
PIN code for changing state: Instead of listing the extensions that may change the state, a caller may change the state of the flag by entering a PIN code. This is useful when calling from outside where the PBX does not associate an extension with the caller.
When user calls this service flag: This flag controls if the system will offer the user choices about changing the flag or just changes the state of the flag.
Monday-Sunday: For each day, these fields take the time when the flag is active or inactive (depending on the logic). The field takes time intervals, seperated by space. Each interval contains the beginning time and the end time, seperated by a -. The time can be in 24-hour format including minutes or seconds, or it can be in AM/PM format. The end time can be at 24:00 or 12:00A.
Holiday hours: If the day is a holiday (see below), this setting will take the time when the flag is active or inactive (depending on the logic). The format is the same like Monday-Sunday.
List of holidays: This field takes a list of days, either single days or date ranges seperated by a -. If the day contains the year, the holiday will be limited to that specific year, otherwise it will be always on that day of the year. There are three different formats for days:

  • MM/DD or MM/DD/YYYY: In locales where the month is used before the day (e.g. United States) this format will be used.
  • DD/MM or DD/MM/YYYY: In locales where the day is used before the month (e.g. Great Britan) this format will be used.
  • DD.MM or DD.MM.YYYY: This format is used for locales with '.' as seperator.

Timezone: The time zone for this service flag. The default is to use the time zone of the domain.

Sync Google calendar to import holidays

This feature allows you to sync a Google account with a service flag, so that it can sync the holidays into the "List of holidays" field (shown above) from your Google calendar according to the calendar name you have set.
Before you can sync a service flag in a domain with your google account, you have to obtain the client id and client secret for that domain and enter it in the PBX domain settings. The process is explained in detail at Google Contacts under the heading "Obtain Client ID and Client Secret".

image.png

Exact name of the google calendar to sync: Here you can enter the exact name of the calendar in your google account that you want to sync and get holidays from. For example, "Holidays in United States". If you want to sync your custom calendar from your google account, just enter your email address, so that it syncs your calendar. In Google calendar, there is no option to set some day as a holiday, therefore the "All day" events created in your google calendar will be treated as holidays. Whenever you change this setting, save it first and then you have to sync your account again by simply pressing the "Get Auth Code" button below.
Google account to sync for the calendar: Click the "Get Auth Code" button to authenticate and permit your google account from which you want to sync holidays. A new pop-up window will appear asking you to sign in with your google account. Then, it will ask your permission to sync calendar from it. Simply press "Allow" to give it permission and your account should be synced. Now any holiday change you make in your selected calendar will be synced (imported into the "List of holidays" field above) every 10 minutes.
Calendar logout: Click "Logout" to disconnect from your google account and logout.

Calling a Service Flag

It is often easier to call the service flag instead of logging into the web interface and change the flag from there. Both in automatic and manual mode, the state of the service flag can be changed from the phone. Using a PIN code for the service flag makes it easy to control who can change the service flag state, in addition to listing the extensions that are allowed to change the state without PIN code.

In manual mode calling a service flag simply toggles the state. Depending on the state, the PBX plays a different confirmation tone. If a device has subscribed to the service flag state, it will change the LED color.
In automatic mode the setting when user calls this service flag determines weather the flag is just being toggled or asked for a entry. If a entry is needed, the PBX will offer a menu where the caller can set the beginning of the day, the end of the day and set the hold day as a holiday (or not). Those changes apply only for the current day; the next day the service flag will continue using the automatic settings from the web interface. When entering the start or the end of the day, the caller needs to enter the time in 24 hour format; it will change the start of the first segment or the end of the last segment. This is useful if there are lunch breaks that will remain unchanged.

image.png


Voicemail


      Following is a brief overview of what users can do with their voicemail account:

      Multiple announcement modes. Users can choose which type of announcement callers will hear when calling their extension. Choices are anonymous announcement, name, or a personal greeting.

      Convenient voicemail accessibility. Users can access their voicemail from their desk phone, cell phone, or any external phone.

      Voicemail timeout. Users can specify the number of seconds that their extension should ring before voicemail picks up.

      Shared mailbox access. If the extension is being used as a group mailbox, all parties can access the voicemail from their own extension.

      Cell phone notification of new voicemail. This feature allows users who have chosen not to forward calls to their cell phone to still receive a voicemail notification on the cell phone when a new message arrives.

      Email notification of new voicemail. This feature allows you to receive your voicemail as email attachments.

      Transfer a caller to another extension's voicemail. If the systems administrator has enabled a direct dial number, users will be able to "blindly" transfer a call to someone else's voicemail. Because the caller will bypass the voicemail timeout, the caller will not hear any ringing.

      Setting up the Voicemail Account

      Changing the PIN

      Users will need a voicemail PIN in several areas of the PBX (e.g. when accessing their voicemail from an outside phone, when using the calling card feature, and when hot desking). Domain administrators can set a requirement for the minimum number of digits that users will be required to use for a PIN. At least four or five digits is recommended. The PIN can be changed by the user as follows:

      1. Dial extension number (if messages are waiting, press * to skip to the main menu).
      2. Press 2.
      3. Enter new access code.
      4. Press 1 to confirm.

      Note: Users can also set their PIN from the web interface.

      Record Your Name

      This recording will be used in announcements to all callers. Users can choose not to record their name. The system will recite the extension number instead. The user's name can be recorded as follows:

      1. Dial your extension number (if messages are waiting, press * to skip to the main menu).
      2. Press 3.
      3. Begin recording your name.
      4. Press the #sign.

      From here, users can listen to the recording (press 1), choose to use the recording (press 2), record again (press 3), or delete the recording and return to the previous menu (press 4).

      Record a Personal Welcome Message

      1. Dial extension number (if messages are waiting, press * to skip to the main menu).
      2. Press 4.
      3. Record your personal greeting.
      4. Press the # sign.

      From here, users can listen to the recording (press 1), choose to use the recording (press 2), record again (press 3), or delete the recording and return to the previous menu (press 4).

      Accessing the Voicemail System

      The main menu of the voicemail system is shown in the following table:

      1 Hear Your Messages

      1. Start reverse playback
      2. Stop/resume playback
      3. Start fast-forward playback
      4. Hear the message again
      5. Play message with envelop information (date, caller-ID).
      6. Move or copy: To move message, press 1. To copy message, press 2. To record a comment, press 3.
      7. Delete
      8. Call back: To confirm the callback, press 1. To cancel the callback, press *.
      9. Skip
      10. Help

      2 Change Your PIN

      Enter your new access code.

      1. Use the access code.
      2. Return to the main menu without using the new access code.

      3 Record Your Name

      Record your name and press the # sign. Then choose from the following options:

      1. Listen to recording.
      2. Use recording.
      3. Record again.
      4. Delete recording.

      4 Record a Greeting

      Record your greeting* and press the # sign. Then choose from the following options:

      1. Listen to recording.
      2. Use recording.
      3. Record again.
      4. Delete recording.
      • You can record up to five greetings.

      5 Record a Message

      Record your message and press the # sign. Then choose from the following options:

      1. Move message.
      2. Copy message.

      9 Select a Mailbox Greeting

      Choose a greeting from the list provided by PBX. You can have up to five choices:

      1. Greeting 1
      2. Greeting 2
        ...
      3. Greeting 9

      Users can access the voicemail system using any of the following methods:

      Listen to the messages from your main phone: Dial *97 and press the confirm button on the telephone keypad. (Another way to listen to your messages from your phone is by dialing your extension number.)

      Listen to the messages from your cell phone: Dial into the main number and press 3 once you hear the auto attendant. The auto attendant will recite your messages and then deliver the prompts shown in the figure above.

      Listen to the messages from an outside phone:

      1. Dial into the main number.
      2. From the auto attendant, enter your extension number or if you know the direct dial prefix (8 is default), dial the prefix plus your extension (i.e., if your extension is 511, then enter 8511).
      3. Press the star * key; otherwise, you will be prompted to leave a message.
      4. Enter your voicemail PIN.

      When users call their mailbox for the first time, they will be prompted to record their name. The recording will be used when someone calls their extension from the auto attendant. Users will also be prompted to record a greeting, which they can opt to use in place of their name. Once this has been established, anytime users call into their mailbox, the auto attendant will automatically recite their messages before delivering the prompts shown in the figure above (users can press the * key to skip their messages and go straight to the voice prompts).

      Forwarding a Message

      To forward a message to another recipient while listening to the message:

      1. Press 6.
      2. Press 1 to move the message to a single mailbox.
      3. Enter the extension number.
      4. Press #.

      To copy a message to another recipient(s) while listening to the message:

      1. Press 6.
      2. Press 2.
      3. Enter the extension number. When copying to multiple extensions, separate them by the # sign.
      4. Press ## when finished.

      Leaving Voicemail Messages

      When users call another user, they have the option of receiving a callback (press 1) or leaving a message (press 2). Once they leave a message and press the # key, the options shown in table below will be available.

      1. Delete the message.
      2. Record the message again.
      3. Mark the message as urgent.
      4. Mark the message as private.
      5. Send the message and go to the operator.
      6. Send the message and hang up.

      Composing a New Message

      Rather than leave a message directly on another user's voicemail, users have the option of composing a message and then moving it to another mailbox or copying it to multiple mailboxes.

      1. Call into your voice mailbox.
      2. If you have messages waiting, press * to skip to the main menu.
      3. Press 5 from the main menu.
      4. Record the message.
      5. Press the # sign.
      6. Select an action:
        • Press 1 to move the message to a single mailbox.
        • Press 2 to copy the message to one or more mailboxes. Use a # sign to separate multiple mailboxes.
        • Press 3 to mark as urgent.
        • Press 4 to mark as private.
      7. Press ## when finished.

      Personal Greetings

      Users can record up to five individual greetings. Greetings will remain on the system and can be activated whenever users need them.

      Recording/Activating Personal Greetings

      1. Dial *98 followed by the first greeting number (*1).
      2. Press the confirm button on the telephone keypad.
        *98*1 Greeting 1
        *98*2 Greeting 2
        *98*3 Greeting 3
        *98*4 Greeting 4
        *98*5 Greeting 5
        If users need to re-record a greeting, they can activate the greeting and record again (i.e., dial *98*6 followed by the confirm button to re-record message 6).
        Greeting 0 is the initial greeting that was activated at the time the user set up the voicemail box.
      3. To activate a greeting, users must dial their extension number, press 9, and select the greeting they want to use (*will bring the user to the main menu of the mailbox.)

      Hearing Your Personal Greetings

      1. Call into your voice mailbox.
      2. Press * to skip to the main menu.
      3. Press 9 from the main menu to hear your recorded greetings.

      Offer Camp On

      The user recorded greeting messages would not be played if this service is turned ON.Their greetings only will be played if the calling party decides to leave a voicemail (after pressing #2). In other words, if the called party needs his/her greeting to be played right after they're called (after user specified time between the phone ringing and leave-a-voicemail prompt), please turn this service OFF.

      Advanced Features

      Send a Voicemail Message Without Ringing Extension(s)

      The voicemail system allows users to send voicemail messages to other users without ringing their extension. This is done by calling the voicemail system rather than the user's phone.

      Scenario: Suppose two employees, Mary and Jack, are working on a project, and Mary has some information that Jack needs. Rather than phone him, she calls the voicemail system and records a message for Jack. She then tells the voicemail system to send it to Jack's extension. The message is immediately put into Jack's voice mailbox without his phone ever ringing. Jack's message waiting light immediately alerts him of a new message.

      The message can be sent to any number of additional employees.

      To send a voicemail to multiple extensions without ringing extensions:

      1. Enter your extension into the telephone keypad.
      2. This should bring you to the main menu of the auto attendant. If you hear your message instead, press the * key on the telephone keypad.
      3. Press 5.
      4. Record your message, then press the # sign.
      5. Press 2 to copy the message to an extension(s).
      6. Enter the extension(s). Multiple extensions must be separated by the # key. Press ## when finished.

      Transfer a Call Directly to Someone's Voicemail

      The system administrator must enable a direct dial number before users can "blindly" transfer a call to someone else's voicemail. The default for direct dial is 8.

      1. Put the call on hold using the hold button on your telephone keypad.
      2. Press the Transfer key. (If your phone does not have a transfer button, dial *77 to transfer the call.)
      3. Enter the mailbox prefix key.
      4. Enter the extension number.
      5. Press the confirm button on the telephone keypad.

      The caller will be transferred to the extension's voicemail. Because the caller will bypass the voicemail timeout, the caller will not hear any ringing.

      This method does not need to involve an outside caller. If you want to call a person's mailbox directly, you can dial 8123 followed by the confirm button.

      Listen to Voicemail on Cell Phone

      Users can configure their account so that the system rings their cell phone whenever someone has left a voicemail. Even when DND has been activated, users will still be notified of new messages.

      Voicemail Notification

      Via Email

      Users can receive voicemails in their email account (as WAV files) by enabling the Send message as attachment setting. Other settings are also available at this page (go to Settings > Email).

      voicemail_1.png

      Via Cell Phone

      If users have a cell phone (or another phone) configured to their extension, the system can alert them whenever a new message has arrived in their voicemail. Even if the user's phone is on DND ("do not disturb"), the system will call the second phone and let the user know that a new message is waiting.

      Voicemail Feature Codes

      This section covers the handful of star codes that are associated with the voicemail system (*95,*96,*97,*98, and *99).

      Send Voicemail to Email Account (*95/*96)

      Users that have an email account on the system can have their voicemail forwarded to their email account.

      To activate this feature:

      Dial *95 and press the confirm button on the telephone keypad.

      *95 Activate

      *96 Deactivate

      Important: When using the *95 star code, users will not receive voicemails on their phone. All voicemails will be directed to their email account only. Users who prefer to receive voicemail messages on both their phone and email account should use the Send a mailbox message by email setting from the web interface.

      Go to Voicemail (*97)

      Users can listen to their voicemail from their phone by entering *97 and pressing the confirm button on the telephone keypad.

      Users can also listen to their voicemail from an outside phone:

      1. Dial into the main number.
      2. From the auto attendant, enter your extension number or if you know the direct dial prefix (8 is default), dial the prefix plus your extension (i.e., if your extension is 511, then enter 8511).
      3. Press the star * key; otherwise, you will be prompted to leave a message.
      4. Enter your voicemail PIN.

      Go to Group Mail (*97)

      Group mailboxes can be used for anything from a joint boss/secretary mailbox to a place to collect calls that come in after hours, at lunch, or during a holiday. Users that share a mailbox with other users can access its voicemail messages in a way similar to accessing mail from a single user account.

      Note: The messages that are left in the group mailbox can be picked up from either the user's extension or the group mailbox extension.

      To create a group mailbox, the administrator needs to create an extension and enter the extensions of those who will be allowed to access the mailbox (see the Allow Access for Extensions setting shown below).

      voicemail_2.png

      Users can listen to groupmail messages from their main phone by dialing *97 and pressing the confirm button on the telephone keypad.

      Users can also listen to groupmail messages from an outside phone:

      1. Dial into the main number.
      2. From the auto attendant, enter the extension number of the shared mailbox or if you know the direct dial prefix (8 is default), dial the prefix plus the extension (i.e., if the extension is 511, then enter 8511).
      3. Press the star * key; otherwise, you will be prompted to leave a message.
      4. Enter the voicemail PIN of the shared mailbox.

      Clear Message Waiting Indicator (*99)

      The message waiting indicator (MWI) notifies the user through the message light on the phone when a new message has arrived. Depending on the type of phone the user has, the light will be either yellow or red. For all phones, the light will blink when a new message has arrived. Once the user has listened to the message, a solid light will replace the blinking light. This enables the system to alert the user the next time a new message has arrived.

      Users can clear the message indicator without listening to their messages by dialing *99. (This will not delete their messages; it will only clear the indicator.)

      Cell Phones

      Cell phones are widely available for most users and can be integrated with the Vodia PBX in two ways. As a first possibility, users can install the Vodia apps on their devices and use the data network to connect with the PBX, which is described in a seperate document.

      As an alternative way, cell phones can be used through their PSTN calling features. This has the advantage that the user does not have to install an app and that it tends to work better when data connectivity is not as good as telephony cell phone service. Similar to SIP VoIP phones, they can be used to receive and make phone calls. However the call is not routed natively routes through a SIP network, the cell phone typically uses a mobile phone standard like GSM or CDMA.

      The settings for the cell phone allow you to configure one or more cell phones to your extension. Cell phone integration is different from having two phones registered to the same extension. Registering two phones to the same extension allows you to merely receive calls at one of two locations, while cell phone integration allows you to receive calls at any location, as well as be reached at numerous phone numbers. Cell phone configuration allows you to be accessible at all times, even in the event of a power failure. If the office extension (or remote extension) is disconnected from the system, calls will automatically be sent to your cell phone. Once the phone is reconnected, incoming calls will automatically be rerouted to the extension.

      Settings

      Cell phone number: In this setting the user can put one or more cell phone numbers. If there is more than one number, spaces must be used to seperate the numbers. While most users populate this field with a cell phone number, actually any phone number can be used (for example land line numbers). The numbers must be entered without any spaces or hyphens (e.g., 9781234567).
      Cell phone number (inbound only): The user may specify additional cell phone numbers that are used for detecting inbound calls from the user; however those numbers are not used for outbound calls. This is useful to simplify authentication for call from the users associated numbers without disturbing the user on those numbers when locating the user.
      Numbers that will never get to the cell phone: Because cell phones are usually carried as a personal item during the whole day, it is important to define who can call the cell phone and who cannot (as well as the times). This settings explicity blocks certain numbers from calling the users cell phone. The setting contains a list of numbers and wildcards, seperated by space. For example, the list "400 5*" would block extension 400 and all extensions starting with 5 to call the cell phone.
      Numbers that will get to the cell phone anytime: Similar to the previous setting, this list defines the important contacts that can call the cell phone at any time, regardless of the time restrictions below.
      Offer special menu when call is answered on cell phone: This setting provides users with additional menu options when answering a call from the cell phone. These options are detailed in the following diagram.

      cellphonemenu1.png

      • If the user presses "1" the call gets connected to the cell phone. Until then, the caller will continue to hear the ringback tone.
      • If the user presses "2" the call gets rejected. The PBX will then apply the rules when the VoIP phone would send a busy signal.
      • Upon pressing "3" the PBX will send the caller to voicemail.
      • When pressing "4" the system will prompt for the number to redirect to. The number must be terminated with the pound kex ("#").
      • When pressing "5" the call gets parked, as if the user accepts the call and then dials the park star code.
      • When pressing "6" the call is added to the list of callback numbers. This is useful to stack up numbers that can be called back, e.g. on the way home from the car.
      • The digit "0" can be used if the operator account has been assigned to the domain. This is typically an attendant that takes cares about incoming phone calls for the domain.

      When this cell phone calls the PBX: This setting defines what the system should do on incoming calls. It can either offer the personal virtual assistant or just apply the general rule for routing inbound calls. In case the private virtual assistant is enabled, the PBX offers the following options:

      • 0: If there are one or more parked calls, the option "0" will resume call first call.
      • 1: By pressing "1" the caller can start a new outbound call.
      • 2: If there are no parked calls, ask the system for a callback. This is important when calls from the PBX to the cell phones are significantly cheaper than the other direction or when the user is using his private cell phone for business purposes.
      • 2: If there is one parked call, offer the possibility to transfer the call.
      • 3: If there are no parked calls, go the the mailbox.
      • 3: If there are more than one parked call, offer the possibility to put the calls into a conference.
      • 4: If there are no parked calls, go to an auto attendant in the domain. This can be used to dial internal numbers.
      • 4: If there are two parked calls, offer the possibility to connect the two parked calls.
      • 5: Call the next number on the callback list.
      • 6: If the account has a credit for outbound calls, it can be retrieved with this option.

      Initiate call back after hangup: In order to avoid charges to the calling cell phone, the PBX can automatically call back the cell phone after it called into the PBX. This feature is useful when employees have to pay privately for cell phone minutes. With this feature, those charges can be avoided.
      Include the cell phone in calls to extension: When someone calls the extension directly (which means not through a hunt group or agent group), the PBX can include the cell phone not at all, immediately or after a certain time. This makes it possible to start the cell phone call only if the call was not picked up on the VoIP phone. If the VoIP phone is not registered, the PBX will not wait until the time has elapsed.
      When calling the extension in a hunt group: When a call hits a hunt group, the PBX can include the cell phone in the group call. In this case there is no option to delay the call, however the user can include the cell phone when the VoIP phone is not registered. This is a great option for hosted PBX when there is a risk that an office gets temporarily offline when cell phones can take over.
      When calling the extension in an agent group: Similar to the previous setting, the cell phone can also be included in agent group calls.
      Include cell phone for web callback: When using the click to dial feature from the web browser, this setting controls if the cell phone should also be included in the callback. As with the settings before, the callback can be made depending on the registration of the VoIP phone.
      Specify time when system calls the cell phone: If the user wants to limit the cell phone inclusion to a certain time of day, he can specify this in this setting. If service flags have been set up in the domain, they can be used for that purpose; otherwise the user can just specify the times in the fields.
      When this cell phone calls the PBX (VPA) The steps to setup the Virtual Private Assistant:

      • The incoming calls to the PBX should land directly on the Auto-attendant.
      • The cell phone number of the extension should be entered in the "redirection" section in the same format that it comes in with, so that the PBX can match and recognize that the incoming number and the cellphone number tied to the extension are identical.
      • Under Domain > Settings > General Settings , turn on "Trust caller ID" to ON.
      • This extension should have a PIN number assigned to it (More than 4 digits is usually accepted).

        Web Attendant Console

        The web attendant console lets you manage calls from your user portal on the PBX, like hang up, blind transfer, hold, attended transfer or making a call etc. All these actions can be performed very easily by either clicking or dragging and dropping as explained below. It also lets you monitor the other extensions on your domain, like whether they are registered, in a call or idle etc. For more on logging in to your user portal, go to Logging In .

        Extension Monitoring

        On the home page of your User Portal you will see the status of all other extensions (and other accounts like Agent Groups and Hunt Groups) in your domain.

        • Orange dot next to the extension means it is not registered with a physical desktop phone or not registered at all.
        • Green dot next to the extension means it is registered and is idle.
        • Orange circle over the extension means it is registered but is busy in a call.

        1.png

        Call Controls

        When a user is logged in to his User Portal, the calls are shown on his portal’s home page along with call controls which are used for call management. There are three sections for the calls:

        • Ringing Calls (for calls that are currently ringing and can be picked up).
        • Active Call (the call to which the user is talking at the moment)
        • Calls On Hold (calls that are on hold)

        1. Ringing Calls

        When a new call comes in and the registered phone rings, the call is also shown in the "Ringing Calls" list. As more calls come in, they keep adding to this list. You have two options for each call: pick it up by clicking on the green handset icon next to the call or hang up by clicking on the cross next to the call. If you hang up, the call will be rejected and disappear from your phone and portal. If you pick it up and the phone supports it, then the call will be connected through your phone (handset, headset or speaker) and the call will move from the ringing list to the "Active Call" list. If there was already another active call, that call will go on hold and move from the "Active Call" section to the "Calls On Hold" list while the new call will become active and move from the "Ringings Calls" list to the "Active Call" section.

        2.png

        2. Active Call

        The call to which you are currently connected and talking to are shown here. You have 4 options:

        (i) Hang Up

        To hang up the call, simply click on the cross beside the call that you want to hang up.

        2.png

        (ii) Hold

        To hold a call, simply click on pause icon (handset with the pause sign) beside the call you want to hold. The phone will go on hold and the call will move from the active call section to the "Calls On Hold" list. All calls that are held will keep adding to the hold list.

        2.png

        (iii) Blind Transfer

        To Blind Transfer a call, simply click and drag the transfer icon (handset with an arrow) beside the call you want to transfer, and drop it on the extension (shown in the monitoring section) you want the call to be transferred to. The call will be transferred and disappear from your portal.
        3.png

        (iv) Attended Transfer

        For Attended Transfer, you will usually have at least one call on hold as you dial and talk to another extension for a possible transfer. The active call will be in the "Active Call" section and the held calls will be in the "Calls On Hold" list. You can now transfer the active call (after telling him/her that there is call for him/her) by dragging the transfer icon of the active call and dropping it on one of the held calls (in the hold list) to which you want the call transferred.

        Step 1:

        2.png

        Step 2:

        3.png

        3. Calls On Hold

        One can either "Resume", "Transfer" or "End" the held call from the option under the burger sign (3 dots on the right hand side).

        2.png

        Making a Call

        To make a call from your phone on which your extension is registered, simply enter the number you want to call and press the Call button or hit enter on the keyboard.
        2.png

        Agent Group Information

        For each agent group the extension belongs to, the WAC shows information about the group. The following information is available:

        Calls

        This sections shows the currently active calls in the group. When calls enter or leave the group, the browser updates the information in real time. The Time shows the time when the call entered the queue. The From field shows the caller-ID of the caller. If the call is connected, the Agent field shows the agent that is talking to caller.

        Call Statistics

        This section provides general information about the number of calls in this queue of the day.

        • The Calls field shows how many calls have hit the group so far.
        • The Connected field counts how many calls actually connected to an agent.
        • The Hang up while waiting counter shows how many calls got disconnected because the caller hung up while waiting and the ACD was playing music on hold.
        • The Hang up while ringing counter shows how many calls got disconnected because the caller hung up while an agent was already alerted and the caller heared ringback tone (unless something else was programmed).
        • If there was a redirection action programmed for the group, the Waiting redirect counter shows how many times a caller was redirected while waiting and the ACD was playing music on hold.
        • Accordingly, the Ringing redirect counter shows how many times a caller was redirected while an agent was already alerted and the caller heared ringback tone.
        • The Key exit counter determines how many times a user decided to exit the group by pressing a button, if this was set up.
        • Go to Groups (under /dom_groups.htm on the PBX) and set the permissions as shown:

        2.png

        And here you can assign the extension you want to monitor the ACD details of, which may or may not be a part of the ACD. The results will look like below.

        2.png

        Duration

        The duration section analyzes how long calls were in their respeoctive states. The information is shown in total (sum of all calls of the day) and as average (sum divided by number of calls). In case that the view shows multiple groups, each group has its own row.

        • In Idle state shows how long there was no call in the group.
        • If the state is Waiting the caller hears music on hold and possibly annoucements, if they had been recorded for the group.
        • The state Ringing is when the caller hears ringback and the agent gets alerted.
        • The state Connected is reached when the caller talkes to the agent.
        • The state Hold means that the caller is connected to an agent, but currently put on hold, for example because the agent is performing a consultative call. Because the hold state is part of the connected state, the duration for this state is shown in brackets.

        Agents

        This section shows for each agent activity information. The information is shown in total and on average per call.

        • The Name field shows the text name of the agent and the extension number.
        • The Idle field shows how much many horus and minutes the agent was idle between calls. The idle time is counted not only within the group, but within the system. That means when an agent performs other calls for other groups or just regular calls, the idle counting starts at the end of those calls.
        • The Connected time shows how long the agent was talking. This field shows only the talking time within the group (if a group has been selected in the web interface).
        • The Hold shows how much out of the connected time the call was on hold.
        • If the agent logs out, this will be reflected in the Breaks field. It shows the intervals when the agent was not available for the group and why. Possible reasons are DND, call forward all and not logged in.

        Call History

        The call history shows the last 20 calls in the agent group. In addition to the fields for the current calls, the history also shows how long the call was connected.

        SIP Trunks

        trunk_overview_1.png

        Trunks are used to route calls in and out of the phone system. The term "trunk" originates from old PBX systems, where the PBX was connected to the public telephone network using physical wires called trunks.

        Today trunks transport the conversation over the network. Calls can end up on a PSTN gateway that is located close to the PBX server, but they can also end up on a service provider's network that takes care about the PSTN termination as a service.

        Trunks may have several lines. These lines represent the physical cables that were used in the PSTN world and they are called "CO-lines" in the context of the PBX. A CO line can have one call appearance. CO lines are mostly not used any more and for new installations not recommended.

        There are different trunk types:

        • When using a PSTN gateway, the gateway is typically programmed to send all inbound calls to the PBX. The PBX is programmed to send the outbound calls to the gateway. These trunks are called "gateway" trunks.
        • Many service providers started their business offering PSTN call termination for soft phones running on PC endpoints. This model is mostly used for today's SIP service providers where the PBX needs to register itself to the service provider like a soft phone. This type of trunks are called registration trunks.
        • A new, evolving trunk type is using the ability of modern web browsers to terminate phone calls. These trunks are called WebRTC trunks.
        • There are special trunks that use OPTIONS instead of REGISTER which are not very common but neccessary in some cases.

        The PBX may have several trunks (depending on the license). For inbound calls, the PBX needs to identify the trunk first and then determine where to send the call. This is done using the settings of the trunk.

        For outbound calls, the PBX first checks if the dialed number is an internal resource, for example an extension or an auto attendant. If that is not the case, the PBX needs to select the dial plan that will tell the PBX on which trunk the call should be terminated.

        • If the dial plan has been explicitly assigned to the account that is initiating the call, the PBX will use that dial plan.
        • Otherwise the PBX will choose the default dial plan of the domain where the call comes from.

        The PBX will process the dial plan and then determine the trunk that will be used for placing the call. The headers settings of the trunk will govern the way the call is represented to the PSTN gateway or the service provider.

        Creating a Trunk

        Go to your selected domain in the Vodia PBX interface. You will see the current list of SIP trunks.

        Trunk list

        The list shows you the name of the trunk, the account that was used in the trunk (this can be empty), the outbound proxy that was assigned to the trunk, the status including the remaining duration of the registration where applicable, the trunk type, the address association, the ANI was was assigned to the trunk and if the trunk was set up as a global trunk.

        On this page, you can also delete, temporarily disable or re-enable trunks. You can also explicity trigger a re-registration of the trunk. In order to create a new trunk, click on the Add button. A pop up window would give you a chance to enter the details in a modal window.

        Create trunk dialog

        If your provider is in the drop down, the dialog will ask you for the information needed to set up this trunk. This is usually only the username and password, but in some cases you need to add a second username or domain names. If certain phone numbers are associated with the trunk, you can enter those numbers in the creation dialog. The numbers should be seperated by spaces. If you have a range of numbers, you can add them using a hypen as shown in the example. This will set up your trunk with a reasonable configuration. Hoewever you can still edit the trunk and modify the settings.

        A setting that you might want to change is the destination for the trunk. By default the system will try to find a reasonable destination. However if you want to explicitly control this, you can do this in the trunk settings.

        If your trunk provider is not in the dropdown, you can just create a new trunk (use "Other" as provider). This might take a little time to figure out the settings of the trunk. If you feel that your provider should be in the drop down please feel free to contact support to add the trunk.

        Dial Plans

        Dial plans are used to route (and optionally modify) specific dialed numbers to specific trunks. Dial plans are used when an internal destination could not be found.

        Basically, it first compares a pattern with the dialed number according to matching rules. If it matches, it replaces the dialed number according to the replacement rules (if replacement field is not empty) and sends the call to the trunk set for that rule (pattern). If it doesn’t match, it moves on to the next rule, and so on.

        The rules are defined in separate lines and each contains at least:

        • A trunk to which the call is sent if the pattern matches.
        • A pattern which the dialed number must match for the rule to trigger. For example a pattern 9* would mean any dialed number starting with 9 would be sent to the trunk set in this rule.
        • Optionally, a replacement field which replaces the dialed number (according to replacement rules) before sending it to the set trunk. So, for example, if the pattern is 9* and the replacement rule is 1*, then the number 92121234567 will be replaced with 12121234567 . If the replacement field is empty, then the dialed number is not touched as it is sent to the set trunk.

        The dial plan is sorted by the priorities before execution. Lower numbers will be matched first. If the numbers are the same and the dial plan entry is resumed later (e.g. because of a trunk failover), it will continue with the next higher number.

        Dial plans can be global. This means that all domains can use this dial plan. This makes sense in multi-tenant environments where all domains can share the same dial plan and the same trunks.

        The PBX can check if a number is on a do-not-call list. This uses the address book of the user and domain—if the entry has the do-not-call flag set it will not call the number.

        The numbers that are put into the dial plan are usually in the readable format. This means the number is presented in the way that a user would read it. This means that in North America, domestic numbers are 10-digits (without the leading 1) and international numbers start with 011. For the rest of the world, domestic numbers start with a single 0, and international numbers start with a 00. If an area code is present, the PBX will use the local presentation if the call is within the area code. You can change this behavior in the dial plan, for example if you prefer the E164 format in the dial plan.

        Creating a Dial Plan

        domaindialplans11.png

        • Go to your selected domain in the Vodia PBX web interface.
        • Click on Dial Plans under Features as shown above.
        • Give a Name for the new dial plan you want to create.
        • Press Create .

        The new dial plan will appear in the list above. You can now click it in order to configure it. You can also enter any other dial plan in the list, for modification, by clicking it.

        Configuring a Dial Plan

        domaindialplans21.png
        Go to your selected domain in the Vodia PBX web interface.

        • Click on Dial Plans under Features as shown above.
        • Click on the dial plan on the list that you want to configure.
        • Here you can modify the fields for the different rules of the dial plan.
        • Here you can also create new rules or remove rules or enable or disable them.
        • To create a new rule, simply enter all its fields, like the pref number, selecting the rule's trunk from the dropdown, the pattern to match, and the replacement (which should be left blank if you don't want to touch the dialed number before passing it to the trunk). You can also enter a service flag for the dial plan to be active or not, depending on the timings given in the service flag.
        • Press Save.

        The new rule will appear on a separate line on the list of rules.

        Dial plans have a few parameters that control how the system processes the dial plan:

        Name: This is the human readable name for the dial plan.
        Global: If this flag is turned on, the dial plan will be available to all tenants of the system.
        Number presentation in dial plan: This parameter determines how numbers are fed into the dial plan. By default, the system reformats the number that a user has entered into a unique presentation, for example it does not make a different if a user dials 16173998147, 6173998147 or +16173998147.
        Check if number is on do-not-call list: When this flag is enabled the system will first check if a number is on the do-not-call list in the tenant before processing the number.
        Star codes that are handled in dial plan: This setting lists the star codes that are handled by this dial plan. Star codes must start with *. If the list is empty, the dial plan will not handle star codes. Otherwise, the list contains the star codes that are handled by this dial plan, for example when the list is *54 *55 this dial plan will handle *54 and *55, all other star codes will be processsed internally by the system. If a star code ends with a *, the system will match only the beginning. For example when the entry is *54* the system will match *54, *541 and *54123. If the pattern is *, all star codes will be handled by the dial plan.
        Route internal calls: When this flag is enabled, the system will check if the dialed number is an internal resource of the tenant and send the call there without processing the dial plan.

        Dial Plan Entries

        There are several fields in the dial plan:

        Preference. The preference is used to tell the system how to sort the dial plan.
        Trunk. The trunk drop down field contains the trunk that should be used. There are some special fields that are explained below.
        C. This fields stands for CMC, or client matter code. When checked, the PBX will attempt to collect the client matter code from the user before placing an outbound call. This can be useful for accounting purposes.
        P. When this field is turned on, the PBX will ask the user to enter the PIN code. The pin code can be set under each extension level > Account Profile > PIN setting. This can be useful to protect expensive dial plan entries from abuse, e.g. employees walking into office calling international destinations.
        Pattern. The pattern field defines when the entry matches. This field is described below.
        Replacement. When the pattern matches, the PBX may transform the user input, for example put numbers in front of the dialed number. This is also explained in more detail below.
        Service Flag. Each dial plan entry may be enabled or disabled with a service flag. That makes it possible to enable certain entries based on time or based on manually set flags.
        Status. In addition to the service flag, each entry may be manually enabled or disabled.

        In the trunk drop down, there are additional options available:

        • Not Allowed: When this entry is selected, the PBX will stop processing the dial plan and reject the call. Starting with version 68, if you enter a text in the replacement field, the system will use that text as annoucement to the user why the call was rejected (in the audio language of the tenant).
        • Call Extension: This will send a call not to trunk, but to an extension. The extension must be in the replacement field. This option can be useful when using PSTN gateways behind NAT that must register with the PBX as an extension in order to be accessible through the firewall.
        • Try Loopback: When there are multiple domains, the PBX may try to send the call into another domain through a "loopback trunk". The replacement must contain a telephone number (starting with +) or a SIP URL with a username and a domain that exists on the system (since version 5.4). If that account can be located on the local system, the call will be sent there. This makes it easy to use multiple domains on the same system without an external SIP proxy.

        Pattern Matching

        Simplified pattern matching.

        There are two ways to match the dialed number, simplified and extended regular expression. Before feeding a number into the pattern matching the system represents the number in the local domain country code format. For example, in the US with the country code 1 a number 1617123123 would be reformatted to 6171231234 and +493055578992 would be formatted into 011493055578992 (unless a different presentation was selected). This makes it easy to match patterns, no matter how the user has dialed the number.

        Simplified expressions are based on the following rules:

        • Patterns can be separated by the | symbol. In this case the pattern matches if one of the pattern matches. For example 911|411 would match either number 911 or 411.
        • A literal matches if the input is equal to the parameter. For example the pattern 911 matches only if the dialed number was 911.
        • The symbol x in a pattern matches any character. For example, the pattern x11 matches 911, 411, and any other 3-digit number that ends in 11.
        • The symbol * matches an arbitrary long number of digits. When using this pattern, the replacement will use only the digits matched by the symbol.
        • Symbols in angle brackets match the characters in the bracket. For example pattern [0-7] matches characters 0 to 7, [134] matches characters 1, 3 or 4.
        • Area codes can be matches by using a area codes pattern. For example [usa] matches the domestic USA area codes (more below). This makes sure that the rule applies only to a list of codes that are hard to express in a pattern. For example the pattern [usa]xxxxxxx would match only domestic USA destinations.

        Currently the following area codes are defined:

        • [usa] domestic USA (3 digits)
        • [can] Canada area codes (3 digits)
        • [ala] Alaska area codes (3 digits, currently 907)
        • [haw] Hawaii area codes (3 digits, currently 808)
        • [fre] Toll Free USA area codes (3 digits, currently 800 888 877 866 855 844 833)
        • [pre] Premium USA (3 digits, currently 900)
        • [pue] Puerto Rico area codes (3 digits, currently 787 939)
        • [dom] Dominican Republic area codes (3 digits, currently 809 829 849)
        • [vir] United States Virgin Islands area codes (3 digits, currently 340)
        • [eur] European Union country codes

        For simplified patterns, the replacement contains literals and the * symbol to insert the match. For example, 789* would put 789 in front the number that was matched. If there is no replacement pattern, it will automatically insert the matched pattern.

        Extended Pattern Matching

        Extended pattern matching is more powerful, but it comes at the price of higher complexity. Simple and extended patterns can be mixed in the dial plan per dial plan entry.

        The input to extended patterns is in the form number@domain. The patterns are fed into the extended regular pattern matching. The matches can be referenced with the \1, \2 and so on. \r references the domain name.

        Dial Plan Samples

        Basic Dial Plan

        In many cases, you may just want to route all numbers to an outside trunk. This can be done easily by using the pattern * You don’t need to fill anything into the replacement field, the system will automatically use * as replacement.

        domaindialplans31.png

        Dial Plan with Prefix in Front of the Number

        If you use a pattern like 1* in the replacement field, the system will automatically put a 1 in front of the match that it found in the pattern field. In the case when you use the pattern 617* and dial the number 6171234567 , the system will automatically convert that into a 16171234567.

        Emergency Numbers

        In the past it was common to use a prefix to tell the system that the call is an outbound call, for example a 9. While this is confusing for most callers, it is dangerous for users in case of emergency when there is no time to figure out how to make an outbound call. In some juristictions including the United States is it now the law that callers must be able to dial emergency numbers without a prefix.

        A North American Dial Plan

        If you use the Vodia PBX telephone system in the fixed-length dial plan of North America, you may use a dial plan similar to the one that follows:

        Dialplan Two Trunks

        [911|411] The first pattern matches the emergency number and the service number explicitly. It is a good idea to have an entry for these important numbers so that they don’t accidentally get routed to the wrong gateway or are rejected. If available, these calls can be sent to a seperate trunk which might point to a local gateway.
        011* The second pattern matches all international numbers and sends them to a special trunk, which is intended to save costs for international calls.
        [usa]xxxxxxx The third pattern deals with all domestic calls. The fixed-length pattern was used so that the system can actually tell when this number is complete. The replacement puts a 1 in front of the number, putting it into a 11-digit representation.

        Sending Star Codes on a Trunk

        Extended regular expressions can be used when sending star codes on a trunk.

        domaindialplans71.png

        When passing a star (*) to the carrier, a backslash is required before the star (e.g., \*67); otherwise, the system will treat the star and the numbers that follow as a star code. In the sample shown above, a backslash has been placed before the Block Caller-ID (*67 ) star code, so when the trunk is used, the system will replace the \*67 with a *67 , causing the caller-ID to be blocked. (The d in the latter part of the string tells the system to replace it with the domain. If an r had been used, the system would replace it with the registrar.)

        Important: When using star code patterns in dial plans, you must remove the code from the standard star codes and/or any customized codes. If you’d rather not use star codes in the pattern field but still want to have the dial plan activate a star code, you can use a workaround. You can create a “stand-in” star code that will be used to correlate with the desired star code. In the example shown below, users will need to enter 99 before entering the actual phone number. The system will replace it with the *67 star code. This method allows you to retain the *67 star code as part of the default list of star codes; however, users will need to be informed ahead of time so they that will know to enter 99 before entering the phone number.

        domaindialplans81.png

        Extended regular expressions

        If the standard simple dialplan processing does not fit the needs, the system can use extended regular expressions instead. A typical dial plan would include the string ([0-9]*)@.* as pattern and sip:\1@\r;user=phone as the replacement. The pattern string has one group [0-9]* (which is referred in the replacement string as \1). That means that if the pattern is matched against the value 2121234567@test.com, it will store 2121234567 in the first group and the result will be sip:2121234567@test.com;user=phone (the user=phone indicates to the recipient that the number is a telephone number).

        The following dial plan illustrates the use of the caret. It’s being used to force the system to begin matching from the start of user input.

        domaindialplans91.png

        Assigning dial plans

        You can create several dial plans and give them different names.

        You can select any of these dial plans as a default dial plan for a domain. The setting is Default dial plan in the domain general settings .

        When the dial plan for accounts, like extensions (see setting Dial plan), or auto attendants etc., is set as Domain Default, which is the default setting, then the above domain default dial plan will be used for that account.

        However, any other dial plan (from the list you created) can be set for each account, like extensions, or auto attendants etc.

        Text mode

        Complex dial plans can be hard to edit. In order to make this easier, there is a text mode in the dial plan web page. This mode converts the dial plan into a CSV text file that can be edited and copied e.g. into other tenants.

      Trunk Settings

      General Settings

      Name: This setting allows you to name the trunk (the name and type of trunk can be changed at any time). The name can generally consist of any text, including spaces and special characters.

      Type: There are several types of trunks available. The most common type is the registration trunk where the system behaves similar to a VoIP softphone that registers to a SIP service provider.

      Direction: Traffic can be limited to either inbound traffic or outbound traffic.

      • Inbound and outbound: Typical setting.
      • Inbound only: Limiting traffic to inbound traffic prevents users from using the trunk for unauthorized calls.
      • Outbound only: Enable this setting if you are using a trunk for outbound traffic only. It makes it easier for the system, as the trunk will not try to match inbound traffic to this trunk.

      State: This setting enables you to temporarily disable a trunk rather than delete it from the system altogether. When a trunk is disabled, it cannot be used for routing, registration, etc.

      Global: This setting is used only in multi-tenant environments. When it is enabled, calls that come in on this trunk are permitted to jump into other tenants if a match is found on a global alias name. (If the direction is not only inbound, then other domains may use this trunk in their dial plans for outbound calls.) When this setting is disabled, the system does not search for global alias names.

      Is Secure: This setting is used to indicate that outbound calls on the trunk can be treated as secure calls. For example, when the trunk goes to a local PSTN gateway, you might decide to treat this call as a secure call. Incoming calls with the SIPS scheme will ask the Vodia PBX system to ensure that the call be kept secure end-to-end.

      Inter-Office Trunk

      Trunk may terminate calls for remote systems: This flag enables trunk-to-trunk calls where calls that come in on this trunk can be routed to another trunk. This is used for example when using remote offices for local termination.

      Dial plan for outbound calls: When the above flag is enabled, the system needs a dial plan to determine how to terminate the call on another trunk.

      Registrations

      Display Name: The display name is used on SIP level when registering the trunk in the REGISTER request and (unless there is another source, like CNAM) for outbound calls.

      Account: Like the display name, this setting is used on SIP level to form the From header in SIP packets unless overwritten for example in outbound calls. If is used for the user part in the URI.

      Domain: Like the display name, this setting is used on SIP level to form the From header in SIP packets unless overwritten for example in outbound calls. If is used for the host part in the URI.

      Username: The user name and password are used for authentication purposes. In some cases this is identical like the Account, however in some other cases it is different.

      Password: The password needs to match the password from the trunk provider.

      Proxy Address: This setting defines where requests that are made of this trunk will be sent. When this field is set, requests will be sent to the specified address. The outbound proxy field follows the definitions of RFC 3263 ("Locating SIP Servers"). You may use the fully qualified domain name (FQDN) for a SIP server. If you add a colon with the port number after the FQDN DNS, a resolution will be used; otherwise, the system will try DNS NAPTR and DNS SRV first. You can force the SIP connection to use TCP by supplying an outbound proxy.

      Important

      The outbound proxy is an important setting. If an outbound proxy is not used, then the system will assume that SIP requests on this trunk can come from any location. This will make it difficult for the system to match incoming SIP requests and practically open up the system to the whole Internet. Unless you want to receive requests from any location on the Internet, you should specify an outbound proxy or explicitly list addresses.

      Proposed duration: When registering, the PBX will propose a duration for the registration. Some SIP trunk providers look at this proposal, however the decision how long the registration is valid is made in the reponse to the registration request by the trunk provider.

      Send re-registrations at this percent of expiry time: The system usually does not wait until the registration has expired. Instead it sends the request some time before the expiration. This setting controls when that is happening.

      Minimum expiry time: Depending on the re-registrations percentage, the time for a re-registration can get very short. This settings limits the minimum value.

      Keep-alive time: When the PBX is behind a firewall with NAT, some service providers are not able to detect this situation and come up with a registration time that will keep the NAT binding alive. In such cases this settings can override the time and explicitly set the registration time after which the system will send a re-registration. In a NAT environment, a typical value could be 30 seconds.

      Proxy-Require: This setting tells the system what to put into the Proxy-Require header in the registration request. Some service providers need a text in this header to function properly.

      Other headers in registration request: This setting is a generic way to add headers to the registration request. Multiple headers must be seperated by newline in the input field and the format matches the format in the SIP request (header: value). A typical example would be setting the User-Agent-header.

      Send email on status change: The stability of a SIP registration is important for the overall experience of the system. In order to alert the administrator of the system, this setting can be used to trigger an email that is sent when there is a change of the SIP trunk. The system can also send registration metrics that contain more information like the response time of the SIP registrar.

      DNS lookup for registration refresh: By default, the system will re-register the trunk to the same address like the last successful registration address. This avoids load on the DNS server and removes a point of failure (DNS server). However there are situations when the system should query the DNS whenever the DNS record has expired. This can be enabled with this setting.

      Explicitly list addresses for inbound traffic: This setting allows you to explicitly state trusted inbound proxy addresses and enables you to identify the origin of the request. By default the system determines the list of addresses through a lookup of the proxy address (see above). The addresses can be either IP addresses (with an optional port number behind) or a DNS A or AAAA address.

      Preferred SIP port for trunk: In some situations, it is neccessary to control what SIP port the trunk is using (this assumes that the trunk is using UDP). For example, in multi tenant environment this makes it possible to use SIP trunk providers that use the IP address and port to identify the tenant. The port must be in the list of SIP ports that the system opens.

      Routing and Redirection

      The routing of inbound calls is described in a seperate article Inbound Routing of Trunks.

      Source for caller-ID information: This setting controls where the system is looking for the caller-ID for an incoming call. If the header is empty, it will fall back to the From-header.

      Failover Behavior: When the trunk receives an error code, it might send the call back to the dial plan and continue the matching process. The system continues the dial plan with the next highest priority, ignoring entries with lower or same priority. This is useful when the trunk is just a "trial" to place the call. One example is when several PSTN gateways are available for terminating the call and one gateway does not accept any more calls. Another example is when you first try to route the call via a peer-to-peer call using ENUM or other location methods and only if such resolution does not result in a connection fallback to a PSTN call. The setting allows four behaviors:

      • No failover: This is the default behavior. In this case, the caller will receive the error code as a result of the attempted call.
      • On 5xx and 408 error codes: This will trigger failover only when a 5xx or 408 class error code is received. PSTN gateways typically return 5xx class error codes when all channels are in use; however, this mode will allow you to switch to the next PSTN gateway when a line is busy and will not trigger the failover.
      • On all error codes: In this case, all error codes will trigger the failover process. Note that call redirect will also be treated as an error code, as the redirection destination can easily be abused to route calls through expensive routes.
      • Always, except for busy response: Except if the remote party is busy, the system will try alternate routes.y/li>

      If you are using failover, you have the option to specify a request timeout value for the trunk. By default, this is 32 seconds (the SIP default request timeout). However, in many cases, it makes sense to specify a shorter value. After the request timeout, the system will internally generate a "408 Request Timeout" response code and process it according to the failover rules.

      Request timeout: The SIP standard defines when a request times out. However in some situations those timeouts are too long, e.g. waiting 32 seconds for the failover to the next trunk. This settings will trigger the timeout event at the specified time.

      Accept Redirect: Use this setting if your trunk should respect redirect codes. By default, this introduces significant security risks because the system cannot determine whether these redirects introduce additional costs (redirection to expensive numbers). Therefore, enable this setting only if you are sure that your service provider or SIP gateway does not abuse this feature. This flag is especially important when you use the system with Microsoft Exchange or other Microsoft products, such as the speech server. Also enable this setting when you have a trunk that comes from another system. This will make it possible to call from one system to another.

      Don't accept SIP routing changes in dialog: The SIP standard describes how the client and the server negotiate the routing of packets. However in some cases this does not work, for example when firewalls are involved or just software that is not SIP compliant. In this case the PBX will ignore routing changes and stick with the initial routing of the request.

      Error message when all lines are busy: This setting determines what the system will respond when all CO-lines are in use.

      Redirect destination when all lines are busy: The system can propose a redirection target for the case that all lines are busy. This is used for outbound calls from extensions.

      Teams: This flag is used to tell the system that the trunk is used for the connection with Microsoft Teams.

      Number/Call Identification

      Prefix: This setting is used as a representation of the system when making outbound calls. If an ANI has not been set, the system puts the prefix (if there is one) in front of the primary account number and uses that as the ANI before it leaves the trunk. This is very useful in cases when a trunk deals with a range of numbers (typically outside of the NANPA area, e.g., Europe). The "extension" number is put after the prefix.

      Trunk ANI: You can configure each trunk with an ANI (Automatic Number Identification). ANI is a service that tells the recipient of a telephone call the telephone number of the person making the call. In most cases, the ANI is used in the From field in the SIP packets or the caller ID.

      Regular ANI rule: The rule set for determining the ANI for regular calls. For more information, see Trunk ANI.

      Emergency ANI rule: The rule set for determining the ANI for emergency calls. For more information, see Trunk ANI.

      SIP Caller-ID Presentation: This setting tells the system how to present the caller-ID on the trunk. The following values are available for configuring this setting:

      • RFC3325 (P-Asserted-Identity): RFC 3325 describes a way to represent these two numbers. In most cases, it makes sense to use the P-Asserted-Identity header. In this case, the From header in the INVITE represents the display number, while the P-Asserted-Identity header has the network number. A similar representation can be done with the P-Preferred-Identity header. The system changes only the name of the header from P-Asserted-Identity to P-Preferred-Identity. The rest remains the same, as in the first method.
      • No Indication: No Indication: This method simply discards the display number and uses only the network number in the From header. This method is a fallback when the provider cannot handle any other method. The disadvantage here is clearly that any redirection information gets lost.
      • Remote-Party-ID: Remote-Party-ID: This method is described in a draft that expired years ago; however, there is still a lot of equipment outside that is supporting this method. In this case, the From header in the INVITE represents the network number, while the P-Asserted-Identity header is the display number.
      • RFC3325, but don't hide: RFC 3325, but don’t hide: This method should not be used. It has been used in environments where the fields have gotten mixed up, and it is creating even more confusion.
      • Custom Headers headers are discussed in detail on the Custom Trunk Headers page.

      Rewrite global numbers: When you are using a trunk, you may have to represent the telephone number in a specific format. For example, in the NANPA area, you might want to use 10 or 11 digits to represent a national number. When Use + symbol at the beginning is selected, the system will automatically use 11 digits.

      Country code: Sometimes the trunk "lives" in a different country than the tenant country. If set, this setting overrides the country code from the tenant.

      Area code: Same like the country code, but the for area code.

      P-Charging Vector: The "ICID" (IMS Charging Identifier) setting is used in the IMS(IP Multimedia Subsystem) environment. The setting is sent in the P-Charging-Vector header of the SIP packets on this trunk and it is essentially a token that identifies the trunk. If your provider uses this header, you should put it into this field.

      Diversion header: This setting controls whether the system should send the Diversion-header in outgoing calls. If the header is set to {rfc} the RFC defined default is used. Otherwise the setting is subject to variable replacement like in the Custom Trunk Headers.

      Avoid RFC4122 (UUID): UUID are a way to identify the SIP trunk in a unique way. This helps to avoid double registration, e.g. after a restart of the system. Like with many useful features, many SIP service providers don't support the feature and reject the request. In such cases, the UUID must be suppressed.

      Attach PIDF-LO for emergency calls: PIDF-LO objects can be used to indicate the location of the caller. The system can use this to indicate the location for emergency calls in a multipart-MIME attachment for outbound calls.

      Show History-Info: The History-Info-header is a powerful way to indicate how the call was redirected inside the system. Some service providers are able to use this header to provide additional information to the caller.

      Indicate RTCP-XR support: RTCP-XR is a powerful way to measure and report the call quality for example for MOS, however it requires that both sides of the call support the standard. Although negotiated automatically, many SIP servers get confused when RTCP-XR support is proposed and reject calls. Because of this, the support indication can be suppressed.

      Encrypt media: By defaut the system will propose that RTP is encrypted (SRTP) when a secure transport layer such as TLS is used for the call setup. However some SIP servers get confused with this. In such cases this setting can be used to suppress encrypted audio.

      Generate unique extension identifier: This setting allows you to use the extension’s EPID instead of the ANI if the extension’s EPID has already been set. If extension’s EPID is not set, "generate" a new EPID and use it (and set it for extension for the future use too).

      Interpret SIP URI always as telephone number: When a call comes into the system, the system needs to know how to interpret the number. In SIP, the URI contains a domain name; however, in most cases, the domain name should be ignored when interpreting the URI coming from this trunk (because the user portion is just a telephone number). Usually, this is indicated by the parameter "user=phone," but not all service providers set this flag. By turning on the "Interpret SIP URI always as telephone number," you make the system believe that this flag was set on the trunk call.

      Caller ID update on trunk: This setting is used to update the caller ID information on the trunk. For example, if you want to update the caller ID that is sent to a remote party, when a call is transferred, you can use this setting. This is dependent on whether the trunk provider supports that feature.

      Lookup SPAM provider if available: When a SPAM provider was set up on the system, this setting controls if that provider i used to look the caller up when a call comes in through the trunk.

      Contact header value: Some SIP servers get confused with the standard SIP contact header value. This setting can be used to override the value of the contact header.

      Customer specific header: Like with the registration, additional headers can be specified for the trunk for outbound calls. The format is the same like with the registration. In contract to the registration header, this setting is subject to variable replacement, for example caller-ID information can be inserted in to the requests (e.g. X-Other-From: {from}).

      Media/Audio

      Codec preference: Use this setting to specify particular codec preferences for the trunk. By default, the system uses the codec preference of the system, which has the advantage of allowing the system to negotiate codecs in such a way that transcoding can be avoided. (When default mode is used, no codecs will be displayed on the left side of the codec selection box.) If it is necessary to enforce specific codecs on a trunk, choose a codec from the list of available codecs and click theAdd button. Repeat as needed. Be sure to position the codec with the highest preference first. To delete a codec, click the Remove button. To move a codec up or down in the preference list, use the Up and Down buttons.

      Lock codec during conversation: Locking the codec prevents someone from switching codecs in mid-conversation and ensures that the user agent continues to send and receive media properly. (Some user agents are not capable of changing the media once the conversation begins. ) When this setting is used, the Vodia PBX transcodes the stream so that changes made to the codec by the other side go unnoticed by the user agent.

      Number of codecs in SDP answer: Some trunks cannot handle multiple codecs in a SDP answer. In this case it makes sense to limit the number of codecs to 1.

      Generate PCAP traces for calls. When this flag is turned on, the PBX is generating PCAP files for the call which can be retrieved from the system call log or from the file system.

      Strict RTP Routing: This setting is needed because the IETF allows "RTP traffic send ports" to be different from "RTP receiving ports," creating an extremely NAT-unfriendly situation. While most implementations today use the same port number for sending and receiving RTP, some gateways still insist on strict IETF compatibility. In such cases, this setting should be enabled. We recommend you keep this flag disabled ("No") unless asymmetrical ports are required.

      Port range start, end: This setting overrides the setting for the RTP port range on system level. Some SIP trunks need the RTP ports to be in a specific range; if that range is very short it makes sense to set it for the trunk and not globally for the whole system.

      Trunk requires out-of-band DTMF tones: When this setting is enabled, the trunk will use RFC 2833.

      Requires busy tone detection: When an analog PSTN gateway (e.g., FXO) is used, hangup detection can be an issue. In FXO, the hangup signal might be just a tone that needs to be detected. Unfortunately, no international standard exists for the disconnect tone. Incoming international calls might give you a disconnect tone that the system has to recognize. Of course, if the PSTN gateway is capable of detecting this, the task should be left to the PSTN gateway. However, as a fallback, you may also configure the system to perform the hangup detection. The disadvantage of doing this is that it costs additional CPU resources, and it might randomly disconnect calls; for example, if the other party plays back a tone that sounds like a busy tone, the call may be disconnected. The best way to avoid these kinds of problems is to use a digital line, e.g., a SIP trunk.

      Use T.38 for FAX: By default the trunk will attempt to use T.38 for FAX transmission. However in some cases, modem encoding must be used.

      PRACK support: Not all SIP trunks support PRACK, which make the signaling of early media more reliable. This flag can be used to suppress PRACK.

      Ringback on incoming calls: This feature was introduced to deal with network operators who were unable to deal with early media. Although using the 180 Message simplifies the signaling in forking calls scenarios, it creates additional delay when the called party picks the handset up and the first samples on the conversion may not be transported. We strongly recommend leaving the flag set to Media (which is default) and asking the operator to fix the problems with early media.

      Local ringback generation for outbound calls: This setting is used in cases where the service provider sends back a 183 with SDP, but doesn't provide the ringback tone. With this setting, the PBX can force a local ringback. For providers that support P-Early-Media it is suggested to turn this feature on, so that the PBX can automatically determine wether to play local or remote ringback.

      Play file for local ringback when needed: There are conflicting cases when the PBX should actually play local ringback, but the trunk is still providing it. There are only few cases when this flag needs to be turned off.

      Inbound Routing of Trunks

      After the system has detected an inbound call from a trunk it needs to make a decision where to send the call. The routing of the call is determined by the trunk settings, specifically in the "Destination for incoming calls" section.
      Trunk Routing

      Default

      Unless specified otherwise the trunk will use the default behavior according to the following rules:

      • If the phone number which is in the request-URI of the INVITE packet is a number that exists, the system will route the call to that destination. The system will first convert the phone number in to the global represenation of the number, so that the writing of the number makes no differenet (e.g. +16171231234 is the same like 16171231234). If the trunk was marked as global, the search will include the whole system.
      • If that did not work, it will try to send the call to the default auto attendent in the same tenant where the trunk is located (if an auto attendant was set up as default auto attendant).
      • If that did not work, it will try to send the call to a ring group in the same tenant where the trunk is located.
      • If that did not work, it will try to send the call to an auto attendent in the same tenant where the trunk is located.
      • If that also did not work, it will try to send the call to an extension in the domain. It will usually pick the extension that was set up first.
      • If that also did not work and the trunk is a inter-office trunk, it will route the call according to the dial plan of the trunk.

      Send calls to destination in the Request-URI

      When this mode is selected the system will route the call to the number in the request-URI of the INVITE packet. Like with the default behavior above, the number is put into the normalized global represenation of the number to make the match independent from the presentation. If the number cannot be found and the the trunk is a inter-office trunk, it will route the call according to the dial plan of the trunk. Otherwise the call will be rejected as "not found".

      Send all calls to a specific account

      This mode ignores the information on the INVITE and always routes the call to a specific account. This account is typically an auto attendant or a hunt group, however it can be any account.

      Send to 10-digit DID

      This mode was specifically designed for installations in the North American number plan (NANPA). Instead of normalizing the number, it takes the last 10 digits of the number and automatically converts this into a +1-global number.
      The caller-ID can be in the request-URI of the INVITE packet, but it can also come out of the From-header and the To-header. If the number was not found, this mode allows the designation of a default account, so that calls never get rejected.

      Match extension after prefix

      In installations where companies can have a number block with extensions after the block it is not neccessary to assign phone numbers to accounts. Instead the system will match a prefix with the caller-ID and treat the numbers after that as the account number to dial. The prefix should be long enough to avoid ambiguities, however not too long to get into the area code or the country code because this would make the matching difficult depending on how the SIP trunk service provider presents the number.
      Like with the 10-digit mode, the caller-ID can be in the request-URI of the INVITE packet, but it can also come out of the From-header and the To-header. If the number was not found, this mode allows the designation of a default account, so that calls never get rejected.

      Use a list of expressions

      This mode works on a list of regular expressions. This mode is very flexible, however with flexilitity comes complexity. That is why the mode should only be used of the other simple modes don't work.

      The list of regular expressions is seperated by spaces, for example !2121234([0-9]{3})$!8\1! ![0-9]{7}([0-9]{3})$!\1!123!. Each expression is seperated by a unique character (typically !) and consists of the following elements:

      trunk_inbound_routing_13.png

      • Pattern: The pattern portion of the string defines the numbers that the system will use when searching for a match and how many. For example, when using [0-9]{7}([0-9]{3})$ the system will match numbers that have at least ten digits and use the last three digits in the replacement.
      • Replacement: The replacement field tells the system which expression to use when dialing. In the replacement, the matches from the pattern can be referenced through \1 to \9.
      • Flag: This flags are a list of characters that provide additional information about the matching process. By default, the system will look at the Request-URI (u). However, if you want the system to look at the "To" header, use a t as shown below (some Internet service providers provide the destination information in the "To" header). You may also use f to use the From-Header, or i for the Diversion header. You may specify where to look inside the header: n means to use the display name in the "To" or "From" header, d means to use the domain name. The default is the username in the URI. For the f, n and d flags you need to use version 5.0 or higher. When using flag n you can also use flag i, which means case-insensitive, and the pattern will be URL-decoded, so that space characters become possible (starting with version 58).
      • Default: If there was no match for the pattern, this expression will designate a default account for the pattern matching.

      The following list shows some examples for expressions:

      Expression Description
      ![0-9]{4}$!\1!u!123! If the account exists, send it to the last four digits of the called number, and everything else to account 123
      !^1?[0-9]{10}$!123!f!124! Send all calls that are coming from NANPA numbers to account 123, and everything else to account 124.

      Identifying the right trunk

      If there are multiple trunks, the system needs to assign the call a specific trunk before the matching process can begin. If there is a line parameter in the request-URI of the INVITE that matches the line parameter that the trunk was using when registering with the service provider, this will identify the trunk. This works in most of the cases without the need to look further.
      Otherwise the system will determine the following conditions:

      • IP address match: This condition will be true if the IP address of the INVITE matches one of the IP addresses that are associated with the trunk. Those addresses can explicitly specified in the setting "Explicitly list addresses for inbound traffic" or they are automatically determined from the outbound proxy of the trunk.
      • Address match: This condition is similar like the IP address match, but also includes the port number.
      • Domain match: If a domain address of the tenant where the trunk resides maches the hostname in the request-URI of the domain.
      • DID match: This condition is true if the number in the Request-URI matches a DID that belongs to the trunk.

      The system will then look for the best match with the following priority list:

      1. IP address and DID match
      2. IP address and from match
      3. IP address and user match
      4. Address and domain match
      5. IP address and domain match
      6. Address match
      7. IP address match
      8. Domain name match

      Troubleshooting inbound routing

      The easiest way to troubleshoot inbound routing problems is to set the trunk log level high and try an inbound call. This can be done inside a tenant or on system level. The system will provide log messages along the processing of the request which usually explain the behavior of the system.

      Trunk ANI Number/Call Identification

      Trunk ANI

      When the system sends a call to a trunk, it needs to determine what caller-ID to use for that call. The outbound caller-ID is called ANI (Automatic Number Identification).

      The system will use a list of rules to find a ANI. Those rules are part of the trunk settings. There are two rule sets for each trunk: A rule set for regular calls and a rule set for emergency calls. If the call is considered to be an emergency call, the system will first attempt to use the rules for emergency calls. If those rules do not come up with a number, the system will continue with the rules for regular calls.

      The result of the matching process is stored in the header variables ani-raw (the number, without modifications) and ani-cnam (the name). There are other forms ani-e164, ani-nanpa, ani-plus, ani-row and ani available that have the number formatted in the respective interpretation. The variables will be ultimately stored in the from variable. In most cases using the {from} header variable in a SIP trunk header will work just fine.

      Trunk ANI Rule

      The list of ANI rules is separated by a space character. Each entry consists of a ANI number or a placeholder for the ANI number; each entry may be filtered by one or more conditions, for example disa:from-cell:from or just 6173998147. If there is no ANI available in a placeholder then the system will skip that entry.

      Placeholders

      ANI numbers can be entered as the literal telephone number that should be used or using the following placeholders:

      • from: This placeholder will use the caller-ID in the From header of the call. This can be useful when used with the from-trunk condition.
      • orig-from: This is like from, but using the original from header that was not changed e.g. by the auto attendant.
      • ext-ani: This placeholder will use the extension ANI of the extension that will be charged for the call when available (see below).
      • ext-fani: This placeholder will use the extension FAX ANI of the extension that will be charged for the call when available.
      • ext-eani: This placeholder will use the extension emergency ANI of the extension that will be charged for the call when available.
      • orig-ani: This placeholder will use the extension ANI of the extension that started the call when available.
      • orig-fani: This placeholder will use the extension FAX ANI of the extension that started the call when available.
      • orig-eani: This placeholder will use the extension emergency ANI of the extension that started the call when available.
      • ext-epid: In case the trunk is set to generate EPID for each extension, this placeholder will contain the EPID.
      • ext-number: This placeholder will search a DID in the account and use it as ANI.
      • ext-alias: This placeholder will use the primary account name, which can be a DID but can also be just an extension number (in version 62.1).
      • dom-ani: This placeholder will use the domain ANI when available.
      • dom-fani: This placeholder contains the FAX ANI for the domain.
      • dom-eani: This placeholder contains the emergency ANI for the domain.
      • acd-ani: This placeholder will use the ACD ANI if the user was logged into this ACD.
      • trunk-ani: If there was a trunk ANI set for the trunk, this placeholder will contain that ANI.
      • trunk-prefix: If there was a trunk prefix set for the trunk and the call is associated with an extension, this placeholder will contain that prefix with the extension number.

      Conditions

      Conditions can block the usage of a ANI. Conditions for presenting a specific ANI can be prepended to a ANI by separating the condition from the ANI with a colon. If there are multiple conditions that must be met in order to present a caller-ID, multiple colons can be used. Conditions can be negated by putting an ! in front of it.

      • from-trunk: If the call comes from a trunk, this condition will be true.
      • from-cell: When the call comes from a users cell phone, this condition is true.
      • from-teams: When the call comes from a users Teams phone through the Teams trunk, this condition is true (available from version 65.0.5 onwards).
      • from-ext: When the call comes from a users extension, this condition is true.
      • hunt: This condition will be true if this call is a hunt group call (starting version 62.1).
      • acd: This condition will be true if this call is a agent group call (starting version 62.1).
      • clip: If the call should block the caller id (CLIP) then this condition will be true.
      • disa: This condition will be true if this call is a DISA (direct inbound station access) call.
      • fax: This condition will be true if this call is a FAX call.

      If there is no match with the predefined conditions, the system will try to match the condition with an account in the domain (using wildcards). If it matches a service flag, the state of the service flag will determine if the condition matches. For all other account types, when there is a match the condition is true. Account matches can also be negated, for example !40* will match all accounts that do not start with "40".

      Examples

      The first example always presents the caller-ID 6173998147:

      6173998147
      
      Text

      The second example presents the caller-ID of the extension if there is one, otherwise 6173998147:

      ext-ani 6173998147
      
      Text

      The third example presents the caller-ID of the domain if the call is not a DISA call and the user name that initiates the call starts with "40", otherwise the extension ANI if there is one, otherwise 6173998147:

      !disa:40*:dom-ani ext-ani 6173998147
      
      Text

      Default behavior

      If there is no trunk ANI set up, the system will use the following pattern:

      acd-ani ext-ani trunk-prefix dom-ani trunk-ani from
      
      Text

      For emergency calls the default behavior is this:

      ext-epid ext-eani dom-eani
      
      Text

      Extension ANI

      The ANI field for an extension contains in the most simple case just one phone number. The number can be in the global format starting with the +-symbol (e.g. +16173998147) or in the local format (e.g. 6173998147) or in the human readable format (e.g. 617-399-8147).

      The ANI can dependent on the trunk that uses the number. In this case, the syntax for this is trunk:ani, for example Trunk1:6173998147 (this requires that the trunk name does not contain spaces).

      You can make the ANI also dependent on the destination. In this case the pattern is +prefix:ani, where the prefix must be the beginning of the global number. For example +1978:9781234567 would use the ANI if the call is being sent to a US-number that starts with 978.

      You can combine these methods by separating them with a space. The system will the the first pattern until it has found a match or a simple ANI number. For example the pattern Trunk1:6173998147 +1978:9781234567 7811231234 would first check if the call is on Trunk1, and if not check if the call will be sent to a number starting with 978 and if not, use the number 7811231234.

      Trunk Custom Headers

      The PBX can send just about anything in the SIP headers when making outbound calls. This is particularly useful if the trunk provider needs special parameters/values in the SIP headers.

      In order to use custom headers, "Custom Headers" must be selected from the Remote Party/Privacy Indication drop-down (trunk setting). (You can also modify Request-URI, From, To, P-Asserted-Identity, P-Preferred-Identity, Remote-Party-ID, P-Charging-Vector and Privacy Indication as well.)

      The predefined tags are detailed below:

      Template/TagMeaningExample Result
      {close}This is a special tag for }}
      {from}This is the content for a typical From header. The tag is a shortcut for "{ani-cnam}" <sip:{ani}@{trunk-registrar}>."Vodia Networks" <sip:8005554600@pbx.company.com>
      {to}This is shortcut for generating a reasonable To header, using "{to-display}" <sip:{to-number}@{to-host}>."Vodia Networks" <sip:8005554600@pbx.company.com>
      {domain}The domain name.pbx.company.com
      {domain-display}"Domain->Setting->Name of the domain"My office domain
      {domain-param1-3}Insert a general purpose parameter for the domain.Anything
      {ext}Extension URI with display name"John Smith" <sip:5467@pbx.company.com>
      {ext-ani}Extension ANI8001114300
      {ext-ani-raw}Extension ANI as stored in the database+18001114300
      {ext-display}Extension display name, first name & last name of the extensionJohn Smith
      {ext-param1-3}Insert a general purpose parameter for the account. If there is no account context available or the content for the account is empty, it will take the general purpose parameters of the domain.Anything
      {ext-uri}Extension URI<sip:5467@pbx.company.com>
      {global-uri-number}Request URI for the call+18005554600
      {local-uri-number}Request URI formatted in the domain country code format8005554600
      {icid-value}Trunk charging vector setting2424324
      {ip-address}IP address of the system10.20.10.100
      {open}This is a special tag for {{
      {pai}The P-Asserted-Identity header from the primary call. The field also contains the parsed variants like {pai-display}."Vodia Networks" <sip:8005554600@pbx.company.com;user=phone>
      {ppi}The P-Preferred-Identity header from the primary call. The field also contains the parsed variants like {ppi-display}."Vodia Networks" <sip:8005554600@pbx.company.com;user=phone>
      {replacement}Result of dial plan replacementsip:8005554600@pbx.blackbox.com;user=phone
      {request-uri}The request URI for the call.sip:8005554600@pbx.blackbox.com;user=phone
      {rpi}The Remote-Party-ID header from the primary call. The field also contains the parsed variants like {rpi-display}."Vodia Networks" <sip:8005554600@pbx.company.com;user=phone>
      {trunk}URI based on trunk parameters, display name, user name and registrar."John Doe" <sip:8005559999@pbx.blackbox.com>
      {trunk-account}Value of the account field of the trunk.8005559999
      {trunk-password}Value of the password field of the trunk.password
      {trunk-ani}Value of the ANI field of the trunk.8005559999
      {trunk-display}Value of the display field of the trunk."John Doe"
      {trunk-host}Host part of the trunk registrarpbx.blackbox.com
      {trunk-port}Port part of the trunk registrar.5060
      {trunk-outbound-proxy}Outbound proxy setting of the trunksip:10.20.14.116:5060;transport=udp
      {trunk-registrar}Value of trunk registrar settingpbx.blackbox.com
      {trunk-uri}The username@registrar.8005559999@pbx.blackbox.com
      {trunk-uuid}The UUID for the trunk.8005559999@pbx.blackbox.com
      {trunk-user}The username setting of the trunk8005559999
      {ani} {ani-raw} {ani-e164} {ani-nanpa} {ani-plus} {ani-row}From ANI in raw, domain, E164, NANPA, global and ROW format resulting from the ANI calculcation.8001114300
      {ani-cnam}The CNAM associated with the ANIPeter Pan
      {from-trunk}*This variable is "true" when the call originates from a trunk (trunk to trunk call); otherwise it is "false"true
      {from-extension}*This variable is "true" when the call originates from an extension; otherwise it is "false"true
      {clip}*This variable is "true" when the caller-ID should be hidden, either by request from the user or because it came in anonymous from a trunk; otherwise it is "false"true
      {disa}*This variable is "true" when the call is a DISA call (a user placing an outbound call from the cell phone menu)true
      {emergency}*This variable is "true" when the an emergency number is being called; otherwise it is "false"true
      {in-reply-to}*This variable contains the caller-ID of the original call325s92318d2@192.168.4.2
      {if var value}*If the variable is not equal to the shown value, the rendering stops{if clip true}
      {fi var value}*If the variable is not equal to the shown value, the rendering continues{if clip true}
      {ifn var value}*If the variable is equal to the shown value, the rendering stops{ifn clip true}
      {fin var value}*If the variable is equal to the shown value, the rendering continues{fin clip true}

      The options with the asterisk are available from version 5.0.3 onward (from-noclip from 5.0.9, disa from 5.2.6 on). {pai}, {ppi}, {rpi} are available after version 5.4.1.

      Caller-ID fields

      For the fields from, to, ppi, pai and rpi the system generates the following content (xx will be replaced with the actual field name):

      Template/TagMeaningExample Result
      {xx-noclip}The complete header for the call, even if CLIP is used for the call."Vodia Networks" <sip:8005554600@pbx.company.com;user=phone>
      {xx-uri}Only the URI part of the headersip:8005554600@pbx.company.com;user=phone
      {xx-display}The display name of the calling extension"Vodia Networks"
      {xx-host}The host part of the URIpbx.company.com
      {xx-port}The port part of the URI5060
      {xx-hostport}The host and port part of the URIpbx.company.com:5060
      {xx-scheme}The scheme part of the URIsip
      {xx-uri-raw}To URI before formattingsip:+18005554600@pbx.company.com;user=phone
      {xx-user}User part of To URI8005554600
      {xx-user-raw}User part of To URI before formatting+18005554600

      The Other Option

      If the trunk provider does not like the output/result of any of the tags listed above, then you can make up your own custom strings and tags to satisfy the provider's need. To do this, choose Other from the drop-down. Then a text box will appear where you can construct a custom string. This option is available for all the headers listed under Custom Headers.

      Case 1: If the trunk provider does not like the From header that is constructed using default options, then you can choose the Other option and set whatever they like. Example: "My company name" <sip:{trunk-ani}@{domain};user=phone>

      Case 2: If the provider does not like Privacy: id header, then you can setup something that they like.

      Trunk Rates

      CSV Format

      In the telecommunications environment it is common to bill phone calls based on their destination and their duration. The PBX supports this kind of billing based on the selected trunk, using CSV-based tables. The lines of the CSV are sorted; after the first match the system stop searching for another match.

      The lines of the table consists of the following fields:

      • Name: This is the name for the destination. It is possible to use the same name in multiple lines (for example several entries for calling Canada from the US).
      • Prefix: The PBX matches entries by their prefix. The number is in the global format, starting with a "+". If the prefix is an asterisk, it means that this line is the default rule.
      • Price: The price for the call. The currency for the price is set in the trunk (for monthly billing the price comes from the billing settings).
      • Period (optional): The duration for the billing period in seconds. If not provided the system will use 60 seconds.
      • Upfront (optional): Some destinations have connection fee that is changed when the call connects.
      • Direction (optional): If you put the flag "i" here the row will apply for inbound calls, otherwise it will apply for outbound calls

      In order to deal with semi-flat rates there is an extension to the name available. If a name contains a slash, the name is split up into fields. The first field contains the name to be used in the billing, the second name the number of included periods (typically minutes). If there is a third parameter, it includes how much costs are included in the rate; if the third parameter is not present it is calculated by the prices times the included periods. For example, in order to have a national call rate with 1000 minutes included, you could use the line "Domestic/1000,*,0.01" for domestic calls at one cent per minute after 1000 minutes.

      When trunk rates are used, the domain or the extension must have enough credit to start the call. If the balance falls below the period cost, the PBX will disconnect the call.

      Webpage on the PBX to set the trunk call rates on:

      trunk_rates_1.png

      CSV Example

      The following example shows a table that matches routes into Canada seperately from routes to the USA and some other routes to other destinations:

      Canada,+1204,0.1
      Canada,+1250,0.1
      Canada,+1289,0.1
      Canada,+1306,0.1
      Canada,+1403,0.1
      Canada,+1416,0.1
      Canada,+1418,0.1
      Canada,+1450,0.1
      Canada,+1506,0.1
      Canada,+1514,0.1
      Canada,+1519,0.1
      Canada,+1604,0.1
      Canada,+1613,0.1
      Canada,+1647,0.1
      Canada,+1705,0.1
      Canada,+1709,0.1
      Canada,+1778,0.1
      Canada,+1780,0.1
      Canada,+1807,0.1
      Canada,+1819,0.1
      Canada,+1867,0.1
      Canada,+1902,0.1
      Canada,+1905,0.1
      USA/1000,+1,0.05
      Greece,+30,0.10
      Germany,+49,0.15
      Cuba,+527,0.45,55,1.00
      Rest of World,*,0.25

      WebRTC Trunks

      What it does

      When using WebRTC with the Vodia PBX, you can put a talk button on your web page that your web site users can use to call your company. Instead of publishing a phone number, you can use your web site address as a single point for communication with your company. With the growing support for WebRTC in the web browsers, you can have customers call you from desktop computers, laptops, tablets and smartphones from their offices or mobile.

      The call will end up on the Vodia PBX. However, if you are operating another PBX that supports the SIP protocol, you can forward the call to that PBX. This makes it possible to add the WebRTC functionality to existing installations without having to change the existing setup.

      How it works

      WebRTC is a way that the browser can communicate using audio and video to other parties on the Internet. The audio and video is sent using the RTP protocol, just like most of the Internet real-time communication is using it. However, instead of using H.323, SIP or other protocols, WebRTC leaves the call setup to the service provider and JavaScript code running on the browser.

      While there is a wide agreement that WebRTC is the way to go for communications from the web browser, not every web browser supports it yet. Actually, as of today, only Google Chrome supports it in its released version. Firefox has a beta version with WebRTC support; we expect it will be included in the standard release. More information is available on http://www.webrtc.org/.

      The Vodia PBX uses only a subset of the WebRTC feature set. Because the Vodia PBX is a PBX with a built-in session border controller performs media relay, there is no need to perform the full ICE discovery procedure. Also, the Vodia PBX does not use video.

      How to obtain a license

      If not already included in the license, a WebRTC license call feature can be obtained from the "a la carte" menu from the Vodia PBX web site. WebRTC calls count against the general number of calls license; depending on the license type and expected call volume additional call licenses might be necessary and are also available from the sale location.

      Set up a WebRTC trunk

      You can set up a trunk in the domain where the call from the web browser should end up. You may actually set up several trunks in different domains or in in the same domain if you want.

      You should use a user name for your trunk so that you later can easily figure out where the call comes from. The destination where the call will be terminated can be set in the "Destination for the incoming call". Then hit the create button.
      image

      Adding the Talk! button to a web site

      Once the WebRTC trunk has been created, you need to add the talk button to your website. In order to get this done, go to the trunk overview and click on "Web Code". Make sure you are logged in to your PBX via HTTPS URL and not HTTP as the code will be generated accordingly.

      image

      After clicking on the generate button, the web interface will show code that can be copied & pasted into the web site where they talk button should appear. Of course, even your web server which will host this code should on the HTTPS URL.

      Once the code has been pasted in the webpage of your server, the test "Talk" button (along with the dial pad, which won't be displayed of course) would seem like this:

      image

      Linking the Vodia PBX to another PBX

      In many environments, there is already an existing PBX deployment in use that should not be affected by adding WebRTC calling capability. In such environments, there are several ways to connect the Vodia PBX to the existing PBX using the SIP protocol.

      The easiest approach is to have the existing PBX register an extension on the Vodia PBX. In this case, on the Vodia PBX, you have to set up an extension, assign a password and then have the existing PBX register a trunk to the Vodia PBX extension. In this setup, the PBX does not have to be in the same LAN as the existing PBX. The build-in SBC will take care of NAT issues.

      Sending calls from the Vodia PBX to a SIP trunk

      You can also send WebRTC calls to a predefined number, for example, your cell phone or an existing PSTN number. This is done using the general SIP trunk capability of the Vodia PBX. In order to do that, you need to enable the "Inter-Office" routing capability on the WebRTC trunk and tell the PBX which dial plan on the PBX to use for routing the call.

      The number that will be called appears in the WebRTC Destination settings. Enter the name and the number to call in this setting.

      Connecting Branch Offices

      This section describes how to connect two Vodia PBX systems so that calls from the first location to the second location will be routed through VoIP rather than through the local PSTN. This can be useful for calls inside the company where someone from the branch office 1 wants to talk to someone on the branch office 2; but it can also be used to use the branch office 2 PSTN gateway to terminate calls made from branch office 1. This can significantly lower termination costs, for example when the first office in in the USA and the second one is in Africa. Two different scenarios are presented:

      • Two Vodia PBX telephone systems with "routable" IP addresses. Routable can be a public IPv4 or IPv6 address, preceived from the first office. It does not mean that the branch office must be visible to the entire internet; for example a firewall rule might limit the visibility to the first branch office. This model is also suitable for two systems on a private network with no NAT issues. Large organizations also use VPN to establish the same effect.

      • Two Vodia PBX telephone systems: A head office site and a remote site that neeed NAT traversal for the remote site. In this case the only way to reach the branch office is through registering a trunk from the branch office to the head office.

      Using a Gateway Trunk

      SIP gateway trunks are the best method for connecting two Vodia PBX telephone systems, as long as both systems either have routable IP addresses or are on a private network with no issues with NAT. Likely candidates for this configuration are the classroom environment and organizations with a large private network (as long as the system has an interface directly on a public IP address). The image below shows two remote sites connected by two gateways. Callers from either system can dial the other system using four-digit dialing.

      trunk_branches_1.png

      Create a trunk for each branch office, using the instructions that are shown below.

      Branch Office 1

      1. From the Type dropdown, select SIP Gateway.
      2. Enter the IP address into the Domain field:

      trunk_branches_2.png

      Branch Office 2

      1. From the Type dropdown, select SIP Gateway.
      2. Enter the IP address into the Domain and Outbound Proxy fields:

      trunk_branches_3.png

      You then need to enable the Inter-Office Trunk (Trunk may terminate calls for remote systems) and select a dial plan that will be used when the called number is not available on the branch office 2 system.

      Using a SIP Registrations Trunk (SIP Tie Line)

      The SIP registration trunk can be used to connect two branch offices when one of the offices has a private IP address. For example, a corporate head office has a pubic IP address, and a remote branch office has only one public IP address and requires that the system be on a private address but still wants to have connectivity back to corporate.

      trunk_branches_4.png

      Branch Office 2

      1. Create an extension that will be used by the trunk to route the calls:

      trunk_branches_5.png

      Branch Office 1

      1. Create a SIP registrations trunk for the branch office, entering the extension that will be used to route the calls (e.g., 525).

      trunk_branches_6.png

      Don't forget to set Trunk ANI to 525 in the trunk settings.

      Once the offices have been connected, the headquarters will need to dial the extension that the trunk is routed to. Once the call hits the branch office, it will be sent to the auto attendant so that the headquarters can dial the remote extensions. The trunk has to register to the extension just as a phone would, so the system at the branch office will need to register the trunk to the system at the headquarters, the same way an ITSP would need to be registered. Then anyone in the world can dial the DID, much like they would dial that extension.

      Calls from Site 1 to Site 2

      To make calls from Site 1 to Site 2, you must add a dialplan to route, for example, all calls to 6xx through the "SIP Tie" trunk. Here is an example:

      trunk_branches_7.png

      Calls from Site 2 to Site 1

      To make calls from Site 2 to Site 1:

      1. Create an auto attandant on Site 1, for example with number 500.
      2. Send all calls coming through the "SIP Tie" trunk to number 500 (by setting "Send call to extension" to 500 in the trunk's settings).

        CO-lines

        CO-lines can serve multiple purposes on the system. They allow you to channelize a trunk and can be used in a way similar to the CO-lines of traditional TDM-based PBX systems. Although the Vodia PBX runs calls through SIP trunks over computer networks instead of connecting to public telephone lines (at least directly), CO-lines are still useful for determining which calls are active between the system and the outside world. To begin with, each trunk may have several CO-lines, and because users can subscribe to the state of CO-lines, each CO-line name must be unique within a domain. For example, four CO-lines might be set up on trunk 1 with the names co1 co2 co3 co4, while trunk 2 might contain co5 co6 co7 co8 (the list must be delimited by spaces). The system will reject names for CO‑lines that are already in use by accounts or other CO-lines in the same domain. With regard to monitoring, the CO-lines that you establish can be monitored from the domain's Account list. If a CO-line is in use, it will display the extension and the outside phone number to which it is connected.

        CO-Line Use

        • Limiting inbound and outbound traffic: CO-lines can be used to limit the number of calls that can be assigned to a trunk. When the CO-line setting is used, the system will reserve one line for each call. When all lines are in use, the system will reject further calls that attempt to use the CO-line. For example, if you have a SIP trunk that can handle only three simultaneous calls, you should assign three CO-lines (e.g., co1 co2 co3). If a fourth simultaneous call attempt is made, the system will play a fast busy signal. If you have more than one trunk, you can set up a failover behavior so that the system will try to use a different trunk for the call once the first trunk has all CO-lines in use.

        • Reserving lines: If you want to reserve lines exclusively for inbound traffic, put a :i after the line name. The system will use that line only for inbound traffic (e.g., line1:i). If you put a :o after the line name, the system will use that line only for outbound traffic. If there is no attribute set after the colon, the line will be available for both inbound and outbound traffic.

        • Monitoring CO-lines: CO-lines are required for many basic functions. In most small offices, transfers are done by pressing the Hold key and lighting the lamps on the other phones. In order to do this, the phone must be able to display which call is on which CO-line.

        colines_1.png

        From a system point of view, the status of a CO-line is similar to the status of an extension: It may be idle, connected, ringing, or on hold. It also might be holding a parked call. Therefore, the mechanism that shows the status of a CO-line is similar to the mechanism that shows the status of an extension. This implies that the name of the CO-line must not clash with the name of an extension or any other account on the system. (To be able to see the CO-line status, the user agent needs to subscribe to the status of the CO-line. See the description of the phones on how to do this.)

        Create a CO-line

        Navigate to Trunks and click on CO-lines.

        colines_2.png

        Create a CO-line button

        Click on Extension, Pick an extension you would like to create a CO-line buttons for.

        Start with 1 and choose CO-line for the type and the parameter is co1 if you have multiple lines then you will have to create them 1st in the CO-line account under trunks.

        colines_3.png


      Inter Domain Dial plan

      Domains with Non-Overlapping Extensions

      If you have domains with non-overlapping extensions, use the following instructions to configure your interdomain dialing. (DIDs, by nature, are non-overlapping.)

      2.png

      Note:

      Be sure to place the loopback dial plan entry at the top of the dial plan; however, 911, 411, 611, etc., can be the topmost entries.

      • For each domain, create a dial plan entry with Try Loopback in the Trunk field.

      • Enter * for both pattern and replacement.

      P.S:

      Here, "Try loopback" entry is the best and the fastest case scenario because it will look for extension number ( and because it is "non-overlapping" with any other extension number on any other domain) through every domain which exists and make a call to that extension when found.

      Domains with Overlapping Extensions

      If the extensions between the different domains are overlapping, users will need to dial a prefix before the actual extension number is dialed. For this configuration, you will need to designate a prefix and provide proper pattern and replacement strings. Note: Prefixing simply makes extension numbers non-overlapping; however, prefix-based dialing can be used for both overlapping and non-overlapping extensions.

      1. From the first domain, create a gateway trunk that will be used to dial to the other domain(s).

      2. Create a dial plan entry that uses the gateway trunk just created.

      3. Choose a prefix. Be sure to choose a prefix that doesn’t conflict with your other extensions (i.e., if the domain has extensions beginning with 5, you must use a number other than 5).

      4. For the Pattern field, enter the prefix you’ve chosen followed by a string that corresponds with the number of digits your extensions have. The example shown below is useful for three-digit extensions and will require users to dial a 6 before dialing the extension number (e.g., if the user dials 6400, extension 400 will be called).
        3.png

      5. For the Replacement field, enter sip:\1@\r;user=phone. (It is not necessary to specify the domain name here. The PBX will use whatever is configured on the trunk.)

      6. Repeat these steps from the other domain(s).

      7. If there is a specific need for dialing between 2 (or more) specific domains, then each (call originating domain's) dial plan's entry's, Replacement field should look like this: sip:\1@destinationdomainname;user=phone

      P.S: Here, a special trunk (atleast one) is needed per dial plan entry (between 2 domains) to make sure the call is carried over it everytime an inter-domain call is made.

      Telnyx secure SIP trunking

      Telnyx TLS SIP trunking

      In order to use a TLS Telnyx trunk you will need to setup a few settings on the your Telnyx control panel.

      To set this up navigate to SIP connections on your Telnyx portal
      SIP connection

      Edit your SIP connection

      SIP connection Type:FQDN:5061 **
      Outnbound: Enter the username and password
      IP Address: Enter the Vodia phone system public IP

      edit general

      Inbound

      **Choose TLS under SIP Transport Protocol **
      **Under Expert Settings ( Choose SRTP) For Encrypted Media **
      connection

      Outbound

      **Outbound Voice Profile: **
      **Expert Setting: ** Encryprted Media to SRTP

      Save All Changes

      outbound

      Creating Telnyx SIP trunking on the Vodia phone system

      Account: Telnyx user name
      Domain: sip.telnyx.com
      Username Telnyx user name
      Password Telnyx user password
      Proxy Address sip:sip.telnyx.com:5061;transport=tls

      If you have an existing Telnyx Trunk you can replace the outbound proxy address to the following value:
      sip:sip.telnyx.com:5061;transport=tls

      vodia

      
      

      Call Center Codes

      Call monitoring features must be used with caution. Please consult corporate and government regulations to determine whether these features are permitted in your environment. Illegal listening to phone calls is a severe crime, and system administrators must be aware of this.

      Many call center features are available only if extensions have been given permission to use them. These settings are controlled by the domain administrator and are located in the user’s Permissions tab.

      In order to use call center star codes, you will need to assign a permission group policy for ACD group.

      Call Forwarding Codes

      Call forwarding allows users to forward their calls to another number. Multiple methods are available for doing this.

      Hot Desking (*70)

      Hot desking can minimize the need for office space and is often used as a cost-reduction method. It allows multiple users to use the same desk and phone, although at different times. Hot desking can be used on a temporary or permanent basis. In either case, once the user activates the hot desking feature, all calls made to the user’s extension (or as part of a hunt group or agent group) will be routed to the new extension or destination. Outbound calls from the hot desking phone will reflect the user’s caller-ID.

      It is not expected that other significant inbound traffic is routed to the originally registered extension. This fact suggests that offices use “virtual” and “real” extension numbers:

      • Real extension numbers are used for employees with a fixed location (e.g., switch board, management).
      • Virtual extensions are not registered. They are used simply for routing calls to a specific user.

      Note: If users would like to route their calls to a colleague who is covering for the day, they can use either the Redirection star code (*71) or the Redirection settings from the web interface.

      To log into a hot desk:

      Note: Users must set their voicemail PIN before they can use the Hot Desking feature.

      1. Go to the phone where you will be hot desking.
      2. Dial *70 and press the confirm button on the telephone keypad.
      3. Enter your extension number when prompted.
      4. Enter your voicemail PIN code for the extension number when prompted.

      The system will acknowledge that the Hot Desking feature is in service.

      Note: The system will automatically log a user out of a hot desk each night. Also, after activating the hot desk feature, users will be notified via email that a status change has been initiated on their extension.

      To log out of a hot desk:

      To log out of a hot desk, users must dial *70 and their extension number from either the location that is currently registered as a hot desk or from a phone that has been configured to their extension. The system will acknowledge that hot desking is no longer in service.

      Note: Hot desking has limitations. Telephone preferences, such as ring tones, address book programming, etc., cannot be moved to another desk.

      Call Forward All Calls (*71/*72)

      The Call Forward All (*71) feature allows users to redirect all calls to another number (e.g., to a colleague who is answering the user’s phone).

      1. Dial *71 and press the confirm button on the telephone keypad.
      2. Enter the call forwarding number once the announcement is complete.
      3. Press the # key. The system will repeat the number and then hang up. If you want to change the forwarding number, just call *71 again.
      4. To deactivate, press 72, then press the * key when prompted. The announcement will indicate that call forwarding has been turned off.

      Users do not need physical access to their phone to modify this setting. This setting can also be activated from the Redirection settings of the web interface.

      Call Forward All Calls (*71/*72)

      The Call Forward All (*71) feature allows users to redirect all calls to another number (e.g., to a colleague who is answering the user’s phone).

      1. Dial *71 and press the confirm button on the telephone keypad.
      2. Enter the call forwarding number once the announcement is complete.
      3. Press the # key. The system will repeat the number and then hang up. If you want to change the forwarding number, just call *71 again.
      4. To deactivate, press *72, then press the * key when prompted. The announcement will indicate that call forwarding has been turned off.

      Users do not need physical access to their phone to modify this setting. This setting can also be activated from the Redirection settings of the web interface.

      Call Forward on Busy (*73/*74)

      The Call Forward on Busy (*73) feature allows users to forward calls to another number if their extension is busy. This feature is typically used for redirecting calls to a team member or colleague to ensure that all incoming calls are answered. To activate:

      1. Dial *73 and press the confirm button on the telephone keypad.
      2. Enter the call forwarding number once the announcement is complete.
      3. Press the pound key #. The system will repeat the number and then hang up. If you want to change the forwarding number, just call *73 again.
      4. To deactivate, dial *74. The announcement will indicate that call forwarding has been turned off.

      Users do not need physical access to their phone to modify this setting. This setting can also be activated from the Redirection settings of the web interface.

      Call Forward on No Answer (*75/*76)

      The Call Forward on No Answer feature allows users to redirect calls when the extension has not picked up after a certain time. This feature is typically used to redirect a user’s incoming calls to an assistant or secondary phone. To activate:

      1. Dial *75 and press the confirm button on the telephone keypad.
      2. Enter the call forwarding number once the announcement is complete.
      3. Press the pound key #. The system will repeat the number and hang up. If users want to change the forwarding number, they must dial *75 again.
      4. To disable this feature, dial *76. The announcement will indicate that call forwarding has been turned off.

      The length of time the system will wait before forwarding the call is determined by the also be activated from Call forward on no answer timeout setting of the web interface. Keep in mind that the voicemail timeout (see Time until user’s mailbox picks up ) works in tandem with the no-answer timeout. If the voicemail timeout kicks in before the no-answer timeout, the call will go to voicemail. Both of these settings can be set at the domain, but users can override these settings.

      Do Not Disturb (*78)

      Do Not Disturb or DND allows users to silence their phone for all incoming calls, even calls made to a hunt group or agent group. When DND is activated, all calls will stop, including those redirected to the cell phone. However, the system will still call the user’s cell phone though if a message has been received while DND is activated and the user has activated Call cell phone when new message arrives.

      1. To activate DND, dial *78 and press the confirm button on the telephone keypad.
      2. Dial *79 to deactivate.

      Notes:
      If the DND button on the phone is used to activate DND, this will not stop the user’s cell phone from ringing. It will affect only that phone. To stop all phones from ringing, the user will need to activate the *78 star code so that the system will know to put all phones that have been configured to the extension into DND.

      DND can be overridden by someone who has DND override permission (see Call the following extensions even if DND is set). Typically, this is a secretary who needs access to the boss, regardless of DND status. DND takes precedence over Call Forwarding, as the latter cannot prevent hunt group calls from reaching the user’s extension.

      To create a toggle-like effect (activate/deactivate) for DND for use with buttons, use matching star codes (e.g., *78/*78 or *79/*79) on the star codes page at the domain level.

      Set Night Mode for Domain Accounts (*80)

      This feature allows users to forward domain accounts (e.g., auto attendant, hunt group, etc.) to their own extension. Before this feature can be used, permission for each account must be activated by the administrator. Permission is set from the extension's Permissions tab.

      • To forward all auto attendants, hunt groups, and agent groups of the domain, *80 must be used without an argument.
      • To forward only a specific account, the account must be specified after the star code.
      • To disable this feature, enter a star in place of the call forward number.

        Cellphone Codes

        Feature Codes

        The feature codes used in this section are related to cell phone use (*51, *52, or *00) but they cannot be executed from the cell phone.

        Retrieve Call From Cell Phone (*51)

        This feature allows users to pick up an in-process cell phone call on their extension phone. This feature can be used only for calls that have been made from the cell phone (through the Personal Virtual Assistant) or which have been redirected to the user's cell phone. Calls that have been made directly to the user's cell phone (without involving the system) cannot be picked up on the user's extension phone.

        Scenario : You're on your way to the office and you need to call a client, so you call into the system and place an outbound call. You speak with the client on your way to work, and once you arrive at the office, you decide to pick the call up from your office phone.

        To transfer a cell phone call to your extension:

        1. From your cell phone, call into the main number of the PBX (your cell phone must be associated with your account).
        2. From the Personal Virtual Assistant menu, press 1 for “outbound call.”
        3. Enter a destination number, then press the # key.
        4. When you're ready to pick the call up from your office phone, dial *51 from the office phone.

        Once the call has been connected, your cell phone will disconnect and will no longer accumulate minutes.

        Move Current Call to Cell Phone (*52)

        This feature allows users to move a current call from the extension phone to the cell phone. (Note : The user's cell phone must be configured to the extension before this feature can be used.)

        Scenario : You're on your extension in the middle of a conversation and need to leave the office. Instead of ending the conversation, you put the caller on hold and transfer the call to your cell phone.

        To transfer an extension call to your cell phone:

        1. Place the extension call on hold.
        2. Dial *52 from your office phone.
        3. Answer the call on your cell phone.

        Call Cell Phone of the Extension (*00)

        This feature allows users to call someone else's cell phone without knowing that person's cell phone number. (Note : The individual's cell phone number must be configured as part of the extension that is being called.)

        Scenario : You notice that your boss has just left the building when an important call comes in. You have no idea what his cell phone number is, but you must speak with him. You know what his extension number is, so you use the *00star code followed by his extension number. Because the system sees the extension and the cell phone number as being the same, the system is able to ring his cell phone.

        To call someone's cell phone without knowing the number:

        1. Dial *00 followed by the person's extension number.
        2. Press the start button from the telephone keypad.

        The system will connect you to the individual's cell phone.

        Making Calls Codes

        Redial a Number (*66)

        Redial (*66) allows you to redial the last number that was called from your phone.

        Call Return (*69)

        Call Return (*69) will dial the number of the call that was received last. The number will be available until a call has been established to that number—not necessarily connected, which can help prevent users from calling back the same person twice. (If you execute *69and discontinue the call during its ring state though, *69will not be able to access that number again unless the caller rings again.)

        Notes : If you reach an external mailbox, the system will handle the Call Return as if the call had been successfully established and will clear the number. If you reach a mailbox of another extension on the system, the Call Return number will not be cleared and you will be able to make successive attempts at reaching that extension by dialing *69. The system will store a Call Return number only for calls that contain a valid caller-ID.

        Telephones that share the same extension number will share the same redial and Call Return number.

        Intercom (*90)

        The Intercom feature mimics the old secretary-boss intercom systems and can be thought of as a one-part page with two-way audio. Intercom is used to communicate with one other person. The other party must have a separate extension number, as the Intercom feature will not work between two phones that are registered to the same extension. The Intercom feature will also not work when multiple registrations are involved with the receiving extension.

        To activate:

        1. Set the user’s Call Permission settings for intercom.
        2. Dial *90and the extension you would like to intercom.
        3. Press the confirm button on the telephone keypad.

        You can now begin conversing with the other party.

        Miscellaneous Codes

        Conference ( *53 )

        The conference code can be used to put the callers that the current extension is holding into a conference room. If the code is used without any digits behind it, the system will search for the first conference room that allowed non-scheduled conferences and puts all callers into that conference room. If the caller puts a number behind it (e.g. *53800), then the PBX will use the indicated conference room (e.g. 800). The conference room must be suitable for this, otherwise the system will play back an error message.

        Outbound Calling ( *55 )

        This feature is described in a separate page, see Agent Group Outbound Calling

        Play Recordings ( *56 )

        This code can be used alone or with a number behind it. When used without a number behind it, it will start playing the recorded messages for the extension from which the code was called. Otherwise it will play the recordings for the account that was provided behind the code. For example, to play back all recordings from the ACD 400, the user would dial *56400. The user needs to have the permission to play back the recordings (see Extension Call Permissions for this).

        The playback starts with the last message and then moves backward in time.

        When listing to the recordings, the user can use the following keys to change the playback:

        • # can be used to move to the previous recording.
        • * be used to move to the next recording.
        • 7can be used to move ten recording forward.
        • 8 can be used to move start the current recording from the beginning.
        • 9 can be used to move ten recording backward.
        • 1 can be used to reverse the playback. Pushing the button several times increases the speed.
        • 2can be used to stop and resume the playback.
        • 3 can be used to fast forward the playback.

        Show Account Balance ( *61 )

        This feature allows users to hear the balance of their pre-paid calling card account. To get the balance, users simply enter *61 (followed by the confirm button) from the extension the pre-paid card is configured to.

        Wakeup Call ( *62 )

        The Wakeup Call (*62) feature allows users to receive automatic wakeup calls from the system. Though this feature is used primarily in hospitality environments, it can also be used on an individual basis.

        1. Dial *62.
        2. Press the confirm button.
        3. Enter the wakeup time in 24-hour format (HHMM); for example, 0715 (for 7:15 a.m.) and 1915 (for 7:15 p.m.).

        The system will confirm the wakeup call. To cancel a wakeup call after it has already been confirmed, users must press the star (*) key.

        Note : Wakeup calls cannot be transferred to other registered devices (i.e., the wakeup call will not ring the user's cell phone).

        Request Call Details ( *63 )

        The Request Call Details (*63) feature allows users to request the details of a call (caller-ID, call duration, and time of call). The information will be sent to the user's email address. This feature is handy and prevents the user from asking for contact information from the caller.

        To activate the Request Call Details feature:

        1. Dial *63and press the confirm button on the telephone keypad.
        2. Retrieve the message in your email.

        Call forward all calls via Cellphone (Cellphone tied to the user's Extension)

        This helps to call into the system and change the calls to be forwarded settings, just by calling into the system via VPA (Virtual Private Assistant).

        To activate "Call forward all" star code feature:

        1. Make sure VPA feature is on the system.
        2. Call from the user's cell phone (which is part of his extension on the PBX) into the system.
        3. Press 3, to go to the voicemail.
        4. Enter the Mailbox PIN if prompted (or you can skip this step).
        5. Press **71<cell phone number to forward calls to># (in one continuous string)
        6. And same for turning the feature off. Just change step 5 to include *72 instead.

        Clean up an Extension ( *84 )

        This feature allows users to quickly clean up an extension. This makes it ideal in hospitality environments, as it can be used to clear an extension of its messages after guests have checked out and before new ones arrive. It can also be used to clean up extensions of employees who have left the company. Users cannot activate this feature unless permission has been given by the domain administrator.

        Add to White List ( *91)

        This feature allows users to add a contact to the white list of their personal address book. White list contacts receive preferred treatment. They are not required to say their name before speaking with the user, and they can receive a callback when the user's extension becomes available.

        1. Dial *91.
        2. Press the confirm button.

        If the number does not already exist in the user's address book, the system will automatically create an entry for the number. Users can edit the address book entry from the web interface.

        Add to Black List ( *92 )

        This feature helps users avoid unwanted contacts (e.g., unwanted callers, fax spammers, etc.). Once a caller is on the black list, the user's Incoming anonymous call setting will determine how that call is treated. If the caller should be rejected, then the system will reject that call. Otherwise, the system will carry out whatever instruction the user has configured.

        If the number does not already exist in the user's address book, the system will automatically create an entry for this number. Users can edit the address book entry from the web interface. Black list contacts are not allowed to camp on an extension.

        Prior to version 5.6, you need to reject the call or wait until the caller hung up to be able to add the caller. Since version 5.6, the system will take the last number that was calling the extension, unless it was more than 5 minutes ago.

        Call Record ( *93/*94 )

        Call Record allows users to record a conversation between themselves and another party. This feature is handy when it is critical that a user remember the contents of a particular call. Users should check state and federal laws before recording calls. To activate the record feature, dial *93on the telephone keypad. To deactivate, dial *94. The recording can be retrieved from the user's mailbox from the web interface.

        If automatic call recording is in progress, the codes are used to pause and resume the recording. This is useful when sensitive information like credit card information should not be recorded in the conversation. In this case the agent would first enter the deactivate code *94, then listen to the credit card information and when done resume recording with *93.

        Set ANI (*59)

        This feature allows the extensions to dial the star code and change their outbound ANI on the go. Steps are:

        1. Make sure that the star code for Set ANI is set, e.g. to *59. This step may be neccessary when upgrading from older versions.
        2. Add ANIs to the desired account.
        3. Go to Domain → Setting → General Settings → Extensions may use star code to change ANI field and choose from either of those drop down menus:
          1. Only own ANI: User / Extension can enter only it's own DID number (as is) as it's Outbound ANI number.
          2. Any ANI in this Domain: User / Extension can enter any DID number as their own ANI that they can find inside the domain that they're a part of.
          3. Any NANPA ANI: User / Extension can enter any DID number that belong to the NANPA number format on whole of the PBX.
          4. Enter any ANI: User / Extension can enter any DID number that resides on the PBX as their own ANI.
        4. Dial e.g. *591234567899 (use your own ANI) and hit send and the audio prompt will confirm that ANI has been set by repeating the number to you, if successful.
        5. If it doesn't go through, it will prompt the user with "This number could not be found".
        6. Make a call out. This will only work, if your trunk allows random ANIs to go out, or else it wont.

        Echo Test (*56)

        When calling the echo test, the system will send the received audio back to the calling device. This is a simple way to test if the extension has two-way audio. In addition to that the system will read out DTMF that is has received, which helps to make sure that the device works properly with negotiating the DTMF codec.

        Transferring Calls Codes

        Calls can be transferred using the transfer button on the phone or star codes. The system supports two types of call transfers: blind transfer and attended transfer.

        Blind Transfer

        When the user activates a blind transfer, the call is transferred with no knowledge as to whether the receiving party will be available to receive the call. A blind transfer can be used for transferring calls to voicemail or the cell phone.

        1. Press the transfer button on your phone, or press Hold and dial *77.
        2. Enter the extension number (or phone number) of the recipient.

        A blind transfer offers no confirmation of call connectivity. If the number is busy or does not exist or no one picks up, the user will not be notified.

        Attended Transfer
        When using attended transfer, the user must speak with the party who is receiving the call to ensure that the call can be received.

        1. Put the caller on hold (using the phone’s hold button). The LCD will display the call that is on hold.
        2. Enter the destination number,then press the confirm button.
        3. Once the party on the receiving end is prepared to take the call, press the transfer button twice (the first Transfer connects the call; the second Transfer clears the music so that the parties can speak. (If the phone does not have a Transfer button, *77can be used to transfer the call.)

        Users do not need to press the hold button to free the call. If the person is not available to take the call, the user can press the Hold button to reclaim the call and discuss the available options with the caller.

        Transfer a Call Directly to Someone’s Voicemail

        The systems administrator must enable a direct dial prefix before users can "blindly" transfer a call to another user’s voice mail. The default for direct dial is "8".

        1. Put the call on hold using the hold button on your telephone keypad.
        2. Press the Transfer key. (If your phone does not have a transfer button, dial *77to transfer the call.)
        3. Enter the mailbox prefix number.
        4. Enter the extension number.

        The caller will be transferred to the extension’s voicemail. Because the caller will bypass the voicemail timeout, the caller will not hear any ringing. This method does not need to involve an outside caller. To call a person’s mailbox directly, the user can dial 8123.

        Call Park ( *85 ) and Call Park Retrieve ( *86 )

        The system administrator must configure specific park orbits (e.g., 800, 801, 802, and 803) on the system before these star codes can be used. Call Park allows the user to temporarily park a call so that it can be picked up by another user. The receiving party uses Call Park Retrieve (*86), followed by the park orbit number, to retrieve the call.

        Scenario : A call comes in for Diane, but you do not know where she it, so you put the customer on hold, dial *85and the park orbit number, and press the confirm button. You then page Diane, "Diane, you have a call on extension 509, (509is the park orbit on which the call was placed). Diane executes the Call Park Retrieve (*86) feature, dials 509, and retrieves the call.

        An announcement will indicate that the call has been parked. At this point, the call can be retrieved by any extension by dialing *86and the park orbit number on which the call has been parked.

        1. Put the call on hold (music will play in the background).
        2. Press *85to park the call.
        3. Enter the park orbit number.

        If the call is not picked up within a specified time (default is 1 minute), the user will receive a call from the system as a reminder of the waiting call.

        Note : To create a toggle-like effect for Call Park and Call Park Retrieve for use with buttons, use matching star codes (e.g., *85/*85or *86/*86) on the star codes page at the domain level.

        Call Pickup ( *87 )

        Call Pickup allows users to pick up a ringing phone. It can be used to pick up calls ringing into a specific extension or for ringing calls in general, including calls ringing into a hunt group or agent group.

        Note : When compared to Call Park Retrieve, Call Pickup is associated with a sense of urgency (i.e., the user must pick up the ringing phone before the call goes to voicemail.) With Call Park Retrieve, the caller is already in the system, so there is not as much of a hurry. Before users can use Call Pickup, they must first put their last call on hold so that the system does not interpret and execute the star key during calls made to external systems that also use star keys.

        Not everyone can pickup every call. Only users that have the "Permission to monitor this account" may pickup calls from the account (see General Extension Settings ).

        Directed Pickup

        1. Dial *87.
        2. Dial the extension on which the call is ringing.
        3. Press the confirm button on the telephone keypad.

        General Pickup

        Call Pickup can also be used without specifying an extension. To activate, dial *87and press the confirm button on the telephone keypad. The system searches for calls to pick up in the following order:

        • Hunt groups: For a call that is headed for a specified hunt group, the system will reroute the call to the extension that dials the pickup code. If several calls ring the hunt group, then the system will pick up only the first call that was routed to the hunt group.

        • Extensions: When the account number is an extension, the system searches for calls that go directly to the specified extension. These calls can come from an auto attendant or through direct extension dialing. Calls that ring the extension due to it being part of a hunt group or agent group will not be affected by Call Pickup.

        • Agent groups: As with the hunt group, the system picks up a call from the specified agent group. For calls in the ringing state, the system picks the first call that is in that state. Otherwise, the system picks the call that entered the queue first.

          Voicemail

          You can activate "Send Voicemails as Emails", using the star code *95

          You can deactivate Voicemail, using the star code *96

          You can go to Voicemail, using the star code *97

          You can record a new greeting, using the star code *98. To delete a recording, you can press * after the call was connected, or press 1 to discard the current recording and record it again. For the recording, there are multiple ways to start a recording:

          • *98: This starts to record the standard annoucement for the mailbox.
          • 98 n : This starts to record a specific annoucement for the mailbox. If n is 0, then the name will be recorded; if it is between 1 and 5, it will record the personal greetings 1 to 5. The number 9 will record a mailbox message, similar to a note pad.
          • *98 m : This starts to record the standard annoucement for an account, which must be an auto attendant, a IVR node, a ACD or a paging account.
          • *98 m * n : When used with an auto attendant, where m is the account number and n is the index into the annoucement which you want to record. The same is possible for th ACD, where the index n can be between 0 (the initial greeting) and 9.

          You can clear the voice message indicator, using the star code *99

          You can also listen to automatic recordings using *56 or turn on/off recording using *93/*94 star codes from the telephone keypad.

          LAN Provisioning With Single Button Press

          • Login as Admin.
          • Click on Setup Devices in LAN as shown above.

          httpsdocvodiacomsitesdefaultfilesinline-images1161.png

          Automatic Detection and Setup of VoIP Devices

          The page will show you the phones that were found in the LAN, which you can assign to an extension. Select the phones that you want to provision/setup, select a domain and an extension for each phone and click on the Setup button. The setup requires that the phones use their default username and password. Therefore it is recommended to factory reset the devices and wait till they completely come back up.

          In case the device is a PSTN gateway, select the domain in which you want to set it up and select the extension where all the calls from the PSTN device will be directed, for example, to an Auto Attendant. Also, for a PSTN gateway, choose the number of lines from the drop down next to it for the number of active lines (PSTN lines actually connected) to the gateway.

          Note : Give the devices some time before they start provisioning.

          Setup of Static Devices

          In case the device has a static IP (like VoIP gateways) and is therefore not detected, then it has to be first added to the list before setup. For that, first press the button Add Device with Static IP to reveal other settings then select the device (gateway) vendor, enter its MAC (e.g. AA:BB:CC:DD:EE:FF), its static ip, its subnet mask, its default gateway (exactly as they are set on the device) and press "Add". The device will be added to the list, which you can select and "Setup" accordingly, as described above.

          Plug and Play Settings

          Automatic provisioning of VoIP phones is a key functionality of the PBX.

          Write PnP generated files. When the system generates provisioning files, it can write them to the file system or send then to the log file. When writing them into the file system, the system will generate a folder generated and create directories for the domain and the extension. Writing them into the file system makes it easy to trace what has been sent to a specific extension, the drawback is that it requires file system access to read them and it also exposes passwords on the file system. In any case the generated files are kept in the extension tab in the domain web interface.

          Duration for opening extensions for MAC-based provisioning. When a MAC address gets opened up for provisioning, any device that knows the MAC address can pull the configuration data for that device. Because a MAC address contains only a relatively small number of bits, the window where that can happen should be kept as short as possible. Otherwise scanners can accidentally guess a valid address and pull the configuration data for the device, which usually includes the password for the SIP registration. The time should be especially short when using a wildcard for MAC address, because then there is no need to guess a MAC address and a scanner will immediately find a valid address.

          Duration for keeping provisioning open. In the process of pairing a MAC address, the PBX will keep the provisioning window open for some time. By default this time is 5 minutes. This settings allows changes of that default.

          Duration for after provisioning passwords. Like the previous setting, this settings controls the duration how long the PBX will send passwords after it has sent the first password to a device. Usually this value can be rather short, but in some cases it is necessary to increase the duration.

          Automatically list unassigned MAC addresses. By default, the PBX keeps track of MAC addresses that hit the PBX provisioning system without being assigned to an extension. This makes LAN provisioning very easy, however in hosted PBX environments it usually is not of great use, especially if the system is running for a very long time.

          Automatically open extensions after creation. When creating an extension, in many cases the next step is to plug in a phone and provision it. If this setting is turned on, the system will automatically open that extension up for provisioning for the duration set by the previous setting.

          Use domain name instead of IP address. By default, the PBX figures out what IP address was used to connect to the PBX and then use that IP address when generating provisioning files for a VoIP phone. This is problematic when the PBX should also work after a failover, when the backup systems runs on another IP address. In that case, using a DNS address that matches the domain name can solve the problem; the setting will then provision the DNS address.

          Try to provision phones securely. For some phones, it is possible to provision phones securely or without a secure connection. This setting controls if secure provisioning should be attempted.

          Show advice of charge (AOC) on phone. Some devices are able to show how much a call costs (advice of charge). When using a trunk that has rates set up for it, the PBX can update those devices about how much the call has cost according to those rates. Also, some trunk providers provide AOC as part of the service that the PBX can pass through to the connected phone.

          Label template for busy lamp fields. By default, the PBX will send patterns in the form {user} {name}to the phone when it wants to label BLF buttons. However the administrator may choose a different pattern in this setting.

          Label template for private lines. As with the setting for the BLF buttons, this settings defines how private lines are labeled by default. As with the BLF setting, the label can be overridden on button template level as well.

          Characters to be stripped from dialed numbers. Certain devices, mostly soft phones, tend to send additional characters in the dialed numbers that are used for displaying phone numbers. For example, when dialing 6173998147 a phone might actually send (617) 399 4147 instead. This setting lists the characters that will be removed from the dialed number.

          Modifying Plug and Play Files

          For the most part, the Vodia PBX takes care of provisioning of the phones with the its default configuration. But in some cases customers want to tweak some of the phone settings for various reasons. This chapter explains different mechanism the system administrator can adopt to achieve that goal.

          Many templates contain a general parameter that you can set with additional content that you would like to add to the template. If you can put you own content in those parameters, you don't have to modify the templates. This has great advantages when you upgrade the PBX software, as you will not miss those changes.

          If you really have to edit the template make sure that add a comment that will help you later find out what you have changed. This is important if an upgrade makes your changes incompatible. As this can cost a lot of time, it is important that you keep the notes in the comment field to save time figuring out what has changed.

          Types of Phones provisioning

          A. DHCP Option 66 Provisioning

          • Enter the PBX IP address in your Local Router as "http://PBX_IP_ADDRESS"
          • Turn on the DHCP 66 option on the phones.
          • Reset the phone to factory default settings, add the Mac address under the "provisioning" tab as shown above, open the phone for "Mac based provisioning" and then reboot the phone.

          B. Manual Provisioning

          • Step 1 : Add the Mac address of the phone into the Provisioning tab of the extension and hit Save.

          httpsdocvodiacomsitesdefaultfilesinline-images261.png

          • Step 2: Under Domain> Advanced> General Settings> Provisioning Parametersas shown below, add the authentication password and PIN to login into the phone (after it gets provisioned).
          • Select the Dial plan scheme for your country as well from this section.

          pnpgrandstream25.png

          • Step 3: Select MAC based Provisioning

          Navigate to the extension level and select "Open account for MAC based provisioning", to allow the phone to provision to that specific account.
          httpsdocvodiacomsitesdefaultfilesinline-images271.png

          • Step 4: Navigate to the web GUI of the phone and add the URL of the PBX Server as below:

          httpsdocvodiacomsitesdefaultfilesinline-images1171.png

          • Step 5: Reboot the phone. The phone might take 2-3 reboots before it is up and registered.

          C. LAN Provisioning

          • Step 1: Navigate to Admin> Phones> LAN Devicesand select the MAC and click on Setup.

          httpsdocvodiacomsitesdefaultfilesinline-images1181.png

          • Step 2: Assign it to domain and the extension inside that domain as shown.

          httpsdocvodiacomsitesdefaultfilesinline-images1191.png

          • Step 3: The PBX should automatically add the MAC address of the phone to the extension, reboot, provision and register !

            PnP Pre-requisite Steps

            Many Vodia PBX settings are downloaded to the phone during Plug and Play, so it's best to configure these settings before actually doing Plug and Play. That way, when the phones are provisioned, they will have those settings. Some of these settings are listed below.

            Configuring the Domain Settings for Provisioning Settings

            Many domain settings are also uploaded to the extension (the phone) during plug and play, such as language settings and country codes etc.

            pnpprerequisitesteps41.png

            • Go to your selected domain in the Vodia PBX web interface.
            • Go to General Settings
            • Choose default IVR and web languages, a time zone, and country and area codes etc.
            • Scroll to the bottom of the page to Provisioning Parameters , and select a default dial plan scheme and enter the username and password for the phones.
            • Dial plan has to be selected here at this point.
            • The Authentication user , Authentication password and Authentication PIN settings allow administrators to provision phones and log into a phone’s web interface remotely. The password will bypass users’ passwords (the web interface passwords), so users will not be able to use their passwords; hence, this setting can be used to keep users out of the phone’s web interface and prevent them from inadvertently changing anything. The default username is admin , and the default password is <blank>.

            Configuring the Domain Button Profiles

            Not all users will need the same button profile, so you may want to set up multiple profiles and assign them to the extensions that will be using them.
            There are also several default button profiles available for the different Snom phones, which can be changed by the user accordingly, and which are provisioned to the phones according to the phone types when the button profile setting on the extension level is set to “Automatic” instead of being assigned to a specific profile.
            It is explained in more detail under Buttons

            Configuring the Extension(s)

            Many extension settings are also uploaded to the extension (the phone) during plug and play. The extension based settings can be set from the domain (while logged in as admin and selecting the extension for which changes are to be made) and also from the user portal (logged in as a user).

            httpsdocvodiacomsitesdefaultfilesinline-images71.png

            httpsdocvodiacomsitesdefaultfilesinline-images601.png

            • Go to your selected domain in the Vodia PBX web interface.
            • Click on the extension from the list for which you want to change settings.
            • For that extension you will see several tabs, which have related settings that you can change for PnP, e.g. General tab for some general settings, Registration tab for some registration specific settings including binding a phone to a specific MAC and Buttons tab for selecting or customizing a buttons profile or selecting “Automatic” for automatic selection of the default button profile based on the Snom phone type (for more details on buttons, go to Buttons . All these settings will be uploaded to the phone tied to this extension on provisioning.
            • You can also login as a user (User Mode) to the user portal and make changes to the settings for PnP, which will be uploaded to the phone during provisioning.
            • You can tie a phone to an extension by adding the phone’s MAC address to the extension. Under the tab Registration for the extension, enter the MAC address of the phone you want to tie to that extension in the setting Bind to MAC Address and press Save. This will tie the phone to that extension and when it is provisioned, the phone will get all the settings from this extension, including registration information, buttons, and everything else that is provisioned.
            • Three different options are available to associate the phone’s MAC address with an extension: manual, permanent assignment, and temporary assignment. These methods are detailed below.

            PnP Method Use Case Scenario How it's Used
            Manual Setting up a few phones In this mode, you can permanently set the MAC address in the extension account. This will bind the registration to a specific phone. The MAC address can be used in multiple extensions, and multiple MAC addresses can be assigned to the same extension. This allows for users to have multiple phones. (Use a space to separate the MAC addresses.)
            Temporary Assignment (?)Setting up phones at trade shows, classrooms, etc. This mode simplifies preparation when setting up at trade shows and for classroom training sessions. When this mode is used, the system will not remember which phone had been assigned to which extension. A phone might receive a new extension number every time it boots up. (As long as no other user agent is registered to a particular extension, the extension will be available for plug and play.) This mode requires that a question mark (?) be used in the Bind to MAC Address field.

            Outbound Proxy Provisioning

            The information on this page is based on versions after 5.4.2 (May 27, 2016).

            Available Transport Layers

            The PBX can automatically generate the configuration files for a range of VoIP phones. Those configuration files also tell the phones to which address they should register, and what protocol to use. The PBX supports UDP, TCP and TLS transport layers:

            Protocol

            Description

            UDP

            The UDP prococol must be support by all devices that claim to be SIP compliant. This transport protocol serves as the least common denominator. However for registering VoIP phones it causes a lot of problems because of a problems called "UDP fragmentation", when packets get too big to fit into a single UDP packet. Especially when a lot of codecs are presented by the phone, this limit can easily be reached. In that case it screws up the communication. There are many problems with UDP when the VoIP phone is behind a router or firewall, as there are several ways those devices behave in practice (symmetrical NAT) and how long those ports are kept open. Because of this unpredictable and erratic behavior, it is strongly recommended not to use UDP and use a connection oriented transport.

            TCP

            The TCP makes sure that packets don't get lost between the client and the server. Many mainstream protocols such as HTTP and Email are using TCP for sending their packets back and forth, which make TCP an extremly robust and well-understood protocol in the Internet. The main drawback of TCP is that it is not encrypted. Some firewalls that are monitoring the traffic tend to change TCP packets, which can cause problems with the PBX. Today, most VoIP phones properly the TCP protocol for SIP, although it is not strictly mandatory according to the SIP protocol.

            TLS

            TLS is based on TCP, but uses encryption. This makes it possible to negotiate secure keys for the voice packets as well, so that the whole call can be encrypted. The main problem with TLS is that the PBX should have a signed certificate. Those certificate can cost a significant amount of money and usually need to be renewed annually.

            By default, the PBX tries to provision TLS protocol, or at least the TCP protocol if the device supports it. Generally, this is the best chance for a seamless user experience.

            Unfortunately, it is not always possible to use TLS or even TCP. Some firewalls block TLS traffic because they are not able to analyse the traffic, and some other firewalls might not be able to handle too many persistent TCP connections so that UDP might become neccessary.

            PBX Address

            When a phone wants to send a registration to the PBX server it needs to have a resolvable address for the PBX. The SIP standard provides several ways to discover the PBX address. By default, the PBX uses the IP address method which works well in environments where there is no DNS available.

            Protocol

            Description

            IP-Address

            By default, the PBX determines what IP address the PBX needs to present to the VoIP phone. The way to figure out what IP address to present can be tricky; however the PBX has a reasonable way to determine this address which works well, even if the PBX is operating in a mixed IPv4/IPv6 address environment with multiple IP addresses.

            DNS-Address

            Especially for hosted PBX setup where the provider is able to provide a DNS address for each domain, it makes sense to provision the domain name instead of an IP address. This makes it possible to use DNS SRV and NAPTR, especially for automatic failover from the client this is an easy way to provide multiple addresses where the phone can register. This method needs to be enabled by the setting "Use domain name instead of IP address" (Plug and Play Settings).

            Domain Outbound Proxy Pattern

            The Domain Settings may contain a special pattern that tells the PBX what address to provision for certain addresses.

            Along with the address, the PBX will also try to select the right port. This also depends on the transport layer, e.g. typically TLS has a different port than TCP or UDP.

            Using the Outbound proxy pattern, the outbound proxy that is provisioned into the phones can be controlled based on their public IP addresses. A typical scenario is that an office which is using a hosted PBX uses a SIP-aware firewall that needs to receive the outbound traffic from all IP phones in that office. The value in this field is a list of patterns that looks like this: src/mask/adr[:port[/transport]]. If the phone to be provisioned matches the source address src with the netmask mask, it will use the outbound proxy made of the adr:port and transport parameters. The port and the transport are optional. If not present, they will be replaced with 5060 and udp.

            So let's say that a tenant has two offices which have a VoIP router. The first office is at 1.2.3.4, and all traffic needs to be sent to 10.0.0.2. Then the first pattern would be 1.2.3.4/32/10.0.0.2. The second office would be in the VPN of the company and uses IP addresses 10.43.0.x, and the internal gateway is at edge43.company.com, using TLS on port 5061. Then the second pattern would be 10.43.0.0/24/edge43.company.com:5061/tls. In the domain setting the administrator would have to enter 1.2.3.4/32/10.0.0.2 10.43.0.0/24/edge43.company.com:5061/tls.

            Selecting the Transport Layer

            The transport layer can be pre-selected on extension level, on domain level and on system level. The setting is called "Proposed SIP transport protocol". Depending on the support of the VoIP phone and the provisioning template, the PBX will then try to provision the selected transport layer. If there is nothing set on the extension level, the PBX will try to use the domain level, and if that is also set to use the default value, it will use the system value, and if that is also on default it will attempt to use TLS, then TCP and as a last resort, UDP.

            If the Outbound proxy pattern was set on domain level it will override the transport layer selected on extension, domain or system layer.

            Changing the transport layer will take effect on the next provisioning event for the phones.

            Alcatel Phones

            Supported Devices and Features

            Vodia PBX currently supports provisioning Alcatel Temporis IP Phones : IP100, IP151, IP301G,IP251G, IP700, IP700G
            When using the automatic provisioning, some of the supported features are:

            • Basic call features including transfer, hold and voicemail notification
            • Status synchronization of the DND and redirection status
            • BLF mode for buttons
            • Time zone settings etc.
            Note: To reset a Alcatel Temporis phone to factory default settings, press the OK button during 20s

            Note: To reset a Alcatel Temporis phone to factory default settings, press the OK button during 20s

            Provisioning

            When provisioning a Alcatel phone, you should first set the required settings on the PBX as shown in provisioning document Steps Before Provisioning .

            It is important to note in the document "Steps Before Provisioning", how to map the MAC address of the phone to the PBX extension under the registration tab as shown again below.

            pnpalcatel11.png

            It is also important to note in the document "Steps Before Provisioning", under "Configuring the Domain Settings", the "Provisioning Parameters" as shown again below.

            pnpalcatel21.png

            The Authentication user, Authentication password and Authentication PIN settings allow administrators to provision phones and log into a phone’s web interface remotely. These settings enable administrators to use identical usernames and passwords for all devices in a domain, simplifying the authentication process from the GUI of the phone. The password will bypass users’ passwords (the web interface passwords), so users will not be able to use their passwords; hence, this setting can be used to keep users out of the phone’s web interface and prevent them from inadvertently changing anything. The default username is admin, and the default password is password.

            For provisioning buttons, the setting up of buttons is described in buttons . There, you will see how to prepare a new buttons profile, how to set up the individual buttons (like BLF) and how to map that profile to a specific extension. The numbers for the buttons correspond to the buttons on the phone. If a number is not added in the profile, that button will not be set on the phone.

            Open MAC Provisioning

            For security reasons, navigate to the extension level and activate "Open account for MAC based provisioning" as shown, to allow the phone to provision to that specific account.

            pnpalcatel31.png

            Alcatel Temporis Settings for Auto Provisioning

            Log into the web interface of the phone and navigate to "Servicing", then "Provisioning" page.

            Then, reboot the phone.

            pnpalcatel41.png

            Cisco SPA Phones

            httpsdocvodiacomsitesdefaultfilesinline-imagesfoundit1.jpg

            The PBX is able to automatically provision Cisco SPA devices through zero-touch LAN provisioning, DHCP option 66 and through manual entry of the provisioning URL in the phone.GUI.

            In order to use features like TLS and SRTP, you should upgrade the phones to firmware 7.6.2. This will also store the credentials for the provisioning in the phone, so that you don't have to open the MAC for provisioning every time that you want to reprovision the phone.

            Provisioning

            When provisioning a Cisco SPA phone, like SPA504G or SPA525G etc., or a Cisco ATA, like SPA112, you should first set the required settings on the PBX as shown in provisioning document Steps Before Provisioning

            Note: SPA504G or SPA525G require at least 2 line buttons to be provision on the phone.

            It is important to note in the document "Steps Before Provisioning", how to map the MAC address of the phone to the PBX extension under the registration tab as shown again below.

            pnpciscospa11.png

            It is also important to note in the document "Steps Before Provisioning", under "Configuring the Domain Settings", the "Provisioning Parameters" as shown again below.

            pnpciscospa21.png

            The Authentication user, Authentication password and Authentication PINsettings allow administrators to provision phones and log into a phone's web interface remotely. These settings enable administrators to use identical usernames and passwords for all devices in a domain, simplifying the authentication process from the GUI of the phone. The password will bypass users' passwords (the web interface passwords), so users will not be able to use their passwords; hence, this setting can be used to keep users out of the phone's web interface and prevent them from inadvertently changing anything.

            For provisioning buttons, the setting up of buttons is described in buttons . There, you will see how to prepare a new buttons profile, how to set up the individual buttons (like BLF) and how to map that profile to a specific extension. The numbers for the buttons correspond to the buttons on the phone. If a number is not added in the profile, that button will not be set on the phone.

            Open MAC Provisioning

            For security reasons, navigate to the extension level and activate "Open account for MAC based provisioning" as shown, to allow the phone to provision to that specific account.
            pnpciscospa31.png

            Cisco SPA Phone Settings for Auto Provisioning

            You can manually tell the phone from where it should load the configuration either through the web interface of the phone or through the phone keyboard. If you want to use the phone keyboard, select the Profile Rule entry in the interface, though it seems to be much easier through the web interface.

            If you choose to use the web interface, log into the web interface of the phone, and according to the model, navigate to the page where you can enter the provisioning server address. In models SPA504G
            and SPA525G, the setting is called Profile Rule found on page "Admin" -> "Advanced" provisioning tab as shown below. In other models it could be on another page that needs to be found from the documentation of the respective model.

            In Profile Rulesetting, add this URL http://PBXIP/spa$MA.cfgwhere the PBXIP is the IP or resolvable domain of the pbx server.

            Make sure that Provision Enable (if present) is set to "yes".

            Press . Either the phone will reboot by itself or you can reboot the phone for provisioning.
            pnpciscospa41.png

            Setup Devices in LAN

            If your phone is in the same LAN as the PBX, then you don't have to do many of the above things and simply be able to provision almost any phone with a single press of a button by using this feature of the PBX. Make sure the phone is factory reset (or at least have the default username and password). You still have to do the Steps Before Provisioning but after that, just go to the PBX page Setup Devices in LAN where the PBX will show you all the phones it has automatically detected in the LAN. You simply choose the phones you want to provision, assign each one a domain and extension and press "Setup", and that's it. The phones will be provisioned. For details on this feature, please go to: Setup Devices in LAN.

            Cisco 3PCC Desktop Phones

            )httpsdocvodiacomsitesdefaultfilesinline-images51cw0DosPfLSX4251.jpghttpsdocvodiacomsitesdefaultfilesinline-imagess-l3001.jpg

            The Vodia PBX is able to automatically provision Cisco 3PPC devices (68xx, 78xx and 88xx) through zero-touch LAN provisioning. This example is based on the 8841 model but will also work for Cisco phone 7800 and 6800 series.
            The devices should be running sip88xx.11-0-0MPP-7.loads or the latest build available .

            Upgrading Your Phone

            Make sure you host the firmware with an HTTP server or TFTP server, (One can find the tftp folder of the PBX inside /usr/local/pbx/tftp. If the folder is not found, please create a new one)

            and it looks like this URL http://ip_address_server_with_files/sip88xx.11-0-0MPP-7.loads. To prevent typos you could just copy paste the filename.

            Then submit the upgrade URL under Advance→ VoiceProvisioning setting field Upgrade Rule then save the changes

            httpsdocvodiacomsitesdefaultfilesinline-imagesupgradecisco01.png

            Resetting Your Cisco 3PCC Series Phone

            • Remove power from the phone by unplugging the power adapter
            • Wait 5 seconds
            • Press and hold # and plug the phone back in.
            • When the Headset and Speaker buttons are lit, release # and enter the following key sequence: 123456789*0#

            Provisioning

            When provisioning a Cisco 3PPC desktop phone you should first set the required settings on the Vodia PBX as shown in provisioning document Steps Before Provisioning .

            The Authentication user, Authentication password and Authentication PINsettings, enable administrators to use identical usernames and passwords for all devices in a particular domain, simplifying the authentication process from the GUI of the phone when the phone is provisioned to the Vodia PBX.

            httpsdocvodiacomsitesdefaultfilesinline-imagespnpprerequisitesteps41.png

            Setup Devices In LAN

            If your phone is in the same LAN as the PBX, you can provision the Cisco 3PCC devices by visiting the (Phones in the LAN ) under the Administrator level (Phones→LAN Devices ).
            Make sure the phone is factory reset (or at least has the default username and password).
            httpsdocvodiacomsitesdefaultfilesinline-imagesLanbasedprov1.png

            Setup The Extension

            Make sure Steps Before Provisioning is complete before proceeding to provision. Continue and choose your Cisco 8800 phone you want to provision, assign each one a domain and extension and press "Setup", and that's it.

            The Cisco 8800 will reboot and then be provisioned to the Vodia PBX.

            choo_extension_0.png

            Provisioning Buttons

            For a full description visit (buttons). There, you will see how to prepare a new buttons profile, how to set up the individual buttons (like BLF) and how to map that profile to a specific extension.
            The numbers for the buttons correspond to the buttons on the phone.

            httpsdocvodiacomsitesdefaultfilesinline-imagesCopyofWebinar888CiscoandVodia11.png

            Remote provisioning

            If you choose to use the web interface, log into the web interface of the phone, and according to the model, navigate to the page where you can enter the provisioning server address. In models SPA504Gand SPA525G , the setting is called Profile Rule found on page "Admin" -> "Advanced" provisioning . In other models it could be on another page that needs to be found from the documentation of the respective model.
            In Profile Rulethe setting, add this URL http://PBXIP/csc$MA.cfg where the PBX IP is the IP or resolvable domain of the PBX server. The phone will auto provisioning without having to reboot it.

            Grandstream Phones


            httpsdocvodiacomsitesdefaultfilesinline-imagesGrandstream1.png

            Provisioning Grandstream Desktop Phones

            When provisioning a Grandstream phone, you should first set the required settings on the PBX as shown in provisioning document Steps Before Provisioning .

            It is important to note in the document "Steps Before Provisioning", how to map the MAC address of the phone to the PBX extension under the registration tab as shown again below.

            pnpgrandstream12.png

            It is also important to note in the document "Steps Before Provisioning", under Domain>Advanced> General Settings> Provisioning Parametersas shown again below.

            pnpgrandstream23.png

            The Authentication user, Authentication password and Authentication PIN settings allow administrators to provision phones and log into a phone’s web interface remotely. These settings enable administrators to use identical usernames and passwords for all devices in a domain, simplifying the authentication process from the GUI of the phone. The password will bypass users’ passwords (the web interface passwords), so users will not be able to use their passwords; hence, this setting can be used to keep users out of the phone’s web interface and prevent them from inadvertently changing anything.

            For provisioning buttons, the setting up of buttons is described in buttons . There, you will see how to prepare a new buttons profile, how to set up the individual buttons (like BLF) and how to map that profile to a specific extension. The numbers for the buttons correspond to the buttons on the phone. If a number is not added in the profile, that button will not be set on the phone.

            Open MAC Provisioning

            For security reasons, navigate to the extension level and activate "Open account for MAC based provisioning" as shown, to allow the phone to provision to that specific account.

            pnpgrandstream32.png

            Grandstream Phone Settings for Auto Provisioning

            Log into the web interface of the phone, and according to the model, navigate to the page where you can enter the provisioning server address. In model GXP2200, the setting is called Config Server Path found on page "Maintenance" -> "Upgrade" as shown below. In other models it could be on "Upgrade" and "Advanced" page or something else that needs to be found from the documentation of the respective model.

            In "Config Server Path" setting, add this URL PBXIP/prov where the PBXIP is the IP or resolvable domain of the pbx server.

            Make sure that "Upgrade Via" (if present) is set to "HTTP".

            PressSave. Now you can reboot the phone for provisioning.

            pnpgrandstream41.png

            Setup Devices in LAN

            If your phone is in the same LAN as the PBX, then you don't have to do many of the above things and simply be able to provision almost any phone with a single press of a button by using this feature of the PBX. Make sure the phone is factory reset (or at least have the default username and password). You still have to do the Steps Before Provisioning but after that, just go to the PBX page Setup Devices in LAN where the PBX will show you all the phones it has automatically detected in the LAN. You simply choose the phones you want to provision, assign each one a domain and extension and press "Setup", and that's it. The phones will be provisioned. For details on this feature, please go to: Setup Devices in LAN .

            GRP2612/13/14

            Vodia PBX 63.1 and higher supports Grandstream GRP2612/13/14 models. The provisioning is the same like with the other models, with the following differences:
            LAN provisioning: Because the Grandstream phones now use a device-dependent password for the web interface, the zero-touch does not work any more. In order to have this working, you now need to log into the web interface of the phone and use the password printed on the back of the phone to set the config server path to the path to the PBX. Cloud provisioning using Grandstream RPS should still work the same. For the LAN provisioning follow the steps:

            1. Add the phone MAC address to the extension and make sure that the extension is opened up for provisioning/pairing with the phone.
            2. Power the device up and look up the IP address of the phone. This can be done through the keyboard of the phone.
            3. Log into the web interface of the phone. The username is "admin" and the password is printed on the back of the device. The PBX will provision the domain admin password into the phone after the phone was configured the first time.
            4. Navigate to "maintenance" and "upgrade and provisioning". Set the "Config Server Path" to the address of the PBX, e.g. 192.168.1.2 and make sure that the "Config Upgrade via" is set to HTTPS.
            5. Press the "save and apply" button. The phone should go ahead and fetch the configuration from the PBX. You will see a symbol on the screen of the device indicating that it is pulling the configuration from the network.
            6. After the phone received its original configuration, you can go ahead and change the button configuration or make other changes to the configuration.

            Buttons: The phones need at least one private line for the buttons. If there is no private line, the phone may reject the entire configuration.

            Htek Phones

            httpsdocvodiacomsitesdefaultfilesinline-images201802010247291.jpg

            Supported Devices and Features

            Vodia PBX currently supports provisioning Htek phones UC926, UC924, UC862, UC842, UC803P, UC802P.
            When using the automatic provisioning, some of the supported features are:

            • Basic call features including transfer, hold and voicemail notification
            • Status synchronization of the DND and redirection status
            • BLF mode for buttons
            • Time zone settings etc.

            Note: To reset a htek phone to factory default settings, go to the main menu, then go to Settings, then Advanced Settings, enter the web password, then Phone Settings, then press Factory Reset and confirm by pressing ok.

            Provisioning

            When provisioning a Htek phone, you should first set the required settings on the PBX as shown in provisioning document Steps Before Provisioning .

            It is important to note in the document "Steps Before Provisioning", how to map the MAC address of the phone to the PBX extension under the registration tab as shown again below.

            pnphtek12.png

            It is also important to note in the document "Steps Before Provisioning", under "Configuring the Domain Settings", the "Provisioning Parameters" as shown again below.

            pnphtek22.png

            The Authentication user, Authentication password and Authentication PIN settings allow administrators to provision phones and log into a phone's web interface remotely. These settings enable administrators to use identical usernames and passwords for all devices in a domain, simplifying the authentication process from the GUI of the phone. The password will bypass users' passwords (the web interface passwords), so users will not be able to use their passwords; hence, this setting can be used to keep users out of the phone's web interface and prevent them from inadvertently changing anything. The default username is admin, and the default password is password.

            For provisioning buttons, the setting up of buttons is described in buttons . There, you will see how to prepare a new buttons profile, how to set up the individual buttons (like BLF) and how to map that profile to a specific extension. The numbers for the buttons correspond to the buttons on the phone. If a number is not added in the profile, that button will not be set on the phone.

            Open MAC Provisioning

            For security reasons, navigate to the extension level and activate "Open account for MAC based provisioning" as shown, to allow the phone to provision to that specific account.
            pnphtek32.png

            Htek Phone Settings for Auto Provisioning

            Log into the web interface of the phone and navigate to "Management", then "Auto Provision" page. In the "Config Server Path", add this URL http://PBXIP
            You don't have to reboot the phone for provisioning, it is okay to save the information and then use theAutoprovision Now button.

            pnphtek41.png

            Poly phones

            httpsdocvodiacomsitesdefaultfilesinline-imagespolyphones1.jpg

            Supported Devices and Features

            The Vodia PBX currently (version 60.0) supports provisioning Polycom phones VVX101, VVX201, VVX300, VVX301, VVX310, VVX311, VVX400, VVX401, VVX410, VVX411, SPIP300, SPIP301, SPIP320, SPIP330, SPIP321, SPIP331, SPIP335, SPIP430, SPIP450, SPIP500, SPIP501, SPIP550, SPIP560, SPIP600, SPIP601, SPIP650, SPIP670, SSIP4000, SSIP5000, SSIP6000 and SSIP7000.

            When using the automatic provisioning, you will be able to make and receive calls, transfer calls, control the DND and redirection status on the PBX, use the Polycom buttons (restrictions apply) and access the PBX address book through LDAP. LDAP uses TLS so that the address book credentials and the address book information stays secure between the phone and the PBX. The PBX can use TLS transport layer for the SIP messages, eliminating NAT problems and problems with UDP message fragmentation due to the Problems with UDP on Polycom phones. If TLS cannot be used, it is strongly recommended to use at least TCP.

            If the domain contains a logo, the PBX will provide that logo to the phone as the background image. The logo takes up by default a size of 50 % of the screen, which provides enough space for the button information on the phone. For the background color, dark color seem to work better for the phones. Consequently, if a domain is using mostly Polycom phones, it is suggested to choose a dark background color when uploading the logo into the domain.

            Polycom VVX 300/310/400/410 Reboot & Factory Reset

            Pressing multiple key combinations enable you to perform certain operations on the VVX 300, 310, 400, and 410 phones. The multiple key combinations on theVVX 300, 310, 400, and 410 phones are as follows:

            • Reboot the Phone—Press and hold the dial pad keys 0, 1, and 3 simultaneously for about three seconds , or until you hear a confirmation tone.
            • Restore Factory Defaults—Press and hold the dial pad keys 1, 3, and 5 simultaneously during the Updater process until the password prompt appears. Enter the administrator password to initiate the reset. Resetting to factory defaults will also reset the administrator password to 456.
            • Upload Log Files—Press and hold the dial pad keys 1, 5, and 9 simultaneously until you hear a three­second confirmation tone.

            Lost the Administrator Password?

            To restore a third-party phone to factory defaults (or when you otherwise can't access the Admin Password):

            • Power cycle the phone:Simultaneously press and hold 0 1 3 dial pad keys * until a confirmation tone is heard (or for about three seconds).

            • Except VVX 1500: 2 4 6

            • Press Cancel soft key during the boot process.

            • During the countdown, simultaneously press and hold the 1 3 5 dial pad keys until the password prompt appears.

            • Enter the MAC ID of the phone. (The MAC ID/address should be visible on a label on the underside of the phone.)

            Note: When entering the MAC ID of the phone use lower case for the letters.

            Preparing Secure Provisioning

            The PBX will attempt to use secure provisioning for Polycom devices through HTTPS if the setting Try to provision phones securely is set. By default, the PBX will provision the Vodia Root CA into the phone, so that a trust relationship can be established. Instead the administrator can upload a certificate chain into the PBX; in this case, it is important that the whole chain including the Root CA is imported so that the PBX is able to provision the Root CA into the phone. This step is not needed when the PBX is using a certificate that is on the list of trusted Root CA for Polycom phones.

            Establishing a secure connection is also required for using TLS for the SIP signaling messages. If you cannot establish a secure connection, you should assign the TCP transport layer to the device.

            Providing the Firmware

            The firmware for the Polycom phones can be updated through the web interface of the phone or must be downloaded from the Polycom web site. You may use the tftpfolder for storing the firmware files.

            Supported Button Modes

            Polycom phones can use the BLF-based modes that monitor accounts (such as Extension BLF, ACD, Hunt groups or service flags). Speed dial is also supported; this has to be done through the Polycom address book which is automatically generated for the PBX. Park orbits can also be monitored on the Polycom phones.
            Because of the way the Polycom phones work, it is at times difficult to exactly position the buttons on the device. When there is a display next to the button, users should use that display to confirm the button functionality. It is important that you assign at least one line button to the button profile; otherwise, the phone will not accept the BLF configuration.

            Supported Transport Layers

            Polycom phones may use TLS, TCP and UDP transport layers. It is recommended to use the TLS transport layer unless there is a problem provisioning the certificate information for the phone. UDP is discouraged, as it causes problems with large packets and UDP fragmentation.

            Preparing the Device

            Before you can provision a phone, you must add the MAC address to the extension in the PBX web interface. This can be done either by adding the MAC address to the extension or by assigning the MAC address to an extension on the system level (for LAN provisioning).
            You need to tell the phone the provisioning server (where it will get its settings and firmware). For this, you have several possibilities:

            LAN discovery

            Manual Setup

            After the phone booted up, you can change the settings for the provisioning server from the phone user interface:

            • Press the menu button.
            • Select Settings (3)
            • Select Advanced (2)
            • Enter the password (by default 456)
            • Select Admin Settings (1)
            • Select Network Configuration (1)
            • Select the Server Menu
            • Set the Server Type to "HTTP"
            • Set the Server Address to the address of the PBX. If you are deploying the device in a hosted environment, you need to enter the name of the domain here; otherwise, the IP address is sufficient.

            Manual Provisioning:

            When provisioning a Polycom phone, you should first set the required settings on the PBX as shown in provisioning document Steps Before Provisioning .
            It is important to note in the document "Steps Before Provisioning", how to map the MAC address of the phone to the PBX extension under the registration tab as shown again below.

            pnphtek13.png

            It is also important to note in the document "Steps Before Provisioning", under "Configuring the Domain Settings", the "Provisioning Parameters" as shown again below.
            pnphtek23.png

            The Authentication user, Authentication password and Authentication PIN settings allow administrators to provision phones and log into a phone's web interface remotely.

            For provisioning buttons, the setting up of buttons is described in buttons. There, you will see how to prepare a new buttons profile, how to set up the individual buttons (like BLF) and how to map that profile to a specific extension.

            P.S: There should be at least one " Private Line" button assigned in the button list of the Polycom phone which is about to be provisioned, for the phone to register. Otherwise, the phone will not register.

            Open MAC Provisioning

            For security reasons, navigate to the extension level and activate "Open account for MAC-based provisioning" as shown, to allow the phone to the provision to that specific account.
            pnphtek33.png

            Polycom Phone Settings for Auto Provisioning

            Log into the web interface of the phone and navigate to "Management", then "Auto Provision" page. In the "Config Server Path", add this URL http://PBXIP
            after the URL has been set in the provisioning page, you can restart the phone to start the process.

            httpsdocvodiacomsitesdefaultfilesinline-imagespolycommanualregistrationcopy1.png

            Using the DHCP Server

            When you have a DHCP server then can set option 66, you can just enter the address of the PBX there. If you are deploying the device in a hosted environment, you need to enter the name of the domain here; otherwise, the IP address is sufficient. Please make sure that the setting is an HTTP URL.

            Yealink Phones

            httpsdocvodiacomsitesdefaultfilesinline-imagesyealink111.png

            Supported Devices and Features

            Vodia PBX supports provisioning Yealink phones CP960 T31P CP920 T19P T20P T21P T22P T23G T23P T26P T27G T27P T28P T29G T30 T30P T31 T31G T32G T33G T33P T38G T40G T40P T41P T41S T41U T42G T42S T42U T43U T46G T46S T46U T48G T48S T48U T49G T52S T53 T53W T54S T54W T56 T57W T58 VP59 W41P W52P W53P W56P W60B W60P W80B

            When using the automatic provisioning, some of the supported features are:

            • Basic call features including transfer, hold and voicemail notification
            • Status synchronization of the DND and redirection status
            • BLF mode for buttons
            • Time zone settings etc.

            To reset a Yealink phone to factory default settings, hold down the "OK" button for 5-10 seconds. The phone will prompt you to reset to factory default, press OK. For devices that don't have an "Ok" button like the T58 model, use the redial button.

            Manual Provisioning

            When provisioning a Yealink phone, you should first set the required settings on the PBX as shown in provisioning document Steps Before Provisioning.

            It is important to note in the document "Steps Before Provisioning", how to map the MAC address of the phone to the PBX extension under the provisioning tab as shown again below.

            Step 1: Add the MAC address in the extension

            httpsdocvodiacomsitesdefaultfilesinline-images621.png

            Step 2: Add password and the PIN

            • It is also important to note in the document "Steps Before Provisioning", under "Domain Settings", the "Provisioning Parameters" as shown again below.

              pnpyealink21.png

            • This is the password which will act as web password to get into the GUI of the phone, AFTER it provision

            • The default username is admin , and the default password is password .

            • For provisioning buttons, the setting up of buttons is described in buttons.

            Step 2: Open MAC Provisioning

            For security reasons, navigate to the extension level and activate "Open account for MAC based provisioning" as shown, to allow the phone to provision to that specific account.
            pnpyealink31.png

            • Log into the web interface of the phone and navigate to "Upgrade" > "Advanced". In newer models, it may "Settings" and "Auto Provision". In provisioning server, add the URL http://PBX_IP_OR_Domain_name.

            • Make sure that "Check New Config" is set to "Power on".

            • You don’t have to reboot the Yealink phones for provisioning, it is okay to save the information and then use the Autoprovision Nowbutton.

            httpsdocvodiacomsitesdefaultfilesinline-images1110.png


            • Step 1: Make sure the PBX is publicly accessible.

            • Step 2: Get the API username and the API Key from the Yealink's RPS server's section to enter it on the PBX as shown below.

              1.png

            • Step 3: Make sure that the phone is factory reset before going further.

            • Step 4: Enter the mac address of the phone in the extension created on the PBX and hit Save

            • Step 5: The phone needs to reboot. If it doesn't do it by itself, manually reboot.

            • Step 6: The MAC address along with the domain name of the PBX should now be seen populated in the RPS server. The phone should be fully provisioned and registered now.

              Gigaset Phones

              Maxwell devices

              When provisioning a Gigaset phone, we should first set the required settings on the PBX as shown in provisioning document Steps Before Provisioning. The provisioning then is like provisioning every other supported phone.

              The PBX is able to automatically provision Gigaset phone devices through zero-touch LAN provisioning, DHCP option 66, cloud provisioning throgh the Gigaset redirection server and through manual entry of the provisioning URL on the phone GUI. The redirection service will require that you enter the PIN for the MAC address, which is on the back of the device near the MAC address.

              Resetting Maxwell devices

              httpsdocvodiacomsitesdefaultfilesinline-imagesgiga21.png
              How to Factory Reset Gigaset Maxwell

            • Find the phone IP address.
            • Press the Control key when the phone is idle, navigate to Settings → Info on the phone.
            • Log in the phone web interface with your password: admin.
            • Go to System → Reboot and Reset, click Reset to Factory Settings .

            N670, N870 DECT

            In order to set up the N670 and N870, you'll need to assign the extensions with the MAC address of the base station that will pull the configuration. This can be done by adding the MAC to each extension and then setting the parameter 1 for the extension. If there are many extensions, the following example may serve as template for importing the data in one step and assigning it to the extensions:

            #alias;mac;param1
            40;7C2F80001122;029e74a598
            41;7C2F80001122;029e74a599
            
            Text

            In order to start provisioning, at least one of the extensons needs to be ready for provisioning device (open accounts for MAC-based provisioning). The PBX expects an URL with the path 83/1/provisioning.xml in the provisioning URL, which is the default for the N670 and N870.

            Avaya Phones

            Supported devices and features

            Currently (version 68.0.22) the devices of the J100-series are supported (J129, J139, J159, J169, J179, J189).
            Most of the features are supported:

            • Automatic provisioning
            • Automatic sync of the provisioning files
            • Firmware provisioning through parameters
            • Secure provisioning and secure calls (SRTP)
            • Generic parameter for controlling other settings
            • Calling, transfer, parking of calls
            • Buttons assigments including speed dial and BLF
            • LDAP integration
            • Multicast paging in the LAN
            • Background images
            • Custom ring tones

            Important limitations are the missing synchronization of DND and redirection settings with the server (as-feature-event). Also, there is no mini-browser available at this time.

            Installation

            It is strongly recommended to download the supporting files from the Avaya web page (including the firmware and language files) and drop them into the tftp folder of the PBX. The phone should then pick up the firmware automatically.
            This description is based on version R4.0.10.2.2, but Avaya may release newer versions with further improvements.
            If you are using the Avaya redirection service, please make sure that you open the phones up for provisioning, so that they can fetch the credentials for futher provisioning.
            If you can not use the Avaya redirection service, you can use secure provisioning if your PBX has a valid certificate. Again, it will be important to open up the extension for provioning after adding the MAC address to the extension and before starting the phone. For manual provisioning, you hae to make sure that the web server is enabled. Even if there is no valid certificate on the phone, use a secure HTTP connection to the phone (e.g. by telling the browser that the connection is secure). Otherwise the browser might not be able to send the login credentials to the phone. The default username is admin and password is 27238.
            After provisioning the device, the web server will be enabled. The username and password for the phone is the tenant provisioning username and password like for all other supported phone manufacturers.

            Background images

            The PBX will automatically generate reasonable images for the background of the screens. It uses the dark mode. This means that companies logo that use the white color will look best on the screen. It looks good to use a solid background color, but background patterns are also looking good on the phones.
            The logo itself will be placed at the top middle of the screen where it does not interfere with other dialogs, e.g. when searching a contact. The idle screen uses a transparent version of the logo so that it does not interfere with the time too much. The image for the secondary screen does not include the logo. Only the idle image for the secondary screen contains a full-size logo. If the customer wishes a different layout, custom images can replace the four automatically generated images. Please make sure that they are in the 320 × 240 pixel size JPEG format.

            Custom ring tones

            The PBX will automatically provision custom ring tones like with all other supported devices. You can upload your own ring tones through the PBX web interface. If you want to use the Avaya built-in ring tones instead, you can set the parameter avaya-custom-ringtones to 0. In this case, the PBX will still use the Alert-Info headers for controlling which ring melody will be played for incoming calls.

            Button assignments

            The PBX uses the line mode, the autodial mode and the BLF mode of the Avaya phones. That means that private lines, speed dial and account-based functions like BLF, park orbits or queues can be used.
            Additional modes can be provisioned with the Avaya mode, where the parameter is passed through to the provisioning file. This makes it possible to use every possible mode for the Avaya phones, albeight the configuration is lacking convenience.

            IPv6 and network settings

            The PBX is able to support IPv6, however does not interfere with the settings on the phone regarding IPv6. If the network is configured properly, IPv6 should work seamless.
            The PBX configuration template for the Avaya phone does also not st anything up regarding QoS settings or VLAN. If there is a need to configure anything from the template, the general parameter can be used for this purpose.

      Snom Phones

      httpsdocvodiacomsitesdefaultfilesinline-imagessnom111.png

      Note : For snom 300-series provisioning check if you have to open the extension for provisioning (see below, Pairing the phone with the Vodia PBX). If you want to reset a Snom 3xx series phone and provision it, please follow the link

      Note : For snom m9 provisioning, a few extra steps are required.

      Note : For snom M700 provisioning, we have a short PDF document that shows you additional steps.
      The information on this page related to version 5.0.10 or higher.

      Types of Manual Provisioning of the Snom phone

      Each method of plug and play is described below. Before doing Plug and Play though, take a look at the pre-requisite steps .

      • DHCP, option 66 : This method can be used to provision in both LAN (internal) and WAN (remote) environments as long as you can control the local DHCP server and that DHCP server supports option 66. The phone retrieves its IP address and other configuration information through dynamic host configuration protocol (DHCP). In order to use this method, you need to put in the address of the PBX, either the IP-address or the DNS-address, along with the HTTP transport scheme (for example, "http://192.168.1.2 " or "http://pbx.abc.com ").

      pnp11.png

      • LAN provisioning : If your PBX is in the LAN and your phones are in the same LAN, then the PBX is smart enough to detect the make and the model of the phone (along with other efficient details) to present the user with an option of "setting up" the Phone to provision with a few clicks.

      httpsdocvodiacomsitesdefaultfilesinline-images241.png

      1. If the "Setup" button doesn't come up (as above) that may mean one of the following:
      • PBX or the Phone is not on the same LAN as the other.
      • The MAC address that it detected is already being used by an extension under some domain.
      • Extension needs a factory reset to be fully functional at this point.
      1. If the above condition is satisfied, then the setup button appears and you can now assign that MAC address to an extension under a domain of your choice.
      2. This process handles the opening of the MAC Based provisioning, assigning the MAC address to the desired extension and actually provisioning the phone all by itself.
      • Manual setup : This method is done by accessing the phone through a web browser. You will need to configure the phone’s Settings URL setting so that the phone knows where the Vodia PBX is.
      1. The settings URL for the "Update " section of the Snom phone is: " http://pbx_domain_or_ip_address "
      2. Open the "MAC Based Provisioning" setting by selecting the extension.
      3. You can even assign the buttons to the individual phone or for the whole domain from under Domain> Advanced> Buttons
      4. Save this setting and "Reboot" the phone.

      Auto provisioning the Snom phones (Needs a Hosted License only! )

      With this PBX feature, you can easily redirect your snom phones to your Vodia PBX PBX for provisioning via the SRAPS server. It makes provisioning of Snom phones very easy. Ideally, all the user has to do is plug in his/her phone and he should be good to go. The phone should get all the settings, be registered and its buttons set, according to how they had been set up in the PBX.

      Steps:
      1.

      httpsdocvodiacomsitesdefaultfilesinline-images221.png

      Enter Username and Password for your SRAPS server here and save it.

      2. Redirecting a Phone to the SRAPS server (Auto Provisioning)

      After you have done the above step, you can redirect your snom phones. To redirect a snom phone to your Vodia PBX for provisioning, just add the MAC address of the phone (found on the phone label at the back) to the PBX:

      httpsdocvodiacomsitesdefaultfilesinline-images81.png

      • Go to your selected domain in Vodia PBX web interface.
      • Go to the extension to which you want to bind your snom phone.
      • Go to the Registration tab of the extension found at the top.
      • Enter the MAC address of your snom phone in Bind to MAC Address setting.
      • Press Save .

      This will not only bind the extension to that phone’s MAC address, it will also redirect that phone to your PBX when it requests for provisioning and will be provisioned by the PBX accordingly.

      Syncing All MACs on the System

      Generally, you won’t need this because when you add a MAC address for binding, it also automatically registers it with the snom provisioning server for redirection, according to the credentials and PBX address you have provided in the PnP Settings.

      But if there were any MAC’s present on the system before you entered the PnP Settings for the Provisioning Server, those MAC’s would not have been redirected. For that or any other reason that some mac addresses are not redirected, you can redirect all the MAC’s on the system with a single press of the Sync button. It is found on the same page where you entered the provisioning server credentials.

      Defining Which Firmware Should be Used

      There have been many enhancements starting version 58.0. One of them was to subsidize the PNP section into text only. Today if you would like to change the firmware version, you will have to switch to admin-mode then navigate to Parameters, on the Type box edit the Firmware you would like to upgrade or downgrade to. You can see the URLs that correspond to each phone, you can change the link there or change the version number for example 8.4.35 to 8.5.36
      httpsdocvodiacomsitesdefaultfilesinline-images231.png

      Manual Provisioning

      Steps :

      1. Add MAC address by clicking on the "+" button under "MAC " section under Extension's list.

      pnp51.png

      1. Enter the Manual provisioning URL as: "http://PBX_IP_OR_Domain_name"

      pnp61.png

      1. Select the Extension to open it up for MAC based Provisioning.

      pnp71.png

      1. You can even assign the buttons to the individual phone or, to the whole domain from under ```
        Domain> Advanced> Buttons.

      2. Save this setting and "Reboot" the phone.

      3. Reboot the phone.

      NOTE: Provisioning may take approximately 2-5 minutes.

      snom M-Series

      Supported models

      The following models are supported:

      • M100KLE
      • M200SC
      • M300
      • M400SC
      • M700
      • M900

      The snom M9 uses a different firmware than the other snom-M models and is not described on this page.
      We have tested the integration with version 2.10.52.5853 but it should work also with other firmware versions.

      Supported features

      The following features are supported:

      • LAN provisioning: Phone in the LAN can be provisioned through the web interface of the PBX.
      • SRAPS: The PBX will automatically create the server entry for the device on snom SRAPS when the snom SRAPS API key is present on the PBX (hosted PBX).
      • Transport layer: TCP and UDP are supported; TLS can work when the PBX has a DNS address, which is typically only the case for hosted PBX. Because of the way the TLS client works it will be difficult to get TLS working in the LAN.
      • Each device is associated with one account. Although the snom M-series DECT stations can serve as group call, this function is usually better set up on the PBX.

      There is a general parameter available that makes it possible to add custom parameters if needed, without having to change the phone template. Also the PIN code for pairing the device is available as parameter. The default is 0000.
      For the M300, M700 and M900 it may make sense to put the IPUI into the base station. For this, you can use the parameter 1 in the extension. For the SC and KLE devices, pairing is done without IPUI (see the snom manual).

      LAN Setup

      Automatic setup works with factory reset devices in the LAN. The PBX will detect the device when it boots up.Then the device can be assigned though the standard LAN provisioning (/reg_prov_phones.htm) procedures.

      Manual Setup

      If you want to set he devices up manually for provisioning, please follow the following steps:

      • Log into the web interface. The default username and password is "admin".
      • Navigate to "SERVICING" and then to "Provisioning".
      • Set the "Server URL" to "http://address /prov/snomMMMMM .htm", where the address is the IP address of the PBX and MMMMM the model name (e.g. "M300" or "M200SC").
      • Add the MAC of the phone to the extension on the PBX and make sure that the pairing of new devices in the extension is enabled (typically 30 minutes).
      • In the "Reboot" page, reboot the device. The device should reboot and fetch the configuration.
      • You can then register the handsets to the device.

        Alcatel Lucent Phones (ALE)

        httpsdocvodiacomsitesdefaultfilesinline-imagesdownload1.jpeg

        Default login of the Alcatel Lucent Enterprise Desktop Phones (out of the box logging in)

        The default login of any of the ALE (Alcatel Lucent Enterprise) Desktop Phones is:

        Username : admin ( All lower case)

        Password : 123456

        How to Hard Reset or Factory default / reset Alcatel Lucent Enterprise Desktop Phones

        Steps to hard reset or factory default any of the ALE (Alcatel Lucent Enterprise) Desktop Phones:

        1. Connect your phone to PoE switch and let it come up.
        2. Look for "Step 1 " or "Initialization " on the screen and immediately press 1,3,7,9 keys at the same time .
        3. And then Enter *46*46*253*
        4. The phone will now reboot automatically and will be factory reset.

        Manual Provisioning Alcatel Lucent Enterprise Desktop Phones

        When Manually provisioning a phone, you should first set the required settings on the PBX as shown in provisioning document Steps Before Provisioning.

        It is important to note in the document "Steps Before Provisioning", how to map the MAC address of the phone to the PBX extension under the registration tab as shown again below.

        pnpgrandstream13.png

        It is also important to note in the document "Steps Before Provisioning", under Domain>Advanced> General Settings>Provisioning Parameters as shown again below.

        pnpgrandstream24.png

        The Authentication user, Authentication password and Authentication PIN settings allow administrators to provision phones and log into a phone’s web interface remotely. These settings enable administrators to use identical usernames and passwords for all devices in a domain, simplifying the authentication process from the GUI of the phone. The password will bypass users’ passwords (the web interface passwords), so users will not be able to use their passwords; hence, this setting can be used to keep users out of the phone’s web interface and prevent them from inadvertently changing anything.

        For provisioning buttons, the setting up of buttons is described in buttons . There, you will see how to prepare a new buttons profile, how to set up the individual buttons (like BLF) and how to map that profile to a specific extension. The numbers for the buttons correspond to the buttons on the phone. If a number is not added in the profile, that button will not be set on the phone.

        Open for MAC-Based Provisioning

        For security reasons, navigate to the extension level and activate "Open account for MAC based provisioning" as shown, to allow the phone to provision to that specific account.

        pnpgrandstream33.png

        Alcatel Lucent Enterprise Desktop Phones Settings for Manual Provisioning

        Log into the web interface of the phone, and according to the model, navigate to the page where you can enter the provisioning server address. In model 8085S, the setting is called DM URL found under page "Settings" > "Network" > "DM" as shown below.

        In "DM URL " setting, add this URL: https://PBX_IP:port/prov OR http://PBX_IP where the PBXIP is the IP or resolvable domain of the pbx server.

        No need to enter the Username / Password field, as that will be populated by the PBX after successful provisioning.

        Press Save . Now you can reboot the phone for provisioning.

        httpsdocvodiacomsitesdefaultfilesinline-images181.png

        Setup Devices in LAN

        If your phone is in the same LAN as the PBX, then you don't have to do many of the above things and simply be able to provision almost any phone with a single press of a button by using this feature of the PBX.
        Make sure the phone is factory reset (or at least have the default username and password).
        You still have to do the Steps Before Provisioning but after that, just go to the PBX page Setup Devices in LAN where the PBX will show you all the phones it has automatically detected in the LAN.
        You simply choose the phones you want to provision, assign each one a domain and extension and press "Setup", and that's it. The phones will be provisioned. For details on this feature, please go to: Setup Devices in LAN.

        httpsdocvodiacomsitesdefaultfilesinline-images201.png

        Alcatel Lucent Enterprise Desktop Phones Settings for Auto Provisioning via ALE RPS server

        Please contact the ALE administrator account.eds@al-enterprise.com to create an RPS account before beginning with the following process.

        Step 1: Create ALE provisioning server.

        Provision server means this server allows the sip phone downloading config file via HTTP/HTTPS way. If your PBX integrated this service and then your PBX will be the provision server.

        Click “ Servers ” and Click “ Add ”, then enter server name and URL (must be http or https).
        Username and password are optional. They are applied for your server name authentication.

        httpsdocvodiacomsitesdefaultfilesinline-images1112.png

        Step 2: Create a Profile.

        Click “ Profiles ” and Click “ Add ”, add a new profile with a new name of your choice.

        httpsdocvodiacomsitesdefaultfilesinline-images122.png

        Step 3 : Create devices.

        Click “ Devices ” and Click “ Add ”, select profile “Vodia test” from the menu list. And then fill the DUT’s / phone's mac address, click “ Add ”. Click “ OK ” when finished.

        httpsdocvodiacomsitesdefaultfilesinline-images131.jpg

        Step 4: Manually add the MAC address of the phone.

        Add the MAC address of the phone and then click on " Add " to see it populate in the MAC list below it.
        httpsdocvodiacomsitesdefaultfilesinline-images141.png

        Step 5: Profile and Device is now set up.

        You should now see the Devices been added along with appropriate profile.
        httpsdocvodiacomsitesdefaultfilesinline-imagesdownload11.png

        Step 6: Reboot the DUT / Phones

        Just restart the DUT which will send request to RPS to get the DM URL.

        Please notice that you must remove all DM URL settings (factory reset the phones) from DUT before restarting it.

        Button Assignment after provisioning

        Users can assign the buttons to the ALE phones from Extension level or Domain level.

        1. Extension level assignment

        httpsdocvodiacomsitesdefaultfilesinline-images1113.png

        After saving the buttons settings, the buttons should come up on the phone.

        2. Domain level Assignment
        httpsdocvodiacomsitesdefaultfilesinline-images211.png

        1. Assign a name to the template and select the phone model and the set of buttons that needs to be assigned to it.
        2. Click "+" symbol to add the above and then click "Create" to make the desired template to appear as highlighted above, in the list.
        3. Go to extension and select this template to be assigned to those phones.
        4. If this is the default template then it will get assigned by default if you have "Use default model template if available" setting, set to on under Extension > Buttons tab

        Bulk / Mass deployment of ALE DUTs / Phones to the RPS server setting:

        Customers can add the devices by Range and by uploading a file for mass new devices deployment.

        Add the devices by Ranges . It will be useful for less than 50 devices to be deployed and these device Mac address are in one range.

        Step 1: Go to “ Devices ” and Click “ Add by Range ” , and then input the mac address range here, click OK to confirm.

        httpsdocvodiacomsitesdefaultfilesinline-images151.jpg

        Step 1 Alternative: Add one single file with txt format or csv/xls format.

        1. The text file should be a list of MAC address, each address in a line.

        The MAC address can be formatted as
        “ 48-7a-55-xx-xx-xx”
        “ 48:7a:55:xx:xx:xx”
        “ 48 7a 55 xx xx xx”
        “ 487a55xxxxxx”
        The address string is case insensitive

        1. The excel file should be a table with MAC address in the first column.

        httpsdocvodiacomsitesdefaultfilesinline-images163.png

        Step 2:
        Go to “ Devices ” and click on “ Upload ” and select your profile “ Vodia test ” for example. Now Click on “ Choose File ” , and then select the file to upload.

        httpsdocvodiacomsitesdefaultfilesinline-images171.jpg

        You should be able to upload mass of mac address of new devices.

        P.S: New provision server named “EDS: Easy Development System” is coming out soon. All the data user has on the RPS server, will be merged in the new system. ETA, TBD.

        Cyberdata Devices

        Supported Devices and Features

        Because of the nature of the devices, the provisioning is similar for all devices. There are no button profiles and there are no display images to be generated, which makes provisioning straightforward. The PBX detects a few devices names, such as "SIP Speaker, "SIP Paging Server", or "SIP Outdoor Horn". However the device names are not very important.
        The provisioning profiles sets the admin username and password, the SIP credentials and the timezone information. The PBX supports the multicast modes for the devices, which is very useful when there are many devices in the LAN.

        LAN Provisioning

        If the PBX and the Cyberdata devices are in the same network, the PBX will be able to automatically detect new devices as they are plugged into the network. In that case, you can follow the standard procedure for registering new devices in the LAN.

        WAN Provisioning

        If LAN provisioning is not possible, you will have to set the devices up manually. You can just set the address for the PBX as the autoprovisioning server and as filename cyberdata-xxxxxxxxxxxx.xml where xxx is the MAC address of the device. After setting the provisioning server address, you will have to start the pairing on the PBX (e.g. by adding the MAC address to the extension) and reboot the device.

        Teams Integration

        Please get a Teams user E5 license to integrate a user with the Vodia system as an extension.

        Vodia integrates with Teams by mapping the Teams users to Vodia extensions so that they become part of the PBX and behave as extensions. From there onwards anything that connects to Vodia through SIP devices, like Cyberdata, can talk to Teams users and vice versa through Vodia.

        1. The Teams integration documentation can be referenced here in detail.
        2. Also a quick video about setting up Teams integration.

        MS Teams users can do overhead paging as well. The extension to which a Cyberdata device is connected can be used either directly or through a paging account (setting up a paging account on the PBX).
        Any of the Teams users that are mapped to Vodia extension can then call it from Teams client and page etc.

        Fanvil Phones

        Automatic Provisioning of Fanvil Phones

        The PBX is able to automatically provision Fanvil desktop phones through zero-touch LAN provisioning, DHCP option 66 provisioning URL, and Fanvil RPS.

        Supported Fanvil IP Phones

        Fanvil Desktop Phones LAN Provisioning Zero Touch Encryption Buttons Provisioning
        X1S




        X1SP




        X2




        X2P




        X3S




        X3S




        X3SP




        X3G




        X3U




        X4




        X4S




        X4G




        X4U




        X5




        X5U




        X5S




        X6




        X7




        X7C




        X210




        X7C




        X210




        When provisioning a Fanvil phone, you should first set the required settings on the PBX as shown in provisioning document Steps Before Provisioning.

        Reset X-Fanvil series Phone

        To Factory reset a Fanvil phone make sure you in the main page of the phone. Press the OK button for about 10 seconds.

        httpsdocvodiacomsitesdefaultfilesinline-imagesFanvilReset2.png

        The phone will show you the Factory reset message, it will then reboot.

        httpsdocvodiacomsitesdefaultfilesinline-imagesfanvilreset11.png

        RPS Provisioning

        If you're using the Vodia multi-tenant PBX you can acquire an RPS account from Fanvil here https://fdps.fanvil.com/

        You'll need to register first, Fanvil will then provide you with a user and password , you can it apply on the Vodia PBX. Under Admin -- Phone -- Settings --Fanvil

        Once you have entered your credentials on the Vodia PBX save the configuration.

        httpsdocvodiacomsitesdefaultfilesinline-imagesRps1.png

        The older phone models (for e.g X4 etc.) need the as "Configuration File Name " as "prov/fanvil.txt " (will be found inside RPS --> Group --> Edit button --> Phone Flash section). The old models also may need multiple factory resets at each periodic interval during provisioning (Heads-up if you don't see the phone doing anything).

        The newer phone models (for e.g. X4U etc.) need the as "Configuration File Name " as "prov/fanvil-sysconf.xml " (will be found inside RPS --> Group --> Edit button --> Phone Flash section)

        In order for Fanvil's RPS to work, you will need to add the phones MAC address to the extensions. Vodia will then automatically register the device into your Fanvil RPS account.

        httpsdocvodiacomsitesdefaultfilesinline-imagesmac1.png

        In order for the PBX to securely provisioning the phone, you will need to open the MAC-based provisioning.
        Navigate to your Domain ---> All Account ---> Extensions

        Click on the extension box and under "Please select an action" choose Open account for MAC-based provisioning. This will set a time of 10-20 mins for that phone to provision to the PBX.

        httpsdocvodiacomsitesdefaultfilesinline-imagesmamac1.png

        Reboot the Fanvil X device. The phone will contact Fanvils RPS, and send the phone to the Vodia PBX to get its the config file.

        You should see the phone register.

        httpsdocvodiacomsitesdefaultfilesinline-imagesFB-Timeline-Cover-031.png

        Adding Buttons

        To add Buttons to your phone, navigate to your Extension ---> Buttons. Vodia can detect any Fanvil model and button scheme. To add buttons to your phone, choose a type and parameter , once your done save,

        Reboot the phone once, so it can fetch its new button config. For more information on Button check our buttons setup.

        httpsdocvodiacomsitesdefaultfilesinline-imagesfanvilbuttons1.png

        Setup Devices In LAN

        If your phone is in the same LAN as the PBX, you can provision the Fanvil devices by visiting the (Phones in the LAN) under the Administrator level (Phones→LAN Devices ).

        Make sure the phone is factory reset (or at least has the default username and password). By default Vodia is listening on port 20 for device info, make sure it's not blocked. For more info on LAN provisioning visit LANP .

        httpsdocvodiacomsitesdefaultfilesinline-imagesfanvilsetup1.png

        Make sure Steps Before Provisioning is completed before LAN provision. Continue and choose your Fanvil phone you want to provision and click on the setup button to assign the phone to one of your extensions.

        httpsdocvodiacomsitesdefaultfilesinline-imagesfanvilsetup21.png

        Manual Setup of Provisioning Server

        If you need to set the provisioning server manually for the device, you should use the path /prov/fanvil-sysconf.xml. For older models that do not properly support the XML provisioning and need ASCII-based provisioning please use the path /prov/fanvil.txt. You need to manually select the HTTP protocol. For the older models, it is also recommended to use the latest firmware in order to avoid problems with the provisioning.

        Mitel Phones

        Supported models

        The following models are supported:

        • 6863i
        • 6865i
        • 6867i
        • 6869i
        • 6873i

        Mitel phone provisioning requires version 65.0.3 or higher. We were using the Mitel firmware version 5.0.0.1018 for the integration, but it is expected that other firmware versions also work.

        Supported features

        The following features are supported:

        • LAN provisioning: Phone in the LAN can be provisioned through the web interface of the PBX.
        • Buttons: The PBX can provision the buttons of the phones. BLF modes, speed dial, local setup and private lines are supported.
        • Transport layer: TCP and UDP are supported; TLS seems to requires the provisioning of the certificate and private key, which the PBX currently does not support. However if the installer wants to do these steps, TLS should also be possible.
        • Localization: Most of the time zones should be working fine. The PBX provisions the local language to the phone.
        • Basic features: Basic features like making calls, message waiting indication are working fine.
        • Background images: The PBX provisions the background image for the idle screen and screen saver (separate images).
        • The button layout of the lower keys is programmed for the idle screen.
        • Provisioning is done through HTTPS. The certificate validation is turned off for LAN provisioning—in most cases this will be the only way because there is no public signed certificate available in such cases.

        We were not able to provision the ring tones into the device, though this should be possible according to the documentation. This might be fixed in another version. However the default ring tones should be acceptable in most environments.

        There is a general parameter available that makes it possible to add custom parameters if needed, without having to change the phone template.

        The PBX will provision the admin PIN (not the admin password) into the phone. This is because the phone accepts only numeric parameters as password. The user account is also available with the user PIN.

        The buttons for the phone are located on the left of the phone. There are 20 buttons available (same for each model). If there are more buttons programmed that physically available, the phone will show a page mode button at the bottom that can be used to switch between the available buttons.

        Automatic Setup

        Automatic setup works with factory reset phones in the LAN. The PBX will detect the devices when they boot up and test if the web server is available. If that is the case the PBX will offer provisioning the device.

        Manual Setup

        If you want to set he devices up manually for provisioning, please follow the following steps:

        • Log into the web interface. The default username is admin and the default password is 22222.
        • In the network settings, turn off the certificate validation ("Validate Certificates").
        • Then in the Configuration Server Settings set the Download Protocol to HTTPS, HTTPS Server and Port to the address of the PBX and the HTTPS Path to "prov".
        • Add the MAC of the phone to the extension on the PBX and make sure that the pairing of new devices in the extension is enabled (typically 30 minutes).
        • In the Reset page, reboot the phone. The phone should reboot and fetch the configuration.
        • You can then set the buttons on the phone.

        This will work also for phones that need to be provisioned to a cloud PBX.

        Panasonic Phones

        Supported models

        The following models are supported:

        • KX-UT113
        • KX-UT123
        • KX-UT133
        • KX-UT136
        • KX-UT248
        • KX-UT670
        • KX-UTG200B
        • KX-UTG300B

        Panasonic phone provisioning requires version 63.1 or higher.

        Supported features

        The following features are supported:

        • LAN provisioning: Phone in the LAN can be provisioned through the web interface of the PBX. However because by default the phones don't have their web server enabled, this requires a manual enabling of the web server. Re-provisioning the phones from the PBX works.
        • Buttons: The PBX can provision the buttons of the phones. BLF modes and speed dial is supported, other modes are not available.
        • Transport layer: TCP and UDP are supported; TLS requires the provisioning of the certificate which is not done automatically but possible.
        • Localization: Most of the time zones should be working fine. Currently only English language is provisioned on the phone, but of course the IVR can be any language.
        • Basic features: Basic features like making calls, message waiting indication are working fine.

        Manual Setup

        If you want to set he devices up manually for provisioning, please follow the following steps:

        • Make sure that you can log into the web server of the device. This must be done through the phone user interface (keyboard). Then go into the web interface.
        • Set the provisioning file to https://ip-pbx /prov/model .cfg, where model can be KX-UTG200B, KX-UTG300B, KX-UT123, KX-UT133, KX-UT136, KX-UT1363, KX-UT248 or KX-UT670.
        • Make sure that the device does not verify the certificate of the PBX (unless it is something that the phone would accept).
        • Add the MAC to the extension and make sure that the pairing of new devices in the extension is enabled.

          Vtech Phones (Hotel Phones)

          Provisioning Hotel Phones

          This document is for the vtech hotel phone model (Tested on version 66.0.4): CTM-S2211, A1100, A1210, A1311, A2100, A2110, CTM-S2411, CTM-S241P

          Connect the phone to the LAN via PoE LAN cable

        • Open the back of the phone, and find the "LAN" ethernet port.
        • Plugin a PoE (Power on ethernet) cable into the slot as shown here
        • The phone should take less than 2 minutes to come up, once it does the "In use" light should be solid red (at this point).

        The default password for logging into these phone should be Username: root Password: admin_123

        Steps to get the phones provisioned (from Unboxing them to, up and running in the room)

        1. Prerequisites that are needed for making these phones provision with the Vodia PBX are mentioned here .
        2. Once the phones are provisioned, now you can start assigning buttons to them. For that you can just create a template under Domain> Advanced> Buttonsas shown below.

        httpsdocvodiacomsitesdefaultfilesinline-images1201.png
        3. Now go ahead and assign the buttons to this template as shown below (for the phones that have buttons ).httpsdocvodiacomsitesdefaultfilesinline-images1261.png
        4. Go to Extensions> Buttons. If this is the selected (shown as a "***** " next to the template) button template (if you have multiple templates for the same phone model), then it will automatically assign it to the phone and will populate as shown (without you having to selecting it manually from the drop down option of "Use Template").httpsdocvodiacomsitesdefaultfilesinline-images1231.png
        5. Dial plan for calling out: Navigate to Domain> Trunks> Dial Plans.

        • Room to room call : Just dial the extension number (3 or 4 digit according to your dial plan scheme you selected earlier) to reach other extensions

        • Local or Long distance Calls: Just dial the 10 digit number (with or without the country code) to reach it for e.g 617-446-1399.

        • Emergency Number: Just dial 0 and it should connect you to 911. Multiple other prefixes can be set if the emergency number is different from 911. Your dial plan should look like thishttpsdocvodiacomsitesdefaultfilesinline-images1251.png

          M9 Handset Registration

          Registering the snom m9 Handsets

          Start Up and Handset Registration

          • Bootup the snom m9 Base Station
          • Wait until the "Call" LED starts blinking slowly
          • Power Up the snom m9 Handset and Login with default DECT PIN 0000 as shown below

          httpsdocvodiacomsitesdefaultfilesinline-imagesm9handsetregistration11.png

          Handset Assignment

          • Press thebutton on your Handset to bring up the System Info
          • Press the Down cursor to scroll to --Handset-- screen as shown here.
          • Select the matching Handset IPUI from the list under Identity->Handsets
          • Configure any additional handsets in a similar way
          • Note: For using the same SIP account on multiple handsets, disable active Handset IPUIs for other accounts under Identity->Handsets
          • Note: The Handset IPUI is also written on the label inside the battery compartment

          httpsdocvodiacomsitesdefaultfilesinline-imagesm9handsetregistration21.png

          ActiveSync

          ActiveSync Contacts and Calendar with Microsoft Exchange Server

          With this PBX feature you can synchronize contacts and calendar with your exchange server.

          Syncing Contacts

          1. To sync contacts, you just have to provide your exchange server email address and password then save it.
          2. Then you can sync contacts with the Sync button or with a timer that syncs your contacts periodically according to the minutes you have provided in the settings.

          Setup ActiveSync

          1. Login into your User Portal (or Windows / Mac / Linux apps) > Settings > Click on ellipsis (button with three identical dots stacked vertically on top of each other) > Select ActiveSync
            httpsdocvodiacomsitesdefaultfilesinline-images1121.png
          • Go to the Activesync Settings page.
          • Enter your Username which is your email address (E.g. John.Connor@outlook.com or Sarah@hotmail.com)
          • Enter your Password which is your email password and repeat it.
          • You can leave the Exchange Address setting blank (recommended) to let the system discover it automatically.
          • If the auto discovery fails, you will have to enter the exchange server (E.g. https://outlook.office365.com or https://hotmail.office365.com ). But it is recommended that this field is left empty since the username will have the exchange server address.
          • If you want to sync only the contacts and not the calendar, then keep the Also Sync Calendar setting to Off (explained in the next section).
          • Select the number of minutes that you want the system to repeat sync in the Re-sync timer setting.
          • If you don’t want to repeat sync, select Off .
          • Press Save.
          • Press Sync (for one time sync as well as for the repeat synching to start, if that setting is NOT set to "Off".)

          NOTE: Now your contacts will be synced. If the re-sync timer is not set to "Off", the sync will be done repeatedly after every set number of minutes.

          Synced contacts

          The synched contacts are available on Activesync Contacts page. They are also included in the LDAP and will be delivered to your device, like a VoIP phone, through LDAP. So if your VoIP device is set for LDAP, you will be able to access and dial your contacts synced from your exchange server (including contacts on other devices that have synced up to the exchange like your mobile device). In other words, you will pretty much have access to all your contacts automatically on your device through the PBX.

          Syncing Calendar to Setup Conference Calls

          Why Sync calendar with the Exchange Server?

          Well, with this cool feature, you can setup and schedule conference calls on the PBX, by setting up a meeting on an Exchange Server without configuring the PBX. The PBX will periodically Sync the calendar from the server and if it is a conference call it will schedule one.

          You will need to enable the Activesync Settings in your user account as shown above in the first section, with your email address and password.

          Calendar related settings on that page are:

          • Make sure Also Sync Calendar setting on the page is set to on.
          • In the Room setting, select the conference room in which the conference call will be set up.
          • The Re-sync timer in minutes setting is the same as it is for contacts.
          • PressSave.
          • PressSync.

          NOTE: if the Also Sync Calendar setting is set to off, then only contacts will be synchronized and the calendar entries will not be synced with the Exchange Server, in case you are only interested in the contacts.

          How to Setup a Conference Call

          Before setting up a conference call, make sure the settings explained above, like username, password, calendar related settings etc. are set up correctly. Also, not all meetings setup on the exchange server will be setup as conference calls because all of them are not conference calls. Nor may one want all conference calls to be scheduled by the PBX.

          • The PBX will only schedule a conference call where the location of the conference has been explicitly set to be PBX in the exchange server when the conference is scheduled.
          • In that case, when the PBX syncs the calendar, if it finds an entry where the location is set to PBX , it will schedule a conference in the conference room given in the settings.
          • It is important to note that it will take the PBX the number of minutes the next sync is scheduled before it updates and schedules the conference.
          • It is important that the organizer of the conference call has the exchange server email address – from which he/she is setting up the meeting – set on his/her PBX account. Otherwise he/she will not be able to setup the conference call on the PBX from the exchange server.
          • It is important that the invitee of the meeting (conference call) on the exchange server has his/her exchange email – on which he/she is being invited – set on his/her PBX account. Otherwise he/she will not be added to the conference scheduled on the PBX, even though the conference will be scheduled and everyone whose relevant email is set on their account will be added.

          Note:If not already done so, the user can setup his/her email address on the PBX by logging in to the PBX as a user and setting it up on the Email Notifications page.

          Automatic Call Initiation

          With this feature, the Vodia PBX will call all the participants (extensions) of the conference call at the conference start time.

          To setup automatic call initiation:

          • A conference call will have to be set up through the exchange server as shown above.
          • When setting up the meeting through the exchange server, add the word AUTOCALL after PBX in the location field separated by a space (so the location field should read PBX AUTOCALL ). When the PBX syncs the calendar, it will schedule a conference call. Also, it will automatically call all the participants (extensions) that were added in the conference at the starting time of the conference call.

          How to Cancel a Conference Call

          When a meeting (conference call) is canceled on the exchange server and when the PBX syncs the calendar next time, it will cancel and remove the conference call, if one had been scheduled.

          Google Contacts

          With google contacts, you can sync your google contacts through OAuth2 with the Vodia PBX, using the Google People API. With OAuth2 your password information need not be stored on the system. Instead, a separate window pops up to verify your credentials and provide an auth code, which you use to sync the contacts automatically every 10 minutes. You can stop it by pressing the button to log out form the account and stop syncing. It will also stop if the PBX is stopped. On restart of the PBX you will have to verify your credentials again for the periodic syncing of the contacts.

          Obtain Client ID and Client Secret

          Before the users of a domain can use the google contacts, you have to obtain the client id and client secret for that domain and enter it in the PBX domain settings.

          • Sign in to the google account which you want to use for getting the id and secret .

          • Then go to: https://console.developers.google.com

          • You have to create a new project if you don't see the following option already.

          • After the Project has been created (or if it already exists) click on "ENABLE APIS AND SERVICES" as shown:
            httpsdocvodiacomsitesdefaultfilesinline-imagesgooglecontacts11.png

          • Search for "People Api" as shown, and click on Google People API:
            httpsdocvodiacomsitesdefaultfilesinline-images1101.png

          • Enable this API as shown:
            httpsdocvodiacomsitesdefaultfilesinline-imagesgooglecontacts301.png

          • Now that the Google People API has been enabled, you can create your credentials and obtain the client id and secret

          • For that, go back to: https://console.developers.google.com

          • Under "Credentials", go to the OAuth consent screen as shown:
            httpsdocvodiacomsitesdefaultfilesinline-imagesgooglecontacts41.png

          • This is the consent information that the user will be presented for giving access to his contacts

          • The details here are only for testing, you should enter your own company and domain information here, then save.

          • Finally, go to the Credentials tab under "Credentials" and click on "Create credentials" as shown:
            httpsdocvodiacomsitesdefaultfilesinline-images31.png

          • Choose "OAuth client ID", a new screen will appear as below:
            1.png

          • Choose Web application, and give it a name by which you can identify these credentials

          • Enter the "Authorized JavaScript origins" as the domain of the PBX (the domain with which you can reach the PBX domain in the browser). We've entered "localhost" of our test bed, here.

          • Enter the "Authorized redirect URIs" as the domain of the PBX as above with "/google_token.htm" appended to the above URI.

          • This is very important that the URI is reachable to your PBX domain as that is where it will be redirected after user consent

          • For example: If the domain is https://example.com, then you will have to enter here "https://example.com/google_token.htm"


          Now navigate to "OAuth Consent Screen"

          • Select the user type depending on whether you need local organization's contacts or external. We've selected "Internal" and then hit Create:
            34.png

          Address the 3 step App registration process

          Step 1: OAuth Consent Screen
          33.png

          Step 2: Scopes
          It allows you to set the scope of your API which you can keep pretty standard.

          Step 3: Summary
          Conclusion of your settings can be seen and edited on this step. And then hit Create.

          • After you hit "Create", new credentials (Client ID and Key will pop up on your screen) will be created in the project you selected. If it's the first time a new project will be created for you and the credentials will be created there.

          • Copy the client ID and client secret in the PBX domain settings in the "Google contacts client ID" and "Google contacts client secret" fields respectively, as shown:
            1.png

          • And hit "Save".

          • Now the users (extensions) in this domain can get access to their Google Contacts by providing consent using their own google account and password through OAuth authentications, explained below.

          How to Sync Contacts

          Before google contacts can be synced, the user has to give consent by using his own google account and password.

          • Go to your user portal settings as shown below (User Portal > Settings > "Ellipsis" button > Google):
            httpsdocvodiacomsitesdefaultfilesinline-imagesgooglecontacts81.png

          • Press "Get Auth Code".

          • A new window will pop up asking you to sign in with your google account if you are not signed in already in another tab.

          • Sign in with your google account and password.

          • A new screen will appear asking you for consent as below:
            httpsdocvodiacomsitesdefaultfilesinline-imagesgooglecontacts91.png

          • Press "Allow" to give your domain consent to sync your contacts.

          • The information here for testing purposes, but here you will see what was set in the consent screen above during credentials creation.

          • The Google Contacts will be synced which you can see in your user portal contacts.

          • It may take some time to sync, so give it some time. This process needs to be done only once. After that, the system will re-sync the contacts every 10 minutes automatically.

          • These contacts will also appear on your phone through LDAP.

          • To logout from the account, press the button.

            Hubspot Integrationhe integration between the Vodia PBX and Hubspot adds records to contacts after a call was made. If the contact was not found, the PBX can create a new contact.

            It is important that telephone numbers in Hubspot are stored in the format that the PBX uses. For US numbers this format is a 10-digit format (for example, 6173998147). This is because telephone numbers need to match exactly in Hubspot.
            httpsdocvodiacomsitesdefaultfilesinline-imageshutspot101.png

            Setup

            In order to connect the PBX with HubSpot, you will need the HubSpot API key. You find this key in the HubSpot Settings under Integrations. The key is in the format ----. Copy the key into the web interface of the PBX and select which calls you want to be reported into HubSpot.
            httpsdocvodiacomsitesdefaultfilesinline-imageshubspot21.png
            For creating contacts, the following options are available:

          • None: The system will not create new contacts. If the contact does not exist, no log can be created.
          • For all calls: The system will a create a new contact if it can not be found. This will make sure that every call gets logged.
          • Only for inbound calls: The system will log only inbound calls and create contacts when necessary.
          • Only for outbound calls: The system will log only outbound calls and create contacts when necessary.

          Only for outbound calls:Hubspot has several kind of calls. The PBX will attempt to sign a matching call type for each call. There is no support for inbound or outbound call indication in HubSpot; the PBX will generate a text that indicates the direction of the call.

          Integrating TEAMS Office 365 with Vodia PBX

          You can use the “Direct Routing” feature of Office 365 (TEAMS) to integrate with the Vodia PBX, explained on Microsoft® site here:

          https://docs.microsoft.com/en-US/microsoftteams/direct-routing-configure

          Especially “Plan Direct Routing” and “Configure Direct Routing”. This document presents it in a single step by step process to present it in a simplified way for integrating with the Vodia PBX, including the steps required on the Vodia PBX side.

          Pre-Requisites

          1. You need a Microsoft TEAMS (Office 365) account with adomain in Office 365 with FQDN (fully qualified domain name) that you own.
          2. One or more users in Office 365 that supports direct routing. Not all users in the domain need to have that license. Those licenses typically require a E3 (and an extra license for the direct routing) or E5 license.
          3. Make sure "Prevent toll bypass and send calls through the PSTN" setting in the calling policy of the user is set to Off. That will allow direct routing, especially if you are also using the MS phone system as well. It is found in Microsoft Teams admin center under the left side menu item "Voice" -> "Calling policies". Then choose the calling policy the user is using and make sure this setting is turned "Off".
          4. Vodia PBX software with TEAMS integration (introduced in version 64.1). For this you will need either the hosted PBX edition or a collaboration license from Vodia.
          5. A domain (which is FQDN) in Vodia PBX with a valid certificate. The certificate can be a certificate signed by one of the Microsoft-approved Root CA, but certificates obtained by the PBX through LetsEnrypt also seem to work fine.
          6. The setup is a lot easier if the PBX runs on a public IP address. It is also possible to run the setup on a private address, but this requires a proper setup of the firewall and additional steps on the PBX to make access from the Microsoft servers possible to the PBX.

          Vodia PBX setup for integration with TEAMS Office 365

          In order for Vodia PBX to send calls to TEAMS users, you have to:

          1. Create a domain in Vodia PBX with an FQDN
          2. Create the Teams extensions in that domain
          3. Create a Teams trunk in that domain
          4. Create a general trunk in that domain for the trunk calls and set it accordingly

          1. Create a domain in Vodia PBX

          Go to the domain list. Press “Create” to add a new domain. Give it a name that is an FQDN that:

          • Resolves to the Vodia PBX. That means that the Microsoft servers must be able to resolve that name to the address of the PBX.

          • The domain part of which is the same as the domain you create in the Office 365 account (explained in the TEAMS Office 365 part of this document).

          • Has a valid certificate.

          Since in this example we will be creating a domain by the name of “company.com” in TEAMS done below, we can use the FQDN “pbx.company.com” for the domain name to be created in Vodia PBX (the domain part of which, i.e. “company.com”, is the same as the domain name created in TEAMS). This FQDN “pbx.company.com” should reach the Vodia PBX and will be used by TEAMS to connect to Vodia PBX, explained in TEAMS section below. It must also have a valid certificate, which can be added through the certificates section. Or if the “Let’s encrypt” setting on Vodia PBX is on, then it will be created for you automatically.

          A new domain “pbx.company.com” will appear in the Vodia PBX domain list.

          2. Create the Teams extensions in that domain

          • Go to the domain pbx.company.com that you created in step 1, by clicking on it

          • Go to “Extensions” under “Accounts”

          • Press “Add”

          • Enter the extension number. It must be the same as the telephone number you will give to the corresponding Teams user in Office 365 (explained in Office 365 section). That’s how the PBX will map this extension to the Teams Office 365 user. Press “Create” to create the extension.

          • The extension will appear in the list. Click on it to enter for settings. Under the “General” tab, change the setting “Extension feature set” to “Teams”, and save.

          • Similarly, make all the extensions, giving them the extension numbers to be mapped to the Teams Office 365 users with the same numbers. You can also use the bulk action for multiple extensions for the extension feature set (euse) and set it to "teams".

          3. Create a Teams trunk in that domain

          • Go to the domain pbx.company.com that you created in step 1, by clicking on it

          • Go to “SIP Trunks” under Trunks

          • Add a trunk by pressing the “Add” button

          • Select the provider as “Teams”

          • For “User name”, give a friendly name, say “Teams”

          • Press “Create”

          • The new “Teams” trunk will appear in the list.

          • Click on it for setup. Set the setting "Country code" to your country code.

          Once you have also set up TEAMS, as explained in TEAMS section below, you should be able to make and receive calls to/from TEAMS users on this trunk. In this example, we will use the default setup (i.e. without changing anything, except the country code, on this trunk). The users (with their extension numbers) on TEAMS will act as the PBX extensions as they are mapped to the PBX extensions.

          4. Create a general trunk for the trunk calls and set it up accordingly

          Create a general trunk for trunk calls the same way as in step 3, except choose your SIP trunk of choice (and NOT Teams), and give it another name for the general calls. It will be used for your outgoing and incoming trunk calls, as they are normally used.

          This new trunk will appear in the list. Click on it to enter. Then set it up accordingly like any trunk on the PBX.

          For example, you can set it for all incoming calls going to a specific account like “Auto Attendant” or “ACD” from where they can be distributed to different extensions including the mapped Teams users etc.

          Also like any trunk, the “Dial plan” is used for using this trunk for outbound calls. The trunk will follow the rules for presenting the caller-ID (ANI) like with all other outbound calls. If you want to present a specific caller-ID, you can use the rule from-teams (starting in version 65.0.5).

          TEAMS Office 365 setup for integration with Vodia PBX

          1. Login to your TEAMS Office 365 account and create your domain there with FQDN that you own (e.g. company.com).
          2. Then create users under that domain and assign them E3, E5 or relevant license that supports “Direct Routing”.
          3. Use PowerShell to connect to your Office 365 account, using your login and password.
          4. Using PowerShell, create a PSTN gateway that will connect to the Vodia PBX using the FQDN of the domain you create in Vodia PBX with a valid certificate.
          5. Using PowerShell, enable the user for direct routing service by configuring the phone number and enabling enterprise voice and voicemail for the user. The user should be able to receive calls from the Vodia PBX now.
          6. Using PowerShell, configure voice routing for outgoing calls to the Vodia PBX.

          1. Create your domain in your Office 365 tenant

          Use your browser (if not using premises installation), login to your Office 365 admin account and create your domain. In “Microsoft 365 admin center”, go to “Setup”, then press the “View” button for the “Get your custom domain set up”, then the “Manage” button. Add a domain there. Choose a domain name (e.g. company.com) that you own. Since it will be verified by Microsoft for example by having you paste a value in the TXT value field of your DNS or signing in to the account where you got the domain etc. it is important that you own the domain and can perform the verification process. Once that is done, the domain will be created and you can add users to it.

          2. Create users in that domain

          Now you can create users under the domain you just created in step 1 above. Again, in “Microsoft 365 admin center”, go “Active users” under “Users” and “Add a user”. Give the first and last name of the user (say “John Smith”) and under username give a unique name that will be his/her email, but make sure to choose the domain you created above for the domain part of the username (company.com in this example) and not the default company.onmicrosoft.com or any other *.onmicrosoft.com. That way the user will reside in the domain you just created in step 1 above (in this example say: js@company.com).

          3. Use PowerShell to Connect to your Office 365 account

          It has been explained on Microsoft site here:

          https://docs.microsoft.com/en-us/office365/enterprise/powershell/manage-skype-for-business-online-with-office-365-powershell

          Just the portion “Connect using a Skype for Business Online administrator account name and password” should be enough unless you want to do more.

          4. Create a PSTN gateway that will connect to the Vodia PBX (Alternative way for this step through Teams UI instead of PowerShell is given below)

          Before you use PowerShell, make sure it is the right one and connected to the right account as you did in step 3 above. To confirm that step 3 was done correctly use the command:
          Get-Command *onlinePSTNGateway*

          Your command will return the four functions shown here that will let you manage the SBC.

          CommandTypeNameVersionSource
          FunctionGet-CsOnlinePSTNGateway1.0tmp_v5fiu1no.wxt
          FunctionNew-CsOnlinePSTNGateway1.0tmp_v5fiu1no.wxt
          FunctionRemove-CsOnlinePSTNGateway1.0tmp_v5fiu1no.wxt
          FunctionSet-CsOnlinePSTNGateway1.0tmp_v5fiu1no.wxt

          Using PowerShell, create a PSTN gateway that will connect to the Vodia PBX using the FQDN of the domain you create in Vodia PBX with a valid certificate. The domain portion of this FQDN must match the domain registered in your tenant as in step 1 above (e.g. it can be: pbx.company.com, since the domain you created was company.com). It is also important that there is an Office 365 user in that domain (as you did in step 2 above, a user in company.com) and an assigned E3 or E5 license. If not, you will receive an error: Can not use the “pbx.company.com” domain as it is not configured for this tenant.

          This FQDN (say pbx.company.com) must resolve to a reachable IP of the Vodia PBX. Also, this FQDN (pbx.company.com in this example) must be a domain in Vodia PBX. Creating a domain in Vodia PBX is explained in the Vodia PBX section and you must make sure that a DNS A record is made for that domain (e.g. pbx.company.com) that will reach the Vodia PBX. Also, a valid certificate must be added in the Vodia PBX for this domain. Fortunately, it is very easy to get a valid certificate, if the “Let’s Encrypt” setting is on. All you have to do is create the domain and a Let’s Encrypt certificate will be added for it automatically.

          PowerShell command example to create the PSTN gateway:

          New-CsOnlinePSTNGateway -Identity pbx.company.com -Enabled $true -SipSignalingPort 5061 -MaxConcurrentSessions 100

          Of course, use your own domain.
          Returns:

          Identity              : pbx.company.com
          Fqdn                  : pbx.company.com 
          SipSignallingPort     : 5061 
          FailoverTimeSeconds   : 10 
          ForwardCallHistory    : False 
          ForwardPai            : False 
          SendSipOptions        : True 
          MaxConcurrentSessions : 100 
          Enabled               : True 
          
          Text

          You can check this gateway parameters at any time with:

          Get-CsOnlinePSTNGateway -Identity pbx.company.com

          Returns:

          Identity              : pbx.company.com  
          Fqdn                  : pbx.company.com 
          SipSignallingPort     : 5061
          CodecPriority         : SILKWB,SILKNB,PCMU,PCMA 
          ExcludedCodecs        :  
          FailoverTimeSeconds   : 10 
          ForwardCallHistory    : False 
          ForwardPai            : False 
          SendSipOptions        : True 
          MaxConcurrentSessions : 100 
          Enabled               : True
          
          Text

          5. Enable the user for direct routing service

          Direct Routing requires the user to be homed on Skype for Business Online. You can check this by looking at the RegistrarPool parameter. It needs to have a value in the infra.lync.com domain.

          PowerShell command:

          Get-CsOnlineUser -Identity "<User name>" | fl RegistrarPool

          For our example:

          Get-CsOnlineUser -Identity "John Smith" | fl RegistrarPool

          Using PowerShell, enable the user for direct routing service by configuring the phone number and enabling enterprise voice and voicemail for the user.

          Set-CsUser -Identity "<User name>" -EnterpriseVoiceEnabled $true -HostedVoiceMail $true -OnPremLineURI tel:<E.164 phone number>

          For our example:

          Set-CsUser -Identity "John Smith" -OnPremLineURI tel:4002 -EnterpriseVoiceEnabled $true -HostedVoiceMail $true

          OR

          Set-CsUser -Identity "js@company.com" -OnPremLineURI tel:4002 -EnterpriseVoiceEnabled $true -HostedVoiceMail $true

          Notice, the number is a 4 digit number for our example. This number acts as an extension number for this Teams user because it is mapped to the same exact extension number (4002) that was created in the Vodia PBX domain, explained in Vodia PBX section above. It can call and be called as an extension between TEAMS and Vodia PBX. PSTN or SIP trunk inbound and outbound calls can be handled by the Vodia PBX regular trunk just like any PBX and users on TEAMS can act as extensions of the PBX.

          The user should be able to receive calls from the Vodia PBX now, either from extensions on Vodia PBX itself or from PSTN and SIP trunks (setup within Vodia PBX), as the case may be.

          6. Configure voice routing for outgoing calls to the Vodia PBX (Alternative way for this step through Teams UI instead of PowerShell is given below)

          Now you can configure the rules as to when to use the PSTN gateway setup in step 4 above to route the call to Vodia PBX.

          As explained in the Microsoft document, Microsoft Phone System has a routing mechanism that allows a call to be sent to a specific SBC based on:

          • Called number pattern

          • Called number pattern + Specific User who makes the call

          Call routing involves:

          • Online PSTN Gateway: It connects to the SBC or PBX (in this case, Vodia PBX). It also stores the configuration that is applied when a call is placed via the SBC, such as forward P-Asserted-Identity (PAI) or Preferred Codecs. It is used by Voice Routes.

          • Voice Route: It uses Online PSTN Gateways to use for calls where calling number matches the pattern.

          • PSTN Usage: It uses Voice Routes and other PSTN Usages. Different Voice Routing Policies can use it.

          • Voice Routing Policy: It uses PSTN Usages. It can be assigned to a user or to multiple users.

          In summary:

          User -> Voice routing policy -> PSTN usage -> Voice route -> PSTN gateway

          In our example, since we use the user as a PBX extension of Vodia, we want the call to first go there and use the dial plans in Vodia PBX for routing calls. There can be other scenarios easily implemented as well. For this simple one, let’s create:

          John Smith (User)-> Policy1 (Voice policy) -> Usage1 (PSTN usage) -> pbx.company.com (PSTN gateway)

          Let’s create the usage first as it is going to be used in the route:

          Set-CsOnlinePstnUsage -Identity Global -Usage @{Add="Usage1"}

          To find out available usages, use:

          Get-CSOnlinePSTNUsage

          Let’s create the route using the Vodia PSTN gateway and the above usage:

          New-CsOnlineVoiceRoute -Identity "Route1" -NumberPattern "^\+(\d{4})|^(\d{4})" -OnlinePstnGatewayList pbx.company.com -Priority 1 -OnlinePstnUsages "Usage1"

          As you can see the command creates a route “Route1” where TEAMS will pass the call to PSTN gateway pbx.company.com (a domain in Vodia PBX) if the dialed number has at least 4 numbers (that is of course based on our example here where we want to give each user a 4 digit extension, but it is up to your setup), with or without a + sign. That way, you could dial a 4 digit extension or an E.164 number with country code and + sign.

          Of course, multiple routes can be created with different priorities.

          To find out different routes, use:

          Get-CsOnlineVoiceRoute

          Let’s create a voice policy using the same usage to which our PSTN gateway is linked above:

          New-CsOnlineVoiceRoutingPolicy "Policy1" -OnlinePstnUsages "Usage1"

          The result for the example:

          Identity         : Tag:Policy1
          OnlinePstnUsages : {Usage1}
          Description      :
          RouteType        : BYOT
          
          Text

          You can, of course, create a policy with several PSTN Usages, but we will keep it simple and to the point regarding our example.

          Let’s grant our user John Smith our voice policy:

          Grant-CsOnlineVoiceRoutingPolicy -Identity "js@company.com" -PolicyName "Policy1"

          You can check the policy assignment with this command:

          Get-CsOnlineUser "js@company.com" | select OnlineVoiceRoutingPolicy

          Now the outbound dialing policy and routing is complete and John Smith can call out. In this example, that outbound call will end up in your Vodia PBX domain pbx.company.com.

          In our example, we could set up your domain in Vodia PBX (explained in Vodia PBX section) so that:

          • If that extension (4 digits in this case) exists in your Vodia PBX domain and registered, it will be called from your Office 365 user whether its a SIP desktop phone registered to your Vodia domain, Vodia desktop app, Vodia web app or Vodia smartphone app.

          • If that extension does not exist (say an E.164 10 digit number etc.), then Vodia will route the call to a PSTN gateway or SIP trunk so that call can go out.

          The setup is complete. Below we give an alternative way to do the above steps 4 and 6 through the MS Teams UI (available now) instead of through PowerShell as done above.

          (Alternative way for step 4 above) Create a PSTN gateway that will connect to the Vodia PBX using MS Teams UI (instead of PowerShell)

          The step 4 above used for creating a PSTN gateway can now also be done with the MS UI instead of using the PowerShell.

          • Login to MS Office365 as admin
          • Click on "Admin" to enter Microsoft 365 admin center
          • In the left menu panel, click on "Show all" so that you can see Teams option
          • Click on "Teams" to enter Microsoft Teams admin center
          • In the left menu panel, expand the "Voice" option
          • Then click on "Direct Routing"
          • Under the SBCs tab, click "Add" to add a new SBC (PSTN gateway)
          • A form will open
          • Simply add the FQDN for the SBC (that is the FQDN of the domain that had been added in the Vodia PBX, in our example, pbx.company.com)
          • Set the "SIP signaling port" to 5061
          • Press "Save"
          • The new SBC (PSTN Gateway) will appear in the list of SBCs

          (Alternative way for step 6 above) Configure voice routing for outgoing calls to the Vodia PBX using MS Teams UI (instead of PowerShell)

          The step 6 above used for configuring voice routing can now also be done with the MS UI instead of using the PowerShell.

          You can configure the rules as to when to use the PSTN gateway setup in step 4 above to route the call to Vodia PBX.

          As explained in the Microsoft document, Microsoft Phone System has a routing mechanism that allows a call to be sent to a specific SBC based on:

          • Called number pattern

          • Called number pattern + Specific User who makes the call

          Call routing involves:

          • Online PSTN Gateway: It connects to the SBC or PBX (in this case, Vodia PBX). It also stores the configuration that is applied when a call is placed via the SBC, such as forward P-Asserted-Identity (PAI) or Preferred Codecs. It is used by Voice Routes.

          • Voice Route: It uses Online PSTN Gateways to use for calls where calling number matches the pattern.

          • PSTN Usage: It uses Voice Routes and other PSTN Usages. Different Voice Routing Policies can use it.

          • Voice Routing Policy: It uses PSTN Usages. It can be assigned to a user or to multiple users.

          In summary:
          User -> Voice routing policy -> PSTN usage -> Voice route -> PSTN gateway

          In our example, since we use the user as a PBX extension of Vodia, we want the call to first go there and use the dial plans in Vodia PBX for routing calls. There can be other scenarios easily implemented as well. For this simple one, let’s create:

          John Smith (User)-> Policy1 (Voice policy) -> Usage1 (PSTN usage) -> Route1 (Voice route) -> pbx.company.com (PSTN gateway)

          Let’s create the route using the Vodia PSTN gateway:

          • Login to MS Office365 as admin
          • Click on "Admin" to enter Microsoft 365 admin center
          • In the left menu panel, click on "Show all" so that you can see Teams option
          • Click on "Teams" to enter Microsoft Teams admin center
          • In the left menu panel, expand the "Voice" option
          • Then click on "Direct Routing"
          • Click the "Voice routes" tab and under the "Voice routes" tab, click "Add" to add a new voice route
          • A form will open
          • Simply add the voice route name, in our example, Route1
          • Set the "SIP signaling port" to 5061
          • Set the Priority as 1
          • Set the Dialed number pattern as: ^+(\d{4})|^(\d{4})
          • Click "Add SBCs"
          • In the new form on the right, select the SBC (PSTN Gateway) we created above, i.e. pbx.company.com
          • Press "Apply" and the new SBC will appear in the list
          • Now click "Add PSTN usage" to create a new usage
          • In the new form on the right, first add a new usage by clicking on "Add", giving it a name, Usage1, then press "Save and apply"
          • Now click "Add PSTN usage" to add the usage already created
          • In the new form on the right, select the usage Usage1 just created
          • Press "Apply" and the new usage will appear in the list
          • Press "Save" to complete the Voice route creation and it will appear in the list under the "Voice routes" tab

          As you can see we created a route “Route1” where TEAMS will pass the call to PSTN gateway pbx.company.com (a domain in Vodia PBX) if the dialed number has at least 4 numbers (that is of course based on our example here where we want to give each user a 4 digit extension, but it is up to your setup), with or without a + sign. That way, you could dial a 4 digit extension or an E.164 number with country code and + sign.

          Of course, multiple routes can be created with different priorities.

          Let’s create a voice policy using the same usage to which our PSTN gateway is linked above:

          • Follow the same steps above to enter Microsoft Teams admin center
          • In the left menu panel, expand the "Voice" option
          • Then click on "Voice routing policies"
          • Click "Add" to add a new policy to the list
          • A new form will open
          • Give the name for your voice routing policy, in our example, Policy1
          • Now click "Add PSTN usage"
          • In the new form on the right, select the usage Usage1 that was already created above during voice route creation
          • Press "Apply" and the usage will appear in the list
          • Press "Save" to complete the Voice routing policy creation and it will appear in the list of Voice routing policies

          You can, of course, create a policy with several PSTN Usages, but we will keep it simple and to the point regarding our example.

          Let’s grant our user John Smith our voice policy:

          • Follow the same steps above to enter Microsoft Teams admin center
          • In the left menu panel, click on "Users" to show the list of users
          • Click on the user (John Smith in our example) to whom you want to grant our voice policy
          • Click on the "Policies" tab
          • Click on "Edit" of Assigned policies
          • A new form will appear on the right
          • In that form, under Voice routing policy dropdown menu, select our policy Policy1
          • Click "Apply" and the Voice policy will be selected

          Now the outbound dialing policy and routing is complete and John Smith can call out. In this example, that outbound call will end up in your Vodia PBX domain pbx.company.com.

          In our example, we could set up your domain in Vodia PBX (explained in Vodia PBX section) so that:

          • If that extension (4 digits in this case) exists in your Vodia PBX domain and registered, it will be called from your Office 365 user whether its a SIP desktop phone registered to your Vodia domain, Vodia desktop app, Vodia web app or Vodia smartphone app.

          • If that extension does not exist (say an E.164 10 digit number etc.), then Vodia will route the call to a PSTN gateway or SIP trunk so that call can go out.

      Salesforce Integration

      Vodia PBX can be integrated with Salesforce, to make work flow easier. When a call comes in, the PBX will try to find that contact in the Salesforce account of the user who received the call. If found, the call will be logged in Salesforce database under that contact found in the user's account and a pop-up through the PBX web interface will inform the user. The user can click on the pop-up to go directly to the contact page to enter any details in the call (task) that has already been logged. The same is true of outgoing calls (if the contact is present in the account), since the user may want to enter some details for outgoing calls as well. Both incoming and outgoing calls are marked as such in their subject.

      How to set up the integration

      • Login to your user portal in the Vodia PBX web interface.
        crmsf211.png
      • Go to CRM settings by clicking on CRM found in the left side menu.
      • Enter the credentials for your salesforce account, like Username, Password and the https CRM Server Address, as shown above, and save.
      • Make sure, you remain signed in to your user portal of the Vodia PBX to receive pop-ups regarding salesforce contacts. So always login to your user portal of the PBX first and keep it signed in.
      • Also, in a separate tab, make sure you are signed in to your Salesforce account, so that when you click on the pop-up, you will be automatically taken to the relevant contact's webpage in a separate tab.
        crmsf221.png

      Note:

      1. Make sure your salesforce account supports REST API (and API integration in general). Check your account if it does or how to enable it if possible. Some types of accounts don't support it.
      2. If the API is supported, there are two ways to allow access of the PBX to salesforce API. Either simply add the Vodia PBX's IP to the salesforce trusted IP list OR get your security token via email from your salesforce account. You can also reset your security token under setup, settings in salesforce for a new one or every time you change your salesforce password. Simply add the security token to your salesforce password, when you enter the password in the "Password" field above. For example, if your salesforce password is "mypassword", and your security token is "mysecuritytoken", then you will have to enter "mypasswordmysecuritytoken" in the password fields above.
      3. You can use the vodia Click to Dial chrome extension to make calls from within the salesforce contact pages using the click to dial, either through WebRTC within the browser or through your desktop phone (both options are provided). Even though the extension is for all pages, it can be handy in the salesforce contact pages where you can make calls to the numbers on the contact page.

        Third Party Login

        With third party login, you can use the admin credentials to obtain a session id for a particular domain or user and use that id to login into that domain or user of the PBX from another webpage (URL) other than the PBX. That is very useful when you want to access a domain or user of the PBX through links from another site without having to enter the login credentials. The session id's can be obtained by the server from the PBX, and passed on to the front end of the server for authentication by the PBX.

        Steps to setup a third party login.

      4.     POST /rest/system/session HTTP/1.1
          Authorization: Basic base64encode(admin:password)
          Content-Type: application/json
        
          {
            name: "3rd",
            username: "admin",
            domain: "domain.com"
          }
        
          OR
        
          {
            name: "3rd",
            username: "40",
            domain: "domain.com"
          }        `
        
        Text

      • This returns the session token to be used.

      • In the first example, where username is the admin, the session id of the domain (e.g. domain.com) is returned.

      • In the second example, where username is 40, the session id of the extension (40) in domain (domain.com) is returned.

      • In the server, using curl, you will get a temporary session token for the domain or user (using the admin credentials as shown above) and pass it to your client in the browser.

      • Use that temporary token within 10 seconds as session id for PBX authentication as follows:

      • POST /rest/system/session HTTP/1.1
        Content-Type: application/json
        
        {
          name: "session",
          value: < session id passed from the server goes here >
        }
        
        Text

        • On successful response, you can enter the PBX with the URL:

        • You should be able to get to the domain or user (for which the original temporary session id was obtained).

        • This is sample PHP code for implementing a AJAX handler on the server side that does the work:

        // Make sure that this request is authenticated
        // TBD by final implementation
        
        // Set the trust parameters:
        $url = 'http://pbx.xyz.com/rest/system/session';
        $username = 'abc';
        $password = 'def';
        
        // Decode the input:
        $body = json_decode(file_get_contents('php://input'));
        $domain = $body->{'domain'};
        $account = $body->{'account'};
        
        // Send the request:
        $body_string = json_encode(array('name' => '3rd', 'domain' => $domain, 'username' => $account));
        $header = "Content-Type: application/json\r\nAuthorization: Basic " . base64_encode($username . ":" . $password) . "\r\nContent-Length: " . strlen($body_string) . "\r\n";
        $result = file_get_contents($url, null,
                    stream_context_create(array('http' => array(
                      'method' => 'POST',
                      'header' => $header,
                      'content' => $body_string))));
        print($result);
        
        Text
        • Below is a sample HTML form that uses the above script:

        • Make sure to name the above file which will be called in the below Script (For e.g 'thirdpartylogin.php' in this example).

        <title>Vodia PBX 3rd party login</title><script>
        <!--//--><![CDATA[// ><!--
        
        	   function load() {
        	   var form = document.getElementById('form');
        	   var account = document.getElementById('account');
        	   var domain = document.getElementById('domain');
        	   function submit(e) {
        	   e.preventDefault();
        	   var xhr = new XMLHttpRequest();
        	   xhr.open('POST', '/thirdpartylogin.php', true);
        	   xhr.setRequestHeader("Content-Type", 'application/json');
        	   xhr.onreadystatechange = function() {
        	   if (xhr.readyState == 4) {
        	   var session = JSON.parse(xhr.responseText);
        	   document.location = 'https://pbx.xyz.com/welcome.htm?session=' + session;
        	   }
        	   };
        	   var data = {
        	   account: account.value,
        	   domain: domain.value
        	   };
        	   xhr.send(JSON.stringify(data));
        	   }
        	   form.addEventListener('submit', submit);
        	   }
        	   window.addEventListener('load', load, false);
        	 
        //--><!]]>
        </script>
        
        Text

        Account

        Domain

        The third party login directly into the domain or user portal should now be possible.

        Voicemail Transcription

        Google offers a powerful API for converting speech into text. The Vodia PBX is currently using this feature to convert voicemail recordings into text format and includes that text in the voicemail notification which is typically sent to the user by email. This API must be enabled in the Google Cloud Console.
        httpsdocvodiacomsitesdefaultfilesinline-imagesenableAPI1.png

        After you have set up an account with Google Cloud, make sure that you provide your credit card information so that you can enable the Voice API. You will also have to create a project that holds the API key. You can do this in the section “APIs & Services” in the Dashboard area.
        httpsdocvodiacomsitesdefaultfilesinline-imagespastedimage001.png

        httpsdocvodiacomsitesdefaultfilesinline-imagesAPIServices1.png

        Activating Google Cloud Subscription Key

        After you have created a project, you need to navigate to the “Credentials” area where you can create new credentials for your project. You need to create a new API Key.
        httpsdocvodiacomsitesdefaultfilesinline-imagescredential20191.png

        You should then restrict the key by some means, for example by limiting it to your server IP address, so that nobody else can use that key unless used from that IP address.

        API let

        Enable Voicemail Transcription in Vodia PBX

        After you have set up your account on the Google console, copy the API Key into the PBX in admin mode, General/Settings/Notifications . There you can also determine if domains should have the feature enabled or not unless you set it explicitly in the domain settings.
        httpsdocvodiacomsitesdefaultfilesinline-imagesgoopleapi1.png

        Multi-Tenant Scenario

        In some cases you would want to disable the Google API per extensions. To disable, go the main page of your domain page and click on the edit button, scroll down to "Enable voicemail to text API " and switch it to off.
        httpsdocvodiacomsitesdefaultfilesinline-imagesswitchff1.png

        httpsdocvodiacomsitesdefaultfilesinline-imagessiwtch21.png

        Anynode

        Integrating Anynode with Vodia PBX

        Anynode is integrated with Vodia through a trunk in the Vodia PBX. Anynode sits between Vodia PBX and Teams. That way users in Teams can call extensions on the Vodia PBX domain and Vodia extensions can call the Teams users. Also the Teams users can make trunk calls using their own trunks.

        We will do the setup on Vodia and Anynode under the sections:

        A. Setup on Vodia PBX
        B. Setup on Anynode

        A. Setup on Vodia PBX

        In the Vodia PBX, you simply have to create a new Anynode trunk.

        1. Go to the relevant domain.
        2. Then under Trunks, go to SIP Trunks.
        3. Press "Add" to add a new trunk.
        4. From the "Provider" list, select "Anynode".
        5. Give it any friendly name.
        6. Enter the username and password that you will set as credentials for registration in Anynode to be done in the next section.
        7. Press "Create".
        8. A new trunk will appear in the list of trunks by the name you gave it. Click on it and enter it.
        9. In the "Proxy address" setting, enter the IP or FQDN of Anynode (that you will setup in the next section) so that it can register to it. Also the port and transport you will be using for this registration. For example: sip:sbc.mycompanyanynode.com;transport=tcp.
        10. Press "Save".

        The Vodia side setup is now done. Of course many options can be used and changed according to your needs.

        Incoming calls from Teams user to Vodia extension

        Now, by default any call coming from Teams user -> Anynode will try to find the extension and connect to it. But you can route this trunk as any other trunk on Vodia PBX which is all documented in the Vodia trunks documenation.

        Outgoing calls from Vodia extension to Teams user

        For calls from Vodia extensions to Teams users, you can use the dial plan to use the Anynode trunk.

        1. In the same domain in Vodia, go to "Dial Plans" under Trunks.
        2. Click on the dial plan that the domain or user will be using.
        3. Enter an entry for when the Anynode trunk should be used.
        4. For example you can use a prefix number, say 9, for those calls to be routed out through the Anynode trunk.
        5. For that, enter 9* in the Pattern, leave the Replacement field empty, choose the Anynode trunk and give it a Pref to place it in correct order.
        6. Press "Save".
        7. So if a Vodia extension wants to call a Teams user with the extension or number 4001, he or she will dial 94001 and Vodia will route it out of the Anynode trunk to the Teams user via Anynode.

        Of course many other dial plan entries can be made according to what is needed. The dial plans have been explained in detail in the Vodia dial plan documentation.

        B. Setup on Anynode

        Install Anynode on a server. From a browser enter the url of Anynode to enter Anynode web interface. You will need the login credentials that you had set to enter the interface.

        Here two nodes have to be created; one to which Vodia PBX will connect and one to which Microsoft Teams will connect through direct routing. That way calls can be routed between the Vodia PBX and Teams users. The Anynode wizard can be used for creating them.

        1. Press the "Configuration Mode" button at the top right.
        2. Then press "Wizard" button at the top left.
        3. You will get a list of options. Select "Microsoft Teams Direct Routing and a PBX or VoIP System" and press "Start".
        4. Select "Voice over IP System" to create the Vodia node first. Press "Configure".
        5. Select "Other VoIP System" and press "Next" to go to "Network Controller".
        6. Leave the name as is or give it a friendly name of your choice.
        7. Select "Use an interface’s address" if that's what you will use and select the network interface from the dropdown.
        8. Press "Next" to go to Ports.
        9. Select "Specify the UDP/TCP Port" and "Specify the TLS Port" and give it the available ports to Vodia will connect. You can leave it default but just make sure the ports you select here are not used by the system else where.
        10. Press "Next" to go to "SIP Interconnection". Select "Node as SIP Registrar" which means Vodia will register to Anynode on one of these ports.
        11. Press "Next" to go to "Local SIP Domain". Leave it empty as default and press "Next".
        12. In "Server Authentication", select "Activate server authentication" and give the username and password that Vodia will use as credentials to register to this node. These are the credentials that you had to enter in setting up Vodia above while creating the Anynode SIP Trunk.
        13. Then you can keep pressing "Next", which is about many different options like routing and string manipulations, depending on what is needed, but can be skipped for now. Anything can be changed later anyway. At the end you can give this node a friendly name or leave it as default and press "Finish".
        14. The Vodia PBX side node is not setup in Anynode. We will next setup the Teams side node.
        15. Select "Microsoft Teams Direct Routing" and press "Configure".
        16. "Microsoft Teams Direct Routing" is already selected. Press "Next" to go to "Network Controller".
        17. Leave the name as is or give it a friendly name of your choice.
        18. Select "Use an interface’s address" if that's what you will use and select the network interface from the dropdown.
        19. Press "Next" to go to Ports.
        20. Select "Specify the TLS Port" and give it a TLS port to which Microsoft Teams Direct Routing will connect. You can leave it default but just make sure the port you select here is different from the TLS port you listen for another node like the Vodia PBX if you are using TLS in both cases.
        21. You can leave the rest as default and press "Next".
        22. In "Certificate and Private Key", upload a valid certificate and its private key of the SBC FQDN that Teams will use as PSTN gateway for calls from or to through direct routing.
        23. Press "Next" to add any certificate chain if required.
        24. Press "Next" to enter the SBC FQDN (this should resolve to IP that reaches the server on the Anynode is running) for which you had already added the valid certificate in the previous step.
        25. Give a friendly name to this node or leave it as default and press "Finish".
        26. The Teams side node is now setup.

        Now on Anynode on left side under nodes, you should be able to see both the nodes with the friendly names or default you gave them, like Vodia and Microsoft Teams.

        We have to setup a few more things:

        • Click on the Vodia node (or whatever name you gave it). A graphic will appear in the center to show the different modules. Click on the "SIP Registrar" module and it's settings will appear. Expand the Settings and choose the setting "Maintain the registration connection and use it as a transport flow." And select "Yes" from the radio buttons under it. Now commit these changes by pressing the "Commit" button at the top right corner.
        • When a Teams user dials and arrives at Anynode, Teams usually adds + and the country code. For example if you want to reach an extension on Vodia 4002, and dial 4002 on Teams, +14002 will arrive at Anynode (1 being US country code in this example). We need to remove that before passing it to Vodia so that Vodia can ring the extension 4002. To do that, just like the point above but click on the module "SIP Node" this time. Expand "URI and Dial String Mapping". Under "SIP dial string manipulations, which are applied to outgoing SIP messages. This is independent of the call direction." press the "Add" button to add a new manipulation rule. Select "Prefix and Suffix Manipulation" and press "Next". In Prefix, enter +1 (since that is what we want to look for and remove). The "Delete Leading Characters" will automatically be filled with 2 (meaning delete these 2 numbers before sending). Of course this will be different for different country codes and manipulation, but this example explains the process. Click "Finish" and the rule will appear in the list. Press "Commit" button at the top right corner again to save.

        Now you are set for Teams users to call PBX extensions and PBX extensions to call Teams users (with the prefix as explained above).

        More Nodes

        Of course you can add more nodes with "Add Node" (top left) or the "Wizard". For example a node to connect your trunk. Then you can create routes and use string manipulation as to when calls from Teams go to Vodia and when to the trunk; as well as when calls from the trunk should go to Vodia or Teams etc. In the Anynode documentation you can also find out how to do the routing and manipulation and much more according to your setup.

        Here we explained a basic configuration which will probably be used the most, but of course you can have different kinds of scenarios and configurations setup by using the different settings on Vodia and Anynode, all of which are documented under those headings in their respective documents.

        Teams Setup

        Teams has to be setup for direct routing to connect to the Teams node created above in Anynode. That is covered in Microsoft Teams Direct Routing, and in Anynode documentation.

        Some relevant documents

        Vodia:
        https://doc.vodia.com
        Especially under the Trunks.

        Anynode:
        https://www.anynode.de/support/documentation
        You may have to create an account there first.


          • Related Articles

          • NBN FTTN - Level 1 Checks

            The NBN Level 1 Checks for FTTN (Fiber to the Node) are a series of troubleshooting steps aimed at diagnosing and resolving issues related to the VDSL (Very High Bit Rate Digital Subscriber Line) broadband service. Let's elaborate on each of these ...
          • NetVault Mobile Service - Troubleshooting

            This Document will specify the information we need from you so we can begin investigations, and if necessary, raise the issue with our carriers/suppliers. Basic Troubleshooting Steps (Mandatory) To get started, we require the completion of the first ...