Quick intro

Mizu VoIP Server Tutorial

Quick intro. 1

About 1

Install 1

MizuManage. 2

Basic configuration. 4

Server Start 5

Listing users. 5

Creating users. 5

Accounts. 7

Outbound routing. 7

Inbound routing. 9

First test calls. 9

Monitoring. 10

CDR. 11

Dial plans. 11

Billing. 12

PBX features. 13

Access numbers. 14

IVR setup. 14

Voice recording. 14

WebPortal 15

WebRTC. 16

Push notifications. 16

SMS. 16

Wholesale/Transit 17

SIP clients. 17

Integration. 18

Backup. 18

High Availability. 18

Security. 19

Usage. 19

Common terms. 19

Resources. 20

Quick intro

· The VoIP Server runs as a Windows service and will provide a broad range of VoIP services using the SIP, WebRTC and H.323 protocols.

· The free compact edition can be downloaded from here and it has an easy to use next-next-ok style installer . It will install an NT service named “mserver”.

Once installed, launch the MManage admin client and go trough the Configuration Wizard to configure the most important global settings. Pay particular attention to the settings on the "Network" page.

Create some users from the Users and Devices form:

o   Endusers are to be used for individual users or devices usually with username/password authentication

o   Traffic Senders are for incoming trunks usually with IP based authentication

o   SIP Servers are for outgoing traffic to other SIP providers

· Calls between endusers (SIP or WebRTC clients) are routed automatically (if the target user is found locally).

For other calls the server will check the routing rules, so you should configure your SIP Server(s) on the “Routing” form if you need outbound calls (such as calls to mobile/landline).

To implement a wholesale business , you will usually just need to interconnect Traffic Senders (inbound trunks) with SIP servers (outbound trunks).

· Make a quick test by creating two endusers, register with two SIP client and make a test call between the users.

· Once this is done, you can go ahead and explore the more advanced functionalities: check the CDR records and monitoring , use PBX features , setup billing , setup the built-in webportal , integrate with other services, configure voice recording and many more .

About

Mizu VoIP Server is a Class4/5 softswitch application running as “mserver” service on the Microsoft Windows operating systems.

Important modules: SIP stack, WebRTC stack, H323 gateway/gatekeeper, RTMP, media stack, access control, routing (priority, weight, BRS or LCR), dial plan rules, failover, load balancing, quality routing, push notifications, payments/billing, PBX, CDRs, blacklist/whitelist filtering, callcenter, IVR, callback, calling cards, transcoding, call recording, conferencing, media server, alerting, statistics generation, watchdog, enduser web portal, client applications, API and others.

Install

The Mizu VoIP server is available in three editions:

· Free edition with embedded compact database for up to 20 users and maximum 5 simultaneous calls. Download from here and follow the install wizard.

· High performance commercial edition with full database backend: this doesn’t have an automated installer but it can be easily installed following the install guide . Download from here (the downloadable version comes with 100 users, 10 concurrent calls and 2 sip trunks limit)

· SaaS VoIP service with server hosting by mizutech. Order here .

The hardware requirements can be found here .

Networking/Firewall/NAT consideration:

We recommend to host the VoIP service on a server with a public static IP unless you plan to use it only in your internal network (with no external peers).

We recommend using standard ports (80 for HTTP, 443 for HTTPS/TLS, 5060 for SIP, 5061 for SIPS).

In case if some other app on your machine is already listening on these ports then you should stop the app if unnecessary or otherwise configure your gateway to bind to another IP (if you have multiple IP addresses) or otherwise configure other ports to be used by the VoIP Server.

Quick tip:
Most Windows servers have IIS running by default. Stop it if not needed (World Wide Web Publishing Service from Services).

The Mizu Softswitch includes advanced NAT handling capabilities and it can be hosted also behind a NAT/router/firewall.

A VoIP server uses lots of different ports thus port based firewalls are not recommended (the built-in Windows firewall is enough since it can perform application level filtering).

If your are hosting the server on a private IP (inside your LAN), then you will need to allow (on your external firewall if any) and forward (on your router/NAT if any) all ports required for signaling and the RTP port range in case if you wish to allow inbound traffic from the public internet.

Paid license:

Contact our support if you are interested in a paid license as in this case the Mizutech support team can handle all the installation and configuration tasks for you for no extra costs.

MizuManage

