Mizu PBX Tutorial

The Mizu PBX is a Class5 softswitch application running as a service on the Microsoft Windows operating systems.

Modules: SIP, WebRTC, RTMP, access roles, routing (priority, weight, BRS or LCR), billing, PBX, accounting, CDR records, blacklist/whitelist filtering, IVR, transcoding, call recording, voicemail, conferencing, conference rooms, media server, alerting, statistics generation, client applications, API and others.

 

The PBX features and easy to use installer and configuration wizard: download windows pbx from here.

MizuManage

All administration and monitoring tasks can be done from the MizuManage (MManage / MizuManagement) admin client which is included in the install package.

Nearly all forms can be filtered with the following filters:

·        Quick filter: found in the top-left side in MizuManage. For example type “44*” in the quick filter box then open the “CDR Records” form and click “Load”. You should be able to see all calls to 44….. numbers. Or enter “test” and open the “Users and devices” form. Click on the load button to see accounts containing the “test”  word (in name, username, address, etc)

·        Direction filtering: accessible by double clicking on the space above the quick filter or from the Settings menu -> Set direction. When you are doing operation which needs more precision (eg. billing), always use the Set Directions form and not the quick filter.

·        Date-Time filter: found in the top-left side in the MizuManage. Useful to restrict statistics, reports and CDR listing intervals.

To export data from the application, use File menu -> “Save As”. A more advanced export tool can be found in the Advanced version, accessible from File menu -> “Export/Import”.
From the “Edit” menu you can manipulate the selected dataset (grids, etc).
The Config menu might be used only one time during the initial setup. Under the “Utilities” section you can find many tools to perform various operations like sending sms, playing recorded voice, etc.

Quick Tip: you can filter almost any forms using the quick search and the date-time filter.
Quick Tip: always check the status bar (the bottom text display). MManage rarely displays popups and the success/error status of various operations is displayed on the status bar instead.

Basic configuration

For the basic server configuration you should walk through the configuration wizard accessible from the Config menu.

Don’t change any setting that you don’t fully understand, just click on the “Next” button in this case. Most of the settings are self-explanatory with a short description near them and a hint if you hold the mouse over a control.

Take special attention for the IP and bind IP settings if your server has multiple IP’s assigned.

Take special attention for the NAT and Public IP setting if your server has multiple IP’s assigned or your server is behind NAT.


After you have finished with the configuration wizard you might have to continue with the following tasks:
- add your outbound routes and traffic senders:  Access -> Users and devices -> Sip Proxy and Traffic Senders, Routing
- add users:  Access -> Users and devices -> Enduser
- fine-tune other settings: billing, blacklists, etc.

 

For more advanced options you will have to change global config options manually on the “Configurations” form. (Under “Other”).

If you are not sure where to find a specific configuration option, search for your keyword in the “Configurations” form and also in the admin guide.

Quick Tip: right click on the “Configurations” node in the main tree view to have some grouped options.

Server Start

Once you have gone through the configuration wizard, you can start the service (From Control menu -> Start server or from Windows Service manager locate the “mserver” entry and right click to start). Once the service was started open the “Analyze” form to check for any potential issues.

The server will allow calls between endusers by default, so you can already test by registering with 2 softphone (such as X-Lite) and make calls between them. See the first test calls section for more details.

Listing users

Users can represent real people, extensions, devices or virtual endpoints.

Open the “Users and Devices” form (below the “Access” section) and (double) click on Endusers.

You can apply various filtering using the user “Type” checkbox-list, the dropdown-list on the top of the form or the already discussed direction filter or quick filter.

 

Quick Tip: You can easily search for users using the “quick filter” box. For example to list all outbound routes whose username or name contains the “carrier” word, select the “SIP Server” and type “carrier” in the quick filter. The quick filter will also search in other fields such as IP, name, email and others.

Quick Tip: you can list user from Users and devices form by right clicking on the tree view user type node.

Quick Tip: There are many fields in the user table which can be used for various settings. To quickly find a field, double click on a user node (such as “Endusers”) then click on the “Search fields” below the grid. Another way is to use the “Show Fields” from the “Fields” menu

 

Creating users

The best way to create new users is to clone an existing working account with the same user type.

For this, launch the “Users and Devices” form, select a user type, and click on the “Load” button. Then select any user entry and click on the “New User” button.

