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. 14
Access numbers. 14
IVR setup. 14
Voice recording. 15
WebPortal 15
WebRTC. 16
Push notifications. 16
SMS. 16
Wholesale/Transit 17
SIP clients. 17
Integration. 18
Backup. 18
High Availability. 19
Security. 19
Usage. 19
Common terms. 20
Resources. 20
·
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.
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)
Note: the compact edition can‘t be accessed remotely.
If you are using the compact version then there is no need to enter the above login
details as it should login automatically using the local database.
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.
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.
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
separate DID number(s) for an account (with the “Tel Number(s)” setting).
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 “Tel 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 “Tel Numbers” edit box (Users and devices form, Settings page). More than
one users can share the same DID number: simply add it to the required users as
“tel 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 and/or the domain field correctly on the Settings page. Some carriers require
the usage of a tech-prefix which can be entered in the “Tech Prefix” field. You
might also change the port and transport protocol settings if the SIP server
requires others then the defaults (port 5060 on UDP). Other settings are
rarely used. In case if your termination trunk requires digest authentication,
see the below
paragraph.
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 -> Settings
page.
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.
You can manipulate number format, SIP headers
or the Caller-ID from the following settings:
·
Users and devices form: caller-id,
username, tel 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
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.
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.
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.
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.
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
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.
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
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
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)
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