All administration and monitoring tasks can be done from the MizuManage (MManage / MizuManagement) remote administration client. If you don’t already have this application installed, then you can download it from here:
https://www.mizu-voip.com/Portals/0/Files/MizuManagement_Setup.exe

For the Compact Edition MManage is always preinstalled. If you are using the Compact Edition then don’t use this download link! Also login is not required with the Compact Edition as this version will auto-login.

Quick Tip:
MizuManage can be used from your VoIP server itself but also remotely, so you can manage your server(s) from your PC.

Login to MizuManage:

· Server: address of the server (and database port followed after a comma if not using the default port)

· Instance: database name (“mserver” by default)

· Node: node number (only if you have multiple app service instances)

· Username: database username (“sa” by default)

· Password: database password

Example:

Server: 127.0.0.1

Instance: mserver

Username: sa

Password: srEgtknj34f

Quick Tip:
If you have multiple servers then you can name it in the „Server“ input by entering any name and then the server address in parenthesis. For example myserver (11.22.33.44)

MManage is a modular MDI application: you can open the varios forms from the left-side tree-view control or from the menu.

Nearly all forms can be filtered with the following filters:

· Quick filter: found in the top-left side in MizuManage. With the Quick filter you can search in almost any forms (Users, CDRs and others). For example type “44*” in the quick filter box then open the “CDR” 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 below the quick filter or from the Fields menu -> Filter -> Set direction filter. 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.

o   To export data from the application, use File menu -> “Save As”. A more advanced export tool can be accessed from File menu -> “Export/Import” or you can also use the SQL Management Studio if you have basic SQL skills.

o   From the “Control” menu you can Start/Stop/Restart your service or reload its configuration.

o   From the “Fields” menu you can manipulate the selected dataset (grids, etc).

o   Use the Config menu to setup your server.

Quick Tips:

o   You can filter almost any forms using the quick search, directions and date-time filter.

o   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.

o   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/or a hint if you hold the mouse over a control.

o   The Mizu softswitch will automatically configure its NAT handling based on the circumstances and the settings you provide on the configuration wizard “Network” page.

o   Take special attention for the Bind IP setting if your server has multiple IP’s assigned.

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

o   It is recommended to set the SIP signaling listening port to 5060 (this is the standard for SIP and set by default)

o   It is recommended to set the main API port to 80 (Set to 8080 if some other app is already using port 80 on your box such as a web server) and port 443 for secure access (in this case you will need to set also a domain name)

Make sure that no other apps are using these ports (stop the IIS Web Server if not required). Otherwise you will need to configure the server with other (non-standard) port or use a separate IP address (Bind IP) for the VoIP server and the other apps.

If your server is behind NAT and you wish to access it from the internet, make sure to forward the required ports on you router (UDP 5060 for SIP signaling, UDP port range for RTP and TCP 80/443 for API, web access and other services). You can verify from Help menu -> Connectivity test.

o   We recommend to always assign a (sub)domain (such as sip.yourdomain.com) to your SIP server IP so lately you can easily change your server or IP address without the need for your customers to reconfigure their device. If you already have a domain name (for example for your web site) then a sub-domain can be obtained for free from your domain name provider (usually domain name providers has a web interface where you can manage your domain and add as many sub-domains as you need). A domain name is required also if you need secure access and protocol encryption (TLS/SIPS/WSS/HTTPS).

After you have finished with the configuration wizard you might have to continue with the following tasks:

o   add users: Access -> Users and devices -> Enduser

o   add your outbound routes and traffic senders: Access -> Users and devices -> Sip Proxy and Traffic Senders, Routing

o   fine-tune other settings: billing, blacklists, etc.

For more advanced options you can change global config options manually on the “Configurations” form. (Under the “Other” node in the tree view).

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).

You should restart the MManage app after the first service start (at first start it will populate the configuration database with various defaults, which are useful to be loaded by MManage).

Once the service was started, open the “Analyze” and “Logs” 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” node) and (double) click on Endusers.

You can apply various filtering using the already discussed quick filter (top-left) or use the “Type” dropdown-list (below the quick filter).

For registration details see the “Registrar” form below the “Monitoring” node.

Quick Tips:

o   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 then hit Enter. The quick filter will also search in other fields such as IP, name, email and others.

o   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

o   Try to right click on the “Users and devices” node in the main form tree view or the user type node from within the “Users and devices” form to see additional options.