Endusers are the most commonly used type (retail customers/company employees). Usually you will select “Username/password” authorization for this type of users and enter a valid username and password. The username can be also used as a real phone number; will be used also as the caller-id if not specified otherwise. Endusers can make voice or video calls between them for free of charge and also IM and presence are enabled by default. By default the server will route the RTP if needed (if users are behind NAT) or allow it to bypass your server saving your bandwidth. Sub-Endusers can represent VoIP devices, extension, child accounts or callshop cabins. Calls from sub-endusers account are billed for the parent Enduser.

Traffic sender users are used for receiving traffic from other SIP servers and carriers. The authorization type is usually set to “Auth ip must match” and you have to enter a correct “Auth Ip” (IP address based authentication). If you don’t have special requirements, the only thing that you have to communicate to your peers to be able to send calls to your server is only your IP address. (Your server needs a public IP for this or you have to setup proper port forwarding).

For outbound traffic you need one (or more) SIP Server user. The most important parameter here is the “IP” where the VoIP calls will be sent. Then you will have configure these also on the Routing form. To be able to send and receive traffic to/from another SIP server or carrier you will have to add it as both a “traffic sender” and “sip server” user.

To import endusers from other data sources, use the Config menu -> Users.

You can also generate users in bulk from the “Generate users and PIN’s” menu item.

 

Users can also sign-up to your service with the following methods:

-From the enduser web portal (“New user” link on the login page)

-From customized softphones (all of them have a user interface where new users can sign-up to your service)

-Integrate the sign up capability into your web site or any application using the Mizu PBX newuser/adduser API

 

By default the new users can already call each other for free (unless you set otherwise). If you use the server for your own company, then you can create new user record as postpaid so they will be able to call outside by default. Otherwise the user records are created as prepaid and must have positive credit balance to be able to initiate outside calls.

 

Quick Tip: Right click on the “New” button for other options to add users. Endusers can be added more comfortably from “Add Enduser”.

Add DID numbers or extensions [optional]

Unless in other traditional PBX’s, in the Mizu PBX you can just add a new user with the “username” and “password” settings to be reachable for incoming calls also. Then the “username” field (which can be a phone number) will act as a SIP username for authentication but also as an extension number or a DID number. You can also use the same username/password to login on the enduser web-portal and in any other operations requiring authentication. If you wish to use a separate username and CallerID for the users, then you can enter the Caller ID to the “Other numbers” edit box. If one user has multiple DID number assigned, then you can add then using the “…” button near the “Other numbers” edit box (Users and devices form, Edit tab). More than one users can share the same DID number: simply add it to the required users as “other number” with type 0. The call will be routed to the “best” device (based on the user status whether it is registered or in-call). You can also setup ring-groups to allow forked calls to ring on multiple devices.

Quick Tip: you can get real phone numbers for your endusers from providers like DIDx or from your carrier/sip trunk provider.

Setup outbound routing

This is needed if you would like to route the calls from the users to another servers, gateways or carriers (for example calls to mobile and landline numbers).

Add a “SIP server” user from the “Users and devices” form with any meaningful username and make sure to set the IP field correctly on the Edit tab. (This field can also contain a domain name instead of IP address). Some carriers require the usage of a techprefix which can be entered in the “Tech Prefix” field. Others settings are rarely used.

You must also add this server(s) to your routing:

Open the “Routing” form. In the left side you have to define your pattern which will restrict the condition when the actual route entries can be used. If all fields are empty and the time definition is set to “All times” then all patterns will match. You can make restriction if you make specification here (caller, called prefix, time restriction, etc) . Make sure that you increase the priority for the pattern (to be higher than the your “general” pattern where you have not made any restrictions)

On the right side you will have to add one or more sip proxy user. If you set more than one route with equal priority, then you have load balancing, LCR or BRS (depending on the “brs_lcr” global config option); otherwise the traffic will be routed after the prioritizations (will flow to the lower priority servers only if you have reached the maximum port limitations or because automatic failowering). For more details please read the routing guide.

Register to outbound server [optional]

Usually for a B2B usage, uppers servers (your carrier or VoIP service provider) will setup IP based authentication. This is the favorized method for a trunk interconnection. If your outbound server (where you are sending traffic and receive incoming calls) needs username/password based digest authentication instead of IP based authentication, you can set it from the “SIP server” user configuration. Create a SIP server user, then switch to the “Edit” page. On the bottom of the page you can find a grid named “Proxy authentication”. Here you can add the login details (multiple username/passwords can be used for your convenience). Then select “Username/password must match” from the “Authorization” drop-down list.

These are the basic and most commonly used authentication settings. There are many other combinations, for example you can forward the username/password as received from your users. For more details please consult the Admin Guide.

Setup inbound routing [optional]

If you would like to accept traffic from other servers (for example you are doing a wholesale business or to offer VoIP trunk services for other companies), then you have to create “Traffic sender” user. Usually you can use IP based authentication. For this, add the peer IP to the “Auth IP” field.

For each incoming calls, the server will first check if the called party is a local user. If not, than the call are routed regarding the rules which is set by the “Routing” form.

Actually you could also use “Enduser” users for the same thing, but for a bigger traffic volume it is always to differentiate normal endusers from “traffic sender” so your statistics will be easier to understood.

 

Quick Tip: You can easily create a transit server by using only “Traffic sender” and “SIP server” users.

Quick Tip: One “Traffic  sender” user entry can handle incoming traffic with IP authentication from multiple IP addresses . Use the “…” button near the “Auth IP List” to add more IP address.

First test calls

For a test call create 2 enduser accounts with username/password authentication.
To find out how to connect to your server see the “Client configuration” from the Help menu.

Register with two softphones and call from the first account to the second account.

Softphone configuration:

·         domain: your server IP or domain name  (and the server port if your server is not using the standard 5060 UDP port)

·         proxy: you can leave it empty

·         username: the “username” field from the newly created user (tb_users.username)

·         password: the “password” field from the newly created user (tb_users.username)

 

No any other special settings are required (such as NAT, STUN, etc).

The network setting should be automatically handled by the server. If you don’t hear any voice you might change the RTP routing for the user(s) to “always route RTP” from MizuManage -> Users and devices -> Edit tab.

 

During the call, you can open the “Current calls” form in the MizuManage to see the details.

After the call you can see the CDR by opening the “CDR records” form in the MizuManage.

If there are no CDR records, it means that the call has not reached the server (wrong network settings on server or client side)

Troubleshooting:

If you can’t register or make calls, check the followings:

·        Have a look at the “Dashboard”

·        Have a look at the “Analyze” for to detect any potential issues

·        Check any important errors or warnings on the “Logs” form

·        If you are making call to a local user, make sure that the called user is registered when you call it

·        In case of call failure you can check the disconnect reason from the “CDR records” form

·        Verify the log files. You can find the logs in the server app folder (near the mserver.exe) -> “logs” subfolder. You can also open the folder from MManage -> Files Menu -> Folders -> Server logs.

·        Open the last logfile (“log_xxx.dat”) with a fast text viewer (For example F3 from TotalCommander). To find application errors, open the last log file in the server app directory and search for “ERROR” and “WARNING”. To find a call, search for “INVITE sip:callednumber”.

·        You can modify the trace details with the “loglevel” configuration option: from 1 to 5.

Setup billing [optional]

This is necessary only if you wish to track your spends or to limit/track employee call costs.

User to user calls are not charged by default (this can be changed with the “internal_endusercost” global configuration option).

All other calls are checked against the user credit and prepaid/postpaid setting which can be set from Users and devices form (select a user and switch to the “Billing” tab)

From here you can assign a billing packet for the user explicitly but the better way is to setup one or more packets to be valid for all your users, for a group of users or on special circumstances (caller, called, techprefix, time, etc)

These packets (call rating) can be set on the “Price setup” form (below the “Billing” section)

·        On the left column add a billing group with any name (“default” is ok). This is used only to logically group your tariffs but not used by the server.

·        On the middle column specify your conditions. You should have at least one Enduser cost type without any further restriction on the traffic direction (so it will be applied for all endusers/directions/time)

·        On the right column enter or import your pricelist applied in the conditions defined by the middle column.

For a default price enter prefix “*” (this will be applied to all destinations that is not specified explicitly)

Make sure you have set the proper currency (in the global configuration, in the price setup and also for your users)

Read the Billing guide for more details.

Monitoring

The Mizu PBX provides endless possibilities for monitoring both real-time and statistics. Some of the most important tools are the followings:

Dashboard: a summary of the most important parameters and a start point for management

List the active sessions: Monitoring -> “Current Calls” form