o   You can list registered users by selecting the “Endusers” node and then the “Active” filter (below the Quick Filter) or right click on the users node and select “Registered”

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 to represent a SIP user (retail customers/company employees, known as “extensions” in PBX systems). Endusers can initiate and receive calls and they can also use multiple endpoints (softphone, IP PBX, ATA, etc) at the same time. 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 (inbound trunks) for example if you wish to achieve a wholesale business or to route traffic between various devices (servers, gateways, other SIP trunk providers). 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. These are your outbound trunks. 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. The trunk provider (where you send the traffic) might authenticate your traffic by your server IP address (in this case there is nothing to configure, just send your IP to the provider) or by SIP digest authentication (in this case set the provided username/password) or with other method (for example with a tech prefix).
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, go to 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:

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

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

o   Integrate the sign up capability into your web site or any application using the Mizu VoIP server 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. Multiple endusers can be added more comfortably from “Add Enduser” (or “Bulk generate” if you need many with random credentials)

Accounts

Accounts, DID numbers and extensions
In the Mizu server the user’s (Endusers) username field can be used for multiple purposes at the same time: as SIP username, auth username, WEB access username account id, extension id and DID number. It is also possible to assign a separate DID number(s) for an account (with the “Other number(s)” setting / TelNumber field).

Unless in other traditional PBX’s, in the MizuVoIP server 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 (Auth user name) and CallerID (User ID) for the users, then you can enter the Caller ID to the “Other numbers” edit box.

In case if you wish to get DID number(s) from a service provider, then configure the service provider as “Traffic Sender” user (usually with IP authentication) and then create enduser(s) with their Username set as the DID number(s). It is also possible to use the DID number for multiple users or to use multiple DID number by one enduser. This can be configured in the Routing or 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. If you need a more specific routing, use the “Routing” form.

Quick Tip:

You can buy real phone numbers for your endusers from providers like DIDx . Some carriers or VoIP trunk service providers might also provide real DID numbers for you for no extra cost if you terminate your traffic at them.

Outbound routing

Outbound routing setup is required if you would like to route the calls from the users (or inbound trunks/traffic senders) to other servers, gateways or carriers (for example calls to mobile and landline numbers). Outbound trunks can be defined as SIP servers in the Mizu VoIP server.

To configure outbound call routing all you have to do is to add SIP Server entries and configure routing to this server(s).

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 tech-prefix which can be entered in the “Tech Prefix” field. Others settings are rarely used. In case if your termination trunk requires digest authentication, see the below chapter .

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

Open the “Routing” form. At the “Routing patterns” (the left side of the Routing form) you have to define your pattern(s) which will restrict the condition when the actual route entries (from the right side) can be used. If all “Directory Definition” fields are empty and the time definition is set to “All times” then the patterns will match all calls.

For example if you will create only one pattern and don’t configure any additional rules (on the left side) and you will add one SIP server for the direction list (right side), then all your outbound traffic will go to that single SIP server.

You can create multiple “patterns” with any filters after your needs (caller, called prefix, time restriction, etc).
When a call arrives, the patterns will be searched in priority order (from highest/top to lowest/bottom) so usually you will need to set higher priority for the most specific patterns (where you have the most filters) and set lower priority for more general patterns (where you made the less filters, or you can create also a default pattern with no any filter to catch all the rest of your traffic).