Call detail record: Monitoring -> CDR Records form

Statistics by users: Monitoring -> Statistics -> Group By: caller

Statistics by day: Monitoring -> Statistics -> Group By: day

By using the “Analyze” form you can have a quick overview about the system.

 

Other more advanced statistics can be generated by using the Statistics form and using different fields/options/grouping/directions.

 

All statistics can be filtered by the “set direction” form or the “quick filer” edit-box and by a time interval selection.

 

Automatic reports
The server can send daily reports for administrators or email/sms alerts on malfunctions. For this you have to setup an “Admin” user with a valid email address. Then set the following fields to 1 (after your needs): “sendemailalert”, “senddailyemal”, “sendmonthlyemail”, “sendsmsreport”, “sendsmsalert”

The server will be able to send SMS messages only if an SMS provider is configured (see the Admin Guide)

 

Quick Tip: You can access various statistics by just clicking on the Dashboard items. For example click to “CCalls” will show the current calls.

CDR Records

CDR records can be listed by using the “CDR records” form. By default only the most important fields are listed (date-time, connect time, call duration, etc). You can see more details if you check the “All fields” checkbox.

To quickly list the CDR records that belongs to a user, open the “Users and devices” form. Find the user record, then right-click on it and select “Set Direction”. Than go back to the CDR record form and click on the “Load/Reload” button.

If you have enabled voice recording for some users, than you can play the recorded audio by filtering for “Recorded Conversation” (select the desired record and click on the Play button)

 

Quick Tip: You can easily filter calls with a specific prefix by typing the prefix in the quick search box following with an asterisk and hit enter. For example searching for 44* will list all CDR records where the called number begins with 44.

Dial plans

You can manipulate number format, SIP headers or the Caller-ID from the following settings:

·        Users and devices form: caller-id, username, other numbers (DID match), tech prefix

·        Routing form: you can only specify routing direction here without number changes

·        Rules form: this is a powerful module which you can use to change almost anything (including caller-id, called number format and many others)

·        Global configuration: a few global configuration options might also affect the dial plan

·        Prefix rules and the dial plan form: use the “Rules” form instead when possible.

You can find more details in the VoIP Admin Guide below the Routing section.

PBX features

A number of PBX features are enabled by default. More PBX modules can be activated if you select the “PBX Extra” on the configuration wizard or set the “fs_pbx” global configuration options to “1”.

This includes:

·        call forward: can be enabled from users and devices form -> functions tab

·        call transfer: available as specified SIP standards (via all devices with support for transfer)

·        voicemail: enable from users and devices form -> functions tab.  Default access number are 5000 (with pin) and 5001 (with auto authentication). Auto-email forward is enabled by default.

·        conference: via SIP standard, via dtmf *1*number# or via conference rooms using extensions between 5100-5199 for narrowband and 5200-5299 for wideband

·        call recording: just check the “Voice Record” on the users and devices form -> functions tab. Playback the recorded voices from the “CDR Records” form.

·        special numbers and IVR’s such as music, record/playback, vide record/playback and others

·        missed call notifications by email

·        barge in: via the “Voice here” form, or right click on current call or 5009 access number

·        many others such as caller-id, ring groups, call hold, call waiting/park/pickup and others

Service access numbers [optional]

You can setup your calling card or callback business by using access numbers and assigning them to one of the existing or newly created IVR’s. You should be able to request DID numbers from your existing VoIP carrier or by contacting other companies e.g. www.didx.net. In this case you will have to add it as a Traffic Sender user usually with IP based authentication (fill the AuthIP box with the provider IP or domain name)

After you have terminated with the traffic sender configuration, you can add the access numbers like usual endusers. Type the phone number in the “username” field or you can also use the “SIP number” field for the same reason. Then switch to the “Functions” tab and set the “Campaign ID” and the “Callback access” (if the DID number will be used as a callback access number); optionally you can enable A number authentication (PIN less dialing). The campaign id means the ID field from the tb_ccampaigns table (You can see them by opening the “Campaigns” form).

For more complex authentication and billing options please consult the admin guide.

IVR setup [optional]

The IVR module is used for various tasks like access numbers, calling-card operation, customer support etc.

You can assign different IVR’s to different access numbers by using the “Campaigns” form. To create a new campaign, just click on the + sign and enter a “name” for the new record. The most important configuration for an IVR campaign is the script. Switch to the “details” tab to select a “Script”.