On the “Destination Priority List” (right side of the “Routing” form) you will have to add one or more sip server or other user type for each routing pattern. If you add more than one route with equal priority, then you have load balancing, LCR or BRS (depending on the “Routing type” configuration or 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 check the routing guide .

In case if you wish to charge the users for calls and/or calculate your expenses, see the Billing section.

Quick Tips:

o   The routing will be considered only for outgoing calls. Calls to other users on the same server will be routed directly (skipping the routing rules)

o   Make sure to add all your outbound SIP servers to the routing, otherwise they will not be used at all.

o   When you create a new routing pattern, its Time Definition might default to “Disabled”. Change it to “All times” to enable your rule.

Outbound authentication

Usually for a B2B usage, uppers servers (your carrier or VoIP service provider) will setup IP based authentication. This is the favorite method for a trunk interconnection and in this case you don’t need to configure any authentication on your side (just send your VoIP server IP address to your service provider).
If your outbound server (where you are sending traffic) 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 “Functions” page and there you can find the “Authentication” grid. Here you can add the login details (multiple username/passwords can be used for your convenience). Then you might select “Username/password must match” from the “Authorization” drop-down list (if the option is available)

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.

Inbound routing

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. Traffic sender user entries are actually inbound trunks.

Usually you can use IP based authentication. For this, add the peer IP to the “Auth IP” field. Then the traffic sender software or service have to be configured with your server address to send traffic to you (IP:port or domain:port where port is usually 5060).

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 Tips:

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

o   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” form in the MizuManage.

If there are no CDRs, 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” 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 directory.

· 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”.

· In case if the logs doesn’t contain the SIP signaling details, enable the detailed logs first (Control menu -> Logs -> Set -> On), reproduce the problem and check the log files again

Monitoring

The Mizu server provides endless possibilities for monitoring both real-time and statistics. Some of the most important tasks 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 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.
Statistics can be exported as csv or html from File menu -> Save as. For other data formats you can use the Export/Import wizard.

Real time monitoring
Start the MSupervisor application to get notified about errors and malfunctions. (This application should be available in the start menu if you have installed the MizuManage). You can also set various alerts from the “Scheduled tasks” form.

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

CDRs (call detail records) can be listed by using the “CDR” 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 CDRs 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.

For advanced filtering and searching, use the “Set direction filer” option from Fields menu -> Filter.

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 CDRs where the called number begins with 44.

You can find more details about CDR record listings from this wiki .

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.

Billing

In case if you wish to provide landline/mobile call service for others, then you should also configure the billing/pricing.

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 settings which is calculated after the billing rules which you can configure on the “Price Setup” form.

It is important to realize that with the mizu server you don’t set pricing per user, but you define a pricing packet which can be applied to one or more users. A price packet can be also assigned directly to an user entry if your prefer this kind if logic (select a user and click on the “Billing” link which will switch to the “Billing” tab), however the preferred way is to work with the “Price setup” form instead to define billing packets which then can be assigned to one or more users and allows also other conditions (for example you can define a separate packet per tech prefix or a single packet for a group of users, or just one packet for all users (if you don’t set any filter for the packet in the “Applied for” section).

All the call rating can be configured on the “Price setup” form (under the “Billing” tree node).

A “packet” means billing rules and circumstances (when that packet have to be applied).

· 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. (Useful only if you have lots of packets)

· On the middle column you can define billing packets. For each packet define the followings:

o   Packet properties: type, billing step, etc

o   Applied for: the circumstances when this packet will be used such as caller, called, time, etc.
For example, you can specify an enduser packet for a group of users or a provider packet for a SIP server. Don’t specify any filter if you wish to be applied for all traffic.

There are two important packet “Type” (configurable for the packets in the middle column):

§ Enduser (caller) Cost: used to charge your customers.
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)

§ Provider (called) Cost: used to calculate your expenses

The difference between this is your profit.

· On the right column you define a list of prefix – cost to be applied for the current packet.

Enter or import your pricelist to be applied for 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).

The server will use the configured pricing in the following ways:

· Before each call it verifies if the prepaid user has enough credit to make the call and sets a call limit of the call depending on the user remaining credit (this call limit might be also recalculated during calls if the user initiates multiple simultaneous calls).

· After each call, it calculates the cost of the call and decrements the user credit accordingly for prepaid users. It will also calculate other costs if you defined it (such as the provider cost which you will pay for the call termination) and will store all these in the generated CDR

· Other billing related tasks such as accepting payments, pin-code management and maintenance

You can monitor the billing related activity in the following ways:

· CDR form: check the “costenduser”, “costprovider” and other billing related fields which will appear if you select the “All Fields” checkbox.

· Statistics form: select the “EP” (enduser price), “PP” (provider price) and other billing related checkboxes for details

· Reports and Invoices form: user payment related

The users can recharge their credits with various built-in methods:

· by pin code (recharge cards), calling cards (“Pincodes” form)

· PayPal (can be set from the “Configuration” form)

· http and database API

· credit transfer between users (from/to)

· postpaid/invoice (invoices form)

· ePayments, credit card payments by integration with a payment gateway. Any third party payment method can be added (see the database interface and http interface documentations or by extra customization/integration work by the Mizutech development team)

These payment methods are accessible for the endusers from:

· the built-in enduser web interface

· client applications (built-in the softphone)

· your own custom interface (using the softswitch http and/or database API)

· IVR

· SMS

· desktop, mobile or web applications

Read the Billing guide for more details.

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”.

Some of the features are implemented in multiple ways so you can select which better fits your needs.

This includes:

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

· call transfer: available as specified in SIP standards (by 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. More details…

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

· voice recording: means the capability to record calls. Explained here .

· 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

Access numbers

You can setup your calling card or callback business by using any service 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

The IVR module can be 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 with lots of possibilities such as dtmf handling, voice announcements, text to speech, call forward and many more.

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 .

Voice recording

Call recording can be toggled on/off globally or per user.

Enable/disable globally from Config menu -> Configurations -> Recording -> Calls.

Enable/disable recording per users from the Users and Devices form -> Functions tab -> Voice recording checkbox.

Recorded calls can be listened (played) or exported (as wav or mp3) from the CDR form.

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

More details can be found here .

WebPortal

The server has a built-in web interface (enduser control panel) usually listening on HTTPS 443 and/or HTTP port 80 or 8080 (as you have configured the main API port for your service), accessible as: http://serverdomainorip/webvoip

or http://serverdomainorip:port/webvoip

The portal can be used by endusers, resellers, traffic senders and callshops to manage their account.

Login with any valid user account. For the customization options login as an admin user (load or create any admin user from MizuManage Users and devices form).

Note: this portal is not a full website. The webportal is an optional module which you might deploy only if you are working with retail customers. You can integrate it with your existing website if needed (simple way: just put in an iFrame and if users are already logged in on your website, you can automate the login also to this control panel, so users will not have to type their credentials again; There are several options to customize the colors to match you design). The control panel will display different content depending on the logged in users and can be also used:

· as a callshop interface

· by your business customers (traffic senders)

· by administrators for basic tasks

Optionally you can rewrite our webportal to match your needs (The portal was written in C++. Request source code from support) or write your own portal and use the http and/or database API. You will find the documentation here .

If you already have a website, then you can easily integrate it with VoIP capabilities using the above mentioned methods. You can also use MizuTech website template if you don’t already have a website and you don’t have any knowledge or web developer to build your own.

Note: The webportal is not available for the Compact Edition.

Reseller

Resellers typically will use the web frontend for all their activity. First you should login on the web interface with as an admin user (you can create admin user from MManage “Users and devices” form). First edit the portal settings after your needs then create one or more “top” resellers. Then these resellers can login and create its own sub-resellers after they have created their tariff list(s).

Callshop

To create a “callshop owner” open the “Users and devices” form in the MizuManage and create a new Enduser then from the “Functions” tab tick the “Is Callshop” checkbox. From now the user can login on the web user interface, create its cabins (which are actually represented as sub-endusers) and monitor it’s cabins activity.

WebRTC

The Mizu VoIP server can also accept WebRTC connections such as webphone , sipml5 or SIP.JS , which you can use to initiate plugin-less calls from browsers to implement services such as click to call .

The WebRTC includes all components for full WebRTC SIP protocol conversion such as Websocket, ICE, STUN ,DTLS/SRTP, auto TLS certificate and built-in TURN service.

To enable WebRTC just select the “WebRTC” module on the Server configuration wizard -> Roles and features page. Once this is enabled, go to the Help -> “Client configuration” menu to find out the exact configuration details to be used in WebRTC clients.

Push notifications

The Mizutech SIP server has support also for VoIP push notifications. This is a useful feature to improve the availability of mobile SIP clients by sending a push notification on incoming call or text message which will wake-up the client app, thus the call/chat can be delivered even if the app is closed or the device is sleeping.

Follow this documentation to enable push notification and integrate push support into your Android/iOS/Web app.

SMS

Provide SMS services to your users by interconnecting with an SMS provider capable to provide a HTTP API or connection via SMPP. For this just set the smsurl global config option or create SMS GW trunks from the Users and devices form 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 with SMS capable DID number(s).

Wholesale/Transit

You can quickly start a whole-sale, transit or sip trunk business using the Mizu VoIP server.

In this use-case you are going to terminate traffic for others and/or send traffic to a carrier or SIP trunk.

If you just need to route traffic from A to B, then:

1. Create a Traffic Sender account for A with IP based authentication (“Users and devices” form). This is from where you will receive the traffic.

2. Create a SIP server account for B (“Users and devices” form). This is where you will send the traffic (another SIP trunk, carrier or gateway)

3. Add the SIP server account to your routing (“Routing” form)

4. Define pricing for A and B so you can generate billing reports and monitor your revenue (“Price Setup” form)

Done, you are ready to accept traffic now from A.

Add more traffic senders and/or SIP servers after your needs.

For example you might find good prices to destination X at a carrier, but for destination Y another carrier would be more optimal.

In this case just add both of them to your routing and define routing rules to decide which traffic to send in which direction.

SIP clients

The softswitch is compatible with any SIP, WebRTC and H.323 endpoints such as webphones, softphones and IP phones, offering rich media and collaboration capabilities such as voice, video, chat, file-transfer, fax, presence and others.

Optionally you can use the Mizutech webphone, softphones, mobile clients and SIP SDK’s. 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 customers with your name, logo, icon, branding, links and many options.

· Browser webphone

· Windows softphone

· Android softphone

· iOS softphone

· Symbian dialer

· Other softphones

· SIP SDK

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.

Integration

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

· use any third party SIP, WebRTC or H323 softphone or device (in softphone settings, just type your server domain or IP and a valid enduser username/password)

· use it with any third-party SIP proxy, SBC or Load Balancer (these are required only if you have some specific needs, otherwise the softswitch doesn’t require any SBC or proxy)

· webportal integration with your website

· its standard SQL database access and API can be used to integrate with existing website or software

· export/import any data (such as VoIP users) from the SQL Management studio or from MizuManage Export/Import wizard

Backup

All data is stored in the database, so you have to make sure that you always have a working backup for it. A nightly backup to some other PC on the LAN is an affordable solution for this (depending on your business requirements).

If you are using the compact edition, then all you need to do is to copy the mserver.sdf file.

If you are using the full version then you can setup scheduled backup or (nearly) real time log shipping from SQL Server Management Studio or alternatively the Mizu Server can schedule your backups (see the detailed documentation).

The VoIP server also has integrated built-in backup capabilities which can be activated by a few clicks from the configuration wizard.

To clone a VOIP server, just backup its database and restore it on your new server. Also install the VoIP server software (or copy the old directory) and make sure that your vserver.ini points to the new database.

The only setting that must be changed is the local IP global config option. For more details check the cloning guide .

If you migrate the application to another server a new license file might be needed from Mizutech.

For the compact edition all data is stored in a file named “mserver.sdf”. You just have to copy that file to backup your server.

High Availability

The mizu server implements multiple HA methods. We don’t discuss this in this short tutorial, but you can find all the details here:

General description

VoIP service HA

VoIP database HA

Failover

Load balancer

Security

The mizu server is a highly secure VoIP service, which can be used also by service providers to offer VoIP services over the public internet.

A detailed description about security features can be found here .

Usage

Other ideas you can do with the VoIP server:

· Retail business by offering VoIP services for people

· Call transit and call termination businesses

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

· Setup VoIP encryption and tunneling to be able to bypass any NAT, firewall, proxy by using VoIP over encrypted UDP, TCP or HTTP. Just enable the “Encryption” module from the config wizard for this and use our softphones (all has built-in support for encryption or tunneling) or third party software/hardware via the mtunnelclient

· Setup number portability as described in the documentation

· 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

· Setup a PayPal account to let users to pay for your service (add prepaid user credit). See the “PayPal” section in the documentation.

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

· VoIP calls for IoT devices (embedded systems, hotels, smart homes, etc)

· Offer a branded softphone to your endusers covering all the popular platforms: Web, Windows, iOS, Android and others

· And many others

Common terms

The following abbreviations are often used in this document and worth to known their meanings:

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

· H323: is an ITU recommended standard which is currently mostly replaced by SIP

· 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)

· Enduser: Can represent your endusers (customers) or VoIP client devices (same as “Extension” in other systems)

· 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.

· Routing: define where to send/forward outbound calls (“Routing” form)

· 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 Admin Guide and other server related documentations on our website .

If you are a paid customer or plan to purchase a license, contact serversupport@mizu-voip.com for any help. Install, configuration, training and support services are included in our pricing so no extra payment is required for these.

If you are using one of our free products, please post your questions to the forum .

Copyright © Mizutech SRL