Scripts can be created by using the “IVR” form. The server is shipped with several preconfigured script examples, but you should easily add new scripts or modify the existing ones by following the admin guide or the IVR documentation.

 

Quick Tip: you can also offer callback services via the IVR module with a script which will reject the incoming calls and call back the caller automatically.

SMS [optional]

Provide SMS services to your users by interconnecting with an SMS provider capable to provide a HTTP API. For this just set the smsurl global config option or create SMS GW endpoints if you wish to use more than one provider. A guide can be found here.

To setup an outbound sms routing, you have to contact a company providing SMS services. (For example Clickatel)

Then open the “Configurations” form and search for “smsurl”. Enter the details in this format:

http://api.clickatell.com/http/sendmsg?api_id=APID&user=USERNAME&password=PASSWORD&to=[tonum]&text=[message]

Pricing is done after the “smsprice” global config options or you can setup detailed pricing by using the “price setup” form.

Users will be able to send sms messages by using a softphone, the webportal or there is a possibility to create an SMS sender application yourself by using the http or database api.

For incoming SMS applications (SMS callback, balance request, etc) you will have to request a two way SMS service (to get a DID number)

Webphone, softphone and mobile clients [optional]

Mizutech provides customized VoIP clients for web, desktop and mobile as part of the all in one softphone package or separately, so you can offer preconfigured dialers for your users with your name, logo, icon, branding, links and many options:

·        Browser webphone

·        Windows softphone

·        Android softphone

·        iOS softphone

·        Symbian dialer

·        Other softphones

 

You can also use your IP phone, third part softphone (such as X-Lite) or any SIP compatible device.

Compatibility with browser VoIP clients is assured by the built-in WebRTC and RTMP modules.

Others

·        Easily and transparently convert between various VoIP protocols by just enabling them on the config wizard: SIP/H.323/WebRTC/RTMP

·        The VoIP service is based on open protocols so you can integrate it in any environment.

·        Provide call termination / SIP trunk services for other companies. Just set them as Traffic Senders (specify auth IP), send your server address (IP or domain) to these companies, set proper pricing and you are ready to go

·        Codec transcoding by setting the “needcodecconversion” and “choosecodecs” fields for the user records

·        You can easily backup all data by just copying the mserver.sdf file

·        You can enable many other features

Common terms

·         SIP: The Session Initiation Protocol (SIP) the most important signaling protocol used for VoIP

·         WebRTC: is a media streaming protocol found in modern browsers

·         RTMP: is a media streaming protocol used by Flash

·         RTP: media channel protocol (used for audio/video/fax routing)

·         SIP Trunk: in-bound or out-bound links. In MizuManage this can be set as “SIP Server” and “Traffic sender” users

·         Global Configuration: configurations applied to all users stored in tb_settings. Changes can be made from the “Configurations” form

·         User Configuration: configurations specific to a user. Changes can be made from the “Users and Devices” form

·         Dial Plan: describe the format of the phone number. In MizuManage this can be changed by global configuration options, rules, prefix rules and from the “dial plan” forms.

·         PBX: means “Private Branch Exchange”, which is a phone network used by companies. Users can call and chat with each other and share a number of outside lines (DID) for external calls.

·         Callback: DID or toll free number configured as enduser with iscallback set to the required IVR

·         Click-to-call: a html button placed on websites to request an immediate connection with another person by phone call. Can be implemented using the webphone

·         ASR: Answer Seizure Ratio. The percent of the connected calls compared to all calls (How many calls are connected from 100 calls in average)

·         ACD or ACL: Average Call Duration (measured in seconds for connected calls only)

·         IVR: Interactive Voice Recognition (used for calling-card for example)

·         ANI / CLI: Automatic Number Identification or Caller Line Identification (important on IVR systems for user authentication)

·         ANI callback: same as callback with User-ID based authorization (A number)

·         LCR: least cost routing (routing the traffic to the least cost outbound server)

·         BRS: best route selection (intelligent routing based on price + quality + other statistics and settings)

Resources

·        For more details, please consult the Softswitch admin guide and other server related documentations on our website.

·        You might purchase a support plan as described on the “Support plans for Windows PBX” section on the Support Terms page.

·        Contact serversupport@mizu-voip.com for more help.

 

Copyright © Mizutech SRL