Download as pdf or txt
Download as pdf or txt
You are on page 1of 629

It is IMPORTANT to note that this manual is compilation of

articles from our main data source: http://wiki.kolmisoft.com and current


info in this manual can be outdated.

In order to get newest info please use online wiki.

Kolmisoft 2006-2013

Contents
MOR X4 new features ........................................................................................................................ 6
Introduction ................................................................................................................................... 47
Who is this product designed for .................................................................................................... 47
Supported Business Models ........................................................................................................... 48
How to make first call ................................................................................................................... 48
Concepts/Definitions ....................................................................................................................... 55
MOR Terminology......................................................................................................................... 55
Billing Concepts ........................................................................................................................... 59
Billing Logic ................................................................................................................................. 60
Call explained .............................................................................................................................. 61
E.164
................................................................................................................................. 62
Rounding ................................................................................................................................. 62
Multi-Tax system ......................................................................................................................... 62
What is a PIN? ............................................................................................................................. 65
ASR/ACD ................................................................................................................................. 66
Margin and Markup ...................................................................................................................... 66
What are callgroups and pickupgroups ............................................................................................ 67
Balance and Credit ....................................................................................................................... 68
Why amounts are without VAT? ..................................................................................................... 69
Local Calls ................................................................................................................................. 69
Prepaid Logic ............................................................................................................................... 71
Authentication ............................................................................................................................. 73
Fax over VoIP .............................................................................................................................. 75
Configuration from GUI ................................................................................................................... 77
ReCAPTCHA................................................................................................................................. 84
Payments configuration ................................................................................................................ 89
Default device settings ................................................................................................................. 95
Default user ................................................................................................................................ 97
Accountant permissions ................................................................................................................ 98
Logo change ............................................................................................................................... 100
Currencies ................................................................................................................................ 101
Translations ............................................................................................................................... 104
Global date format ...................................................................................................................... 106
Remove Manual link from admin GUI ............................................................................................. 107
Voicemail ................................................................................................................................ 107
Multi Server support .................................................................................................................... 112
Email settings ............................................................................................................................. 116
Number Manipulation ..................................................................................................................... 121
Localization ................................................................................................................................ 121
Provider Rules ............................................................................................................................ 127
DID handling by Localization ........................................................................................................ 131
Users ........................................................................................................................................... 139
User Details ............................................................................................................................... 139
Warning balance ......................................................................................................................... 141
User Blocking ............................................................................................................................. 142
Blocking
................................................................................................................................ 144
Hide Users ................................................................................................................................ 146
Why MOR does not allow to delete users ........................................................................................ 148
How to create User and Device ..................................................................................................... 149
How to change Admin details........................................................................................................ 149
MOR forgot user password ........................................................................................................... 150

Kolmisoft 2006-2013

Minimum contract billing .............................................................................................................. 152


Tariffs .......................................................................................................................................... 153
Directions and Destinations .......................................................................................................... 153
Destinations Groups .................................................................................................................... 154
Block some Destination to User .................................................................................................... 155
Day setup ................................................................................................................................ 158
Entering Rates for Wholesale Tariff ................................................................................................ 159
Rate import from CSV.................................................................................................................. 163
Wholesale Tariff .......................................................................................................................... 173
Entering Rates for Retail Tariff ...................................................................................................... 175
Advanced Rates .......................................................................................................................... 177
Custom Rates ............................................................................................................................. 180
Tariff Transformation ................................................................................................................... 181
Make Retail Tariff from Wholesale Tariff explained ........................................................................... 182
Devices ........................................................................................................................................ 184
Extension lines ........................................................................................................................... 193
Ring several devices at same time ................................................................................................ 193
How to create User and Device ..................................................................................................... 194
Trunks
................................................................................................................................ 194
CLIs (Incoming CallerIDs) ............................................................................................................ 195
ANI/CLI ban system .................................................................................................................... 196
Duplicate call prevention .............................................................................................................. 199
Allow loss calls ........................................................................................................................... 199
Device groups ............................................................................................................................ 200
Call Flow
................................................................................................................................ 201
Which codecs should I choose for devices ...................................................................................... 206
Change Audio/Video Codecs priority .............................................................................................. 209
Authentication ............................................................................................................................ 210
Providers ...................................................................................................................................... 219
Failover provider ......................................................................................................................... 225
Terminators ............................................................................................................................... 226
Provider with several IP ............................................................................................................... 226
Provider connection testing .......................................................................................................... 227
H323 Provider settings ................................................................................................................ 228
Provider with ANI ........................................................................................................................ 228
Configure Provider which can make calls ........................................................................................ 230
Configure Provider with dynamic IP ............................................................................................... 230
Simultaneous call limitation .......................................................................................................... 232
NO ANSWER/BUSY interpretation for providers ............................................................................... 235
Call Routing .................................................................................................................................. 256
LCR
................................................................................................................................ 256
LCR Logic ................................................................................................................................ 258
Call Routing by price ................................................................................................................... 260
Call Routing by priority (Manual LCR) ............................................................................................ 261
Call routing per destination basis .................................................................................................. 263
How to route call to specific Destination through specific Provider ..................................................... 266
LCR/Tariff change based on call prefix ........................................................................................... 267
Prefix finder ............................................................................................................................... 269
Routing by Percent ...................................................................................................................... 270
Why call was not routed through other provider/trunk? ................................................................... 272
DIDs ............................................................................................................................................ 274
DID Management ........................................................................................................................ 274
Assign DID to Trunk .................................................................................................................... 284
Kolmisoft 2006-2013

Work flow for DID ....................................................................................................................... 286


DID Billing ................................................................................................................................ 287
DIDs Usage ................................................................................................................................ 291
Personal DIDs............................................................................................................................. 291
DID with VoxBone using his URI ................................................................................................... 296
Forward DID to External Number .................................................................................................. 297
How to charge DID on a monthly basis .......................................................................................... 297
DID handling by Localization ........................................................................................................ 298
DID Blocking .............................................................................................................................. 299
Dial Plans ................................................................................................................................ 299
Authorization by ANI ................................................................................................................... 303
Calling Card Dial Plan .................................................................................................................. 306
Callback Dial Plan ....................................................................................................................... 308
IVR Dial Plan .............................................................................................................................. 310
Accounting .................................................................................................................................... 311
Invoices
................................................................................................................................ 316
Credit notes ............................................................................................................................... 327
Payments ................................................................................................................................ 330
Vouchers ................................................................................................................................ 333
Flat-Rates ................................................................................................................................ 336
Reporting...................................................................................................................................... 337
Active Calls ................................................................................................................................ 337
Last Calls ................................................................................................................................ 341
Users Calls ................................................................................................................................ 344
Users Finances ........................................................................................................................... 345
DIDs Report ............................................................................................................................... 345
Loss Making Calls ........................................................................................................................ 346
Providers Statistics...................................................................................................................... 346
Providers Calls ............................................................................................................................ 348
Aggregate ................................................................................................................................ 349
First Activity ............................................................................................................................... 351
Quick Stats ................................................................................................................................ 351
Simultaneous Calls stats .............................................................................................................. 354
Calls by Source ........................................................................................................................... 355
Login Stats ................................................................................................................................ 356
Profit Stats ................................................................................................................................ 357
Country Stats ............................................................................................................................. 357
Google Maps integration .............................................................................................................. 359
Balance in phone ........................................................................................................................ 360
Privacy to hide Destination ends ................................................................................................... 362
Troubleshooting ............................................................................................................................. 364
Action log ................................................................................................................................ 364
User actions ............................................................................................................................... 367
Call Tracing ................................................................................................................................ 367
Integrity Check ........................................................................................................................... 375
Hangupcause Codes .................................................................................................................... 377
Hangupcause Sounds .................................................................................................................. 379
Different code send to User compared to received from Provider ....................................................... 380
Call Info
................................................................................................................................ 381
SIP debug info ............................................................................................................................ 383
Asterisk CLI ............................................................................................................................... 384
MOR's Core version ..................................................................................................................... 386
Lots of calls made by System Admin user ...................................................................................... 386
Kolmisoft 2006-2013

Maintenance ................................................................................................................................. 387


Lost MOR GUI admin password ..................................................................................................... 388
Where I can get my serial key from ............................................................................................... 388
Testing ......................................................................................................................................... 388
VoIP Bandwidth Calculator ........................................................................................................... 388
Payment gateways ......................................................................................................................... 389
Other functionality ......................................................................................................................... 400
IVR system ................................................................................................................................ 400
IVR Greeting for DID ................................................................................................................... 407
Voicemail ................................................................................................................................ 409
Dial Local ................................................................................................................................ 414
PBX Function External DID ........................................................................................................... 418
Ring-Groups ............................................................................................................................... 420
Fax2Email ................................................................................................................................ 423
PhoneBook ................................................................................................................................ 427
Speed Dials ................................................................................................................................ 429
Backup system ........................................................................................................................... 431
Data import................................................................................................................................ 433
CDR Import ................................................................................................................................ 435
CDR Rerating ............................................................................................................................. 440
Online registration ...................................................................................................................... 442
Online registration customization .................................................................................................. 444
Quick Forwards ........................................................................................................................... 444
Quickforwards rules..................................................................................................................... 447
Transfers with MOR ..................................................................................................................... 449
GUI on Mobile Devices ................................................................................................................. 450
PBX connection to MOR................................................................................................................ 451
MOR API
................................................................................................................................ 462
Cron actions ............................................................................................................................... 467
MOR Addons ................................................................................................................................. 469
Calling Cards Addon .................................................................................................................... 469
Callback Addon ........................................................................................................................... 508
Auto-Dialer Addon....................................................................................................................... 521
Reseller Addon ........................................................................................................................... 528
Reseller Pro Addon ...................................................................................................................... 533
Manual for Resellers .................................................................................................................... 535
SMS Addon ................................................................................................................................ 546
Recordings Addon ....................................................................................................................... 548
Mobile Number Portability Addon .................................................................................................. 553
Payment Gateway Addon ............................................................................................................. 555
Monitorings Addon ...................................................................................................................... 580
Call Shop Addon ......................................................................................................................... 592
Provider billing addon .................................................................................................................. 610
Tutorials ....................................................................................................................................... 612
Usual configuration sequence ....................................................................................................... 612
How to configure 911 service ....................................................................................................... 618
How to make several connections from one IP ................................................................................ 620
How to forward calls when device is offline ..................................................................................... 624
How to be secure using MOR ........................................................................................................ 625

Kolmisoft 2006-2013

MOR X4 new features


Alerts
Description
Alerts functionality dedicated to take some actions about issues in your system which may cause
a problem. You may block User, disable Provider, change LCR for User or simply send a
notification to specified Group of Contacts.
You are able to follow these parameters:

ASR Answer-Seizure Ratio.


ACD Average Call Duration.
PDD Average Post Dial Delay. The time between punching in the last digit of a
telephone number and receiving a ring or busy signal.
TTC (Time to Connect)(DURATION-BILLSEC) Average time between receiving a ring
signal and answer to the call.
BILLSEC Sum of calls bilsec.
TOTAL CALLS Sum of all calls.
ANSWERED CALLS Sum of answered calls.
NOT ANSWERED CALLS Sum of not answered calls (FAILED, BUSY, NO ANSWER).
SIMULTANEOUS CALLS Number of simultaneous calls (only applies to users).
PRICE SUM Sum of calls price (only applies to users and providers).

And it is possible to make actions for these types of MOR Objects or send notification about it:
Users
o All
o Postpaid
o Prepaid
o One User
Providers
Devices
Destinations
o One Destination by prefix.
o Few Destinations by prefix and % sign. Eg. 93%, 3706% and so on.
Destinations Groups

Kolmisoft 2006-2013

Usage
Go to ADDONS > Monitorings > Alerts
Here you can see list of all created Alerts and their main information like is Alert active? When
it was Raised/Cleared last time? What value was at Alert/Clear...

Click on
Alert.

Add new Alert link to create an Alert or click on

Kolmisoft 2006-2013

icon to change settings of existing

You will see a window like this:

General

Object Type select which Object you want to follow.


Object Name pecify name/prefix of Object.
Parameter choose which parameter should be followed.
Alert Type ABS means that absolute data values will be taken from specified time
period.
Ignore if Calls <= indicate calls sum when system should ignore Alert if calls sum is less
than written.
Ignore if Calls >= indicate calls sum when system should ignore Alert if calls sum is
more than written.
Group to Notify select Group of Contacts who should be informed about Alert/clear.

Kolmisoft 2006-2013

Alert

Alert if <= indicate Parameter value when system should raise Alert if value is less than
written.
Alert if >= indicate Parameter value when system should raise Alert if value is more
than written.
Disable Object check if you want to disable selected Object on Alert.
LCR on Alert select LCR which one should be used after Alert
Notify On Alert via Email check if you want that specified Group will receive an email
notifications about Alerts.

Clear

Disable Clear when alert is raised, it will never be cleared.


Clear if <= indicate Parameter value when system should Clear Alert if value is less than
written.
Clear if >= indicate Parameter value when system should Clear Alert if value is more
than written.
Enable Object check if you want to enable selected Object on Clear.
LCR on Clear select LCR which one should be used after Clear.
Notify On Clear via Email check if you want that specified Group will receive an email
notifications about Clear.

Period
You can select different time periods for each alert.
Note: period has no effect when parameter SIMULTANEOUS CALLS is chosen.
Comment additional notes.

Examples
Send notification and change LCR on Alert
Parameter: TOTAL CALLS
Object Type: User
Object Name: Prepaid
Alert if >=: 300
Clear if <=: 200
LCR on alert: secondary LCR
LCR on clear: Restore Original
Group to Notify: support group
Notify on Alert via Email: checked
Period: 1h
Kolmisoft 2006-2013

This Alert monitors all Calls done by Prepaid Users. If a Prepaid User makes more than 300 Calls
during one hour period, his LCR will be changed to secondary LCR and Email notification will be
sent to every contact on support group.
If User's Call count drops below 200 calls during one hour period, his LCR will be restored to
original LCR
Block user when simultaneous calls are detected
Parameter: SIMULTANEOUS CALLS
Object Type: User
Object Name: All
Alert if >=: 2
Group to Notify: administration
Notify on Alert via Email: checked
Disable Object: checked
Disable Clear: checked
This Alert monitors simultaneous calls done by all Users. If a User makes more than (or equal
to) 2 simultaneous Calls to the same destination, his account will be suspended and Email
notification will be sent to every contact on administration group. This alert will no be cleared
automatically and user will stay suspended even if no more simultaneous calls are present.

False ANSWER
Description
If you are using GREY routes (not legal) be ready to experience false Answer or false RING.
Shortly it is FAS. FAS is commonly referred to as False Answer Supervision and for a
regular user this phenomenon means incorrect extra billing of calls: the billing starts earlier
than the called party actually picks up the phone.

False ANSWER
That means that in some way between caller and callee some "grey" provider answers the call but
still plays ringing sounds to fake the call.

Kolmisoft 2006-2013

10

The call will be marked as ANSWERED but in reality nobody will answer.
To avoid this - talk with your provider or use "white" routes.

False/Fake RING
When caller presses dial button - he immediately hears ringing signal - this is Fake (False) Ring.
One of the providers in the chain are generating it.
Solution - talk to provider to fix this or change provider.
Why it happens only sometimes - because call is routed through bad provider using different
rules - sometimes all others are busy, sometimes it is cheaper and so on - that's Least Cost
Routing or similar technology - in short - call is not routed over bad provider all the times.
MOR has function to set Fake Ring per device basis.

FAS Control from GUI


Go to SETTINGS > Setup > Settings
Click Functionality tab and here you are able to set FAS control settings for Active Calls:

Kill Call if PDD more than set this value if you want to terminate calls that have high
pdd value (this could indicate a bad quality of provider). Zero value means that FAS
control functionality is off.
Kill Call if PDD less than set this value if you want to terminate calls that have low pdd
value (this could indicate that provider uses FAS). Zero value means that FAS control
functionality is off.

NOTE: PDD will be checked when the Call is Answered.


Kolmisoft 2006-2013

11

Useful to know
Betamax
This is very often happens with Betamax company group providers: http://backsla.sh/betamax

Voice Trading
http://www.voicetrading.com/
This provider supports 3 quality routes:

Dialing number in E164 format: GREY


Prefix 00: STANDART
Prefix 000: PREMIUM

GREY plan has FALSE ANSWER problem.

Call Queues
Description
Call queue is a feature that allows an unlimited number of callers to wait for an available sales
representative or for resources to become accessible to assist them. This allows you to provide
each customer with the same quality service. In addition, it ensures your customers wont end up
in voicemail.
Queues consist of:

Incoming calls being placed in the queue.


Members that answer the queue (extensions or users that login as agents).
A strategy for how to handle the queue and divide calls between members.
Music played while waiting in the queue.
Announcements for members and callers.

Usage
Queue Options
Queue Name name of Queue.
Assigned DID(s) quantity of DIDs, which are assigned to current Queue.
Extention a short number by which this queue can be reached; must be unique in the
Kolmisoft 2006-2013

12

system.
Server allows to choose server in multiple servers system. Server id on which server queue
application will be executed.
Ring Strategies Calls are distributed among the members handling a queue with one of
several strategies:

ringall: ring all available channels until one answers (default)


roundrobin: take turns ringing each available interface
leastrecent: ring interface which was least recently called by this queue
fewestcalls: ring the one with fewest completed calls from this queue
random: ring random interface
rrmemory: round robin with memory, remember where we left off last ring pass

Queue Weight for comparing with other queues, higher weights get first shot at available
channels when the same channel is included in more than one queue.
Autofill makes sure that when the waiting callers are connecting with available members in a
parallel fashion until there are no more available members or no more waiting callers.
Skip Busy Agents lets do not send calls to members whose devices are known to be 'in
use'(Note: only the SIP channel driver currently is able to report 'in use').
Fail Over Actions set action what to do after Queue:

Hangup
Transfer to Extension
Transfer to DID
Transfer to Device

Agent Options
CID Name Prefix The CID Name Prefix is used to prefix the caller ID of callers in the queue with
the value entered in this field. This is often used when agents are members of multiple queues so
that they know which department a person has called (for example, a CID may be prefixed with
"Sales" or "Tech Support").
Report Hold Time If you wish to report the caller's hold time to the member before they are
connected to the caller, set this to yes.
Agent Announcement An announcement announce may be specified which is played for
the member as soon as they answer a call, typically to indicate to them which queue this call
hould be answered as, so that agents or members who are listening to more than one queue
can differentiated how they should engage the customer
Agent Delay If you wish to have a delay before the member is connected to the caller (or

Kolmisoft 2006-2013

13

before the member hears any announcement messages), set this to the number of seconds to
delay.
Agent Timeout This timeout specifies the amount of time to try ringing a member's phone
before considering the member to be unavailable.
Retry How long do we wait before trying all the members again?
Wrap-Up-Time After a successful call, how long to wait before sending a potentially free
member another call (default is 0, or no delay)
Allow hangup by * allow callee to hang up by pressing

Static Agents
To add Static Agent click on Add new Static Agent link and choose Device and Penalty.
Penalties
Queue members can be defined as having a penalty - e.g. member => SIP/200,1 member =>
SIP/201,2 member => SIP/202,3 member => SIP/203,2 If the strategy is defined as 'ringall', then
only those available members with the lowest priorities will ring. In the example above, if 200 is
not busy, then only 200 will ring. If 200 is busy, then only 201 and 203 will ring. If 200, 201 and
203 are busy, then 202 will ring.
NOTE that if extension 200 does not pick up it will not automatically go to extension 201. It will
keep ringing 200 until they pick up. It will only go to the next extension if the current extension is
either busy or unavailable.

Caller Options
Max Callers Maximum number of people waiting in the queue (0 for unlimited).
Join Announcement The Join Announcement drop-down menu is used to select a sound file
to be played back to the caller before they are dropped into the queue. This file must be prerecorded or uploaded to the system. This announcement is optional, but will usually state that
the caller is being placed into a queue, and that their call will be answered in priority sequence.
Ringing instead of MOH ring instead of playing MOH.
Music On Hold Class Musicclass sets which music applies for this particular call queue.
Ring at once when Agent is ringing stops MOH and rings once an agent is ringing (Asterisk
Trunk).

Kolmisoft 2006-2013

14

Join Empty This setting controls whether callers can join a queue with no members.

paused - a member is not considered available if he is paused


penalty - a member is not considered available if his penalty is less than
QUEUE_MAX_PENALTY
inuse - a member is not considered available if he is currently on a call
ringing - a member is not considered available if his phone is currently ringing
unavailable - This applies mainly to Agent channels. If the agent is a member of the queue
but has not logged in, then do not consider the member to be available
invalid - Do not consider a member to be available if he has an "invalid" device state. This
generally is caused by an error condition in the member's channel driver.
unknown - Do not consider a member to be available if we are unable to determine the
member's current device state.
wrapup - A member is not considered available if he is currently in his wrapuptime after
taking a call.

Leave When Empty if you wish to remove callers from the queue when new callers cannot join,
set this setting to one of the same choices for 'Join Empty' described above.
Allow hangup by * allow caller to hang up by pressing *
IVR Brake-Out Menu A context may be specified, in which if the user types a SINGLE digit
extension while they are in the queue, they will be taken out of the queue and sent to that
extension in this context.
Max Wait Time 'timeout' sets the time in seconds that a call will wait in the queue before it is
routed to the next priority in the dialplan. It defaults to 300 seconds (5 minutes).

Caller Announcements
Repeat Frequency How often to announce queue position and/or estimated holdtime to caller.
Min. Announce Frequency The absolute minimum time between the start of each queue
position and/or estimated holdtime announcement This is useful for avoiding constant
announcements when the caller's queue position is changing frequently (see announcefrequency).
Announce Position Queue position announce? Valid values are "yes," "no," "limit," or "more." If
set to "no," then the caller's position will never be announced. If "yes," then the caller's position in
the queue will be announced to the caller. If set to "more," then if the number of callers is more
than the number specified by the announce-position-limit option, then the caller will hear that
there are more than that many callers waiting (i.e. if a caller number 6 is in a queue with the
announce-position-limit set to 5, then that caller will hear that there are more than 5 callers
waiting). If set to "limit," then only callers within the limit specified by announce-position-limit
will have their position announced.
If you have specified "limit" or it "more" for the announce-position option, then the following
value is what is used to determine what announcement to play to waiting callers. If you have set
Kolmisoft 2006-2013

15

the announce-position option to anything else, then this will have no bearing on queue
operation.
Announce Hold Time Should we include estimated hold time in position announcements?
Either yes, no, or only once. Hold time will be announced as the estimated time, or "less than 2
minutes" when appropriate.
Round Seconds What's the rounding time for the seconds? If this is non-zero, then we
announce the seconds as well as the minutes rounded to this value.

Periodic Announcements
This block allows a message like "Thank you for holding, your call is important to us." to be
played at regular intervals while a caller is in the queue.
Repeat Frequency How often to make any periodic announcement (see periodic-announce)
Random Should the periodic announcements be played in a random order? Default is no.
Relative If set to yes, the periodic announcment frequency will be timed from the end of each
announcment rather than from the start of each announcment. This defaults to off.
Announcment sound message

Vizualization

From Reseller/Reseller PRO


Reseller/Reseller PRO is not able to use Queue functionality.

Kolmisoft 2006-2013

16

From Accountant
Accountant can manage Admins Queues if there are set Manage Queues permission in
Accountant permissions.

Not supported additional functionality

Dynamic Agents (users who can login/logout to/from queue)


Queue usage statistics

Such functionality is not planned, because MOR is not proper solution for Call Center
environment with high-load. Queues in MOR are mainly for small office use.
This can change due to high-demand from our Clients.

Music on Hold
Description
It is recorded music being played to fill the silence that would be heard by telephone callers who
have been placed on hold. It is especially common in situations involving customer service. Any
caller will hear music if it is set so.

Who can configure and use Music on Hold?


Only admin can configure Music on Hold, create, update and delete sounds.

Usage
Go to ADDONS > PBX functions > External DIDs > Music On Hold.
Here you can see the list of current sound files added which will be played while the caller is
on hold:

Kolmisoft 2006-2013

17

To create new record, click

Add new and type in name, description, choose ivr sound files

folder and select if files in that folder are played randomly or in order:

You can also change details by clicking

icon and delete music on hold by clicking

icon.

When you have created Music on Hold, you can now assign the selected class to a Queue. Simply
go to Settings > DIDs > PBX functions > Queues and assign class by selecting it from
dropdown in Caller Options section:

Server is overloaded
Description
MOR constanty monitors it's servers for various performance stats:
Hard disk IO
CPU
MOR according to the complexity of the task may sometimes not allow you to do some tasks
during high workloads with this error message:
Server is overloaded, please try later.
This means that your server(-s) are busy and you should retry the tasks later.
Kolmisoft 2006-2013

18

Protection against high loads is implemented in all statistics pages.

Configuration
Go to SETTINGS > Setup > Settings
Click on Server load tab and you will see settings:

Here you can set parameters which defines when Server is overloaded. Those Settings will be
applied to GUI and Database Servers. Set 0 if you want to disable checking.

Blacklist functionality
Description
Blacklist functionality Dynamic Routing based on smart logic which puts a 'score' on the call by
its SRC, DST or RTP IP and allows routing call with high score over different route. This
functionality gives you an ability to define LCR as Blacklist Providers group. These Providers
works like any other Provider in MOR system. MOR reroutes all the calls, that have a score more
than a defined threshold, to this Blacklist LCR.

Kolmisoft 2006-2013

19

This functionality is useful when system owner wants to route 'suspect' calls through different
route than 'normal' calls.
Example: calls from such countries as Nigeria, Sudan, etc, based on their IP/CallerID can be
marked as 'suspects' and routed to some IVR or to the dead-end.

Configuration
You can manage

Single User settings in User Details


Global settings in ADDONS > Monitorings > Settings

Blacklist Feature enabled enables Blacklists functionality in all system.


Default Blacklist LCR LCR with Balcklist Providers.
Default Routing Threshold sum of SRC, DST and RTP IP limit. If SRC, DST or RTP IP scores
sum, received during the call, is bigger than Defaullt Threshold, call will be routed through
selected Blacklist LCR.
Default scores Default scores of SRC, DST or RTP IP. There will be cases where MOR will not
find a score for a given SRC, DST or RTP IP. In each of the cases MOR will add the missing values
from these settings.
Use default blacklisting rules check this to use Blacklisting Script for SRC, DST or RTP IP
scoring.
Kolmisoft 2006-2013

20

This feature is designed to stop the score manipulation done by the blacklisting script
(Intelligence). This feature is used in the situation where we want to disable the score number
manipulation done by the blacklisting script but still keep the blacklist functionality.
As an example, maybe we will notice in the future that we have incorrectly setup the blacklisting
script rules and as a result we are getting some false positives into our blacklist. In this case we
don't want to completely disable the blacklisting feature but just disable the blacklisting script
until we have had enough time to go back to the CDR analyses and figure out the correct values
that need to be defined for the correct functioning of the blacklisting script.
If the Use default blacklisting rules is set to no then the MOR system should continue to add
source numbers, destination numbers and source IP addresses to the blacklist database, but the
blacklist script should not run and change the database values.

Blacklisting Script (Intelligence)


MOR does not know nothing about the script and does not care about it. This script is
INDEPENDENT from MOR.
What it will do is to try to figure out what a blacklisted call could look like. For example it could
be that a customer of a customer tries to call one specific number more than 10 times a day or
more than 5 times within one hour. Or there are many calls generated by one source phone
number or one source IP media. It all depends on experience and assumptions and that may be
different for all customers.
To use default blacklisting rules you have to create your own script:

Script can be done in any language.


Script can be placed anywhere in the system
It is advisable to run this script periodically with Cron
It should analyze CDRs and make decisions based on various criteria.
After that it should populate appropriate DB fields to put scores for various values.

The script to change scores could work like this:


If a destination_number was called more than DST-n1 times within DST-t1 minutes then DSTScore = DST-Score + DST-v1
If a destination_number was called more than DST-n2 times within DST-t2 hours then DSTScore = DST-Score + DST-v2
If a source_number was calling more than SRC-n1 times within SRC-t1 minutes then SRCScore = SRC-Score + SRC-v1
If a source_number was calling more than SRC-n2 times within SRC-t2 hours then SRC-Score
Kolmisoft 2006-2013

21

= SRC-Score + SRC-v2
If a source_IP_number was calling more than SRC-IP-n1 times within SRC-IP-t1 minutes then
SRC-IP-Score = SRC-IP-Score + SRC-IP-v1
If a source_IP_number was calling more than SRC-IP-n2 times within SRC-IP-t2 hours then
SRC-IP-Score = SRC-IP-Score + SRC-IP-v2
Variables like DST-n1 to SRC-IP-v2 need to be defined manually.

Example
If a destination_number was called more than 5 times within 60 minutes then DST-Score = DSTScore + 100
or
If a source_IP_number was calling more than 40 times within 5 hours then SRC-IP-Score = SRCIP-Score + 100
NOTE: if you want to create such script, please contact Kolmisoft, we will consult how to do this,
will provide necessary database info and all other details.

Webphone addon
About
Webphone addon lets users make calls directly from browser.

Kolmisoft 2006-2013

22

Just Google Chrome (from version 27.0.1453.94), Mozilla Firefox (from version 21), Opera (from
version 12.15) and Internet Explorer (from version 10) are supported.

Settings
To use this addon you have to install Java! You will find Webphone addon in: ADDONS ->
Webphone:

"Encoded SIP Server" and "Encoded Logo URL" are provided by Kolmisoft staff. Webphone will
not work if these lines will be filled with plain text.
NOTE: Webphone can be used for calls just by user user type.

Webphone addon for Users


If you want let to use Webphone addon for user you have to select Yes on Allow to use for this
User option in User Details window Webphone block. By default this option is set as No. It is not
possible to select Yes if user do not have SIP Devices.
Default device is set for users automatically. If Default Device is SIP then it is also set for
Webphone. If default device is not SIP then device for webphone will be the first from the SIP
devices list. If there is no SIP device at all, you will see "Do not use webphone" selection. You can
also select it yourself if you do no want to use webphone.
You can always change webphone device manualy.
If user want to see Webphone on his main page, he has to choose SIP Device by himself in
PERSONAL MENU > Details Webphone block.

Webphone addon for Resellers


To enable Webphone for Resellers Admin have to create and/or edit Reseller Permissions group
and assign it to Reseller. With permissions Reseller is able to use Webphone addon as admin,

Kolmisoft 2006-2013

23

except Encoded SIP Server - this option can be set just by Admin. Webphone usage for reseller
users is same as Admins Users.

Webphone addon for Accountant


To enable Webphone for Accountants Admin have to create and/or edit Accountant permissions
group, set read or write rights and assign it to Accountant. Accountant cannot change Webphone
addon settings. He is able just manage usage for Admins Users.

Calls Archiving
Description
When there are many old calls that are no longer useful, they can be archived and moved from
Last Calls page to STATISTICS > Calls > Archived Calls.
When old calls are in another database table, normal system's work increases tremendously.

Here you can see similar table to Last Calls, so you can check calls information at anytime you
want. You can find more information about each field in Last Calls

Settings
Archiving options can be set in SETTINGS -> Setup -> Settings -> Various tab.

Kolmisoft 2006-2013

24

Archive Calls older than - this is the number of days. When call is older than the number you
set, it will be archived and moved to Archived Calls.
Archive Calls every day at - this is the time when Background Task takes place and calls from
Last Calls are moved to Archived Calls.
Archive Calls till - if there are many old calls, it will take time to archive all of them. You may
need to set the time when background task no longer proceeds and the action is done.
NOTE: you can check the completion of calls archiving process and other information in
Background Tasks.

Time Format
Starting fomr MOR X4 time format can be changed to market standard.
Showing time in mm:ss instead of hh:mm:ss, for example, not 02:13:42 but 133:42.

Aggregate
Description
Aggregate statistics provide brief information about terminators and originators, ASR, ACD. Only
calls routed via Terminators are included. Every call made from every user to every different
terminator is in the statistic so there may be the same prefixes repeated if grouping by prefix is
not selected.
NOTE: search by Admin is not available because Admin's function to make calls is deprecated.

Usage
Go to STATISTICS > Calls > Aggregate

Kolmisoft 2006-2013

25

Here you are able to see:

In search filter you can choose time period, which originator and/or terminator you want to see.
Also you can search statistics by prefix. To see results at least one option Orig. or Term. of
Customer must be checked.

Available details

If Destination is checked, the destination countries are shown in statistics sorted by prefix.
If Orig. is checked, calls are additionally grouped by user.
If Term. is checked, calls are additionally grouped by terminator.
If Orig. Price is checked, show additional collum with originator price.
If Term. Price is checked, show additional collum with terminator price.
If Orig. Billed time is checked, show additional collum with originator billsec.
If Term. Billed time is checked, show additional collum with terminator billsec.
If Destination is checked, show additional collum with Destination name.

Group by prefix - calls are grouped by prefix.

Kolmisoft 2006-2013

26

Group by direction - calls are grouped by destinations subcode. If Orig. and Term. are
unchecked and Group by direction selected, calls are grouped by country.

Finally you are able export results to CSV file.

From Reseller PRO


Simple reseller is not able to view Aggregate statistics. Reseller PRO must have Providers
assigned to Terminators.

LCR Time Periods


Sometimes there is such demand to change LCR for some time period. This functionality gives
you an ability to do that. Go to LCRs list and press icon. Here time periods can be set.

Time period defines the exact time period LCR will be active. There is a limit of five periods in one
LCR. Rest of the time will be used main LCR.

Examples
1. Select Date from 1 of January to 28 of February and choose Hour : Minute from 09:00 to
18:59. Selected LCR will be used from 1 of January till 28 of February at time from 09:00 till
18:59.
2. Select just Hour : Minute from 19:00 to 08:59 and selected LCR will be used every day at
time from 19:00 till 08:59.
3. Select Weekday from Monday to Friday and choose Hour : Minute from 13:00 to 15:59.
Selected LCR will be used every week from Monday till Friday at time from 13:00 till 15:59.

Kolmisoft 2006-2013

27

Copying LCRs between resellers


Sometimes you need to make a LCR which takes quite a long time to make. If you have made a
similar one before you can just copy it and change appropriate details.
Go to SETTINGS -> Billing -> LCR -> Copy LCR
You will see this window:

Choose Original LCR reseller and Cloned LCR reseller and click Clone button.
Please note that LCR will not be allowed to copy if reseller B is not allowed to use Providers which
are used by Reseller A.

CPS Limitation
New option in device settings to limit the number of calls during defined time period.

Provider billing addon


Description
Provider billing addon allows reversed billing - it counts provider's balance which increases when
admin or reseller makes a call through it.

This add-on can be used in the following cases:

Provider sends you a bill/ invoice for the calls and you can check if it is correct. Amount
shown in Provider billing section should match the invoice from your provider (this can be
applied in all VoIP business models where you use some voice traffic suppliers).
Provider is your client and supplier. In the end of the month according to bilateral
agreements you just check the overall balance (this is usually applied in VoIP Wholesale
business).

Kolmisoft 2006-2013

28

If you use GSM gateways for termination, adding the time limit per day allows you to
avoid clients hearing that the SIM card balance expired as MOR automatically routes the
call to the next available GSM gateway (this is used in VoIP Termination business using
GSM gateways/SIM banks)

Balances
To see all Providers balances, go to ADDONS -> Provider billing.
By clicking Edit you will be lead to Provider's edit window. In General Providers settings you
can set Provider balance limit. It is the limit of balance that can be reached by the provider. After
he reaches the specified balance, calls aren't sent through this provider anymore
Provider has balance which increases when call goes over this Provider. E.g. Provider receives
money for the calls over him.
If Provider is assigned to the User then such Provider can make calls. When Provider (which is
assigned to the User) makes calls, such calls goes over other Providers and User's (to which
Provider is assigned) balance is decreased.
IMPORTANT! Provider's balance and User's balance are two different values. They are not
connected and do not impact each other. They change independently of each other.

Manual payment for Provider balance


To add manual payment for provider in main provider billing addon window click
will be lead to this window:

Kolmisoft 2006-2013

and you

29

Click Proceed:

Click Confirm. You will be redirected to Payments window and see this payment if everything
is correct.
Please note that adding positive Amount will decrease provider's balance and adding negative
will increase it. Balance - amount = new balance.
Reseller can use this feature only on that reseller's providers.

Limit to device or provider per day


After you were lead to provider's edition page you can select a minute limit per day for provider.
You will find it in Advanced block.

Kolmisoft 2006-2013

30

If the limit is exceeded that provider is disabled which means it is not available to make calls
through it anymore. If you add a value of zero, no limit will be applied.
To apply this functionality to device go to SETTINGS -> Setup -> Default device and see
Advanced block.
This functionality is available only if provider billing addon is enabled.

Quick Providers changes


About
Page for your comfort to update few Providers details at once. In this page you can quickly
update Providers Tariffs, Call Limit, Call Timeout, Ringing Timeout and Time limit per day.

Usage
To add some quick changes for Providers go to SETTINGS > Billing > Providers > Quick
Changes.
Here you can see a list of all Providers and update some of their details:

Changes will be applied just for those Providers, which you can see in current page.

Kolmisoft 2006-2013

31

Data import
User/Device/DID/CLI import
You must import the data in the following order from CSV files:
1. Users data
2. Devices data
3. DIDs data
Import Devices from CSV link is disabled while Users data is not imported. Import DIDs from
CSV link is disabled while Devices data is not imported.
CLIs data can be imported for already existing Devices by Device ID or for just imported Devices
by Temporary Device ID (which is in SETTINGS -> Users -> Import).

CSV file format


Please note that such details like tariff, LCR, Localizations, IDs should be specified in csv
instead names.
Example you have LCR called "My first LCR" this LCR ID is 2. You should specify in csv 2, but not
My first LCR.
Other way if you will not specify ID system will not find it.
You can upload your data from a CSV file that has the following structure:
1.
2.
3.
4.
5.

Each record is started in a new line.


Each piece of record information is separated by commas (see the example).
Text is enclosed within inverted commas (for example: "name").
Numbers are written without inverted commas (for example: 4).
The first line can be used for your own needs, such as for naming each field of
information. If you use this line, do not select the "include first line?" option when
asked.

For example:
We have a CSV file named example.csv with the contents:
"id", "username", "password", "e-mail"
1, "username1", "verySecretPassword", example@example.com
Kolmisoft 2006-2013

32

2, "username2", "34r34r4232", example2@example.com


3, "username3", "23er29923wjwe", "example3@example.com"
Explanation:
The first line is used in this case for naming the fields, so when asked, do not select the
"include first line?" option. (If you won't use the first line for naming the fields, please do
select "include first line?")
The other three lines (starting 1, 2, 3) are for data records. Each record (the first one is: 1,
"username1", "verySecretPassword", "example@example.com") represents:
1 - user id.
"username1" - user's username.
"verySecretPassword" - user's password.
"example@example.com" - user's e-mail.
Your CSV file can have any number of lines with any number of fields (each line must have the
same number of fields).
P.S. The file should not have any other symbols than those mentioned above. Be careful, as some
editors can add their own formatting symbols. In Windows we recommend using Notepad, and in
Linux: gedit, kedit, nano.
Here are some examples:
Users CSV file example:
38,2,0,"NULL","NULL",TRUE,"11420471-2-03","Example ZRt","Example ZRt","example example.
11","76/356-650""example@example.hu",04/06/0701:48PM,""en",
97,20,0,FALSE,TRUE,5,0,04/06/07,"NULL","NULL",0,FALSE,04/06/07,"Lajosmi",6050,1,0,1,1,TRUE,
"NULL","NULL",3
45,2,0,"95757bfa00bf85b17921d709b5af0234","NULL",TRUE,"12969247-2-03","Example kos",
"ExampleExample,Kft","Example's38","70/235-45-89","example@example2.hu",
04/06/0911:28AM,"", "en",97,20,0,FALSE,TRUE,5,0,04/07/09,"NULL", "NULL", 0,FALSE,04/06/09,
"Kecexample",6000,1,0,1,1,TRUE,"NULL","NULL","NULL"
2138,2,0,"cc1b3ae8986559b10786d6ea73912bd5","NULL",TRUE,"11871633-2-03","Kos
Tas","KsKft","Alsast","20/229-36-78","pli@example.hu",12/13/0709:42AM,"","en",
97,20,0,FALSE,TRUE,5,0,12/13/07,"NULL","NULL",0,FALSE,12/13/07,"Sirly",6031,1,0,1,1,TRUE
,"NULL","NULL","NULL"

Kolmisoft 2006-2013

33

In the first column is a Temporary User's ID; the other columns represent other data. As
mentioned above, it does not matter in which order your data is represented in the CSV file.
It only matters that each column (the data between commas) represents the same data value (id,
email, password or other).
Devices CSV file example:
38,38,76824435,"3676586421","asddsau.12","jamaica","7ewfw@sip.example.com",TRUE,
"dynamic","sip",TRUE,"NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL",
"NULL", "NULL", "NULL","NULL","NULL"
45,45,76846301,"3676886421","fghhgfu.","ergerSiP","76886421@sip.example.com",TRUE,
"dynamic","sip",TRUE,"NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL",
"NULL","NULL","NULL","NULL","NULL"
2138,2138,76505921,"3676505921","jkllkju.12","treK","6654@sip.example.com",FALSE,"dynamic",
"sip",TRUE,"NULL",FALSE,FALSE,10,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE, ,FALSE
The first column here represents "id", the second "user_id", and the others represent other data.
YOUR ORDER CAN BE DIFFERENT. The main thing is that each type of data (email, password, id...)
must be in the same column. When you are asked to provide data when importing, be sure to
assign the correct data from CSV for each column and MOR will know which column represents
which data.
Dids CSV file example:
37067531061,38,38
37065431061,45,22
37062431031,2138,2138
In this example I have used the first column for DID, the second for Temporary User ID, and the
third for Temporary Device ID. Your data order can be completely different. You just need to
select the correct values when asked.

Importing data
Firstly, from the MOR Graphical User Interface (GUI), navigate to: Settings -> Users ->
Import.

Kolmisoft 2006-2013

34

Temporary User ID & Temporary Device ID


These fields are necessary to map DIDs to Devices and Devices to Users.
Temporary IDs can be integer digits only.
Example:
You have some other system with some user_ids, device_ids, DID_ids. You export them into CSV
files. The relations between them are kept by these IDs, so importing them to MOR will keep
these relations.
First you need to import a User with some temporary ID, then make sure this ID is near each
Device you are trying to import. Select this ID as Temporary User ID when importing Devices.
That way these devices will be mapped to this User.

Importing users
To import users, click on the "Import Users from CSV" link:

Now locate the CSV file in your local system by clicking the "Browse" button. As indicated above,
don't click the "Include first line?" checkbox if you have used the first line for commenting on the
fields.

Click on the "Upload file" button.

Kolmisoft 2006-2013

35

In next menu, please fill in the requested data (you should select the correct field from your CSV
file). You must select a field for each selection box marked with an asterisk (*) symbol.
Having finished, press the "Assign columns" button.

On the next page, check whether all the data was assigned correctly. If not, click the "Back"
button and correct the mistakes. If all the data was assigned correctly, click the "Confirm
columns" button. After the "Columns assigned" notification informs you that data successfully
imported.
NOTE: When you are going to import CSV file, which includes Tariff and/or LCR, the IDs of Tariff
and LCR should be specified in CSV file.
Where to find ID of Tariff or LCR? Just go to some of them and press on edit icon, where Browser
navigator bar will show full link with location, last number is ID.

Kolmisoft 2006-2013

36

Having completed all these steps, you should see a page similar to this:

Importing devices
Click on the "Import Devices from CSV" link and follow the same procedure for uploading a CSV
file as in the "Importing users" section. That is, locate the CSV file in your local system by clicking
the "Browse" button. As stated before, don't click the "Include first line?" checkbox if you have
used the first line for commenting on the fields. Click on the "Upload file" button. Now you
should see a menu similar to this:

Kolmisoft 2006-2013

37

In this menu, once again select a matching field from your CSV file for each selection box. It is
very important to correctly select Temporary User ID and Temporary Device ID, because
these fields are necessary to map DIDs to Devices and Devices to Users.
NOTE: When you are going to import CSV file, which includes Location, the name of Location
should be specified in CSV file.
Having finished selecting the fields, press the "Assign columns" button.
Once the columns are assigned, check whether all the data is correct. If not, press the "Back"
button and correct the mistakes. Now, if you haven't made any mistakes, you should see two
tables similar to these:

Importing DIDs
Click on the "Import Devices from CSV" link and follow the same steps for uploading a CSV file as
in the "Importing users" section. That is, locate the CSV file in your local system by clicking the
"Browse" button. As stated before, don't click on the "Include first line?" checkbox if you have
used the first line for commenting on the fields. Click on the "Upload file" button. Now you

Kolmisoft 2006-2013

38

should see a menu similar to this:

Select all matching fields from your CSV here. It is very IMPORTANT to select the CORRECT
Temporary User ID and Temporary Device ID! Having selected everything correctly, click the
"Assign columns" button. In the next page, if all imported data is assigned correctly, click the
"Confirm columns" button. If you haven't made any mistakes, you should now see a "DIDs
successfully imported" message.

Importing CLIs
CLIs data can be imported for already existing Devices by Device ID or for just imported Devices
by Temporary Device ID.
Click on the "Import CLIs from CSV" link and follow the same steps for uploading a CSV file as in
the "Importing users" section. That is, locate the CSV file in your local system by clicking the
"Browse" button. As stated before, don't click on the "Include first line?" checkbox if you have
used the first line for commenting on the fields. Click on the "Upload file" button. Now you

Kolmisoft 2006-2013

39

should see a menu similar to this:

Select all matching fields from your CSV here. It is very IMPORTANT to select the CORRECT
Device ID (if it is selected "Use Device ID") or Temporary Device ID(if it is selected "Use
Temporary Device ID")! Having selected everything correctly, click the "Assign columns" button.
In the next page, if all imported data is assigned correctly, click the "Confirm columns" button. If
you haven't made any mistakes, you should now see a "CLIs successfully imported" message.
You can now check whether all your data has been imported.
To check users, go to: SETTINGS > Users.
To check devices, go to: SETTINGS > Users > Devices.
To check DIDs, go to: SETTINGS > Billing > DIDs.
To check CLIs, go to: SETTINGS > Billing > Devices > CLIs.

Explanation of IDs
Many users find it difficult to understand what User_ID or Device_ID mean in Data Import.
These are temporary IDs created only for import purposes. These IDs have NO relation to User
ID/Device ID in the Users/Devices windows of the MOR system.

Kolmisoft 2006-2013

40

The workflow of Import is:


1. We have Users/Devices/DIDs.
2. We create a separate file with Users and add a unique ID to every User. The ID is NOT related
to User ID in MOR DB/GUI.
3. We create a separate file with Devices and add a unique ID to every Device. The ID is NOT
related to Device ID in MOR DB/GUI. Near each device we add a temporary User ID from
previous file, which shows which Device belongs to which User.
4. We create a separate file with DIDs and near each DID add a User_ID/Device_ID that shows
which DID belongs to which User/Device.
5. We import the User file, and MOR remembers the temporary User_ID.
6. We import the Device file, and MOR remembers the temporary Device_ID and checks the
User_ID for such Devices which have a User_ID near them in the file. It assigns this Device to the
appropriate User.
7. We import the DID file. MOR checks the Device_ID/User_ID in the DIDs file and assigns a DID
to this Device/User.
8. We import the CLI file. If during import there is selected "Use Temporary Device ID " MOR
checks the Device_ID in the CLIs file and assigns a CLI to this Device. If it is checked "Use Device
ID" MOR checks the ID of Device in the CLIs file and assigns a CLI to this Device
NOTE: in all processes, only a TEMPORARY User_ID/Device_ID is used. In the database, Users'
ID/Devices' ID are not used directly. They have no relation to the User_ID/Device_ID from import
files.

SMS Addon Mass SMS


Mass SMS addon lets you send one or more sms to an array of numbers automatically. This
functionality can be used in telemarketing.

Who can configure and use Mass SMS?

Only end users can create Mass SMS campaigns, actions, edit, delete them and import
numbers.

Admin and reseller can check their users' campaigns and view actions, but cannot edit
them.

Configuration
For user to be able to use Mass SMS, he first has to be subscribed to SMS Addon.
Kolmisoft 2006-2013

41

After you prepare Providers go to ADDONS > SMS:


You will reach list of subscribed to SMS service Users:

Here have to subscribe User to SMS Service, just select user from dropdown and press Subscribe.
If you want unsubscribe user from SMS Service click icon. Click on icon to change Users LCR
or Tariff for SMS Service.

Reseller also has to have SMS Addon and SMS permission enabled.

Kolmisoft 2006-2013

42

Usage
From Admin/Reseller
Go to ADDONS -> SMS -> Mass SMS.
Here you can see the list of campaigns created by the end users. You can see the number of
phone numbers imported, actions created, campaign status, profit from campaign and other
information.

You can also check actions by clicking on the action

icon and sms being sent by selected

campaign.

From User
Go to PERSONAL MENU -> SMS -> Mass SMS:
The main window shows the user's campaigns. Here is more information and available settings
that admin/reseller has:

Kolmisoft 2006-2013

43

The user can Activate or Stop the Campaign by clicking the or button near the Campaign's
status.
A Campaign can only be Activated if it has free numbers AND some Actions.
So please, before activating a Campaign, import some Numbers and create Actions.

Campaigns
Add campaign allows you to add a new campaign:

The important fields here are:

Start/Stop Times time when sms will be sent.


Device each Campaign should be assigned to a Device in order for MOR to bill the call.
CallerID - what CallerID to put on calls.

Numbers
Click on

in the Numbers column to check numbers which will be dialed on campaign:

The user can import phone numbers from a TXT file. Numbers should be in correct dialing format
and not duplicated.

Kolmisoft 2006-2013

44

Example of numbers file:


442012345678
442087654321
442054987123
In a new Campaign there are no numbers, so click on
the file to upload:

Import numbers from file and select

After uploading the file, you will see status of imported numbers:

You can delete all numbers by clicking Delete all numbers. Also you can export details by
clicking Export IVR/poll results to CSV
If a number is Completed, it is possible to reactivate it (tell the system to call it again) by clicking
the icon near the number.

Kolmisoft 2006-2013

45

Actions
Click

in the Actions column to access the Campaign's actions:

Here user can choose actions for the campaign. There is currently one type of action for Mass
SMS:

SEND SMS the specified sms will be sent to all numbers in the campaign.

Resend all failed SMS


You can resend all failed SMS

Improvements

Quick Stats upon request only (to avoid server overload)

Important Changes

Only User will be able to make calls. E.g. Admin, Accountant and Reseller will not be able
to make calls anymore. They will have to create separate User to make calls.
API will be adjusted, method names changed (keeping backwards-compatibility),
responses and parameters fixed
Monitorings are converted into Alerts, old Monitorings window is removed

Kolmisoft 2006-2013

46

Introduction
Kolmisoft VoIP Softswitch with Billing and Routing MOR is an advanced system that enables
alternative telecoms to provide flexible voice services, effectively manage service offerings and
grow their voice businesses due to the systems stability and high traffic scalability. Kolmisoft
System MOR integrates the core AAA functions Authentication, Authorization, and Accounting
with vital functions that facilitate the effective management of all billing/routing-related
processes:

Customers
Services
Finance
Services distribution
Reporting
Traffic partners
User rights

On the business side, Kolmisoft System MOR makes possible the deployment of services with
high-quality and flexibility within any VoIP business model; on the technical side the system
maintains seamless performance at high and rapidly increasing traffic volume. The optimal
combination of functions, the adaptability to every VoIP business model and rate-plan settings,
as well as its stability, make Kolmisoft System MOR the absolute billing/routing and customer
care solution for Voice Over Broadband/ IP businesses worldwide.

Who is this product designed for


Kolmisoft System MOR is designed for premium performance and scalability; therefore, it is
suitable for VoIP or Broadband service providers who:

plan for a full-scope VoIP business deployment


need to maintain medium, high or very high voice traffic volumes
differentiate on a first-class customer service
demand high reliability from their billing system
enjoy rapid business development and have outgrown their legacy billing systems

Kolmisoft 2006-2013

47

Supported Business Models


Kolmisoft System MOR is adaptable to telephony service providers' business models and custom
requirements for service configuration. Voice-over-IP and Voice-over-Broadband providers can
configure different service types within all of the following basic business models:

Wholesale traffic origination/termination


Retail
Prepaid
Postpaid
Calling Cards
Corporate Clients
Residential Clients
Internet services

How to make first call


This small guide will show how to make your first call after
system installation.

Create a tariff
Tariffs are a set of rates (prices) to different destinations.
Go to SETTINGS -> Billing -> Tariffs and click

Kolmisoft 2006-2013

New tariff

48

Enter the name (you will use it to recognize tariff (price list) in variuos system places). Choose
currency in which you will pay for providers/suppliers. Select what type of tariff do you want and
click Create.
In this example tariffs have rates/prices from your Providers. These prices are paid TO Providers
when they terminate calls FROM your system to PSTN. This is self-cost for you, e.g. you buy calls
using these prices, as it is written next to the blue information icon.

Rates
However if you choose other type than Providers you will have to either import rates from CSV or
fill them in manually by clicking Rates -> New rate. The most important fields in Rates are
Prefix and Rates.

Create a provider
Go to SETTINGS -> Billing -> Providers and click

New provider

Select Technology, from a dropdown list assign Tarrif you have created, select the server and click
Create.

Kolmisoft 2006-2013

49

Provider configuration
Right after creating a provider you will see this window:

Edit setting you need to edit and click Edit or leave it as it is configured.

Kolmisoft 2006-2013

50

Basically what needs to be done on this page:

Enabled codecs supported by provider under "Codecs" section;


Select "IP Authentication" under "Authentication" section if provider recognizes your calls
by IP, or select "Register" and fill "Login/Username" and "Password" fields;
Put providers "IP" and "Hostname" under "Network related" section. Put IP on both these
fields if you know only IP.

Create a LCR
Go to SETTINGS -> Billing -> LCR and click

New LCR

Enter the name. From a dropdown list select the order. If you select order of providers by price
the cheapest way to dial a destination will be used. If you select by priority the call will be routed
by a predetermined order. Routing by percent is similar to routing by priority. After you selected
click Create.
You will see that there are no providers assigned to this created LCR.

Click

Providers.

Kolmisoft 2006-2013

51

Assign created provider from the dropdown list and click Add.
Please note that Save changes button is only for failover providers, not for providers in general.

Adding a user
To add a user go to SETTINGS -> Users. Click

Add user.

Assign created LCR and click Create at the bottom of the page.
Kolmisoft 2006-2013

52

Add a device for user


To add a device go to SETTINGS -> Users and in the users list click the devices icon (
opened window click

). In the

Add new device.

Description - it is recommended to change it so that it will be easier to recognize it anywhere in


the system.
PIN - you can leave it as it is or enter a new one.
Type - choose SIP type.
Click Create.

Softphone
To make a real call, you will need a softphone for a quick test.
You can use your own if it supports the SIP or IAX2 protocols.
For the sake of simplicity, we will show how to configure Idefisk 1.37 , which is very small and
easily configurable.
First, download it from our server (http://www.kolmisoft.com/packets/idefisk137
_installer.exe) and install it. (It is for Windows OS.)

Kolmisoft 2006-2013

53

It can be downloaded for Linux (http://www.zoiper.com/zclinux.php) and for MacOS


(http://www.zoiper.com/downloads/free/mac/communicator/ZoiperCommunicatorFree1.04_installer.dmg).
Use Idefisk configuration manual to configure Idefisk with your <SERVER_IP> and
username/password of test user's device.
NOTE: that User 101 is by default Blocked to insure maximum security to your system. Unblock it
before making a test call.

Dialing
Next, enter a phone number into your softphone and try to dial.
NOTE: enter the number in international (E.164) format. Do not use any international prefixes use country code + area code + number.
For example, a Lithuanian number is 37063042439, where 370 is the country code, 6 is the area
code (MOB network), and all the rest is the number itself.
NOTE: USA/Canada numbers should start with 1 (which is the USA/Canada country code).

If you hear nothing, your softphone is not registered to the server.


If you hear a message from Kolmisoft, you do not have an account on our server (contact
us (http://www.kolmisoft.com/contacts) to get one).
If you hear ringing, everything is okay.

Call logs
After the call, you can check your call in the system.
Go to: STATISTICS -> Calls -> Last Calls and you will see your call.
It will be already billed.

Kolmisoft 2006-2013

54

Concepts/Definitions
MOR Terminology
1. Accountant [http://wiki.kolmisoft.com/index.php/Accountant_permissions] a type of user
which has more rights than simple user in MOR, but still not enough to fully manage all
configuration of MOR system. His rights can be adjusted at any time.
2. Action log [http://wiki.kolmisoft.com/index.php/Action_log] detailed report about user
activity.
3. Addons [http://wiki.kolmisoft.com/index.php/MOR_Addons] a special feature group for MOR
which adds additional functionality.
4. Admin [http://wiki.kolmisoft.com/index.php/Users] most powerful user account in MOR (just
like root in UNIX systems).
5. Aggregate [http://wiki.kolmisoft.com/index.php/MOR_Manual#Reporting] advanced report
on calls.
6. API [http://wiki.kolmisoft.com/index.php/MOR_API] - application programming interface is an
interface implemented by a software program to enable interaction with other software, similar
to the way a user interface facilitates interaction between humans and computers.
7. Asterisk [http://en.wikipedia.org/wiki/Asterisk_(PBX)]- PBX free software, multi platform,
published under license GPL per Spencer Mark of the Digium company.
8. Auto Dialer [http://wiki.kolmisoft.com/index.php/Auto-Dialer_Addon] this addon allows to
call an array of numbers automatically and when answered plays back a prerecorded message to
the receiving end of the call.
9. Backup [http://wiki.kolmisoft.com/index.php/Backup_system] - a backup or the process of
backing up refers to making copies of data so that these additional copies may be used to
restore the original after a data loss event.
10. Browser title most top of web browser.
11. Callback [http://wiki.kolmisoft.com/index.php/Callback] in telecommunications, a callback
(also written as call-back) occurs when the originator of a call is immediately called back in a
second call as a response.
12. Call tracing [http://wiki.kolmisoft.com/index.php/Call_Tracing] used for checking the setup
of MOR in order to be sure user will be able to dial out to specified destination number.
13. Calling cards [http://wiki.kolmisoft.com/index.php/Calling_Cards_Addon] an addon to MOR
billing which adds Calling Card functionality.
14. CDR call data (detail) records are computer records produced by a telephone
exchange containing details of a call that passed through it.
15. Click2Call [http://wiki.kolmisoft.com/index.php/Click2Call] the technology which virtually
always refers to a means for a web consumer to ask a website operator to call her. In

Kolmisoft 2006-2013

55

other words, "clicktocall" would be more accurately be referred to as "RequestACall," as


in "Please give me a call (here is my phone number)."
16. Default device [http://wiki.kolmisoft.com/index.php/Default_device_settings] - when you
configure default device's parameters, next time when you try make new device for someone, the
newly device will have default device's parameters already.
17. Default user when you configure default user's parameters, next time when you try to make
new user, he already will have them.
18. Destination destination helps identify country and city and destination number stands for
final number which will be sent to provider.
19. Devices [http://wiki.kolmisoft.com/index.php/Devices] - represents endpoint which can
generate (originate) or receive (terminate) calls. As example device can represent: VoIP
phone, VoIP softphone, PSTN phone (connected through FXS port), PBX, softswitch, etc.
20. Dial Plan [http://wiki.kolmisoft.com/index.php/Dial_Plans] - a dial plan establishes rules how
to handle some call.
21. DIDS [http://wiki.kolmisoft.com/index.php/MOR_Manual#DIDs] - Direct Inward Dialing is a
feature offered by telephone companies for use with their customers' PBX systems, whereby
the telephone company allocates a range of numbers all connected to their customer's PBX.
As calls are presented to the PBX, the number that the caller dialed is also given, so the PBX can
route the call to the desired person or bureau within the organization.
22. Direct link or Direct URL [http://wiki.kolmisoft.com/index.php/What_is_direct_URL] a link to
specified place in WEB.
23. Direction [http://wiki.kolmisoft.com/index.php/Directions_and_Destinations] - usually refers to
Countries. Could also be satellite networks. They describe direction where the call will be routed.
24. Domain usually meaning of second level domain, for example: example.com (com is first
level and example is second level)
25. Domestic meaning to describe calls inside country or in other words local calls.
26. FAX [http://wiki.kolmisoft.com/index.php/Fax2Email] - a fax (short for facsimile) is a document
sent over a telephone line. FAX implementation in VOIP is very bad and currently it is still not
possible to send/receive fax in VOIP at 100% succession rate.
27. Firewall is a part of a computer system or network that is designed to block unauthorized
access while permitting authorized communications. Poorly configured firewall is very often the
cause to failed calls.
28. Frontpage text first page in MOR GUI displayed for successfully logged in user or admin.
29. Graph function which generates visual data sets.
30. HGC [http://wiki.kolmisoft.com/index.php/Hangupcause_Codes] substitution for hangup
cause code, those codes used to identify status of all made calls through MOR.
31. Integrity check [http://wiki.kolmisoft.com/index.php/Integrity_Check] a place with various
properties of billing system which tells where potential problems could exists.
32. Invoice [http://wiki.kolmisoft.com/index.php/Invoices] - a document issued from a vendor for
payment, detailing the goods or services the vendor has provided to the buyer, the cost(s), and
any VAT due. The document may be called a 'Sales Invoice', from the point of view of the vendor,
or a 'Purchase Invoice' by the buyer.
Kolmisoft 2006-2013

56

33. IVR [http://wiki.kolmisoft.com/index.php/IVR_system] - Interactive Voice Response (IVR) is a


technology that allows a computer to detect voice and dualtone multi-frequency signaling
(DTMF) keypad inputs. Most often usage of IVR in VOIP is for Virtual menus.
34. Last Calls [http://wiki.kolmisoft.com/index.php/Last_Calls] place in MOR GUI where you can
see detailed list of last billed calls.
35. LCR [http://wiki.kolmisoft.com/index.php/LCR] stands for Least Cost Routing is the process
of selecting the path of outbound communications traffic based on cost (cheapest price), order
(always route calls to A, but if A fails, then route to B, if B fails, route to C etc.) or percent (used
for load balancing, for example: send 50% of call to provider A and rest 50% to B).
36. Localization [http://wiki.kolmisoft.com/index.php/Localization] technology used by MOR
which transforms received number to E.164 format number.
37. LOGO [http://wiki.kolmisoft.com/index.php/Logo_change] your company's logo.
38. MOR [http://www.kolmisoft.com/billing-and-routing/mor-voip-billing-features] softswitch
with billing and routing made by Kolmisoft Ltd.39. Number digits - how many decimal digits will
see all system users. You can change this setting in Settings.
40. Originate - initialize call.
41. PBX [http://en.wikipedia.org/wiki/Private_branch_exchange] - small version of the phone
company's larger central switching office. A PBX is a private telephone switch. It is connected to
groups of lines from one or more central offices and to all of the telephones at the location
served by the PBX.
42. PhoneBook [http://wiki.kolmisoft.com/index.php/PhoneBook] place containing an
alphabetical list of telephone numbers.
43. Prefix - refers to the first digits of a telephone number. These digits are a way to identify the
area that the phone number is located in.
44. Profit [http://en.wikipedia.org/wiki/Profit_(accounting)] - amount expressed as a value that is
left over from sales once all expenses have been deducted.
45. Provider [http://wiki.kolmisoft.com/index.php/MOR_Manual#Providers] meaning for VOIP
provider. Usually company sells voice traffic.
46. Rate [http://wiki.kolmisoft.com/index.php/Tariffs] a price for destination.
47. ReCAPTHA [http://www.google.com/recaptcha] a mechanism which helps to protect
websites from automatic registrations.
48. Recording [http://wiki.kolmisoft.com/index.php/Recordings] voice file where you can hear
conversation of your customer and remote end (where he called).
49. Registration [http://wiki.kolmisoft.com/index.php/Online_registration] place in MOR where
new users could register themselves without help from MOR admin.
50. Rerating [http://wiki.kolmisoft.com/index.php/CDR_Rerating] recalculation of the call's price
which is already recorded.
51. Reseller Addon [http://wiki.kolmisoft.com/index.php/Reseller_Addon] this addon
incorporates basic reseller functionality support into MOR system which adds opportunity MOR
system owner have reseller support.
52. Retail tariff [http://wiki.kolmisoft.com/index.php/Advanced_Rates] with retail tariff there is
possibility get more control of how call will be billed, let say make first 15 seconds of call free.
Kolmisoft 2006-2013

57

53. Router [http://en.wikipedia.org/wiki/Router] - a device that forwards data packets from one
local area network (LAN) or wide area network (WAN) to another. Poorly configured device also
leads to voice and traffic problems.
54. Service - product which can be sold to the client. That can be various types of services. For
example: monthly fee, line rent, phone rent, internet plan.
55. Site your MOR website.
56. SMS Addon [http://wiki.kolmisoft.com/index.php/SMS_Addon] this addon adds SMS
sending option through and from MOR.
57. SSH [http://en.wikipedia.org/wiki/Secure_Shell] secure shell for completely controlling
server from remote location.
58. Subscription - users can subscribe for some services. When they do so they get Subscription
for some service.
59. Supplier [http://wiki.kolmisoft.com/index.php/Providers] see meaning of Provider.
60. Terminate end call in specified end.
61. Terminator [http://wiki.kolmisoft.com/index.php/Providers] a final destination point where
call be terminated.
62. Trunk [http://wiki.kolmisoft.com/index.php/Trunks] - other server/PBX which can be
connected to the MOR system.
63. User [http://wiki.kolmisoft.com/index.php/Users] your customer.
64. Voicemail [http://wiki.kolmisoft.com/index.php/Voicemail] - Voicemail (or voice mail,
voicemail, vmail or VMS, sometimes called message bank is a centralized system of
managing telephone messages for a large group of people. The term is also used more broadly,
to denote any system of conveying voice message, including the answering machine.
65. VOIP [http://en.wikipedia.org/wiki/VOIP] - general term for a family of transmission
technologies for delivery of voice communications over IP networks such as the Internet or
other packet-switched networks.
66. Voucher [http://wiki.kolmisoft.com/index.php/Vouchers] this function allows to enter
voucher number over phone and top up user's balance.
67. Web callback [http://wiki.kolmisoft.com/index.php/WEB_Callback] - technology where a
person can enter his or her telephone number in a form on a web site.
68. Wholesale tariff [http://wiki.kolmisoft.com/index.php/Wholesale_Tariff] in wholesale tariff
you can set price for each prefix, while in retail you cannot, but retail has its own advantages.
69. ZAP/Zaptel series of drivers for telephony hardware devices (later renamed to DAHDI).

Kolmisoft 2006-2013

58

Billing Concepts
This section deals with the billing system. It breaks down the actual call-flow from user to
Provider(s).
The billing system is quite complex and there are a lot of concepts to grasp.
There are a number of main categories of billing in MOR. The most important are:

Providers
Least Cost Route (LCR)
Directions
Destinations
Rates
Tariffs
Users
Devices

Providers - In the old PSTN world, these were called Trunks. They are your routes to the outside
world (out of your VoIP network). Providers can be of several types: Zap, SIP, IAX2, and H323. The
type determines which technology is used to connect to the Provider.
Least Cost Route (LCR) - LCR describes how calls may go through several Providers and the
order in which they go. The order can be determined by the call route's price, quality or manual
priority.
Directions - This term refers to countries, or perhaps to satellite networks. It simply describes the
direction in which the call is routed.
Destinations - Destinations are the specific steps that make up the course of the call. Let's say
we are dialing number 37068547771. From this number, MOR knows that the Direction is
Lithuania, and the Destination is the mobile network Bite. Destinations are determined by Prefix,
and each destination has a unique Prefix. The Prefix in this example is 370685.
Rates - These are the prices for the Destinations. They have many properties, which determine
they way they are calculated.
Tariffs - These are groups of Rates. Sometimes they are called Price Lists.

Kolmisoft 2006-2013

59

Users - This term refers to the actual user of the system the client who dials out or receives
calls. User may represent a single person or a whole company, but it is main unit in the system.
Most of the settings are associated with Users.
Devices - Each user can have many devices. A device represents the end-point to which voice
traffic should be sent. For example, a device might be a:

VoIP phone
VoIP softphone
PSTN phone (connected through FXS port).

Billing Logic
In order to use MOR successfully for dialing out and billing, some rules must be followed.
The best way to show this is by example.

User A dials a number, trying to reach User B.


The system then takes all Providers that belong to that LCR.
The system takes the Tariff of every Provider.
For every Provider system takes their Tariff.
From every Tariff (based on Prefix), the Rate is taken.
If the LCR type is 'Price', then all the Providers are sorted to identify the Provider with the
lowest Rate to that Destination. This Provider becomes the first Provider.
Using the first Provider, the system tries to dial the number.
If the call is successful, the system does the billing and finishes the session.
If the call is unsuccessful, the system tries to dial the next Provider.
The system goes on calling until the call is successful or no Providers are left.
When the call ends, the system bills it.

This example provides only a basic illustration of how the billing system works. The whole
process in MOR is much more complex.

Kolmisoft 2006-2013

60

Call explained

Duration - the time from when the caller enters the number until the end of the call.
Billsec - the time from when the callee answers until the end of the call.

Kolmisoft 2006-2013

61

E.164
What is an E.164 format number? In short, it's a number without an international prefix that starts
with the country code. For further details, check Wikipedia [http://en.wikipedia.org/wiki/E.164].
Every destination inside MOR should be in the E.164 format. That is one of the most important
rules of MOR. If the destination is not in the E.164 format, it can't be billed correctly.
All DIDs in MOR should also be in this format. Do not include international prefixes for DIDs.
Enter them in E.164 format.
In Australia, for instance, the local number 08 6311 3000 would be converted under E.164 to
61863113000. More information on how MOR works with E.164 can be found at Number
Manipulation.

Rounding
Rounding in MOR GUI is done only when showing the final result.
Values are not rounded in the database. Why not? For example: 0.027 + 0.027 = 0.054. Rounded,
this comes to 0.05. But if you are rounding each step, then you get: 0.03 + 0.03 = 0.06. This figure
is not so accurate as 0.05.

Multi-Tax system
All prices and rates in MOR are without TAXES. That's a rule. Each user has a TAX percent. The
user is charged by this TAX percent when he makes payments or views his rates.
The Multi-Tax system provides for several taxes in the final reports for users.

Compound Tax and Simple Tax


Let's say we have taxes T1, T2, T3 and T4. And some amount without tax, X.
Kolmisoft 2006-2013

62

When Compound tax is checked, multiple taxes are calculated in following way:
Amount with Compound Taxes = (((X + T1%) + T2%) + T3%) + T4%
If Compound tax is disabled, then:
Amount with Simple Taxes = X + (T1% + T2% + T3% + T4%)

Example for Compound/Simple tax calculation


We have initial data:
SUBTOTAL 3.99
TAX1: 18%
TAX2: 15%
Calculating when Compound tax is enabled:
Amount with Compound tax = (SUBTOTAL + TAX1) + TAX2
in digits:
(SUBTOTAL + TAX1) = 3.99 + 18% = 3.99 + 3.99 / 100 * 18 = 3.99 * 1.18 = 4.7082
(SUBTOTAL + TAX1) + TAX2 = 4.7082 + 15% = 4.7082 + 4.7082 / 100 * 15 = 4.7082 + 0.70623 =
4.7082 * 1.15 = 5.41443
Amount with Compound tax = 5.41443
Calculating when Compound tax is disabled (Simple tax):
Amount with Simple tax = SUBTOTAL + (TAX1 + TAX2)
in digits:
SUBTOTAL + (TAX1 + TAX2) = 3.99 + (18% + 15%) = 3.99 + 33% = 3.99 + 3.99 / 100 * 33 = 3.99
+ 1.3167 = 3.99 * 1.33 = 5.3067
Amount with Simple tax = 5.3067

Example for Canada


As an example we can take Canada, which has GST and PST taxes that should be shown on
invoices, reports, and so on:
Kolmisoft 2006-2013

63

Open SETTINGS > Setup > Settings > Tax


Enter Total Tax name (i.e. Tax)
Check Compound tax
Enter Tax 1 name (i.e. GST) and value (i.e. 5.0%)
Check Active? near Tax 2
Enter Tax2 name (i.e. PST) and value (i.e. 7.0%)
Click Save changes

Taxes are applied to all newly created Users:

and Calling Cards:

If you change taxes, you can assign this to all Users/Calling Cards by pressing the buttons below:

Apply to all Users


Apply to all Calling Cards
Apply to all Vouchers

Kolmisoft 2006-2013

64

What is a PIN?
Description
A PIN is a Personal Identification Number used to authenticate Devices or Calling Cards in MOR.

The followings are the usual scenarios where a PIN is used:

A user dials an Access Number (DID).


The system asks the user to enter a PIN.
The user enters the PIN.
The system checks the database for the PIN.
If the PIN is found, the system asks for the Destination.
The user enters the Destination.
The system calls the Destination.
The call is connected.

How to get a PIN


For Devices, it can be done in the Devices window.

Calling Cards
An example of how a PIN is used in Calling Cards can be found here: Calling Card logic.

Kolmisoft 2006-2013

65

ASR/ACD
ASR - Answer-Seizure Ratio
The Answer-Seizure Ratio (ASR) is calculated by dividing the number of successfully answered
calls by the total number of calls attempted, which are known as "seizures". Since busy signals
and other rejections by the called number count as call failures, the calculated ASR value can vary
depending on user behavior. (http://www.voip-info.org/wiki/view/ASR)
60-70% is considered a very good ASR in the VoIP world.

ACD Average Call Duration


The Average Call Duration (ACD) is calculated by taking the sum of billable seconds (billsec) of
answered calls and dividing it by the number of these answered calls.

Margin and Markup


If we have BUY and SELL prices, then:
PROFIT = SELL - BUY.

Margin = PROFIT / SELL x 100.


Markup = SELL / BUY x 100 - 100.

In other words:

Margin = PROFIT's part in the SELL price, or the part profit makes up in the sell price.
Markup = the increase from the BUY price to the SELL price, or how much the SELL price
has increased from the BUY price, in percent.

Kolmisoft 2006-2013

66

What are callgroups and pickupgroups


Letting someone else answer a call
In the mgcp, SIP, IAX, and Asterisk Skinny Channels and in the zapata channels, you can define
call and pickup groups for phones. Note that call pickup typically only works WITHIN a
technology, e.g. from a SIP phone to a SIP phone, and not ACROSS technologies, e.g. from a SIP
phone to an IAX phone.
The basic functionality is this:

A call is placed in one or several call groups.


If a phone belongs in a pickup group that matches one of the call's call groups, the user
of that phone may pickup the incoming call by dialing *8#
In v1-0, the feature code seems to be *8# on zap channels, and *8 on SIP channels: *8#
does not seem to work from a SIP phone (unless your phone is configured to interpret #
as the ENTER key)

Groups are numbered in the range 0-63.


You define call and pickupgroup per device, in this way:
callgroup=1
pickupgroup=1-9,13

A common misconception
Callgroups are not intended to call a group of phones. All a callgroup entry does is help define
who is permitted to perform a pick-up for particular calls.
Call pick-up is the function that allows a user to pick up his phone, enter a predefined number,
and take a call from another phone that is currently ringing. It is useful in situations when
somebody has called your colleague and you do not want to jump up from your desk and run to
his desk in order to answer his phone. Instead you pick up your own phone, enter the predefined
number, and take the call on your own phone.

Kolmisoft 2006-2013

67

Balance and Credit


Description
There are two fields that describe the money situation for the user: balance and credit.

Balance is the amount of money you owe the user.


Credit is the amount of money you allow the user to be in debt to you.

The balance can be increased or decreased using Manual Payments.


Credit can be increased or decreased in Users' Details.

These fields act differently and have a slightly different meaning for postpaid and prepaid users.

Postpaid users
The balance can be any value:

< 0 the user owes you money for your services. He will get an invoice at the end of the
month, and when he pays that invoice, his balance will increase.
> 0 the user has overpaid you (you owe the user).
== 0 nobody owes anything to anyone (this is usual when the user is new or has just
paid his invoice and has not yet made further calls or used other services).

Credit for a postpaid user can be:

> 0 the user can make calls and use other services until he reaches credit, e.g. if his
credit = 10 USD, he can make calls (and use other services) to a total amount of 10 USD.
His balance starts at 0 and goes down to -10 USD. When the balance reaches -10 USD, the
user will not be able to make any more calls.
== - the user can make unlimited calls and use any service without restriction. All the
charges will be included in the invoice.

Kolmisoft 2006-2013

68

Prepaid users
The balance for prepaid users should ALWAYS be more than zero. Otherwise, the prepaid user
will be unable to dial-out.
Credit for prepaid users is ALWAYS zero.
Note: balance and credit are set for users, not devices. For example, if a user has several devices
and his balance/credit does not allow him to make any more calls, he will be unable to use any of
his devices.

Why amounts are without VAT?


VAT stands for 'Value added TAX'. All prices and rates in MOR are without VAT. That's a rule. each
user has VAT %. By that VAT % he gets charged when he makes payments or views his rate. Info
how to configure VAT for specified solutions is available in Manual.

Local Calls
Description
A Local Call is a call made when a device which is connected directly to the system dials the
extension of another device connected directly to the system.

Kolmisoft 2006-2013

69

Billing
MOR does not bill Local Calls.
MOR does not serve local calls when users are using extensions, so no reports are available to
see such calls.
If one user dials another user using DID, then it is possible to see reports about such calls.
The same applies to billing local calls. If one extension dials another using DID, then it is possible
to bill such a call.
Local Calls are billed using DID Rates, not Tariffs.

Calling to Local Device


Use Extension (of another Local Device) to dial another Local Device. Extension can be found in
this Device's Edit window.
Make sure that Device is registered to Asterisk server before dialing.
sip show peers
in Asterisk CLI shows this information.
It is also visible on softphone or VoIP phone screen usually (if this Device is registered to the
Asterisk server).

See also

Sip poke noanswer: Peer 'XXX' is now UNREACHABLE!

Kolmisoft 2006-2013

70

Prepaid Logic
Explanation
Prepaid Logic applies only to Prepaid users.
In /etc/asterisk/mor.conf value, frozen_time describes the maximum time for calls by prepaid
users.
When a user makes a call, his balance is frozen by the amount which is necessary to make the
maximum length of the call (frozen_time).
If the user talks for less time, his part of the balance is unfrozen and the correct amount is
deducted.
If the user talks for a time which is equal to frozen_time, then his call ends automatically after the
frozen_time minutes are up.

Example
/etc/asterisk/mor.conf frozen_time = 3
A call minute to Lithuania MOB costs 0.2 EUR/min.
A prepaid user has 8 EUR in his balance.
When the user makes his first call to Lithuania MOB:

MOR freezes his balance of 6 EUR (30 min * 0.2 EUR/min).


Now the user has 8 EUR in his balance with 6 EUR frozen (2 EUR left free).
The call limit for this call is 30 minutes.

When the user makes a second call to Lithuania MOB (the first call is in progress):

MOR freezes the remaining 2 EUR from the user's unfrozen balance.
Now the user has 8 EUR frozen balance and 0 left as unfrozen.
The call limit for this call is 10 min (2 EUR / 0.2 EUR/min).

Kolmisoft 2006-2013

71

When the user makes a third call to Lithuania MOB (the first and second calls are in progress):

The call is dropped because there is no free balance to cover the call.

When the user hangs up his first call, let's say after 12 minutes:

His balance is unfrozen by 6 EUR.


2.4 EUR (12min * 0.2 EUR/min) is deducted from the user's balance, so now the user will
have a total balance of 5.6 EUR (8 - 2.4), where 2 EUR is still frozen by the second call.
Now the user can make a fourth call while the second is still in progress, and the
maximum length of the fourth call would be (5.6 - 2) / 0.2 = 18 minutes.

If the user hangs up his second call, say with a length of 9 minutes and there is no fourth call, we
have this situation:

The balance is unfrozen by 2 EUR.


The call price is 9 * 0.2 = 1.8 EUR, so the user's balance will be 5.6 - 1.8 = 3.8 EUR, and
none of this amount is frozen.

If the user talks for 10 minutes in the second call, this call is automatically ended by the system.
This logic prevents any loss to the system owner. It applies stricter rules, but this pays off in the
long run.

Special case
When only one simultaneous call is allowed for the device and/or user (Call Limit = 1), then
frozen_balance is not used.
Example #1: If User/Device is limited to only one call at a time, he can use all his remaining
balance for the call (if the user is prepaid).
Example #2: Call will last till balance runs out.
NOTE: Two hours is the hardcoded call limit for all calls. Even if the balance allows longer calls
than two hours, the call will still be limited to two hours.
If the user has Call Limit not 1, but his one device (D1) has Call Limit == 1 and another device
(D2) Call Limit not 1, then device D1 will be able to make 1 simm. call two hours in duration, and
ONLY if the balance is sufficient to cover for frozen_time. Device D2 calls will be limited to
frozen_time.
Kolmisoft 2006-2013

72

Calling Card calls are always limited to one call - that is, a calling card can make only one call (for
whole available balance) at a time.

Questions
Q. What would happen if a user has a balance lower than the cost of a "maximum duration" call?
A. The user will be allowed to talk only for the time that is covered by his balance. Example:
maximum duration = 2 hours. If a user has enough balance for one hour, his call will be limited to
one hour. After one hour, his call will end (the system will terminate it) and you will not take any
loss.

See also

Hangupcause Codes
MOR authorize: Balance too low for more simultaneous calls!

Authentication
There are two types of authentication in MOR: IP authentication, and using login and password.
IP authentication means accepting calls from a given IP automatically, without requesting any
additional login data.
To use login and password authentication, the sender needs to register his phone or pbx to MOR
before sending calls, otherwise MOR will reject them.
Note: IP and login/password authentication cannot work together for the same device or
provider.

Kolmisoft 2006-2013

73

IP Authentication
This example shows how to configure device to use IP Authentication. Important parts are
marked in RED:

Kolmisoft 2006-2013

74

Fax over VoIP


Fax over VoIP is not reliable and does not work most of the time.
It is possible to get a nearly 100% rate in rare circumstances
but there is a very very low chance of this.
The broad explanation lies in a technology mismatch between
FAX and VoIP, as explained in Steve Underwood's article here
[http://www.soft-switch.org/foip.html].
Steve Underwood developed the SpanDSP package, which
helped to implement FAX support into Asterisk, Freeswitch and other open-source VoIP
platforms.
The T38 protocol is supposed to work reliable over VoIP, but the problems with this protocol are
following:
1. Different hardware vendors do not follow standards and T38 implementation on various
hardware is mostly broken.
2. Asterisk does not support T38 very well.

See also

Send Receive Fax over T38


Fax is not received
I have a problem with Fax

Configuration
mor.conf
This file is in /etc/asterisk/ and describes some values for the app_mor.so application, which is
the main MOR core working in the Asterisk environment.

hostname, dbname, user, password, port, sock All these values describe connections
to the database.

Kolmisoft 2006-2013

75

min_frozen Minimum credit left to allow simultaneous calls. If the user's balance is
lower, he will not be able to make simultaneous calls (default 10); Not used starting from
MOR 0.7.
frozen_time How much balance to be frozen in terms of minutes if the user is prepaid
(default 30). If the user makes several simultaneous calls and is prepaid, we need to
"freeze some amount to be safe. A more detailed explanation is in Prepaid Logic.
show_notice, show_warning, show_error Sets debug level for the app_mor.so
application in Asterisk CLI.
zap_change Change ZAP into something else in Asterisk to permit the use of some
custom-made channels based on Zaptel.
server_id Unique number for server identification.
active_calls Tells app_mor.so to update info to DB related to calls currently on the
system.
dial_out_settings Global settings for Dial() command in Asterisk (rTt or similar).
serial Serial key for activating app_mor.so.
use_lcr_partials - Should MOR be able to use LCR by destinations? Default 1.
global_call_timeout - Global timeout for calls in seconds, default 7200 seconds (2h).
check_banned_clis - Should MOR check for banned CLIs? Default 1, Enables/Disables
ANI/CLI ban system (available from MOR 8).
use_flat_rates - Should MOR use Flat-Rates, default 1.
use_speed_dials - Should Speed Dials be enabled.
server_ip - external server IP, default 127.0.0.1 (Used in P-Asserted-Identity).
play_hgc_audio - Should we play audio with error message when call fails? (default 0 if
not set).
o If it is equal to 1, then sound files will be played for error codes 200 and higher
o If it is equal to 2, then sound files will be played for ALL error codes (sound files for
these error codes are not included into MOR)

clean_destination - MOR cleans destination and leaves only numeric values. Example, if
destination is entered as 1234.56789, only 1234 is left after cleaning. Default 1
pass_pai - When PAI comes from Caller should we pass it to Callee automatically? default
no (0)
record_not_answered_calls - save audio to the file while the channel is not answered (not
bridged), default 0 (by default records only answered calls)
hgcX = code, sets ISDN code for MOR HGC, where X >= 200 and code - some integer
value, from ISDN codes, example: hgc203 = 34 sets ISDN code 34 for MOR HGC 203. If no
values are set - default ones will be used.
log_only_last_cdr - Default 0. If 1, then Core logs only last CDR for the Call, e.g. it does
not log failed attempts to use first providers in the LCR until call goes over the last one.
E.g. only one CDR is logged for the call.
In order to activate changes made to this file, you need to restart Asterisk or reload app_mor.so

Kolmisoft 2006-2013

76

Reload app_mor.so
1. Login to Asterisk CLI
2. Make sure there are no active calls using command: show channels. Wait till they end or
kill them using soft hangup command.
3. Issue: module unload app_mor.so
4. Then: module load app_mor.so

See also

How to restart Asterisk server

Configuration from GUI


Where I can find this settings menu?
You can find this menu in SETTINGS > Setup > Settings

Global
SETTINGS > Setup > Settings > Global

Company name of the company.


Company email email address of the company.
Version version number shown on the bottom left corner of GUI.
Copyright Title shown on the bottom left corner of GUI after Version.
Browser Title browser title for MOR GUI.
FrontPage Text some text to place on front page.

Kolmisoft 2006-2013

77

Registration
SETTINGS > Setup > Settings > Registration

Enabled? do we want to let users register online automatically?


Hide registration link in Login page? - tick this option you don't want that users would
be able to register online.
Default country
Asterisk server IP what IP user should connect his softphone/server?
Send email to user after registration just yes or no.
Send email to admin after registration just yes or no.
ReCAPTCHA configuration
Terms and conditions
Allow to create user and device with matching username and password just yes or
no. If this setting is not enabled - username and password from MOR GUI will have to be
different than device's username and password.

See also

Default user

Invoices
SETTINGS > Setup > Settings > Invoices
Invoice configuration is divided into Prepaid and Postpaid.

Settings

Number start how the invoice number should start.


Number length the length in digits AFTER Number Start e.g. Number Start is not
counted into this length. This value is active only for first number type.
Number type select more appropriate number format.
Invoice period start when invoices are issued, default is first day of the month.
Show calls in detailed invoice yes or no.
Show balance line - should we show balance line in invoice or not?

Kolmisoft 2006-2013

78

Round finals to 2 decimals - round or not total in Invoices to 2 decimals.


Use short file name
Instead billsec show user_billsec
Invoice Page Limit - invoice will be generated till this page limit. Additional page is
added with an explanation that page limit was reached.

Details

Address format changes field positioning in the invoice for the address.
Address line 1-4 address info.
Bank details line 1-5 bank details info.
Invoice balance line - line for balance (e.g. "Your current balance is")
Invoice to pay Line
End title a title for the end of your invoice.

Additional

Show additional details on separate page - enables additional custom page at the end
of the invoice.
Additional details - the information to be displayed in a custom page at the end of the
invoice.

WEB Callback
SETTINGS > Setup > Settings > WEB Callback

Active? enabled or disabled.


MaxRetries how many times to try to redial if the call fails.
RetryTime in what intervals (in seconds) to try to redial.
WaitTime timeout value for the call, or how long to wait till the call is answered.
WEB Callback CID - what CID to show on outgoing call.
Web Callback Server - which server from the servers list to use for webcallback.

Kolmisoft 2006-2013

79

Emails
SETTINGS > Setup > Settings > Emails

Sending enabled if this is checked, you will be able to use Mass Mailing and the system
will send emails upon user registration.
SMTP server hostname of the server.
Port - port of SMTP server.
Login username to your SMTP server.
Password password to your SMTP server.
Batch size value for Mass Mailing, oe how many emails to send at once.
From - email address to put into From: field in email.
Test email sending - save settings and press this to test email sending. Do not forget to
save settings first!
P.S. Remember to set admin's e-mail in admin's personal settings. Without this test
email sending will not work!

See also

Mass Emails
Email variables

Various
SETTINGS > Setup > Settings > Various

Days for DID to close - how long to keep DID closed before making it free.
Agreement number length - number length in digits.
Change Zap - Sometimes this is used to change "Zap" to something else in GUI, e.g. to
"PSTN", mainly because not everybody knows what Zap stands for. PSTN is more
common.
Device PIN length - length for automatically generated PIN codes for devices.
Device range MIN - from which extension automatic extension assigning starts.
Device range MAX - till which extension automatic extension assigning goes.
o For example, from this interval: [Device range MIN, Device range MAX] MOR will
select extensions for newly created Devices.

Kolmisoft 2006-2013

80

User wholesale tariff enabled - enables user wholesale tariffs.


Allow devices to check balance over HTTP
Allow devices to check rate over HTTP
Play IVR for unauthenticated call
Banned CLIs default IVR - default IVR to route banned numbers.
Do not allow duplicate device user names
Do not allow users to change their email addresses
Allow short passwords in devices
Do not allow prepaid user balance drop below zero
Logout link - a user will be redirected to this link after pressing "Logout"
Change ANSWER to FAILED if HGC not equal to 16 for Users - changes the
Hangupcause for users in call reports from Answered to Failed if Hangupcause is not 16.

Tax
SETTINGS > Setup > Settings > Tax
Settings are explained in Multi-Tax system

Google Maps
SETTINGS -> Setup -> Settings -> Google Maps

Fullscreen - should we show Google Maps in full-screen (for example, remove the menu
from the template)?
Reload Time - how often to refresh in seconds
Width - width for the GMaps window in pixels
Height - height for the GMaps window in pixels
Key - GMaps key.
o Instructions on how to get it here.
o More about Google Maps integration.

Backups
SETTINGS > Setup > Settings > Backups
Configuration is explained here: Backup system

Kolmisoft 2006-2013

81

API
SETTINGS > Setup > Settings > API

Allow API - enable/disable API.


Allow GET API - enable/disable GET in API - use only for testing!
API Secret Key - secret key for API. This will be used as a password for signing queries to
MOR API, check MOR API documentation for more information
XML API Extension - .NET does not follow standards (surprise!); enable this setting if you
are using it to get XML starting with HTTP tags.
Allow API Login Redirect

Functionality
SETTINGS > Setup > Settings > Functionality

FAX

Fax device enabled - enable/disable Fax device in MOR.


Email2Fax From Sender - There is a field "From:" in an email form. When MOR sends Fax
to Email, "Email2Fax From Sender" value is puted in "From:" field.

CSV

CSV Column Separator - how columns are separated in imported/exported CSV files.
CSV Decimal Separator - how decimal parts in numbers are separated in
imported/exported CSV files.
Archive CSV file when size reaches - if CSV file reaches a certain size, the system will
archive it to save time to download it (0 means to archive always)

Active Calls

How many maximum Active Calls to show in GUI - how many Active Calls to show in
GUI
Active Calls refresh interval - Active Calls refresh interval in seconds

Kolmisoft 2006-2013

82

Show Active Calls for Users - tick if you want to allow users to see Active Calls
Show Servers in Active Calls

Tariffs/Rates

Show rates for users - tick if you want to allow users to see rates
Show rates without Tax - tick if you want to see rates without TAX
Show Advanced Rates for users - tick if you want to allow users to see Advanced Rates

Privacy
SETTINGS > Setup > Settings > Privacy
Settings are explained here: Privacy to hide Destination ends

Kolmisoft 2006-2013

83

Visual
SETTINGS > Setup > Settings > Visual

Items per page - the number of items to display per one page
Default date format - System default time format
Number digits - how many digits to display after a comma
Hide Quick Stats - hide Quick stats from start page
Hide device passwords for users - do not display device passwords for users
Hide HELP banner - hide HELP banner in GUI
Hide "I want to" help links
Hide "Manual" link - hides "Manual" link
Show logo on first page - unselect to hide logo on the start page
Show Full Source (CallerID Name and Number)
Hide payment options for postpaid users
Show advanced Device settings
Hide non-completed payments for user - hides non-completed payments (the ones
which are started in MOR, but are not completed in a payment gateway website)
Show only main page - this is a very advanced feature for those who want to hide
default MOR menu tree on the left so that they could build their own menu using
advanced techniques without modifying MOR GUI sources.
Hide Recordings for all users - hides recordings for all system users from menu and
device settings.
Show only main page - this is a very advanced feature for those who want to hide
default MOR menu tree on the left so that they could build their own menu using
advanced techniques without modifying MOR GUI sources.
Hide Recordings for all users - hides recordings for all system users from menu and
device settings.

ReCAPTCHA
A CAPTCHA [http://recaptcha.net/captcha.html] is a program that
can tell whether its user is a human or a computer. You've probably
seen them colorful images with distorted text at the bottom of
Web registration forms. CAPTCHAs are used by many websites to prevent abuse from "bots," or
automated programs usually written to generate spam. No computer program can read distorted
text as well as humans can, so bots cannot navigate sites protected by CAPTCHAs.

Kolmisoft 2006-2013

84

More info [http://recaptcha.net/captcha.html]

Implementation in MOR
reCAPTCHA is disabled by default in MOR.
To enable it, go to SETTINGS > Setup > Settings > Registration.
Here
mark
reCAPTCHA
enable
and
press
[https://admin.recaptcha.net/accounts/signup/?next=]

on

Get

reCAPTCHA

keys

and follow pictures how to register and get keys:

Here enter your domain name, or your IP if you do not have a domain - for example:
http://22.33.44.55 (put your IP here! Do not leave support.kolmisoft.com or 22.33.44.55 <- these
are just examples!)
Kolmisoft 2006-2013

85

Kolmisoft 2006-2013

86

Copy-paste these keys into MOR configuration:

Kolmisoft 2006-2013

87

Now, on the registration page, the user should enter valid words to complete registration.
And in the registration page, the user will see captcha:

Kolmisoft 2006-2013

88

Payments configuration
Where can I find Payments configuration menu?
You can find Payments configuration menu by navigating to:
SETTINGS -> Setup -> Settings -> Payments:

Vouchers

Vouchers enabled yes or no.


Number length how long a voucher's number should be; make it at least 10 digits long.
Disable time (minutes) if a user fails several times to enter the correct voucher number,
the period for which he should be prevented from trying again.
Attempts to enter how many times a user can try to enter the voucher number.

Kolmisoft 2006-2013

89

PayPal

PayPal Enabled yes or no.


PayPal Email account in PayPal where you want to get payments.
Default currency select a currency which matches your account's supported currency. If
they do not match, you will get errors.
User pays transfer fee check whether the user should pay a transfer fee; otherwise you
as the system owner will pay it (default).
Default amount amount to show for customer when he tries to enter payment. User
can change this amount.
Minimal amount the minimum amount a user can send you.
Test if this is checked, all amounts will be equal to 0.01. Good for testing with a real
account.

Kolmisoft 2006-2013

90

WebMoney

WebMoney Enabled yes or no.


Default currency select a currency which matches your account's supported currency. If
they do not match, you will get errors.
User pays transfer fee check whether the user should pay a transfer fee; otherwise you
as the system owner will pay it (default).
Default amount amount to show for customer when he tries to enter payment. User
can change this amount.
Minimal amount the minimum amount a user can send you.
Test testing mode.
WebMoney SIM MODE - testing mode in WebMoney system. Connects to the test server
instead of a real one.

Kolmisoft 2006-2013

91

LinkPoint

Enabled yes or no
Test testing mode
Allow HTTP requests yes or no
LinkPoint StoreID enter LinkPoint StoreID
LinkPoint Currency select currency
Default Amount - amount to show for customer when he tries to enter payment. User can
change this amount.
Min. Amount - the minimum amount a user can send you.

Kolmisoft 2006-2013

92

Cyberplat

Cyberplat Enabled yes or no.


Cyberplat Test testing mode.
Cyberplat Currency select a currency which matches your account's supported
currency. If they do not match, you will get errors.
Default amount amount to show for customer when he tries to enter payment. User
can change this amount.
Minimal amount the minimum amount a user can send you.
Transaction Fee - a transaction fee that user pays for a transaction
Shop IP - a shop IP

Kolmisoft 2006-2013

93

Ouroboros

Enabled yes or no.


Merchant Code a merchant code
Secret Key a secret code.
Default amount amount to show for customer when he tries to enter payment. User
can change this amount.
Minimal amount the minimum amount a user can send you.
Currency select a currency which matches your account's supported currency. If they do
not match, you will get errors.
Language in which language Ouroboros should display the web page.

Kolmisoft 2006-2013

94

Default device settings


About
These settings will be applied to manually created devices.
This means that if you enter some special settings here and later go on to create a new device for
a user, the device will have these settings preset.

Where to find Default device settings?


Go to SETTINGS -> Setup -> Settings -> Default device:

Kolmisoft 2006-2013

95

Default values of Default Device

Kolmisoft 2006-2013

96

Default user
What is Default User settings?
These are the default settings which are applied to all new users.

Where to find Default User settings?


Default user settings can be found in SETTING -> Setup -> Settings -> Default User

What are the most important Default User settings?


The most important Default User settings are:

LCR - set default LCR for new users


Tariff - set default Tariff for new users
Balance - the amount you enter here user will get to call for free. Warning - if you have
registrations enabled from MOR login page - this setting can lead to significant money
losses if this option is set high.

For more details about available options in default user settings please refer to user details.

Kolmisoft 2006-2013

97

Accountant permissions
Description
By default Accountants have only read-only rights.
It is possible to allow them to make some changes to the system by changing their permissions.
Accountants belong to some Accountant Groups with different permissions.
This makes it possible to create separate Accountant types, such as:

Financial accountant - which can manage Tariffs/Rates, etc.


Network engineer - can manage Devices.
Network administrator - can manage Users.

... and so on. Many variations are possible.

Accountant Groups
SETTINGS -> Setup -> Settings -> Accountant permissions
Create groups here:

Kolmisoft 2006-2013

98

Create permissions:

Kolmisoft 2006-2013

99

Create Accountants and assign them to an Acc. Group.

Logo change
What is a LOGO?
LOGO (shortcut of "logotype") is a picture that represents your company. For more information
see logotype.

Where to change a LOGO?


Go to SETTINGS -> Setup -> Settings -> Logo

Kolmisoft 2006-2013

100

How to change a LOGO?

You can do this by clicking Choose file, navigating to the file in your operating system and
pressing Upload logo.

See also

Custom Reseller Login page LOGO

Currencies
SETTINGS -> Setup -> Settings -> Currencies
Here is a list of supported currencies.
MOR operates in one and only one currency.

Default Currency
It is necessary to decide in which currency the software will operate and set such currency as the
default before starting to work with the software.
That means that all operations inside MOR will be done in this default currency.

Kolmisoft 2006-2013

101

You can fin a video which demonstrates how to change the default currency here
[http://wiki.kolmisoft.com/index.php/Currencies]

Currencies window
In the Currencies window, we see a list of currencies.
The first one is the default and the most important currency.

Exchange rate is equal to Default Currency DIVIDED BY some other currency, e.g. EUR
Exchange rate when Default Currency is USD is equal (in 2009-03-24) 0.7351, e.g.
USD/EUR.
Last Update is for informational purposes.
Active? - shows if this Currency is used in GUI (to create Tariffs, Payments, view Stats, etc).
Update? - if checked, this currency (its exchange rate) will be updated from
finances.yahoo.com at midnight.
Yahoo - update this currency (its exchange rate) from finances.yahoo.com right now.
Edit - this option is accessible when Update? is OFF. You can then enter Exchange Rate
manually for this currency.
Update currencies from web - updates all currencies marked as to be updated from the
web.

Add/Remove Currency
There is a main set of currencies that cannot be removed from MOR.
You can add own currency - just make sure it is not in the list already.
To add a currency, fill data at the bottom of the Currencies table and click the Add icon.
For a newly added currency, you will need to set the Exchange Rate manually. Updating from
Yahoo is not possible.
A manually added currency can be deleted, that is, removed from MOR.

Kolmisoft 2006-2013

102

Default supported currencies


These currencies are in MOR by default and can be updated automatically from
finances.yahoo.com.

AED United Arab Emirates Dirham

GRD Greek Drachma

NZD New Zealand Dollar

ALL Albanian Lek

GTQ Guatemala Quetzal

OMR Oman Rial

ANG Netherlands Antilles Guilder

GYD Guyana Dollar

PEN Peruvian Sol

ARS Argentinian Peso

HKD Hong Kong Dollar

PGK Papua New Guinea Kina

ATS Austrian Schilling

HNL Honduras Lempira

PHP Philippines Peso

AUD Australian Dollar

HRK Croatian Kuna

PKR Pakistani Rupee

AWG Aruban Florin

HTG Haitian Gourde

PLN Polish Zloty

BBD Barbados Dollar

HUF Hungarian Forint

PTE Portuguese Escudo

BCEAO CFA Franc

IDR Indonesian Rupiah

PYG Paraguayan-Guarani

BDT Bangladesh Taka

IEP Irish Punt

QAR Qatari Rial

BEAC CFA Franc

ILS Israeli Shekel

ROL Romanian Leu

BEF Belgian Franc

INR Indian Rupee

RUB Russian Ruble

BGN Bulgarian Lev

ISK Iceland Krona

SAR Saudi Arabian Riyal

BHD Bahraini Dinar

ITL Italian Lira

SBD Salomon Islands Dollar

BMD Bermuda Dollar

JMD Jamaican Dollar

SCR Seychelles Rupee

BND Brunei Dollar

JOD Jordanian Dinar

SDD Sudanese Dinar

BOB Bolivian Boliviano

JPY Japanese Yen

SEK Swedish Krona

BRL Brazilian Real

KES Kenyan Shilling

SGD Singapore Dollar

BTN Bhutan Ngultrum

KHR Cambodian Riel

SHP St. Helena Pound

BWP Botswana Pula

KMF Comoros Franc

SIT Slovenian Tolar

BZD Belize Dollar

KRW South Korean Won

SKK Slovak Koruna

CAD Canadian Dollar

KWD Kuwaiti Dinar

SLL Sierra Leone Leone

CHF Swiss Franc

KYD Cayman Islands Dollar

SRG Surinam Guilder

CLP Chilean Peso

KZT Kazakhstani Tenge

STD Sao Tome & Principe Dobra

CNY Renmimbi Yuan

LAK Laos Kip

SVC El Salvador Colon

COP Colombian Peso

LBP Lebanese Pound

SYP Syria Pound

CRC Costa Rican Colon

LKR Sri Lanka Rupee

SZL Swaziland Lilangeni

CUP Cuban Peso

LSL Lesotho Loti

THB Thai Baht

CVE Cape Verde Escudo

LTL Lithuanian Litas

TND Tunisian Dinar

CYP Cypriot Pound

LVL Latvian Lats

TOP Tonga Isl Paanga

CZK Czech Koruna

LYD Libyan Dinar

TRY Turkish Lira

DEM German Mark

MAD Moroccan Dirham

TTD Trinidad Dollar

DJF Djibouti Franc

MDL Moldovan leu

TWD Taiwan New Dollar

DKK Danish Krone

MGF Malagasy Franc

TZS Tanzanian Shilling

DOP Dominican Peso

MMK Myanmar Kyat

UAH Ukraine Hryvnia

DZD Algerian Dinar

MNT Mongolian Tugrik

UGX Ugandan Shilling

EEK Estonian Kroon

MRO Mauritania Ouguiya

USD United States dollar

EGP Egyptian Pound

MTL Maltese Pound

VEB Venezuelan Bolivar

ESP Spanish Peseta

MUR Mauritius Rupee

VND Vietnam Dong

ETB Ethiopian Birr

MVR Maldives Rufiyan

VUV Vanuatu Vatu

EUR Euro

MWK Malawi Kwacha

WST Western Samoa Tala

FIM Finnish Markka

MXN Mexican Peso

XAF CFA Franc

FJD Fiji Dollar

MYR Malaysian Ringgit

XCD East Caribbean Dollar

FRF French Franc

MZM Mozambique Metical

XOF CFA Franc

GBP British Pound

NAD Namibian Dollar

XPF CFP Franc

GEL Georgian lari

NGN Nigerian Naira

ZAR South African Rand

GHC Ghanaian Cedi

NIO Nicaraguan Cordoba

ZMK Zambia Kwacha

GIP Gibraltar Pound

NLG Dutch Guilder

ZWD Zimbabwean Dollar

GMD Gambia Dalasi

NOK Norwegian Krone

GNF Guinea Franc

NPR Nepal Rupee

Kolmisoft 2006-2013

103

Translations
If you want to change the translation of the MOR GUI, you can click on the selected flag in the
upper right corner of the window.
In order to manage Translations of the MOR, you should go to SETTINGS > Setup > Settings
-> Translations.
Here you will see a window with all the available translations.
In the first column, you can Drag & Drop a translation to its new place. This column is dedicated
to managing the order of translations.
The second column is for activating/deactivating translations. Simply click on the desired
translation to activate/deactivate it. When disabled, it is grayed out.
If you want to see changes instantly, click the icon at the bottom. The page will be reloaded and
you will not need to logout/login to see the changed translation order in the upper right corner
of your window, where translations are represented as flags.
The first translation is the DEFAULT translation. If you want to change the default translation,
Drag&Drop the other translation to the very top of the translations list.
The default translation is the translation that is active when the user comes to the page for the
first time.
You can find a video which shows you how to change the default translation here
[http://wiki.kolmisoft.com/index.php/Translations]

Language trick
Also, there is a little trick with language translations. Sometimes, such situation can happen
(example for admin user) when you need to check something in the page with another language,
which you removed from language bar on the top of the page. It would be a "long" way, while
enabling the language, check what you need and disable it back.
To avoid such or relative situation user can use ?lang= annex which can be added to the link.
This is also the way to show registration page in preferred language when you are
redirecting user to registration page from some other external website.

Kolmisoft 2006-2013

104

Example
User is editing Provider Edit and the link is http://SER.VER.I.P/billing/providers/edit/12, he can
add ?lang=ru (http://SER.VER.I.P/billing/providers/edit/12?lang=ru) and the page will be
translated to Russian language immediately. This trick can be done with every language MOR
system supports. Instead of "ru" just add code of language you need. For English - en, for French
- fr and etc.

See also

MOR GUI Translation


Change flag for translation

Kolmisoft 2006-2013

105

Global date format


Global date format can be easily changed in SETTINGS -> Setup -> Settings -> Visual.
To change the date format select it from Default Date Format drop-down menu.
P.S. Don't forget to save settings by pressing the Save changes button

See also

GUI configuration
More info about date formats on Wikipedia

Kolmisoft 2006-2013

106

Remove Manual link from admin GUI


What is a Manual link in MOR?
Manual link opens a MOR MANUAL in Kolmisoft wiki page. This link can be found on the right
bottom:

How to disable a Manual link ir MOR?


1. Go to SETTINGS -> SETUP -> Settings menu:

2. Select Visual tab and select an option Hide "Manual" link.


3. Press Save changes button
The MANUAL link should not be visible now.

Voicemail
Description
Voicemail (or voice mail, voice-mail, vmail or VMS, sometimes called messagebank) is a
centralized system of managing telephone messages for a large group of people. The term is also

Kolmisoft 2006-2013

107

used more broadly, to denote any system of conveying voice messages, including the answering
machine. [http://en.wikipedia.org/wiki/Voicemail]

Voicemail is automatically sent to a user's email if the email address is specified in the device
details.
An audio recording in WAV format is attached to the email.
One minute of audio takes approx. 100 Kb.

Configuration
This section can be found in SETTINGS > Billing > DIDs > PBX Functions > VoiceMail:

Kolmisoft 2006-2013

108

VoiceMail Extension (local) - describes which local extensions a local user can dial to
retrieve his voicemail (the system will ask him to enter his voicemail password, which can
be set in the device's details).

If you want to setup VoiceMail (VM) on a different server, then the following settings are
important:

VoiceMail Server active - turns VM server on/off. When on, all VM requests will go to
distant VM server; when off, VM will be handled locally on Asterisk.
VoiceMail Server connection/device - describes connection to VM server.
VoiceMail Retrieve Extension (local) - which extension to dial on a distant VM server to
retrieve voicemail for an extension.

Example:

Let's say we have our server on IP 23.45.67.89 connected with SIP to our Asterisk.
We create a separate user/device (vm_device) to describe this connection. Device's type is
SIP, IP = 23.45.67.89; set other settings also (codecs/etc).
VoiceMail Retrieve Extension (local) = 999.

Kolmisoft 2006-2013

109

First action is when VM is recorded


So now when the VM server is ON and the user with device 201 gets a VM, the call is redirected
like this:
Dial(SIP/vm_device/201)

This means that the server on 23.45.67.89 will receive a call to extension 201. The server SHOULD
BE configured so that it will process VM correctly when it receives such a call.

Second action - retrieving VM


When user wants to retrieve his VM on a distant machine he dials VoiceMail Extension (local).
He is redirected like this:
Dial(SIP/vm_device/999#201)

Again, the distant server should know how to process such a request.
Let's say we have a distant VM server based on Asterisk.
So in our example its configuration in /etc/asterisk/extensions.conf should look like this:
[incoming]
# to retrieve VM
exten => _999#.,1,VoiceMailMain(${EXTEN:4})
exten => _999#.,2,Hangup
# to record VM
exten => _X.,1,VoiceMail(${EXTEN})
exten => _X.,2,Hangup

Retrieve VoiceMail from outside over DID

In PBX functions create new function with type: check_voicemail.


Assign this PBX Function to a DID.

Kolmisoft 2006-2013

110

FROM string
To change the Voicemail email sending FROM field, edit the /etc/asterisk/voicemail.conf file line:
;fromstring=The Asterisk PBX

to:
fromstring=SOME OTHER LINE

... and reload Asterisk.

serveremail
This setting can be used to identify the source of a voicemail notification message.
;serveremail=asterisk

to:
serveremail=SOME OTHER LINE

OR:
;serveremail=asterisk@linux-support.net

to
serveremail=YOUR COMPANY@YOUR COMPANY.net

... and reload Asterisk.


Leave only one of those settings, not both.

Change UNAVAILABLE message


Dial Voicemail access number (default *97) and press 01; then, after the signal, dictate your
UNAVAILABLE message.

Kolmisoft 2006-2013

111

MWI - Message Waiting Indication


In telephony, a Message Waiting Indicator (MWI) is a telephone calling feature that illuminates a
LED on selected telephones to notify a user of waiting voicemail messages. It works on most
telephone networks and PBXs. (Wikipedia)
MWI is supported automatically starting from MOR 9.
Most phones support this feature.

See also

No sound on Voicemail or Playback


Voicemail does not work
Voicemail is sent with wrong time

Multi Server support


VERY IMPORTANT! IF YOU HAVE ONLY ONE ASTERISK SERVER OR DO NOT UNDERSTAND
WHAT THESE SETTINGS ARE FOR - DO NOT CHANGE THEM AT ALL!

SETTINGS - Billing - Servers

What is Multi Server support?


With this system, it is possible to manage several Asterisk servers from GUI.
These servers are Asterisk servers which work with calls and BILL them.

Where to find Multi Server support?

Kolmisoft 2006-2013

112

How to add a new Asterisk server?


Go to Asterisk Servers: Billing -> Asterisk Servers

Gateway - determines whether the server acts as a Gateway for SIP Proxy. This option is
available only when you have Carrier Class Edition. It means that the SIP Proxy will use this
server to send calls through.

Active - determines whether the server is active, e.g. whether MOR should 'talk' to this
server in order to update provider/device information. Disabling the server does not disable
its use, only the updating of changes from GUI.

ID - a unique identifier of a server that should be same as the server_id in mor.conf.

Test - click to test the connection to the server over AMI.

Hostname most times is equal to Server IP.

URL - a special URL for some third-party software, or sometimes for server stats.

Type and Comment - just for informational purposes.

Max Call Limit - not used for now.

AMI Username/AMI Secret - settings to connect to a server over AMI. These are the
most important settings in this window! They should match the values in the
server /etc/asterisk/manager.conf

SIP Port - the port Asterisk uses to listen to SIP; used in Carrier Class Edition.

SSH Username/Password/Port - not used now.

Fill in the required fields and press the marked icon:

Kolmisoft 2006-2013

113

NOTE! If you want to connect another Asterisk server which will not bill calls, then
configure it as Device/Trunk.

VERY IMPORTANT! IF YOU HAVE ONLY ONE ASTERISK SERVER OR DO NOT UNDERSTAND
WHAT THESE SETTINGS ARE FOR - DO NOT CHANGE THEM AT ALL!

How to make calls from devices on different Asterisk server


1. Create 2 devices, device A and device B.
2. Mark the correct Asterisk server in settings for those devices.
3. Create 2 DID numbers (any number format you need/want) DID1 and DID2
4. Forward DID to device (Assign DID to user and forward it to device) DID1 to device A, DID2 to
device B
5. Register devices to the Asterisk servers that they belong
6. Call from Device A to DID2 to reach Device B, and vice versa.

Providers
Where to find providers of a specific Asterisk server?
1. Go to Asterisk Severs
2. To get to providers list of a specific Asterisk server press the marked icon:

This

window

Kolmisoft 2006-2013

shows

which Providers are

accessible

from this

Server.

114

Call Flows
Lets say we have:
Provider provA and Device devA configured on Asterisk server ast1;
Provider provB and Device devB configured on Asterisk server ast2;
Provider provC configured on both Asterisk servers (ast1 and ast2).
Possible call flows are:
devA makes call through provA (user > ast1 > provA);
devB makes call through provB (user > ast2 > provider);
devA makes call through provB (user > ast1 > ast2 > provB);
devB makes call through provA (user > ast2 > ast1 > provA);
devA makes call through provC (user > ast1 > provC);
devB makes call through provC (user > ast2 > provC).

Server Version/Uptime

These values are updated automatically by MOR. Not possible to change them manually.

Additional Notes

Every Provider can belong to every Server.

It is important to map the correct Providers to the correct servers.

Kolmisoft 2006-2013

115

Database and GUI servers are not described here.

Email settings
Please check Configuration from GUI for information how to setup email sending.

Emails
What are Emails?
This function is used to send emails to your clients. It can be used to send commercials, notes
about service unavailability or anything else maybe Christmas greetings!

Where I can find Emails?


This function can be found in SETTINGS > Setup > Emails:

Here you see emails which are templates for emails about various system messages. The 'test'
email is created for demo purposes for mass-mailing.

Kolmisoft 2006-2013

116

Next is how to

Edit email. Creating email and editing it are very similar processes. Here is how

to edit:

The Name and Subject fields are simple. The most important field is Message text. Here you enter
message for the user. Also, you can use the following variables here:
<%= server_ip %> - Server IP where your users should register their SIP/IAX2 devices.
<%= device_type %> - Used on user registration - shows the device type the user has selected.
<%= device_username %> - Used on user registration - shows the device's username.
<%= device_password %> - Used on user registration - shows device's password.
<%= login_url %> - GUI login url.
<%= login_username %> - User's username to login to GUI.
<%= login_password %> - User's password to login to GUI.
<%= username %> - same as login_username.
<%= first_name %> - First name of the user.
<%= last_name %> - Last name of the user.
<%= full_name %> - First name and last name of the user.
Click on Change to save any of these variables.
Full list of MOR supported email variables can be found in Email variables page.

Kolmisoft 2006-2013

117

In the main window (SETTINGS > Setup > Emails), you can press on
recipients to send this email:

icon to select to which

Additional Notes

Emails sending must be enabled to use this functionality


Full list of MOR supported email variables can be found Email variables page.

Email variables
Every email

<%= server_ip %> - server IP where your users should register their SIP/IAX2 devices.
<%= device_type %> - shows the user's primary device type. (The device is set as the
primary device after user registration).
<%= device_username %> - shows the user's primary device username. (The device is
set as the primary device after user registration).
<%= device_password %> - shows the user's primary device password. (The device is set
as the primary device after user registration).
<%= login_url %> - GUI login url.
<%= login_username %> - user's username to login to GUI.
<%= username %> - same as login_username.
<%= first_name %> - first name of the user.
<%= last_name %> - last name of the user.
<%= full_name %> - first name and last name of the user.
<%= balance %> - user's balance.

Kolmisoft 2006-2013

118

<%= nice_balance %> - formated user's balance.


<%= warning_email_balance %> - amount below which user should be warned with
email.
<%= nice_warning_email_balance %> - formated amount below which user should be
warned with email.
<%= currency %> - default system currency's short name (USD).
<%= user_email %> - user's email address.
<%= company_email %> - company email address.
<%= email %> - company email address.
<%= company %> - company title.
<%= primary_device_pin %> - PIN of user's default device. The fault device is created
the moment the user registers, so this variable can be used universally.
<%= calldate %> - used only from api request send_email.
<%= source %> - used only from api request send_email.
<%= destination %> - used only from api request send_email.
<%= billsec %> - used only from api request send_email.

After registration

<%= login_password %> - user's password to login to GUI.


<%= user_ip %> - user's IP address.

Cyberplat payment report

<%= currency %> - payment currency.


<%= amount %> - payment amount.
<%= date %> - payment date.
<%= auth_code %> - authorization code.
<%= transaction_id %> - payment transaction ID provided by Cyberplat.
<%= customer_name %> - payment customer name provided by Cyberplat.
<%= description %> - payment details provided by Cyberplat.

Calling Card purchase

<%= cc_purchase_details %> - cards list (Number, Pin, Price).

Kolmisoft 2006-2013

119

Example
This template:
Hello, <%=full_name%>
Your balance in MOR has fallen below <%= nice_warning_email_balance %>
currency %> and now is <%= nice_balance %> <%= currency %>.
Please login to <%= login_url %> and replenish it.
Yours sincerely,
KOLMISOFT

will result in an email similar to this:


Hello, John Smith
Your balance in MOR has fallen below 10.00 USD and now is 5.67 USD.
Please login to http://your_site/billing and replenish it.
Yours sincerely,
KOLMISOFT

Illegal usage
You will get an error when you try to use non-existent variables.
Also, you cannot use something like this: <%= "www.kolmisoft.com" %>

See also

Email Configuration
Mass Emails

Kolmisoft 2006-2013

120

<%=

Number Manipulation
Localization
Description
Localization transforms received number to E.164 format number.
The main idea of localization is: No matter how the user dials the number (destination), when
localized it should be in E.164 format.
Localization has nothing in common with numbers you send to providers. It operates with
numbers received from the caller.
Depends on the location of the user (or his device), it is often important to allow users to dial
differently formatted numbers to reach a destination. For this purpose, each device has a field
Location, which describes the physical location of the device and provides rules for how th3
device can dial a destination. In other words each device IS in (or belongs to) some Location
where specific dialing rules apply.
Location describes where a caller IS - not where he is calling to!
By default, a device has the location Global. Global rules apply to ALL devices. If a user belongs to
some other location and his dialed destination has some rule for his destination, then global rules
are not activated they have a lower priority in location rules.
You can access Localization settings in SETTINGS > Billing > Functions > Localization.
In the main window you can see available Locations:

At first there is only the Global location. You can't delete this location. It's the default for all
devices.

Kolmisoft 2006-2013

121

You can add a new Location by entering this Location's name in the field at the bottom of the
table:

and clicking

In the Rules column, click the

icon to access Location's rules:

The following settings should be explained for rules:

Name just for informational purposes.


Cut what prefix should be cut from the number.
Add what prefix should be added to the number.
Min Len the minimum length of number to which the rule is being applied.

Kolmisoft 2006-2013

122

Max Len the maximum length of number to which the rule is being applied.
Change User Tariff to this Tariff - which Tariff to apply when this rule is applied. It is
used in special cases, for example here. Leave this empty in most cases.
Change User LCR to this LCR - which LCR to apply when this rule is applied. It is used in
special cases, example here. Leave this empty in most cases.
Route to DID allows to route calls to DID according to localization rules.
Change Call's owner - changes the owner of the call depending on the incoming tech
prefix.

When you have entered all the necessary values (Cut or Add can be left empty), click

For example:

The normal Lithuania MOB prefix is: 3706.


The user's device is located in Vilnius, Lithuania (displayed as "Lithuania Vilnius").
By current Lithuanian regulations, the local customer can dial 9-digit numbers starting
with 86 to reach Mobile subscribers.

To describe this situation, we create the following rule:

Rules can be enabled or disabled by clicking the

icon or

in the Enabled? column.

- This icon allows you to edit the details of the rule.


- This icon allows you to delete the rule.

Now, in the main Location window:

Kolmisoft 2006-2013

123

click on

in the Devices column to access Devices in Global Location:

Here all Devices with a selected location are listed. Choose other locations for the selected Device
and click on icon to activate this change. The device will be assigned to the selected Location.

NOTE: It's possible to change a device's Location in the Device settings (SETTINGS > Users >
Devices).
Now our device belongs to Location "Lithuania Vilnius". And if we dial a mobile number in the
Lithuanian format, for example 863042438, MOR cuts 86 (leaving 3042438) and adds 3706. The
result is: 37063042438, which is E.164 compatible and can be billed correctly by MOR.
NOTE: make sure that after localization your number is always E.164 compatible. Call Tracing can
help you do this.
NOTE: you cannot delete rule if it is assigned to device.

Kolmisoft 2006-2013

124

Special cases
Cut everything till Hash
With rule Cut: *# it is possible to cut everything till # (# included) in the dialed destination:

For example:

Dialed number: 1aaaaaaaaa#37063042439


After Localization: 37063042439

Please note that if Dialed number will be #37063042439, call will not go through, because MOR
rejects
destinations
with
#
in
front
of
it.
This function can be used in fancy MNP (Mobile Number Portability) schemes and perhaps
elsewhere.
NOTE: The Add value still can be used to add any value after Cut is used on the Destination.

Reseller localizations
Starting from MOR 10 reseller is not using admin's global localization rules. Instead now he can
copy the rules and modify them according to his needs. All new created resellers have those
global rules copied automatically from admin. This feature can be disabled by admin.

Kolmisoft 2006-2013

125

IMPORTANT: Fields "Change User Tariff to this Tariff" and "Change User LCR to this LCR" will not
be copied.
Default location does not act as Global location on reseller's account. Only the rules set in the
device's settings will be applied.

Route to DID
Admin and Reseller PRO users are can route calls to a DID according to localization rules.

Start typing the DID number and you will see all the DIDs that start with that number. If the DID
you need is not there, enter more digits - only first 20 DIDs starting with that number is shown

Change owner of call depending on incoming prefix


It is now possible to change the owner of the call depending on the incoming tech prefix.

Open the localization menu to find the "Change Call's Owner" field.

Enter the incoming prefix that needs to be cut in the "Cut" section.

Kolmisoft 2006-2013

126

Afterwards, choose a user from the drop down list and the device to which the call should
be assigned:

This feature is available also for resellers.


Admin can assign the call to ANY user on the system (even to those that do not belong to
admin).

Provider Rules
Provider Rules transforms an E.164-compatible number to any number format the Provider
requires.

Description
Different providers expect different number formats from you. You can send them whatever they
want using Provider Rules.
Provider Rules can be reached by clicking the

icon next to a provider in the Providers window:

We see a similar window as the one in Localization. The rules to manage Provider Rules are
identical to those for Localization management, which are covered in number manipulation page.

Kolmisoft 2006-2013

127

Let's say our provider expects to get a number with the technical prefix 89765#. We can do this in
following way:

That's it very simple. Now every number that is sent to this provider will be transformed by
adding our created tech. prefix.
For example, if 37063042438 should be sent to this provider, this rule will be activated and the
number 89765#37063042438 will be sent to provider.
REMINDER: You can check whether Provider Rules are applied correctly in Call Tracing

Special cases
Cut everything till Hash
With rule Cut: *# it is possible to cut everything till # (# included) in the dialed destination:

Kolmisoft 2006-2013

128

For example:

Dialed number: 999#37063042439.


After Localization: 37063042439.

This function can be used in fancy MNP (Mobile Number Portability) schemes and perhaps
elsewhere.
NOTE: Add value still can be used to add any value after Cut is used on the Destination.

CallerID overwrite for Provider


Sometimes Providers only accept calls with CallerID.
It is possible to overwrite any CallerID before sending a call to such a Provider.
In Provider Rules (for this Provider) set up the Rule:

In this example, all calls going to this Provider will have CallerID = 9999999999

Destination same as received


If you want to send a number to a Provider exactly as it was received, set Cut = '-' (minus sign as
shown in the screenshot).

Kolmisoft 2006-2013

129

That way, the same number that comes to MOR also leaves MOR:

Replacement
If you want to replace one prefix with another you have to Cut the original prefix and Add' the
new one. For example:
If the number is 306936525113 and you want to replace 30 with 6516 this is how the rule should
look:

Only one rule can be applied, the one that fits the number the best.

CallerID Localization Rules


Source Rules manages CallerID which is sent to this particular Provider.
In the example bellow we will add international prefix to every CallerID sent to this Test Provider:

Kolmisoft 2006-2013

130

Special Case
CallerID overwrite for Provider
Sometimes Providers only accept calls with CallerID.
It is possible to overwrite any CallerID before sending a call to such a Provider.
In Provider

Rules (for

this

Provider)

set

up

the

Rule:

In this example, all calls going to this Provider will have CallerID = 9999999999

DID handling by Localization


When a call comes in to your system from the Provider, it should be localized to E.164 format for
DID search. In other words, as DIDs are in E.164 format, whatever comes from the provider
should be localized to E.164 to find the correct DID.

Kolmisoft 2006-2013

131

To do this, each Provider also has a Location. This means that Location rules can be created and
applied for the Provider. You can do this in the Provider settings window:

For example, you have DID 37052058393 and the provider sends you 0037052058393. You need
to strip this international prefix with the following rule:

Don't forget to apply the correct Location to the Provider!


Special case: In some countries when E1 is connected to the server, only the four last digits of
the number reach MOR. Localization should be used here to add the remaining part of the
number.

Kolmisoft 2006-2013

132

See also

Number Manipulation
o Localization
o Provider Rules
o Number Manipulation Examples

Number Manipulation Examples


Example with Localization and Provider Rules for CallerID(Source) and Destination
Lets say 868555666 is calling to 868777888. The first number is the source (CallerID), and the
other number is the destination. Localization source rules are used to modify the CallerID which
comes to MOR, and provider source rules are used to modify the CallerID that will be sent to the
provider. They aren't used all the time, only when owner of system wants them to be.
Take, for example, a provider that only accepts calls that are nine numbers in length and that
begin with 8. MOR works only with E.164 standard callerID's if you want to run billing on them.
First of all, we need to make a Localization source rule for our situation:
Cut 8, add 370, Min/Max 9/9.
So now the caller's number is 3708555666, not 868555666. MOR identifies the caller as being
from Lithuania (by country code 370), which means he can bill him.
Now we need to send a call to 868777888, but our number must be in the old format
(868555666), so we need to apply a suitable provider source rule:
Cut 370, add 8, Min/Max 11/11.
That's it - the caller's final number will once again be 868555666.

Kolmisoft 2006-2013

133

Examples
Example 1 -

Italy

The client has the following situation:


My customers are mainly in Italy. To call Italy, they are not going to add the 0039 country code,
while they do put 00 and the country code when they want to call other countries. Then, on the
other side, my provider aspects numbers to Italy without the 0039 country code, while to other
countries it does aspect the country code before the called number.
NOTES:

The numbers that clients dial are 10 digits in length. For more info about the Italian
number format, see: http://en.wikipedia.org/wiki/%2B39
'+' is not used. It should be changed to '00'.

To handle such a situation, the following actions should be taken:

Location 'Italy' should be created.


All devices from Italy should be assigned to this Location.
Rules in Location Italy:
o Name: 'Local Italy', Cut: (empty), Add: 39, Min: 6, Max: 10.
o Name: 'International', Cut: 00, Add: (empty), Min: 11, Max: 16.
Provider Rules for Provider through which call will be terminated:
o Name: 'International', Cut: (empty), Add: 00, Min: 10, Max: 100.

Example 2 -

USA/

Canada

The client has the following situation:

A local number is dialed in following formats: 1-XXX-XXX-XXXX or XXX-XXX-XXXX.


International numbers: 011 - country code - area code - number.

Localization rules:

Kolmisoft 2006-2013

134

Now the call should be sent to the provider which accepts numbers in following format:

USA/Canada calls should start with 1.

International calls should start with 011.

Provider Rules for this Provider should look like:

Example 3

Local number dialed in format 0XXXXXXXXXX.


International: 00 + country code + area code + number.

Example 4

Brasil

Spain

Local number dialed in format 9XXXXXXXXXX (includes area code + number).


International: country code + area code + number.

Kolmisoft 2006-2013

135

Block wrong short numbers with Localization


To block ALL short numbers (length [1-8]) you need to:
1. Create Empty LCR.
2. In Localization, add the following rule:

NOTE: Such a rule will route calls to Empty LCR, where they will be dropped.
If you want to allow some short numbers to pass, you need to create more granular rules to
handle your situation.
This example is very strict and is only for demo purposes to illustrate the principle.
Make sure you understand Number Manipulation to proceed with rules for your case.

See also

Number Manipulation
o Localization
o Provider Rules
o DID handling by Localization
o Number Manipulation Examples

Kolmisoft 2006-2013

136

LCR/Tariff change based on call prefix


The main purpose of this function is for calls to be routed through a provider or providers based
on call prefix.
You have to create a provider, tariff, LCR (where the specified provider has to be), and a user with
his device. And most important, the localization rule or rules. It should be applied per device
basis (Device settings -> Location), making sure the specified device has the correct rule applied.
It must be noted that specified rules have higher priority than global rules.

1) Create a new tariff, provider, LCR, user and device.


2) Assign the newly made provider to the new LCR.
3) Create a new localization rule, named for example "test1".
4) Assign the device to location "test1".
5) Now edit the "test1" rule. It should be done last with normal localization rules, but
when you are creating a localization rule based on tariff or LCR, assign the specified Tariff
or LCR to correct place.

You can find more info on how to make rules in Number Manipulation.

Example
Lets say we have a provider that provides three quality routes: bad-cheap/normal/goodexpensive.

The bad-cheap route is selected when dialing an E.164 number with prefix 00.
The normal route is dialed when dialing the normal E.164 number.
The good-expensive route is selected when dialing the E.164 number with the prefix 000.

To accomplish this, we need to:

Create three providers with the same connection settings:


o Bad_Provider
o Normal_Provider
o Good_Provider

Kolmisoft 2006-2013

137

Create three Tariffs for providers:


o Provider_Tariff_Bad
o Provider_Tariff_Normal
o Provider_Tariff_Good
Enter/Import appropriate rates to these Tariffs.
Assign these Tariffs to providers.

Create three LCRs and assign appropriate providers:


o Bad_LCR - assign Bad_Provider here
o Normal_LCR - assign Normal_Provider here
o Good_LCR - assign Good_Provider here

Create three Tariffs for users:


o User_Tariff_Bad
o User_Tariff_Normal
o User_Tariff_Good
Enter/Import appropriate rates to these Tariffs.

Create Location BadNormalGood with the following Rules:

Assign User_Normal_Tariff and Normal_LCR to User.


Assign all the user's devices to Location BadNormalGood.

That's it.
Now when the user dials E.164 numbers, he will be using the normal route; when 00, the bad
route; and when 000, the good route.

Kolmisoft 2006-2013

138

Users
User Details
Where to find user details?
1. Navigate to users list
SETTINGS > Users

2. Select the marked icon

Kolmisoft 2006-2013

139

3.

You will get into the following menu:

Kolmisoft 2006-2013

140

In this window you will see a lot of user settings.


There are several groups: General, Blocking, Warning Balance Email, Invoices, Payments, Details,
Taxes, Registration Address and Recordings.

General

Username username for user to login to MOR GUI.


Password password for user to login to MOR GUI.
User type by default it is "user".
LCR LCR indicating which of the user's devices will be used to dial out.
Tariff prices for the user.
Balance the user's balance.
Credit the user's credit, showing how low the user's balance can go.
Minimal Charge for Calls - minimum charge user pays for voice calls.
Minimal Charge for Calls Date - date since when the previous option is valid.
Postpaid/Prepaid type of user.
Not Hidden/Hidden is this user hidden?
Primary device the primary device for this user.
Allow loss calls - should loss calls be allowed for this user?
Call Limit - how many simultaneous calls the user can make?
Responsible accountant dropdown to choose accountant responsible for user's profit.

Warning balance
Description
This function allows a number of actions to be taken when a user's balance drops lower than the
set value.
You can edit Warning Balance in User Details.

Kolmisoft 2006-2013

141

Check Active to activate this function.


Upon activation, the user will receive an email when his balance drops lower than the balance set
in the field after: Send email when balance drops lower than.
Select when to send such an email:

Only once when balance drops lower than.


Every day at: (select at which hour to send email to user).

Additionally, you can play an audio message whenever the user makes a call.
Check Play before every call and select the audio file to play.
Use this with caution - not many users will like this!

User Blocking
Definition
When a User is blocked, he is unable to make outgoing calls.
NOTE: the User is still able to receive calls. Unassign DID for him to keep him from receiving
incoming calls.

Direct blocking
Mark User Blocked or Not Blocked to instantly block/unblock him.

Kolmisoft 2006-2013

142

Unconditional blocking

This option sets the date when user should be blocked.


If date is in the past, this option is not active.
Block check is done every night at 00:00:00.
NOTE #1: if you want to block the user in the future, set this date in Block at BUT do not mark this
user as Blocked (if you do so, the block will take effect instantly). The system will mark the user as
Blocked at your selected date.
NOTE #2: If you want to block the user today, just mark the user as Blocked. DO NOT enter
today's date into Block at field - the system will not block it if you do so, because it will not check
until tomorrow 00:00:00.

Conditional blocking

Under this option, select day of the month when to perform check.
The check is done at night at 00:00:00.

Kolmisoft 2006-2013

143

On the day the user is checked, the following questions are asked:

Is he POSTPAID ?
Is his BALANCE < 0 ?
Has he UNPAID INVOICES ?

If all conditions are met, this user is blocked.

See also

Monitoring Addon

Blocking
Various options for User Blocking.

Warning Balance Email


If you want to send an email notification to a user (or take another action) when his balance
drops lower than a certain amount, check this setting and enter the desired amount.
More details: Warning balance

Invoices

Kolmisoft 2006-2013

144

Generate Invoice - should we generate an invoice for this user when we choose to
generate invoices for a period?
Invoice, Detailed, By CallerID, By Destinations and PDF/CSV show various types of invoices
which should be sent to the user as an email attachment.
Show zero Calls - if the call price = 0, should such calls appear in the invoice or not?

Payments

Cyberplat - check this option if you want to allow the user to use this payment gateway.

Details
Self-explanatory.

Taxes
Here tax parameters are entered for the user.
The tax system is explained in Multi-tax system page.

Registration Address
Self-explanatory.

Recordings
This section is available when the Recordings Addon is installed in the system.

Kolmisoft 2006-2013

145

Hide Users
Why should I hide users?
As it is not allowed to delete users who have at least 1 call, after some time such 'non-active'
users accumulate and we need to do something about them to have a clear control panel.
For this reason, we just Hide them. They remain active - nothing changes for them - except that
we do not see them in the GUI.

How to hide a user?


1. Go to users list:
Go to SETTINGS > Users

2. Click the marked icon:

3. Click OK when the confirmation appears


Done, user should be hidden now.

Kolmisoft 2006-2013

146

Additional Notes

The same icon can be found in user's details. It works the same way.
Also you can hide user by selecting an option Hidden in user's details in General section

Where to find hidden users?


Go to SETTINGS > Users > Hidden

How to unhide a user?


Navigate to Hidden Users list and press the same icon

again as in a hide user example

See also

Users
Create a User and a Device
o Why MOR does not allow to delete users?
o User Details
Block User
o (SECURITY) How to change Admin username and password
Providers
o Hide a Provider
o

Kolmisoft 2006-2013

147

Why MOR does not allow to delete users


MOR does not allow users to be deleted who have made at least one call (or has at least 1
payment) in the past.

WHY?
The answer is simple - because it would ruin the billing.
P.S. Because of this reason you are also not allowed to delete providers and devices.
Simple example
Let's say we have 2 (TWO) users U1 and U2 and 1 (ONE) provider P1.
During the month, one user U1 dialed 20,000 calls and the other user U2 dialed 10,000.
For the sake of simplicity, 1 call = 1 EUR.
So user U1 should pay you 20,000 EUR and user U2 should pay you 10,000 EUR. Total 30,000
EUR.
You sell with 100% margin, so that way you have to pay 15,000 EUR to your provider P1 for the
calls.
And 15,000 EUR is your profit.
Imagine now what happens if you delete user U1 from the system with all his calls.
We have this situation:
During the month user U2 made calls worth 10,000 EUR and you see that you should pay
provider 50% of that = 5,000 EUR to your provider P1.
BUT!!!! Provider P1 sees that he sent 30,000 EUR worth of calls and not 10,000 as you say. And
these calls are worth 15,000 EUR.
So you will be at -10.000 EUR (MINUS 10.000 EUR) after one month!

Kolmisoft 2006-2013

148

What to do?
Hide users if you don't want to see them any more in your system. Note: currently it's not
possible to hide devices.
A description how to hide providers can be found in Hide Provider page

How to create User and Device


Video
This video demonstrates the process WITHOUT setting additional settings. Make sure you read
and understand User Details and Device Settings.
This video can be found here:
http://wiki.kolmisoft.com/index.php/How_to_create_User_and_Device

See also

Users
Devices

How to change Admin details


Video
This video demonstrates how to change the Admin username and password (for greater security).
This video can be found here: http://wiki.kolmisoft.com/index.php/How_to_change_Admin_details

See also

Users

Kolmisoft 2006-2013

149

MOR forgot user password


What is Forgot Password functionality
This MOR functionality resets current user password and sends it to his email.
Where to find this functionality?
This functionality can be found at MOR login page:

Kolmisoft 2006-2013

150

How to use this functionality?


Click Forgot Password and the following input box will ask you for an email.

If the entered email matches with the one that already exists in the system - the password will be
sent.

Requirements
"Forgot password" functionality is visible only if:
1. Email settings are entered
2. Email sending is enabled
3. You have MOR 9 or newer
For more information about emails in MOR please read here:
http://wiki.kolmisoft.com/index.php/Configuration_from_GUI#Emails
"Forgot password" functionality can be used only if:
4. User has an email set in his user details
Kolmisoft 2006-2013

151

5. Email must be unique in the system


6. Email settings settings must be correct

Minimum contract billing


Minimum contract billing is the feature that lets you set a minimum monthly charge for certain
clients.

How to set minimum contract billing


To set this functionality go to SETTINGS -> Users. Click on the chosen users name and you will
see this window:

Kolmisoft 2006-2013

152

Select Enabled? as shown in the picture. Now you can set the minimum charge and select since
when the setting will be valid. If you can't see those fields it is possible that your chosen user is
prepaid. This feature is only available for postpaid users.

Specialties

If clients total billing is below the set charge he will have to pay the minimum amount
anyway
If clients total billing is above the set charge he will have to pay the whole amount
Minimum time period per which you can set Minimum contract billing is 1 month
Minimum contract billing starts to be valid only since the first day of the month. It means
if today is February 15 and you set Minimum charge for calls date current years February,
client will start to be billed for it since 1st of March anyway.
Can only be applied for postpaid users
Can only be applied for voice calls
An invoice includes the line with the difference between the minimum amount and the
total amount.

Tariffs
Directions and Destinations
About
Directions refers to countries, or perhaps to a satellite network. The term merely describes the
direction in which the call is routed.
Directions can be found in SETTINGS > Billing > Directions. You can see all Directions with
their details in the main window.
Destinations - these are more concrete concepts of the calls course. Let's say we are dialing
number 37068547771. From this number MOR knows that the Direction is Lithuania, but the
Destination is the mobile network Bite. Destinations are determined by Prefix. Each destination
has a unique Prefix. The Prefix from the example is 370685.

Kolmisoft 2006-2013

153

Destinations can have several types/codes:

FIX fixed numbers


MOB mobile numbers
NGN non geographical numbers

IMPORTANT NOTE: When adding new destinations, make sure you include them in some
Destination Group. Otherwise you will get corrupted invoices if the user uses a retail tariff.

QUESTION: How do you import destinations from a file?


ANSWER: You can import them using the Tariff import script. Just create a dummy tariff,
add dummy rates, and import. Destinations will be created automatically. Later you can
delete the tariff. Just remember to enter prefixes in E.164 format.

NOTE: You can get a CSV file with all Destinations in the Tariffs window. It is suitable for
rate entering and importing back to MOR.

Destinations Groups
In order to make life easier and to manage prices for destinations, destinations are grouped.
With grouped destinations, one price applies for a group of destinations, rather than for
destinations separately. (A group can contain one destination also.)
Destinations groups are for users, not for providers, because providers need to have very exact
rates for each destination.
You can edit Destination Groups settings in SETTINGS > Billing > Directions > Groups.
NOTE: A destination can belong to only one group at a time.
HINT: If you want to split a Destination Group, remove all Destinations from it, delete the old
Destination Group, and create new ones. Then add the removed Destinations to the newly
created Destination groups.

Kolmisoft 2006-2013

154

Block some Destination to User


Block Destination to User
If you need to block a special prefix (Destination), follow these steps:
1. Create an empty LCR (without Providers in it) - "Empty LCR".
2. In the LCR used by the user, use Call routing per destination basis to add the prefix you
want to block.
3. Assign "Empty LCR" to this prefix.
Now, when the user dials a number with this prefix (Destination), the call will be routed to the
empty LCR, which is to say it will be dropped.

Block Destination to all Users


If you need to block a special prefix (Destination) to all Users, follow these steps:
1. Create an empty LCR (without Providers in it) - "Empty LCR":

Kolmisoft 2006-2013

155

2. In Localization Global Rule, add a rule for your prefix and set it to route to Empty LCR:

Now, when the user dials a number with this prefix (Destination), the call will be routed to the
empty LCR, which is to say it will be dropped.
(In this example we are blocking UK numbers starting with 44, change in your system
accordingly).

Bulk management
Starting from MOR 10 you can reassign multiple destinations to other direction by specifying a
regexp pattern:
1. Go to SETTINGS > Billing > Directions
2. Press Bulk management

Kolmisoft 2006-2013

156

3. Enter a prefix regexp which destinations should be reassigned, select a group to assign to and
specify type:

4. Press Reassign
5. Now MOR shows you which destinations are going to be reassigned:

6. If you want to proceed - press Reassign at the bottom of the window again and the
destinations will be reassigned.

Kolmisoft 2006-2013

157

MOR supported regexp patters


Supported regexp symbols:
% - matches any symbol any number of times
[1,2,3,4]% - matches destinations beginning whit 1, 2, 3 and 4
Examples
370% - will match numbers 370xxxxxxxxx
370[1,3,9]%

will

match

numbers

3701xxxxxxxx,

3703xxxxxxxx

and

3709xxxxxxxx

Day setup
MOR lets you set different dates for different types of days. There are two types of days: work
days (WD) and free days (FD).
Saturday and Sunday are counted as Free days by default.
Mondays to Fridays are Work days.
National holidays and other days that do not meet the default settings should be set manually.
This can be done in SETTINGS > Billing > Tariffs > Day setup:

Here you can add, edit or delete days.

Kolmisoft 2006-2013

158

Entering Rates for Wholesale Tariff


Description
This method is used to enter rates one by one by hand. It is primarily used for editing rates
because it's very time-consuming to enter thousands of rates by hand. CSV import is also
available for this task.
Click on

Rates:

In this window you can view already entered rates:

Kolmisoft 2006-2013

159

Click on

Details to get more details:

Here you can

Split to Work Days and Free Days,

delete a rate or

Edit it:

Here you can add a different End Time for different rates in a time period and change other
values that are simpler than Advanced Rates.
NOTE: if there are no rates for some destinations, the user will not be able to dial these
destinations using the provider to which the tariff is assigned. This is usual gotcha when call does
not go through always use Call Tracing if you have problems dialing-out!

Kolmisoft 2006-2013

160

Adding new Rates


It is possible to add Rates using GUI in three different ways. It is also possible to import Rates
using CSV.
Here we show three ways of adding Rates over GUI:

New Rate
This way lets you add many rates for selected countries by first letter - for example, for all
Destinations starting with A:

Enter Rates and click the Update button to add the desired Rates.

Kolmisoft 2006-2013

161

Quickly add a new Rate


This way allows you to quickly add a Rate. Fill in the fields (most important are Prefix and Price).
Make sure the software shows you which Destination it is (if it says that there is no such
Destination, you need to create it) and click Add Rate:

Add new Rate


This method is similar to previous one except that it allows you to enter rates only to a selected
country (Direction). If a country has all rates already set, it will not let you choose that country:

Kolmisoft 2006-2013

162

User wholesale tariff


This tariff is used by users and is no different from the provider wholesale tariff. All the functions
are the same. This tariff type can be enabled or disabled in Settings.
When a wholesale tariff type is assigned to the user, he will not be able to see all rates online. He
will be able to download them in PDF or CSV format.
NOTE: you can't have Custom rates for a user if he is using the Wholesale tariff.

Rate import from CSV


File format
File should be CSV (comma separated values).
Necessary fields in CSV line:

Prefix
Price

No other fields are necessary.


First line can be header.

Kolmisoft 2006-2013

163

Value Separator and Decimal Separator MUST be set correctly in SETTINGS -> Setup ->
Settings -> Functionality:

CSV Column Separator


CSV Decimal Separator

File and CSV separator settings should match. If they do not, you will get errors when trying to
import file.

Good CSV rate file examples


Bad CSV rate file examples

Where can I get an example file with available prefixes?


Go to SETTINGS -> Billing -> Tariffs and click on

Kolmisoft 2006-2013

Destinations CSV.

164

Description
It is very tedious work to add several thousand rates by hand, so you can import them from a
CSV file.
There are seven steps for importing rates from a CSV file:
1.
2.
3.
4.
5.
6.
7.

File upload
Column assignment
Column confirmation
Analysis
Creating destinations
Updating rates
Creating new rates

We will cover each of these one by one.


IMPORTANT NOTE: When importing, prefixes should be in E.164 format!!! For example, no
international prefixes!
File upload
Select

Import from CSV for the Tariff you want to import rates.

Then click on Browse and select CSV file with rates. Click Upload file:

Kolmisoft 2006-2013

165

Column assignment - wrong separators detected


Sometimes the system is able to detect that CSV separators are wrong and suggests you to
change them:

Column assignment
The file is uploaded and the first five lines of the file are available to check:

Kolmisoft 2006-2013

166

This helps us in the next step, to assign CSV file's columns to MOR's variables. We have the
following window:

Here we must assign columns from the CSV file. Prefix and Rate are mandatory fields. All other
fields can be empty. Connection Fee, Increment and Min. Time have their defaults. If you wish,
you can enter values manually for them. Manually entered values have the highest priority.
If you omit them, then MOR inserts values from the CSV file. If there is no assigned column
for these fields, then default values will be added to database (DB).
There are a group of values under the name USA specifics. These are only for USA/Canada. Users
from these countries need to use these fields with their CSV files.
You can also import Ghost Percent with the rates. It works the same way as the Ghost minute
percent in the Calling Cards Groups: it is a value to trick the user into thinking he has more
minutes when he really has less.

Kolmisoft 2006-2013

167

In the following example, we select fields which match our CSV file. Also entered are some
manual values for Increment and Min.Time. We count time by 30s increments and minimum
time for the call is 60s, with these settings:

This way of selecting CSV rows and assigning them to MOR values lets us import various CSV file
formats.

Rate Day Type


It is possible to select to which Day Type rates apply before importing them.
So in two steps it is possible to import separate rates for Work Days and Free Days, or (in a single
step) to import rates for All Days at once.

Kolmisoft 2006-2013

168

Destination name update on rate import


When this option is selected destination name is updated from csv file during rate import

Updating Directions for Destinations based on Country Code


This functionality lets you reassign Destinations to different Directions by Country Codes
specified on CSV file. When Update Directions for Destinations based on Country Code: is selected
country code field is necessary.

Column confirmation
The next step is to review our selection and confirm that everything is correct. We can go Back or
forward to the next step:

Kolmisoft 2006-2013

169

Analysis
It will take some time to accomplish this step. MOR checks many things from DB and CSV files: it
compares rates, searches for duplicates, fixes small errors and so on. After the analysis is
completed, we get something like this:

The most interesting line is 9 bad destination(s). We click on the List to check them. In the new
window, we can see which destinations are bad and we can decide what to do with them. Is it
possible that there are no directions for them, MOR doesn't know to which country to assign this
destination, or maybe these destinations have duplicates in CSV file? You have to fix this if you
want to import the whole file. Here you can stop and fix your CSV file, or you can ignore these
errors and continue.
We continue the demo by clicking Proceed.
The following steps are separated to avoid excessive demands on processing power if a rate file
is huge. This keeps the browser from crashing and allows it to successfully import 160.000+
destinations from one CSV file (this has been tested).

Kolmisoft 2006-2013

170

Creating destinations
MOR creates new destinations here. These destinations are necessary for the rates, which will be
added in step 7. This window is just informative, no decisions here:
MOR creates only Destinations for prefixes which are not yet in MOR's DB and determines
whether it is possible to find out the Direction (Country) for these new prefixes (Destinations).
This may be done in two ways:
1. The system checks the available prefixes for the best match and selects found Direction as a
basis for the new prefix (Destination).
For example: if you try to import the rate for prefix 370630 and this prefix is unknown to MOR,
MOR checks the longest matching prefix - 3706 in this case - and finds out that it is Lithuania
MOB. So it creates a new Destination with Prefix 370630 in which the Direction will be Lithuania
and the subcode MOB (mobile network).
2. If Country code is available in the imported file, MOR assigns this Direction to the newly
created Destination.
For example: if again you try to import 370630 and it is unknown to MOR, but you have LTU in
same CSV line for Country Code field, MOR will create such a Destination with Direction =
Lithuania.

Updating rates
Here MOR updates rates with the values from CSV files. These rates already exist in DB. Just click
Proceed:

Kolmisoft 2006-2013

171

Creating new rates


Finally, MOR creates all rates and we are all done!

NOTES
Rate import is VERY CPU-intensive.
If there are a lot of rates, please be patient and let MOR finish its job. It may take some time to
count everything and come back to life.
At some point it may seem that browser is not responding. That is not the case it is just working
very hard, importing your very own rates from the CSV file.
If you get a timeout error, try to import the file in smaller pieces.

Destination to create from CSV


When importing rates from the CSV file, you can check which Destinations will be created
automatically.
You can view them in a separate window when you click List in step 4 in the field "Destinations to
create".
Such destinations do not exist in MOR's database but MOR will create them when importing the
rate file.
More info: Integrity Check
Example Videos
Examples how to import tariffs from CSV can be found here:
http://wiki.kolmisoft.com/index.php/Rate_import_from_CSV#Example_Videos
Kolmisoft 2006-2013

172

Wholesale Tariff
What is a Wholesale Tariff?
This tariff is a price list which you get from your provider, later you can transform this tariff into
retail or user wholesale tariffs. Without a transformation this tariff cannot be assigned to user.

Min Time
Min(imal) Time is the minimum time that will be billed if a call is answered.
For example:

Min Time = 10s


If the actual length of a call is <= 10s, billsec = 10.
If the actual length of a call is > 10s, then billsec = actual call length.

Actual call length Call time which will be billed


1

10

10

...

10

10

10

10

11

11

Kolmisoft 2006-2013

173

Increment
An Increment is the amount of time in which a call is billed. It is counted in seconds.
For example, assume that:

A particular call lasts for 15 seconds.


The rate for 1 min is (for the sake of simplicity) 1 EUR/min.

Then:

If the increment is 1, then the call length will be counted as 15s and the call price will be
0.25 EUR (1/60*15). As the increment is 1, the call can be 1, 2, 3... in length. 15s is the exact
length of the call.
If the increment is 10, then the call length will be counted as 20s and the call price will be
0.333 EUR (1/60*20). As the increment is 10, the call can be 10, 20, 30... in length. 20s is
nearest to 15.
If the increment is 20, then the call length will be counted as 20s and the call price will be
0.333 EUR (1/60*20). As the increment is 20, the call can be 20, 40, 60... in length. 20s is
nearest to 15.

See also

Tariffs

Kolmisoft 2006-2013

174

Entering Rates for Retail Tariff


In order to manage rates for Retail Tariff, click the

Rates next to Tariff:

Here you can enter Rate and Round by values for every rate. If you finished entering what you
want, click Update at the bottom of the page. All rates will be updated.
View shows you the Destinations which belongs to this particular group.
Click on

and you will be able to edit rates in Advanced mode.

Here you can click on Split to Work Days and Free Days to split the rate into two parts - for Work
Days and Free Days.
Now we have control over different types of days: Work Days and Free Days. We can enter
different rates for these days.
We can also set different rates for different times in the day. For this, we need to create hour
intervals. To do so, select a time in the column End Time and click on .
In order to manage Rate, click on the Details icon

And here you should add/edit/delete Advanced rates as described in Advanced Rates.

Kolmisoft 2006-2013

175

Advanced Rates for Users


It is possible to show Advanced Rates for Users.
Make sure they will understand them before showing these Rates to Users.
It is necessary to turn on the settings:
In SETTINGS > Setup > Settings > Functionality check Show rates for users and Show
Advanced Rates for users settings
Click Save changes
Then Users are able to see the rates in their portal:

and their details:

Kolmisoft 2006-2013

176

Advanced Rates
Description
Advanced Rates are used ONLY for Retail Tariffs.
Please see video below where to find and edit advanced rates.
In order to manage rates for destinations more easily, destinations are grouped, so that one rate
applies for a group of destinations, not for one destination separately. (A Group can contain only
one destination if necessary.) Destinations groups are for users, not providers, because providers
need to have very exact rates for every destination.
Each group of destinations consists of several destinations described by prefixes. As an example,
let's take Albania MOB. Here we have three destinations described by prefixes: 35538, 35568 and
35569. Each of these destinations is Albania MOB. Usually users do not care which MOB network
they are calling, and for the less popular countries providers usually put one price on all
destinations in that direction. It's the same here: We can put one price on all these three
destinations grouped as "group Albania MOB".
Each rate for a destination group may have many rate details. This means: a destination group
may have one rate, but this rate has many rate details (sub-rates). Each rate detail describes one
interval of the call. If the first rate detail is RD1, the second is RD2, and so on, all calls can be
expressed as RD1 + RD2 + .. + RDn. The number is finite. The rate detail can be seen as the time
intervals for all call durations. The time interval could also be zero length. It is explained further
below.
Each rate detail consists of the following parts:

FROM from which second the rate detail starts.


DURATION the length of this rate detail (interval).
TYPE - minute or event.
ROUND BY in what intervals to round the time.
RATE the price per minute in this rate interval.

The type 'minute' describes an interval that lasts some time. This time is billed by rate and
rounded accordingly. An Interval starts at FROM and lasts for DURATION seconds. The type
'event' describes a zero-length interval, which we call EVENT. This might, for example, be a
connection fee. If the type is 'event', the rate detail has no DURATION (it's always zero) or
ROUND BY fields.
NOTE: The same rules apply to Custom Rates for users.
Kolmisoft 2006-2013

177

Examples
Example #1
The call should have 0.2 connection fee (regardless of the currency) and all other time must be
billed by 6-second intervals with a rate of 0.1 per minute. Such a rate should be described like
this:
FROM DURATION TYPE

ROUND BY RATE

event

0.2

minute 6

0.1

Example #2
The first 30 seconds of the call cost 0.1, the next time till 5 minutes is billed at rate 0.05 rounded
by 30 seconds, and the remaining time is billed by rate 0.02 and rounded by 1 second.
FROM DURATION TYPE

ROUND BY RATE

30

minute 30

0.2

31

300

minute 30

0.05

301

minute 1

0.01

The same example can also be described like this:


FROM DURATION TYPE

ROUND BY RATE

event

0.1

30

minute 30

31

300

minute 30

0.05

301

minute 1

0.01

Kolmisoft 2006-2013

178

Example #3
The rate for the call is 0.01 per minute rounded by 1s. The maximum price for call is 0.1.

FROM DURATION TYPE

ROUND BY RATE

600

minute 1

0.01

601

minute 1

Example #4
The rate for the call is 0.01 per minute rounded by 1s. The first 15 seconds of the call are not
billed.

FROM DURATION TYPE

ROUND BY RATE

15

minute 1

16

minute 1

0.01

Import from CSV file


It is not possible to import (upload) Advanced rates from the CSV file directly.
Here is a workaround:
1.
2.
3.
4.

Create Wholesale Tariff.


Import Wholesale rates to the newly created Wholesale Tariff.
Transform Wholesale Tariff to Retail Tariff.
Delete Wholesale Tariff.

Where to find advanced rates


Video that shows where to find advanced rates can be found here:
http://wiki.kolmisoft.com/index.php/Advanced_Rates#Where_to_find_advanced_rates

Kolmisoft 2006-2013

179

Additional Notes
Allow users to see advanced rates

See also

Tariffs
Destinations Groups

Custom Rates
Custom Rates are rates that differ from a default user's tariff.
For example: users A and B both have the tariff 'GOLD', but customer A has a rate to Russia of 0.5
and customer B has a tariff to Spain of 0.6. 'GOLD' rates for these destinations are 0.7 and 0.8. Put
new values for each customer in their Custom Rates and the new rates will be used instead of the
default tariff rates. This makes it possible to assign different rates for different customers, without
creating a new tariff for everyone.
Most of the time, customers are only interested in calling a few destinations. Nobody needs
complete A-Z destinations. With Custom Rates, it is possible to adjust rates to the relevant
destinations.
You can reach Custom Rates by clicking the yellow coins icon in the Users window.
From the drop-down list, select the Destination Group for which you want to create a Custom
Rate and click the green Plus Add icon.
NOTE: Custom Rates are available for users whose main Tariff type is Retail.

Kolmisoft 2006-2013

180

Tariff Transformation
Wholesale tariffs can be transformed to user retail tariffs. This can be done in the main tariffs
window by clicking on Make user retail tariff or Make wholesale Tariff (these links appear
when a tariff has at least one rate):

Enter the values you want to add to change from a wholesale tariff to a retail tariff. Let's say X is
the wholesale rate. There are three possible ways of making the change:
1. Enter value Y into the Add amount field. The retail rate will be X + Y.
2. Enter value Z into the Add percent field. The retail rate will be X + (X/100 * Z).
3. Enter value Y into the Add amount field AND Z into Add percent field. The retail rate will be
(X + Y) + ((X + Y) / 100 * Z).
NOTE: When performing this transformation, the largest value from the wholesale tariff is taken
for the Destination group in the retail tariff (by prefix). For a more detailed explanation, check
Make Retail Tariff from Wholesale Tariff explained.
HINT: This function can be used when importing a user retail tariff. First you create a fake
wholesale Tariff, then import Rates into it, and finally transform to the user retail Tariff with values
0/0.

See also

Make Retail Tariff from Wholesale Tariff explained

Kolmisoft 2006-2013

181

Make Retail Tariff from Wholesale Tariff explained


Retail Tariff from Wholesale Tariff is done by the following algorithm:
1. The highest Rate in Wholesale Tariff for Destinations in Destination Group (DG) is selected.
2. This rate is modified by adding a value or percentage to it.
Example
Imagine we have a Wholesale Tariff with the following rates for the USA:

Prefix 1, rate 0.01.


Prefix 12, rate 0.02.
Prefix 123, rate 0.03.

And we have Destination Group USA with Destinations (1;12;123) in it.


Now, if we want to create a Retail Tariff by adding 0.005 to the Wholesale tariff, we will have a
price for USA Destination Group = 0.035.
For example, the highest rate from Destinations is selected and modified.

Inner mechanics
The wholesale tariff line will have these values:

connection_fee
min_time
increment_s

Kolmisoft 2006-2013

182

When transforming to Retail, these Advanced Rates are created:


Based on which
FROM
variable

DURATION

TYPE

ROUND BY RATE

Comments

event

connection_fee

This record is only created


when connection_fee > 0.

minute min_time

rate

This record is only created


when min_time > 0.

connection_fee

min_time

min_time

increment_s

min_time
+1

-1
(means
minute increment_s rate
'infinity')

This record
created.

is

always

Why User can't check his Rates


Because it is turned off in Settings.
Show rates for users is disabled by default. Enable it to show the Rate menu option for
resellers/users.

Kolmisoft 2006-2013

183

Devices

Kolmisoft 2006-2013

184

Each device can have many settings. The screenshot shows settings for IAX2 device. These
settings are similar to those for other device types as well.
There are several groups of settings: General, Authentication, CallerID, Network Related, Groups,
Voicemail, Codecs, Allowed Addresses, Advanced, Tell Options, Debug and Recordings.

Allowed addresses
You can enable multiple allowed addresses however this option should be turned on to be visible
in main device settings window. Go to SETTINGS -> Setup -> Settings -> Various tab and
choose Yes for Enable
"Allowed
addresses"
option
for
Devices:

And click Save changes.

Kolmisoft 2006-2013

185

Now

you

will

see

an

additional

section

in

Devices

edit

window:

General

Accountcode the unique ID of the device in the system.


Description for informational purposes.
PIN device PIN for authentication/authorization.
Device group to which group the device belongs (not used most of the time).
Type what type of device it is.
Extension a short number by which this device can be reached; must be unique in the
system.
DTMF Mode in which protocol phone button presses are sent over network. The
available options are: inband, info, RFC2833, and auto. Choose which one your provider
uses (RFC2833 is used most often).
Works not logged does the user need to log into MOR GUI to be able to dial out? (This
feature is mainly used for Call Center environments; keep the default in most cases).
Location the default is Global. Choose the appropriate location based on Localization
needs.
Timeout how long to try to reach the device for, and when to hang up if the device
does not answer.
Trunk No/Yes/Yes with ANI Is this device Trunk with/without ANI?
Call Limit how many simultaneous calls can a user make?
Ringing Timeout - allows to limit the ringing duration in seconds. Leave 0 for unlimited.

Authentication
For dahdi devices:

Channel which channel (or channel group) to use on PRI/BRI/PSTN card. Channels and
groups should be configured in zapata.conf.

Kolmisoft 2006-2013

186

For all other device types:

Username username you enter in your device.


Password password you enter in your device.
Authenticate by IP should the device be authenticated by IP (rather than by
username/password)?

CallerID

A CallerID consists of two parts: Name and Number. The "Number" part is transferred by default
by all technologies (GSM, PSTN, SIP etc), but the "Name" part is transferred only by some. The
number you see on your mobile phone when someone is calling you is the "Number" part.

Name the "Name" part of the CallerID.


Number the "Number" part of the CallerID.

NOTE: if you leave these fields empty, the user can set the CallerID by himself. Usually it is not
advisable to allow the user do it on his own.

Number from DID - use the DID as the CallerID (only available when the device has
DIDs), this option just sets CallerID Number to be equal to DID. Next time you
will edit Device's settings, first option - Number will be checked.
Control by DIDs (CID from DIDs) only available when the device has DIDs.

This setting lets you control what a CID user can enter in his devices. CID numbers should be
from the set of the device's DIDs. They are mainly used when the user's PBX is connected over
Trunk and many DIDs are routed to this Trunk. Calls coming out from this PBX must have a
Kolmisoft 2006-2013

187

CallerID Number from the set of DIDs assigned to this Trunk (PBX). If "CID from DIDs" is checked,
the system checks whether the device's CID number is from DIDs assigned to this device. If no
DIDs are assigned, this value is ignored. In order for this setting to be active, CID Name/Number
fields must be empty to allow the user to enter any CID number he wants. If "CID from DIDs" is
checked and user enters any CID (not from his DIDs), the system will change his CID by his first
available DID (selected from database by lowest ID).

Control by CIDs - system checks incoming CallerID (Device's CallerID which is set on the
Device). If CallerID matches one of the Device's CIDs - then such CallerID will be allowed. If
it does not match - it will be changed to the selected CID.

Control by Destination - This is advanced option which works by such algorithm:

1. system checks Destination and checks DIDs assigned to calling Device. Then it finds
'nearest' DID to the Destination by subtracting DID from Destination in numerical form (Example,
DID: 11111, Destination: 11112, |DID-Destination|=|1111-11112|=1) If Device has several DIDs the lowest value is selected and this
DID is set as CallerID.
2. If Device has no DIDs - then User DIDs are used.
3. If Device does not have DIDs and User has no DIDs, then CallerID set in Number field
will be used.
4. If nothing is set here - CallerID coming from Device will be used.

Network Related

Host the device IP or hostname; the value can be "dynamic", which means that device
should register (it should be like this most of the time). Subnetting is supported.
IP Address should be the device's IP, or disabled if the device is "dynamic". Subnetting
is supported.
Port the port used to connect to the device (the defaults are 5060 for SIP, and 4569 for
IAX2). If host = dynamic, this field is updated by Asterisk when the device registers. It is
the port from where the call is coming (from the device).
Last time registered when device was last time registered to the Asterisk server.
Media control can reinvite/transfer. Do you want your server to stay in media path
between your clients and your provider? Please note that this option will work only if it is
supported from both, device and provider, sides and it allows to handle SIP packets only.
Moreover, no codec mismatch between device and provider is available. Default value is
No. WARNING: This option can cause incorrect billing.
NAT the available options are: yes, no, never, route. For a detailed explanation of these
settings, refer to here [http://www.voip-info.org/wiki/view/Asterisk+sip+nat].

Kolmisoft 2006-2013

188

Qualify how often to "ask" the device about availability. More details here
[http://www.voip-info.org/wiki/view/Asterisk+sip+qualify] for SIP devices and here
[http://www.voip-info.org/wiki/view/Asterisk+iax+qualify] for IAX2 devices.

IAX2 Trunking Mode - enable/disable trunking mode, which allows multiple voice
streams to share a single "trunk" to another server, reducing overhead created by IP
packets.

Groups

Call Group to which Call Group this device belongs.


Pickup Group which Call Groups this device can pick up.

Voicemail

Email where to send received Voicemail.


Password the digital password the user enters when he calls the Voicemail number to
hear his messages.

Codecs
Choose the codecs your provider uses.
NOTES:

When no fields are checked, all codecs are available for example, settings in sip.conf or
iax.conf are effective.
If the Provider and the Device do not have similar codecs, no call can be established.

Allowed Addresses
IP, MASK permits traffic from this IP only. You can find a detailed explanation here.
[http://www.voip-info.org/wiki/index.php?page=Asterisk+sip+permit-deny-mask]
If you do not clearly understand what these settings are used for, leave them with default values.
Kolmisoft 2006-2013

189

Advanced

Fromuser/Fromdomain used when calling TO this peer FROM Asterisk. If you're using
_register=>_ with another SIP proxy, this setting can come in handy since some SIP
networks only allow users in the right domain with the correct user name.
Trustrpid defines whether or not Remote-Party-ID is trusted. It's defined in
http://tools.ietf.org/id/draft-ietf-sip-privacy-04.txt.
Sendrpid defines whether a Remote-Party-ID SIP header should be sent. The default
setting is "no". This field is often used by wholesale VoIP providers to provide calling party
identity regardless of the privacy settings (the From SIP header).
Insecure [http://www.voip-info.org/wiki/index.php?page=Asterisk+sip+insecure]
o port: ignore the port number where request came from.
o invite: don't require authentication of incoming INVITEs.
o port, invite: don't require initial INVITE to authenticate and ignore the port where
the request came from.
T.38 support - Asterisk does not have good T.38 support, so use this option just for
testing.
SIP 302 Reinvite support - SIP Reinvite support for the device. Disabled by default.
Progressinband:
o yes - when "RING" event is requested, always send 180 Ringing (if it hasn't been
sent yet) followed by 183 Session Progress and in-band audio.
o no - send 180 Ringing if 183 has not yet been sent, establishing an audio path. If
the audio path is established already (with 183), then send in-band ringing (this is
the way Asterisk historically behaved because of buggy phones like Polycom's).
o never - whenever ringing occurs, send "180 ringing" as long as "200 OK" has not
yet been sent. This is the default behavior of Asterisk.
Video support does your provider support Video over IP? More info here
[http://www.voip-info.org/wiki/view/Asterisk+video].
Allow duplicate calls - the default setting is "no".
Language - sets IVR language
Use ANI (if available) for CallerID: - When the call comes the information about who is
calling is found in CallerID field. This field is used to determine who is calling. When the
call comes through PRI/SS7 channels - then additional information is available who is
calling in ANI field (in call's data channel) so sometimes CallerID might be empty or
anonymous, but the caller can be found in ANI field. This option allows to use ANI field as
CallerID to determine and recognize who is calling.
Incoming Call CallerID Presentation - sets CallerID Presentation. More information can
be found here [http://www.voip-info.org/wiki/view/Asterisk+cmd+SetCallerPres] and here
[http://www.voip-info.org/wiki/view/Asterisk+cmd+CallingPres]
Change Failed Code To - if call fails change Hangup Cause Code to this value. This works
only for outgoing calls from device. Not for Incoming.

Kolmisoft 2006-2013

190

Forward DID - it allows to forward call to DID which is assigned to Authorization by PIN
or Calling Cards dial plan. After user enters PIN of any device or card, call gets connected
with destination.

Transport - lets you choose protocol(s) for data transfer. Appears only if device is SIP and
when Asterisk 1.8 is enabled. Default value: udp.

Tell Options

Tell rate before call - should MOR tell announce minute price (rounded to cents) before
every call. Default value is "no".
Tell balance before call should MOR tell the user his balance every time he tries to
dial? The default setting is "no".
Tell time - should MOR tell the user his remaining time every time he tries to dial? The
default setting is "no".
Time is told in MINUTES only. Currently it is not possible to tell both in minutes and
seconds.
Tell remaining time when left when some time is left, MOR will tell the remaining time
to talk (in seconds).
Repeat remaining time when left repeats the remaining time when some time is left
(in seconds).

Debug

Process SIPCHANINFO - shows SIP channel info in Asterisk CLI and saves this information
on database.
Save Call Log - saves whole call log on database. Log can be overviewed by click
in
Last calls.

NOTE: debug should be enabled only if you are experiencing any problems. It should be disable
in any other cases, because it stores lot of information on database.

Recordings
This section is available when Recordings Addon is installed in the system.

Kolmisoft 2006-2013

191

H323 Device settings

Kolmisoft 2006-2013

192

Extension lines
In device settings, you can select

Extension lines. It will show you Asterisk extension lines:

This information is for people who have a deeper understanding of Asterisk internals.

Ring several devices at same time


Currently MOR does not DIRECTLY support a configuration to ring several devices at the same
time.
Such functionality can be implemented using: PBX Function External DID

Kolmisoft 2006-2013

193

How to create User and Device


Here [http://wiki.kolmisoft.com/index.php/How_to_create_User_and_Device] you can see a video
demonstrating how to create a user and a device WITHOUT setting additional settings. Make
sure you read and understand User Details and Device Settings

Trunks
"Trunk" refers to another server/PBX that can be connected to the MOR system.
When calling such a device, we send the full number that has already been dialed.
For example, when dialing a simple device, we would use:
Dial(SIP/some_device)

If this device is a Trunk, we use:


Dial(SIP/some_device/${EXTEN}).

This lets Trunk decide to which device (connected to the Trunk) to route the call.
If you want to make a device Trunk, just mark it as Trunk in the device details:
ANI.

No/Yes/Yes with

Trunk with ANI


It is sometimes necessary not to bill a whole trunk as one client, but to bill separate clients
connected to the server/pbx (trunk) separately.
In order to do this, you should mark a device as Trunk with ANI.
Now, when a device connected to the Trunk dials through MOR, MOR checks the calling device's
CallerID. If the CallerID is present for some device in the MOR, MOR recognizes this device as a
valid device on the MOR and assigns the call to it instead of to Trunk.

Kolmisoft 2006-2013

194

IAX2 Trunking Mode


When trunking with IAX2, only the used bandwidth is allocated at all times. IAX trunking allows
multiple voice streams to share a single "trunk" to another server, reducing overhead created by
IP packets. IAX always sends DTMF outline (RFC2833), eliminating the confusion often found with
SIP.
It should be noted that trunking requires both sides to know each other (i.e. they need to be valid
peers). If one side has trunk=yes and the other does not cannot validate the peer, you will get
one-way audio. The easiest way to make this work is to use a register line to register to the
systems you want to trunk with.
You

can

turn

IAX2

Trunking

Mode

on

in

device

edit

window.

CLIs (Incoming CallerIDs)


CLI or CallerID is a number from which a user can dial MOR. These values are used when the user
is dialing into MOR through Trunk/Provider with ANI (Automatic Number Identification).
It is important to understand that CLI is not the CallerID that is put on a call that goes out of the
system.
CLI is the CallerID for a call that is COMING INTO the system.
It is mainly used to AUTHENTICATE the caller.

Kolmisoft 2006-2013

195

You can reach the main CLI window in device settings by selecting

CLIs:

IMPORTANT! CLIs should be in E.164 format!


It is possible to ban CLIs. This is explained ANI/CLI ban system topic.

ANI/CLI ban system


This function makes it possible to ban unwanted CallerIDs.
Only Administrator can ban CLIs.

SETTINGS > Users > Devices > CLIs

When no IVR is selected, the call ends with the CONGESTION tone.
When an IVR is selected, it is played for the user who tries to dial.
As example IVR might say: "Sorry, but your account is blocked because..."

Kolmisoft 2006-2013

196

Blocking CallerID because of simultaneous calls


To set this functionality go to main devices edit window and in Advanced block
choose Yes in Block callerid if (number) simultaneous calls come from it:. Add a number of
simultaneous caller IDs. Default value is 2:

Kolmisoft 2006-2013

197

This scheme shows how this functionality works:

Kolmisoft 2006-2013

198

Duplicate call prevention


Sometimes, devices have poorly implemented SIP protocols and try to initiate the same call twice
at the same time.
The "Duplicate call prevention" option is implemented to avoid such a situation.
It kills both calls and prevents the malfunctioning device from dialing.
Allow duplicate Calls is available for Providers and Devices in the Edit window under Advanced
settings.
Its default setting is No. If you are not sure what you are doing, leave it that way.

Allow loss calls


Allow loss calls can be put on a per user basis:

This setting allows you to decide whether you want to allow a user to use a provider if the
provider's rate to a destination is lower than the user's rate.
By allowing such a call, you will pay more to the provider than the user pays you for it, meaning
that you will take a loss on the call.
If this setting is unchecked (the default setting), cheaper providers will not be used in dialing.
Kolmisoft 2006-2013

199

Resellers
Resellers can check this setting for their own users.
When a Reseller checks this setting for his users, the user is allowed to dial out even when his
rate is lower than the rate that the reseller is paying the system admin.

See also

204 No suitable providers found


218 Reseller does not allow loss calls

Device groups
It is possible to group devices. This feature is intended for branches of a company, so that each
device will belong to a single company group.
This functionality is not widely used and we do not recommend using it unless you really need it.
To access groups for each user in the Users window, click

Dev.Groups:

In this window you see all device groups for the selected user. Under each group, you see devices
assigned to the group.
Once new groups are added, they can be deleted. However, the primary group cannot be
deleted.
Edit Details lets you a change group's name and address.

Kolmisoft 2006-2013

200

Call Flow
Definition
Call Flow is set of rules on how a call should behave when it is trying to reach a device.
Call Flow can be reached by clicking

Call Flow link in device details:

A call has several states that can be seen from this image:

Before Call call has not reached device.


Call call to device is in progress.
Answered call was answered.
No Answer call was not answered and ended after timeout.
Busy callee was busy.
Failed call to device failed.

Kolmisoft 2006-2013

201

Actions
We can take actions for several call states: Before Call, No Answer, Busy and Failed.
The possible actions are:

Empty
Forward
Voicemail
Fax detect (only for the Before Call state)

Empty
Empty means no action should be taken. It is the default in most cases.

Forward
Call can be forwarded to Local device or External number:

Kolmisoft 2006-2013

202

Device Timeout is only available in the No Answer state. It decides for how long a device should
ring before the system decides that it is unreachable (when to activate the No Answer state).
The system owner (admin) can select any device he likes. If a user edits his devices' Call Flow, he
can only select his own devices.
Using the "forward" action it is easy to implement:

Unconditional forward when forward is used in the Before Call state.


Forward on no answer/busy/failed when forward is used in No Answer, Busy or Failed
states.

CallerID options
The following options are available to manage CallerID for a forwarded call:

From device - puts CallerID for the device that is forwarding the call.
Same as comes - unchanged - leaves the CallerID as it comes from the original caller.
From DID - selects a CallerID from available DIDs.
Custom - enters any CallerID.

Forwarding example
Let's make a chain of forwards: when someone calls to a device (extension) and until the device
timeout there is no answer the call is forwarded to another device, if there is still no answer then
forwared to the next extension.

Kolmisoft 2006-2013

203

In Forward to select the second extension. Then go to Devices main page and make the same call
flow to that second extension just in Forward to select the third extension:

the number of rings before forwarding can be changed in /etc/asterisk/indications.conf.

Voicemail

This action sends the call directly to voicemail. It's simple. Put in Before Call, and if a call never
reaches a device, it will go directly to voicemail.
You can put it in the No Answer/Busy/Failed state to achieve a different functionality.

Kolmisoft 2006-2013

204

Fax detect
This action can be set ONLY in the Before Call state and only if a Fax device is enabled in Settings:

You can select only a FAX device to route the call if a Fax is detected. MOR will use fax detection
when this action is set.
If a fax is detected, it routes calls to the set fax device. Otherwise, they go to the basic device.
NOTE: Fax over VoIP is not reliable and this setting should be used only for testing.

Kolmisoft 2006-2013

205

Which codecs should I choose for devices


What codecs are supported?
Audio:

G.711 A-law
G.711 u-law
G.723.1
G.726
G.729
GSM
iLBC
LPC10
Speex
ADPCM
16 bit Signed Linear PCM

Video:

H.261
H.263
H.263+
H.264

Audio codecs
Most commonly used are:

G711
G729

G711
PSTN quality codec which is supported in 99% of all devices/providers (but often disabled to save
traffic).
It has best quality but highest bandwidth (64kbps + ~20 kbps overhead ~= 84kbps to one
direction).
It comes in 2 flavours - G711u (ulaw) - used in USA, and G711a (alaw) - used mostly in Europe
and other countries.

Kolmisoft 2006-2013

206

G729
Little worse quality but is often used because it saves traffic (~8kbps + ~20kbps overhead ~=
28kbps to one direction).
It takes a lot of CPU power to transcode so total call count on the server is greatly reduced using
this codec.
It needs to be installed separately and it is not free.

G722

G.722 is a ITU-T standard 7 kHz wideband speech codec operating at 48, 56 and 64 kbit/s.
64 kbit/s (comprises 48, 56 or 64 kbit/s audio and 16, 8 or 0 kbit/s auxiliary data)

HD VoIP in the Asterisk world involves selecting the G722 codec for VoIP calls.

G722 is known as a wideband codec as opposed to g711 which is narrowband.

The nice thing about it is that it does not require any more bandwidth than G711.

Both require 64kbit/s each way for a 2-way conversation.

The difference is that G722 employs compression combined with a higher sample: rate to
obtain a practical acoustic bandwidth of 50 Hz-7000 Hz as opposed to G711 which has a
practical acoustic bandwidth of 200-3000 Hz.

The difference in voice quality is quite noticeable.

Instead of sounding like you are talking into a tin can it now sounds like the other person
is in the same room.

You can hear more subtle nuances in the persons voice and certain letters/syllables that
are hard to distinguish on regular calls become much easier.

If one endpoint is using G722 and the other is using G711, the endpoint using G722 will
hear better sound quality from the other end but the G711 end will not notice much if any
difference.

Kolmisoft 2006-2013

207

Transcoding overhead between G722 and g711 is minimal. Roughly equivalent to half the
transcoding overhead between G711 and GSM. G.722 patents have expired, so it is freely
available.

Video
Read manual for your device to check which codec is supported on your device.
H263/H264 are most popular.
Make sure same codec is chosen between devices you are trying to communicate.

Fax
If your system/provider/devices does not support T38 you should use G711 codec for fax
transmitting/receiving.

Notes
Make sure you have always selected audio codec! Otherwise you will not be able to place calls!

See also

More
about
codecs:http://www.cisco.com/en/US/tech/tk652/tk698/technologies_tech_note09186a008
0094ae2.shtml
G711 vs G729:http://irockasterisk.blogspot.com.es/2011/02/g711-vs-g729-which-one-tochoose.html

Kolmisoft 2006-2013

208

Change Audio/Video Codecs priority


Starting from MOR 9 you can specify audio and video codecs priority. To specify the priority you
have to drag and drop codecs upwards and downwards. Remember to tick the codecs you
want to be enabled!

In this example only the codec G.711 A-law is enabled. Remember to tick other codecs you
want to be enabled.

Additional Notes

Codecs priority can be adjusted in Setup -> Settings -> Default Device (this
configuration will be applied to all new devices)

Codecs priority can be adjusted for a single device also: just navigate to a required device
edit and change the priority. You can find all Devices in Users -> Devices (hint: you can
use search from this menu). Also you can navigate to required device by user - go to
users list and select the Device icon, then select the required device for that user.

In MOR 8 and older versions you can only enable/disable codecs. You can't prioritize
codecs in older versions.

Kolmisoft 2006-2013

209

Authentication
There are two types of authentication in MOR: IP authentication, and using login and password.
IP authentication means accepting calls from a given IP automatically, without requesting any
additional login data.
To use login and password authentication, the sender needs to register his phone or pbx to MOR
before sending calls, otherwise MOR will reject them.
Note: IP and login/password authentication cannot work together for the same device or
provider.

Kolmisoft 2006-2013

210

IP Authentication
This example shows how to configure device to use IP Authentication:

Kolmisoft 2006-2013

211

Restrictions

You cannot create/edit Provider if you already have Device with same IP and port
combination. However, you can have two Providers with same IP and port combination.

You cannot have two Devices with same IP and port combination.

NOTE: if you need to send and receive calls from same IP and port, please Configure Provider
which can make calls.

Registration Status
About
This feature was developed to make MOR administrators life easier. With this feature an
administrator is able to track SIP device status from GUI and solve problems faster.

Technical details (requirements)


These requirements must be fulfilled in order this functionality would work correctly:

Works only with SIP devices.

Device must try to register or someone should call to that device in order that device
status would be visible.

Device must register to an Asterisk server where it is assigned.

Example:
If a device is assigned to a server A but registers to server B - status will not be shown (devices
must register to the server they are assigned to).

Status
OK - Device is registered, all is OK

Kolmisoft 2006-2013

212

LAGGED - Device is registered but connection to it is poor


UNREACHABLE - Device tried to register before, but currently it is unreachable
UNKNOWN - means the device state status could not be found. This is NOT an alternative
message to the previous UNREACHABLE message.
This status is created when you add a new device and the system does not yet have any data
about its registration status.
Unmonitored - Device should not register to server so its status is unmonitored, this device
made calls, so server is aware of its existence
NO STATUS - Device never tried to register to Server and Server does not know nothing about
this device.

Device list

Kolmisoft 2006-2013

213

Device edit

Very technical details


Most probably you will never need these.
These files must exist:

/usr/local/mor/mor_retrieve_peers

/etc/cron.d/mor_minute_actions

Logs
If you want to get a lot of logs put DEBUG = 1 in mor.conf
Logs for this feature can be found here:

/var/log/mor/ami_debug.log

Kolmisoft 2006-2013

214

Device rules
Device Rules transforms an E.164-compatible number to any number format
the Device requires.

Description
Different Devices expect different number formats from you. You can send them whatever they
want using Device Rules.
Device Rules are only used when Device is reached over DID. Local calls between Devices will not
use Device Rules.
Device Rules can be reached by clicking the

icon next to a Device in the Devices window:

IMPORTANT: Device Rules are applied ONLY to those devices which are accessible over
DID!

We see a similar window as the one in Localization. The rules to manage Device Rules are
identical to those for Localization management, which are covered in Number Manipulation
page.

Destination localization rules


IMPORTANT: Localization Rules only matter to the Trunks (Devices marked as Trunks).
Because simple Devices do not care about Destination.

Kolmisoft 2006-2013

215

Let's say our device/trunk expects to get a number with the international prefix 00. We can do
this in following way:

That's it very simple. Now every number that is sent to this Device will be transformed by
adding our created int. prefix.
For example, if 37063011111 should be sent to this Device, this rule will be activated and the
number 0037063011111 will be sent to Device.
Special cases
Cut everything till Hash
With rule Cut: *# it is possible to cut everything till # (# included) in the dialed destination:

Kolmisoft 2006-2013

216

For example:

Dialed number: 999#37063042439.

After Localization: 37063042439.

This function can be used in fancy MNP (Mobile Number Portability) schemes and perhaps
elsewhere.
NOTE: Add value still can be used to add any value after Cut is used on the Destination.
Destination same as received
If you want to send a number to a Device exactly as it was received, set Cut = '-' (minus sign as
shown in the screenshot).
That way, the same number that comes to MOR also leaves MOR:

CallerID localization rules


Source Rules manages CallerID which is sent to this particular Device.

Kolmisoft 2006-2013

217

In the example bellow we will add international prefix to every CallerID sent to this Device:

Special case
CallerID overwrite
Sometimes Trunks only accept calls with special format CallerIDs.
It is possible to overwrite any CallerID before sending a call to such a Device.
In Device Rules (for this Device) set up the Rule:

In this example, all calls going to this Device will have CallerID = 37063033333.

Kolmisoft 2006-2013

218

Providers
Description
In the old PSTN world, Providers were called Trunks. Providers are your route out of your VoIP
network to the outside world.
Providers can be one of several types: ZAP, SIP, IAX2, and H323. The type determines which
technology is used to connect to the Provider.
At the very start, you need to create a Provider through which you will dial out to PSTN or other
VoIP networks.
Every Provider will charge you for calling a destination through his service (although the rate
might be zero). The rate to every destination is different. Because of this, we need to have a Tariff
(or Price List) for each Provider. This Tariff will tell our billing what price we will pay to a
destination when using this Provider's services. In other words, this will be our Selfcost.
Providers' configurations can be found in SETTINGS -> Billing -> Providers.

Kolmisoft 2006-2013

219

Here you can see a list of all Providers:

Click New Provider to create new Provider, enter the Name for a new Provider, select
its Technology, Tariff, Asterisk server which should be used for this provider and click
Create.
Click icon to change settings for old Provider.
Click icon to disable Provider and it will not be used while it is cross in Active column.
Click icon to enable Provider if you want to use it again.

NOTE:

You can't create a new Provider if there are no Tariffs available for Providers.
A Provider is also able to send calls, not just receive them. More info here. In case you
want to sell services to a provider you have to create such a provider.

Kolmisoft 2006-2013

220

Settings
General

Name a name for the provider, for informational purposes.


Technology out of SIP/IAX2/ZAP/H323, choose which technology your provider uses that is, the way you connect to the provider.
Tariff the list of rates the provider charges you.
DTMF Mode the available options are inband, info, RFC2833, and auto. Choose the one
used by your provider.
Location which Localization rules are set to apply to INCOMING calls COMING FROM
this provider.
Automatic Number Identification - used in a special case explained here: Provider with
ANI
Ringing Timeout this setting lets you set for how long this provider should be dialed
before giving up. The default value is 60 seconds, and the minimum value is 30 seconds.
Call Timeout this setting lets you set the duration of the whole call: ringing and the
period after connection.
Device ID informational data.
Call limit explained here: Simultaneous call limitation.
Hidden? hide/unhide provider
Balance provider balance. Provider balance increases when calls are made via that
provider. Currently it is not available to decrease provider's balance. You can read more
about Provider Billing Addon here.

Kolmisoft 2006-2013

221

Balance limit this is the limit of balance that can be reached by the provider. After he
reaches the specified balance, calls aren't sent through this provider anymore. Balance
limit value of zero means that balance is unlimited.

Authentication
For ZAP providers

Channel which channel (or channel group) to use on a PRI/BRI/PSTN card. Channels and
groups should be configured in zapata.conf.

For SIP/IAX2 providers

Login username if your provider asks for it.


Password password used for authentication by your provider.
Authenticate by IP just check the checkbox (Login/Password can be left empty).
o Make sure you put the correct Hostname/IP address!
Register should we register the provider? (option is not visible when Dynamic is
selected in Network related section)
Register extension if the provider asks to use an extension for registration (usually they
don't), enter it here.

Provider CallerID
CallerID consists of two parts: Name and Number. The "Number" part is transferred by default
on all technologies (GSM, PSTN, SIP etc), but the "Name" part only on some. The number you see
on your mobile phone when someone is calling you is the "Number" part.

Name the "Name" part of CallerID.


Number the "Number" part of CallerID.

NOTE: If you have this configured all incoming call from this provider will have that CallerID. If
you leave these fields empty, calls coming from this provider will have CallerID set by the
Provider. It should almost always be this way.

Network related

Hostname hostname of the provider. Subnetting is supported.


Server IP the provider's IP. The value can be "dynamic", which means that provider can
change its IP. To discover this value, do ping to the provider's hostname.

Kolmisoft 2006-2013

222

Port port used to connect to the provider (default: 5060 for SIP, 4569 for IAX2, 1720 for
H323).

H323 specific network settings

Fast Start an option specific to H323; it is either on or off.


h245 Tunneling an option specific to H323; it is either on or of

SIP specific network settings

Media control canreinvite/transfer. Do you want your server to stay in the media path
between your clients and your provider? Disable if you have a lot of 1-second answered
calls.
NAT the available options are: yes, no, never, and route. For a detailed explanation of
these settings, refer to here.

IAX2 specific network settings

IAX2 Trunking Mode enable/disable trunking mode, which allows multiple voice
streams to share a single "trunk" to another server, reducing overhead created by IP
packets. More details here

SIP and IAX2 specific network settings

Qualify how often to "ask" the provider about availability. More details here for SIP
providers and here for IAX2 providers.

Servers
Allows to select on which Asterisk servers this provider should be used.

Codecs
Choose the codecs your provider uses.
NOTE: When no fields are checked, all codecs are available. (
or iax.conf are effective).

For example, settings in sip.conf

Advanced

Grace time if call duration is less than Grace Time, it will not be accounted.

Kolmisoft 2006-2013

223

Progressinband:
o yes when "RING" event is requested, always send 180 Ringing (if it hasn't been
sent yet) followed by 183 Session Progress and in-band audio.
o no send 180 Ringing if 183 has not yet been sent, establishing an audio path. If
the audio path is established already (with 183), then send in-band ringing (this is
the way Asterisk historically behaved because of buggy phones like Polycom's).
o never whenever ringing occurs, send "180 ringing" as long as "200 OK" has not
yet been sent. This is the default behavior of Asterisk.
Video support does your provider support Video over IP? More info here.
Allow duplicate calls the default setting is "no".
Interpret NO ANSWER as FAILED default option is no (This will change the provider in
LCR like it is failed, in last calls you will see the real hangupcause no answer)
Interpret BUSY as FAILED default option is no (This will change the provider in LCR like
it is failed, in last calls you will see the real hangupcause busy)
Fake Ring should system generate Fake Ring or not? Use only if your Device/Provider
has bad protocol implementation and does not send RING signal properly.
Common Use Provider can be used by Resellers which are able to create their own
Providers. Reseller will be billed using this Provider. If provider is marked as common use
and is used in one of reseller's LCR or is in Terminators list - admin is not allowed to
delete this provider or remove common use option.
Transport lets you choose protocol [tcp, udp] for data transfer. Appears only if Provider
is SIP and when Asterisk 1.8 is enabled. Default value: udp.

SIP Specific

Fromuser more details


Fromdomain more details
Trustrpid This defines whether or not Remote-Party-ID is trusted. It's defined in
http://tools.ietf.org/id/draft-ietf-sip-privacy-04.txt
Sendrpid defines whether a Remote-Party-ID SIP header should be sent. It defaults to
"No". This field is often used by wholesale VoIP providers to provide calling party identity
regardless of the privacy settings (the From SIP header).
Insecure more details
T.38 Support should we support T.38 pass-through?
SIP 302 Reinvite Support turns this SIP feature on or off.
P-Asserted-Identity usage The P-Asserted-Identity header field can be used to convey
the proven identity of the originator of a request within a trusted network.
Periodic check - Turns on or off functionality which disables provider if it is unreachable.

Kolmisoft 2006-2013

224

Debug

Save Call Log when this option is enabled you can access Call info information in last
calls page.

Failover provider
You can also assign a failover provider to a LCR by selecting No in Use only one provider (Turn off
failover). Default value is Yes.

Failover provider is a provider used only in case of emergency. If all the other providers fail
(returns FAILED error code) a failover provider is used.
If Provider returns NO ANSWER or BUSY - it means, that call not FAILED.
If you think that NO ANSWER/BUSY == FAILED, then you can use NO ANSWER/BUSY
interpretation for providers setting.

See also

NO ANSWER/BUSY interpretation for providers

H323 Provider settings

Kolmisoft 2006-2013

225

Terminators
A Terminator is a group of Providers (in MOR's terms).
In reality, a Terminator is a company that sells/buys traffic to/from you. Then Providers (in MOR's
terms) are gateways of this Terminator.
Terminators are used in reporting - in Aggregate and Summary reports.

Provider with several IP


If a VoIP Provider gives you several IP addresses to which to send traffic (or from which to receive
traffic), you need to create a SEPARATE Provider in MOR for each IP address.
After that, you can unite them under Terminators.

Kolmisoft 2006-2013

226

Provider connection testing


It is possible to test Provider connectivity by clicking on

in the Providers window:

Good response:

Bad response:
NOTE the NOTE!

Kolmisoft 2006-2013

227

H323 Provider settings

Provider with ANI


First scenario
Automatic Number Identification (ANI) for Provider is used ONLY (at least we don't know any
other situations) when the provider gives you an access number after which (IMPORTANT!) the
dialer enters the destination number WITHOUT PAUSES, so that the WHOLE number is sent to
the provider instantly.

Kolmisoft 2006-2013

228

For example:

Let's say the provider gives you the access number 1234.
When somebody wants to dial a destination (let's say 22234567890), he enters on his
phone: 123422234567890.
22234567890 comes from the provider to your MOR box.
Because the provider is with ANI, we check the user's CLI.
If CLI is found, we know which user is dialing.
Before he dials out, we change the CallerID of this call to the CallerID found in our
database - that's a minor job, but it's part of the algorithm.
After that, the call is sent to 22234567890.

IMPORTANT!!! - Do not check ANI for Provider if this description does not match your
working scenario!

Similar scenario which can't be used with ANI for Provider


If you have an access number as DID, you can enter p (pause) after your DID when calling the
provider and then enter the destination. But that is a totally different scenario. It should be
configured with DID + Auth. by ANI DialPlan, because the destination is send to MOR by DTMF,
not by the provider as in the previous example.

Example:
If your DID is 234567890 and you want to dial dst: 987654321 on (for example) your mobile
phone, you enter:
234567890p987654321
That way the call will reach MOR. When p (pause) is reached, MOR will play "Please enter
destination" and 987654321 will be sent by DTMF to MOR.

Kolmisoft 2006-2013

229

Configure Provider which can make calls


In order to allow a Provider to make calls, we need to:
1. Create a new User for it.
2. Assign the Provider to this User.
NOTE: Provider cannot be assigned to Reseller and to Accountant.
Video that shows how to do this can be found here:
http://wiki.kolmisoft.com/index.php/Configure_Provider_which_can_make_calls
NOTE: We suggest to configure ONE common provider for outgoing and incoming calls,
otherwise (if there will be two providers with same IP) Asterisk will be confused which provider
should be used to accept calls.

How mor handles balance for users that are also providers?
The provider's balance increases only when there is a call made through this provider. If provider
is assigned
to user then when same provider is making a call, user's balance - to which provider is assigned decreases.
And there is no difference if you have Provider billing add-on or not.

Configure Provider with dynamic IP


In Providers settings, enter the appropriate values in the following fields:

Login - the username for your device.


Password - the password for your device.
Make sure IP Authentication is unchecked.
Make sure Register is unchecked. This option is not visible in MOR 10 when Dynamic
selected
In the Hostname field enter: dynamic.
In the IP Address field enter: dynamic.
Check NAT = yes if the device is under NAT; check NO if the device is not under NAT.
Check Qualify = YES.

Kolmisoft 2006-2013

230

For example:

Make sure you enter the correct Login and Password!


Save your changes.

Kolmisoft 2006-2013

231

When your device registers, the current IP address of the device will be in in the IP Address field.
Do not change it!

Simultaneous call limitation


It is possible to limit simultaneous calls per provider/DID/user/device basis.
These settings limit simultaneous calls, not how many total calls the user/device/provider(/did)
can make.
When no more calls can be made, the dialer hears the BUSY signal.

Provider

Call limit - describes how many simultaneous calls the provider can make. 0 (zero) means that
calls are unlimited.
Hangupcause code 223 means that the provider can't make more simultaneous calls.
This limit is for outgoing calls through this provider.

Kolmisoft 2006-2013

232

User

Call limit - describes how many simultaneous calls the user can make. 0 (zero) means that calls
are unlimited. This limit is for outgoing calls made by this user.
Hangupcause code 220 means that the user can't make more simultaneous calls.
Hangupcause code 222 means that a reseller (as a user) can't handle (allow to his users to make)
more simultaneous calls.

Kolmisoft 2006-2013

233

Device

Call limit - describes how many simultaneous calls the device can make. 0 (zero) means that calls
are unlimited.
Hangupcause code 221 means that the device can't make more simultaneous calls.
This limit is for outgoing calls made by this device.

DID

Kolmisoft 2006-2013

234

Call limit - describes how many simultaneous calls DID can receive. 0 (zero) means that calls are
unlimited.
Hangupcause code 219 means that DID can't receive more simultaneous calls.
This limit is for incoming calls made to this DID.

Special case
When DID points to a device and the limit is reached, calls will be routed to the device via BUSY Call Flow. This will ring another device or send a call to VoiceMail when the main device already
has a call.

NO ANSWER/BUSY interpretation for providers


By default, the NO ANSWER or BUSY call end disposition is counted as the end of a call. After
this it is pointless to try to dial the same destination again, because the destination is not
answering (NO ANSWER) or is currently busy (BUSY).
If we have several providers in our LCR, the call ends after we receive NO ANSWER or BUSY from
a provider, and our routing ends.
This is okay for an ideal world in which all providers follow standards and send the correct call
end codes, e.g.:

NO ANSWER when calls are not answered after a certain period (timeout).
BUSY when a recipient is busy (talking with somebody else).
ANSWERED when a call has been answered and ends.
FAILED when an error occurs.

However, providers sometimes cheat (or do not have technical skills to make this correctly). For
example, if they can't deliver a call to a destination because of some problem in their network or
something similar, they may send the NO ANSWER or BUSY signal for a FAILED call. And then our
routing breaks. If we have several more providers in our LCR, our LCR will not try to send call the
over the remaining providers and will end the call.
This often happens for GREY (illegal) routes.

Kolmisoft 2006-2013

235

To partly solve this problem, MOR provides a workaround: "NO ANSWER/BUSY interpretation for
providers".
This makes it possible to set a NO ANSWER and/or BUSY interpretation as FAILED.
That means, if a provider reports NO ANSWER and/or BUSY, MOR treats this as FAILED and the
next provider in LCR (if there are further providers) is tried to send the call.
These options can be set in Providers Settings:

It is advised to use these settings ONLY and ONLY on confirmed cheating/misconfigured


providers. That is, these settings should usually be 'NO'.

Kolmisoft 2006-2013

236

Net2phone configuration

Kolmisoft 2006-2013

237

Broadvoice configuration

Kolmisoft 2006-2013

238

Eutelia

Kolmisoft 2006-2013

239

As Eutelia sends calls from different IPs, we need to configure it as a second provider:

Kolmisoft 2006-2013

240

Configuring DIDWW

DID World Wide, International DIDs forwarded to PSTN and VoIP by SIP, IAX, H323, Skype, Gtalk,
MSN Messenger. Origination services, SIP DIDs.

Known DIDWW issues

CallerID does not come in E.164 format - only in the local format.

CallerID does not come in E.164 format, only in local format


QUESTION:
Hello! From Ukraine DID CallerID is not coming in the E.164 format.
It is coming in the local format like 80519539xx, but must be 3805019539xx.
Is it possible to fix this?
ANSWER:
Your DID number is forwarded with CLI exactly as the local carrier sends it.
Please check if it is possible to change the CLI on your end.
Best Regards,
Customer Support Department
DIDWW

Kolmisoft 2006-2013

241

Configuring multiple DIDWW IPs for receiving calls to DID


The problem with this DID Provider is that it sends calls from many IP addresses.
This is done due to load balancing techniques.
Please be sure you have granted access on your end to DIDWW Public IP Addresses:
The newest list can be found at DIDWW IP Adresses:
[http://www.didww.com/Knowledgebase/the_list_of_didww_ip_addresses/]
It is possible to implement multiple DIDWW IP addresses by making these changes:
1. Upgrade your MOR 9 GUI
2. Create a provider in MOR, with a name didww:

Kolmisoft 2006-2013

242

3. Afterwards, enter any IP (or leave blank) in Provider Network settings, and write down Provider
Device ID value, you will need it later.

Kolmisoft 2006-2013

243

4.
Now
connect
to
your
server
over
ssh
/etc/asterisk/extensions_mor_didww.conf and find these lines:

and

locate

this

file

[from-didww]
exten => _X.,1,Set(CDR(ACCOUNTCODE)=0)
exten => _X.,2,Goto(mor,${EXTEN},1)
Now you need to change (ACCOUNTCODE)=0 value (0) to Provider Device ID value as follows:
exten => _X.,1,Set(CDR(ACCOUNTCODE)=8)
exten => _X.,2,Goto(mor,${EXTEN},1)
5. Make sure, file /etc/asterisk/sip.conf has this line included:
#include sip_didww.conf
6. Restart Asterisk
Now your system is updated with all the DIDWW IP addresses that are listed in their
recommendations.
Now there is no need to create one Provider for each IP

DID configuration
Then:

Create DID - IN E.164 FORMAT!


Assign to a DIDWW Provider.
Assign to some device.
Configure correct routing (mapping) in www.didww.com.

Kolmisoft 2006-2013

244

Configuration in www.didww.com
We will assign a Thailand, Bangkok number to our server:
First we need to create "mapping", that is, the route to our server:

After this, we need to assign our DID to our just-created "mapping":

Kolmisoft 2006-2013

245

Troubleshooting
Watch Asterisk CLI to see what's happening.
Maybe you have DID in the wrong format - for example, not E.164 compatible?

Vitelity
http://www.vitelity.com/

Kolmisoft 2006-2013

246

Vono
http://www.falevono.com.br/

This Provider requires the following Provider Rules:

Kolmisoft 2006-2013

247

How to add Voicetrading Provider


About
Voicetrading Provider configuration in MOR GUI.
This manaul is an example how to configure Voicetrading provider, but it can be used
as an example of another Providers configuration which authentication type is registration by
username/password.
The username & password can also be used to connect to our SIP-server in order to make calls.

Getting connected
Technical details which Voicetrading provides to you:
Username: Your VoiceTrading username
Password: Your password
SIP/Proxy registrar: sip.voicetrading.com
We support the following codecs:
G.711 (64 kbps)
G.726 (32 kbps)
G.729 (8 kbps)
G.723 (5.3 & 6.3 kbps)
GSMFR (13 kbps)
iLBC (20ms & 30ms)
If you cannot connect by using Username & Password, we can also authenticate your fixed IP
address(es).

Kolmisoft 2006-2013

248

After we authenticated your IP, you can connect by using the following IP-adresses:
For SIP: 77.72.169.129 or 77.72.169.131
For H323: 77.72.170.132

Configuration in MOR GUI


To add Provider in system go:
Billing -> Providers -> New Provider

Enter name of Provider.


Select Technology (protocol) which will be used.
Choose tariff and mark server which will be used for this Provider and press create.

Kolmisoft 2006-2013

249

Entering Provider details

Fill fields login/Username, password with details your Provider provided to you.

Kolmisoft 2006-2013

250

Different quality routes


Voicetrading and another Providers often uses different prefixes for different quality routes:
VoiceTrading EUR/USD Grey: 00001 49 12345678
VoiceTrading EUR/USD Standard: 00 49 12345678
VoiceTrading EUR/USD Premium: 00000 49 12345678

How to add special prefix for Provider


Example you buy from VoiceTrading EUR/USD Standard 00 49 12345678 traffic.
VoiceTrading EUR/USD Standard route which need special prefix 00
To add special prefix for Provider, Provider rules are used.

To configure it using Provider rules.


Press on Rules icon and enter rule add special prefix in this case 00
When Rule is added cal will work in this scenario: customer will dial 49 12345678 system will
automaticly add special prefix 00 and number will be send to Provider in this format
004912345678.

Kolmisoft 2006-2013

251

Portech GSM as Provider


Connect Portech GSM as Provider to MOR
We will connect like this:

Phone will dial to MOR


MOR will use Portech as Provider to reach GSM network

Provider configuration

Make sure you do not have Device with same username/password as for your
Provider!

In this example Portech has dynamic IP.


So we need to register it to MOR.

Kolmisoft 2006-2013

252

Create Provider (NOT user/device!!!) in MOR with following settings:

NOTE: password field is empty - somehow in our tests Portech refused to register with
password.
Create LCR, assign Provider to it, assign LCR to user, and do all other necessary steps.
Kolmisoft 2006-2013

253

Portech configuration
Configure Portech to register to MOR:

Kolmisoft 2006-2013

254

Port settings
Set different ports for separate SIMs:

Do not forget to route these ports on the firewall if your Portech is under NAT!

Problems
We do not recommend these devices because they are unpredictable and unstable. They may
stop working without notice at any time!
Some examples:

http://lists.digium.com/pipermail/asterisk-users/2009-November/241371.html

Kolmisoft 2006-2013

255

Call Routing
LCR
LCR (Least Cost Routing) is a set of Providers that should be used to send a call when trying to
dial any destination - for example, by the cheapest rate.
The correct name for such a function is a Routing Table, because the function supports other
ways of routing, not just finding the cheapest route.
LCR supports fail-over. That is, if one provider fails, the next one is dialed. This is completely
invisible for the caller and lets you increase the chances of the user reaching his destination. If
one Provider is not capable of delivering a call, the system will try to use the remaining Providers.
The LCR window can be found in SETTINGS > Billing > LCR.
Supported routing modes:

By Price - cheapest first (Least Cost Routing).


By priority.
By percent or Weight-based routing.

The user has one base LCR, so that all his calls are routed by some preset rule.
It is possible to route different destinations for a User using Call routing per destination basis.

Make tariff from LCR


In MOR there is also a feature that gets you a CSV with the best prices selected from the list of
Providers in LCR. Go to SETTINGS -> Billing -> LCR. You will see this window:

Click on the icon and the download should start automatically.

Kolmisoft 2006-2013

256

Copying LCR between resellers


Sometimes you need to make a LCR which takes quite a long time to make. If you have made a
similar one before you can just copy it and change appropriate details. Go to SETTINGS ->
Billing -> LCR -> Copy LCR (as shown below in the picture). You willl see this window:

Choose Original LCR reseller and Cloned LCR reseller and click Clone button.
Please note that LCR will not be allowed to copy if reseller B is not allowed to use Providers which
are used by Reseller A.

See also

LCR Logic
How to add Provider to LCR
Call Routing by priority (Manual LCR)
Call routing per destination basis
LCR/Tariff change based on call prefix
Routing by Percent or Weight-based routing
Why was a call not routed through another provider/trunk?
Make Tariff MIN/MAX from LCR Providers to CSV

Kolmisoft 2006-2013

257

LCR Logic
Here simple LCR (Least Cost Routing) is explained.

Example
We have two providers, A and B.
The dialed destination is 921XXXXXXXXXX.
Provider A has the following rate for the prefix (destination):

92 rate 0.1

No other destination starts with 92.


Provider B has the following rates for prefixes:

92 rate 0.05
921 rate 0.2

So LCR in MOR will group these providers in the following order:

Provider A with rate 0.1 (92)


Provider B with rate 0.2 (921)

MOR first dials through Provider A. If the call fails, Provider B will be used to send the call.
If the call through Provider A is ANSWERED, BUSY or there's NO ANSWER, the call ends, and
Provider B is not used.
Provider B is used ONLY when the call fails through CONGESTION.

Kolmisoft 2006-2013

258

The following graphic illustrates LCR logic:

Kolmisoft 2006-2013

259

How to add Provider to LCR


Video at [http://wiki.kolmisoft.com/index.php/How_to_add_Provider_to_LCR] will show you how
to add providers to LCR.

Call Routing by price


About
LCR by price routes the calls using the cheapest routes.

Usage
1. Go to SETTINGS -> Billing -> LCR
2. Create new LCR by pressing the New LCR

Advanced Options
Do not use next available provider if the price is higher than x%
Use this feature when you do not want to use a provider when the price between the cheapest
and next available provider is higher when x %. The call will simply fail if no other providers meet
the requirement.

Usage
1. Go to LCR list: SETTINGS -> Billing -> LCR
2. Press Edit on LCR by price LCR:

Kolmisoft 2006-2013

260

3. Enter the desired percent for call price difference:

Example 1
Provider A has a price of 0.10 and provider B 0.11 and we set x=20%
so if call cant be establish by provider A then system will try with provider B (0.11<0.10+20%)

Example 2
Povider A has a price of 0.10 and provider B 0.30 and we set x=20%
so if call cant be establish by provider A then the system wil NOT try with provider B

Hangup Cause Code


When Provider is skipped, HGC 235 is shown.

Call Routing by priority (Manual LCR)


Call Routing by priority means that a call is routed by a predetermined order, not by the
cheapest price for the destination.
This method of routing is used when it is known that a Provider provides better quality for some
destinations, or for some other reason a call should go in some special order.

Kolmisoft 2006-2013

261

To set this feature, you need to set the type of priority in LCR:

You can go to Providers and click on Change Order to change the order of Providers for this LCR:

Now you can Drag&Drop Providers to change their order:

Video at [http://wiki.kolmisoft.com/index.php/Change_Provider_order_by_Drag%26Drop_video]
demonstrates how to do that.
Click Back when you are finished. Assign this LCR to users and route calls manually.

Kolmisoft 2006-2013

262

Call routing per destination basis


Some destinations needs fine tuning to better tell which providers should be used to reach that
destination and in which order.
Each user has an assigned LCR. For some destinations, it is possible to set a different LCR.
This logic is demonstrated in the following example.

Example
We take Paraguay as example, because this country has a small number of destinations.

Let's say we have three providers (in LCR: Primary), and we use them all together for all our
destinations. The route is picked by the least cost route, that is, the LCR order is by Price:

Then we have the situation that calls to Paraguay (except those to Mobiles) do not go through
the provider Eutelia.

Kolmisoft 2006-2013

263

To handle this situation we create a new LCR: Secondary, in which the order is Priority. It excludes
Eutalia and has only two providers:

Now we need to configure Routing per destination.


Click on the By destinations icon for Primary LCR (because Primary LCR is used by the user who
dials):

We create the following configuration:

Kolmisoft 2006-2013

264

Explanation
Now when the user dials any Paraguay FIX number, the call will be routed using LCR Secondary
with order priority:

We can click on Active destinations and will see for which prefixes such an LCR applies:

As we know that Eutalia can route calls to Mobile networks of Paraguay, so MOB destinations will
be handled by old LCR:

Kolmisoft 2006-2013

265

We can click on Active destinations and will see for which prefixes such an LCR applies:

How to route call to specific Destination through specific


Provider
Let's say you want to route calls to one specific destination through one (or several) specific
Providers.
As an example we will take a destination with the prefix 370630.
1. Create new LCR with only 1 specific Provider in it.
2. Use Call routing per destination basis to assign this LCR to destination 370630.
That's it - very easy.
Now calls to this destination will be routed ONLY through this Provider.
You can add more Providers to your LCR and use it with many Destinations.
You can create many LCR/Providers/Destinations combinations and use them in any way you
need.

Kolmisoft 2006-2013

266

LCR/Tariff change based on call prefix


Also called: Tech Prefix functionality.
The main purpose of this function is for calls to be routed through a provider or providers based
on call prefix.
You have to create a provider, tariff, LCR (where the specified provider has to be), and a user with
his device. And most important, the localization rule or rules. It should be applied per device
basis (Device settings -> Location), making sure the specified device has the correct rule applied.
It must be noted that specified rules have higher priority than global rules.

1) Create a new tariff, provider, LCR, user and device.


2) Assign the newly made provider to the new LCR.
3) Create a new localization rule, named for example "test1".
4) Assign the device to location "test1".
5) Now edit the "test1" rule. It should be done las with normal localization rules, but when
you are creating a localization rule based on tariff or LCR, assign the specified Tariff or LCR
to correct place.

You can find more info on how to make rules in Number Manipulation.

Example
Lets say we have a provider that provides three quality routes: bad-cheap/normal/goodexpensive.

The bad-cheap route is selected when dialing an E.164 number with prefix 00.
The normal route is dialed when dialing the normal E.164 number.
The good-expensive route is selected when dialing the E.164 number with the prefix 000.

To accomplish this, we need to:

Create three providers with the same connection settings:


o Bad_Provider
o Normal_Provider
o Good_Provider

Kolmisoft 2006-2013

267

Create three Tariffs for providers:


o Provider_Tariff_Bad
o Provider_Tariff_Normal
o Provider_Tariff_Good
Enter/Import appropriate rates to these Tariffs.
Assign these Tariffs to providers.

Create three LCRs and assign appropriate providers:


o Bad_LCR - assign Bad_Provider here
o Normal_LCR - assign Normal_Provider here
o Good_LCR - assign Good_Provider here

Create three Tariffs for users:


o User_Tariff_Bad
o User_Tariff_Normal
o User_Tariff_Good
Enter/Import appropriate rates to these Tariffs.

Create Location BadNormalGood with the following Rules:

Assign User_Normal_Tariff and Normal_LCR to User.


Assign all the user's devices to Location BadNormalGood.

That's it.
Now when the user dials E.164 numbers, he will be using the normal route; when 00, the bad
route; and when 000, the good route.

Kolmisoft 2006-2013

268

Prefix finder
About
Navigate to STATISTICS -> Various -> Prefix Finder:

Prefix finder is very useful tool when you want to get a country prefix in E.164 format knowing
only a country name.
Prefix - refers to the first digits of a telephone number.
These digits are a way to identify the area that the phone number is located in.

Functions
Prefix finder has two functions:
1) You can enter prefix to get destination name. For example you can enter 370 and get
destination name Lithuania, tariff and rates for this destination.
2) You can enter Destination name and get prefix. For example you can enter Lithuania and get a
prefix 370.

Kolmisoft 2006-2013

269

3) You can enter Number to get Rate.

Routing by Percent
This type of routing selects a route by percentage value of Providers. It is similar to Priority-based
routing, except that here Providers are selected randomly with greater or lesser probability.

Example 1
For example, we have three providers with the following preferences:
A - 50%
B - 30%
C - 20%
This means that:

Provider A will be chosen FIRST with 50% probability.


Provider B will be chosen FIRST with 30% probability.
Provider C will be chosen FIRST with 20% probability.

MOR orders these providers using the following algorithm:


As a first step, it randomly selects the first provider. There is a 50% chance that Provider A will be
selected, 30% for B, and 20% for C.
Lets say the randomly selected Provider is B.

Kolmisoft 2006-2013

270

At the second step, MOR selects from the remaining providers:


A - 50%
C - 20%
There is a much greater chance that A will be randomly selected than C. So let's say A is selected.
The final order of our providers will be:
B-A-C
Every time, the order is RANDOMLY done in the same way, using percent values for probability.
So we can get various results, such as A-B-C, A-C-B, B-A-C, C-A-B etc. BUT, following
mathematical reasoning, when we make a huge amount of tries (going till infinity), sets will follow
the rule in the first step: the Provider selected first will be A in 50% of the cases, B in 30%, and C
in 20%.

Example 2
To better illustrate the method, let's take a simpler situation. We have two providers with these
percentages:
A - 99%
B - 1%
Provider A will be selected first 99% of the time, so that when we have many ordered lists, they
will look like:
A-B, A-B, A-B, A-B, A-B, ........., B-A, A-B,........A-B, ..........
The probability that the provider order will be B-A is just 1%.
Fail-over
This LCR ordering still keeps Fail-Over intact.
That is, after we have ordered the provider list, if the first provider in the list fails, the second will
be dialed and so on.

Kolmisoft 2006-2013

271

Why call was not routed through other provider/trunk?


If you see that a call was not routed through the second (third/fourth/...) Provider/Trunk, take the
following steps:
1. Check Call Tracing it is possible that other Providers can't handle the call (no rates, not
configured properly, not assigned to LCR, etc).
2. Check STATISTICS > Calls > Last Calls check Hangup Cause for your failed call. If the
Hangup Cause is NO ANSWER or BUSY, then MOR does not route the call to the next provider.
More details in NO ANSWER/BUSY interpretation for providers.

Intelligent internal routing


It is possible to connect unlimited amount of MOR servers into the Cloud.
And MOR is capable of routing calls over all it's servers internally.
In provided example we have only 3 servers in the Cloud but it is enough for demonstration.
MOR can route calls between:
Devices (over DIDs)
Trunks (as PBX'es connected to the MOR)
Providers (which helps to connect to the PSTN)

In provided example all devices (phones), e.g. 1, 1-2, 1-3, 2, 2-1, 2-3, 3, 3-2, 3-3 can talk between
each other.

It is important to remember, that:

Device need to be assigned to DIDs in order to be reachable from Devices on different


servers
o As example in order for Phone1 to call to Phone2, Phone2 should be reachable
over DID, not over local Extension!
Each Device can be assigned to only one server
o And this Device should Register to or be accessible from correct server

Kolmisoft 2006-2013

272

Each Provider can be assigned to many servers


o Shortest path to use (reach) this Provider will be used by Internal Routing

See also

Multi Server support

Kolmisoft 2006-2013

273

DIDs
DID Management
Description
What is a DID?
In short it is an external number to have incoming calls to your VoIP network reach a particular
device. (This is a very simplified explanation that will serve for the moment. For a more extensive
explanation, please check here [http://www.voip-info.org/wiki/view/DID] ).
VERY IMPORTANT RULE: DIDs in MOR MUST be in E.164 format.
You can reach the DIDs window in SETTINGS > Billing > DIDs:

Since MOR 12 you can choose different tone zones. Tone zone is a different ring tone depending
on destination (country).
Here you can see all DIDs and their info.
User/Dial Plan and Device show who will answer when dialing this DID.
Clicking on User or Device brings you to their DID settings. If you click on the
to the device's Call Flow window.

Kolmisoft 2006-2013

icon, you will go

274

Status

Status is very important. For every just-created DID, the status is Free.
A DID can have several statuses:

Free this status means that the DID is free to be reserved for
any user/device. You can also Terminate it.
Reserved the DID is reserved but NOT actually used for a
user. "Reserved" is useful at the negotiation stage before
signing a contract. When a user decides to sign up, we Activate
the DID. We can also make the DID Free.
Active the DID is assigned to a Device and is functional. We
can Close it.
Closed the DID is no longer functional, so that all calls going
to this DID will get Hangup. One important feature of this state:
when a DID is Closed, it will be closed for a set time (the default
is 90 days) in case the user changes his mind and decides to use this DID again. This is
useful when a user is not paying for services, as we can suspend the DID by using Closed.
MOR will make it Free after the Closed period runs out. You can manually make it Free or
Terminate this DID.
Terminated the DID is no longer used in MOR. It remains only for historical purposes.
You can make it Free if you want.

Kolmisoft 2006-2013

275

Settings
If you want to edit a DID's settings, click on the

icon:

The above window is for Free DID. You can:


1. Change Provider and language for this DID. "Language" is for voice prompts in the
Asterisk Dial Plan.
2. Reserve a DID for a user.
3. Assign to Dial Plan.
4. Terminate a DID.
Kolmisoft 2006-2013

276

When a DID is assigned to a Device (Reserve for User first), you have a few different choices:

Here you can:


1.
2.
3.
4.

Change provider/language.
Assign DID to a different device (for the same user).
Assign DID to Trunk.
Stop a DID subscription and reserve the DID for 90 days (by default) to this user in case he
changes his mind and wants to get the DID back.

When DID is assigned to Dial Plan, the choices are almost identical.

Kolmisoft 2006-2013

277

When you have Quickforward Rule for this DID, in DID edit you will see additional notice:

DIDs grace time


If call duration is less than Grace Time, it will not be accounted, for example: Grace Time = 3s, call
duration <= 3s, then price for the call = 0

See also

Provider Grace Time


Device Grace Time

Kolmisoft 2006-2013

278

Timeout Digit
The maximum amount of time permitted between digits when the user is typing in a number.
When this timeout expires after the user has started to type in a number, the number will be
considered complete, and will be interpreted (sent to the system). Works both with entering
destination and ANI/PIN.

Kolmisoft 2006-2013

279

Timeout Response
The maximum amount of time permitted for user to START entering a number. If the user does
not begin typing a number in this amount of time, system will notify that nothing was entered.
Once the user begins to type a number, system will wait for Digit Timeout to be reached, and
Response Timeout has no effect no more.

Kolmisoft 2006-2013

280

CallerID Name Prefix


By setting this option you can add a CallerID Name prefix to the incoming CallerID.

Tariff for Calling Cards


Tariff for Calling Card lets you set a tariff for DID which will be applied for a calling card. It will not
be important what tariff is assigned for that card's group.

Kolmisoft 2006-2013

281

Work days and Free days


It is available to set different DID rates for work days and free days. If you want to do this go to
SETTINGS -> Billing -> DIDs. Click on rates in the window you will see and then Split to Work
Days and Free Days. To combine back click Combine to Work Days and Free Days:

Add new DID(s)


In the main DIDs window, if you want to add new DID(s), click on

Kolmisoft 2006-2013

New DID:

282

In this window, you can add one DID or series of DIDs. Also, you should select the provider which
sold you this DID.

Delete DID
At first, mark it as "not used" (Free). Then terminate it. When you do, you will see
DID in the main DID window. By clicking on it, you can delete the DID.

next to the

Edit a DID's number


It is not possible to edit a DID number. You can only delete an old one and create a new one.

DID bulk management


In the main DIDs window, click
actions with a series of DIDs:

Kolmisoft 2006-2013

Bulk Management and you will be able to perform various

283

Assign DID to Trunk


What is trunk?
"Trunk" refers to another server/PBX that can be connected to the MOR system. For more
information please visit Trunks page .

How to assign DIDs to trunk?


1. Go to SETTINGS -> Billing -> DIDs:

2. Select Bulk management:

Kolmisoft 2006-2013

284

3. Enter DID interval you want to assign to trunk and select the marked option:

4. Select a user you want DIDs to be reserved for:

Kolmisoft 2006-2013

285

5. Select a trunk you want your DIDs to be assigned to:

6. Completed - your DIDs are assigned

See also

Trunks
DID management

Work flow for DID


Technical explanation:
1. Let's say a call comes through a certain Provider. The connection type is not important. So
it could be PSTN/SIP/IAX2, or whatever.
2. Call -> Provider -> PSTN/SIP/IAX2 -> your Asterisk.
3. The call hits Dialplan [mor] exten => _X.,1, MOR:
4. Call -> Provider -> PSTN/SIP/IAX2 -> your Asterisk -> MOR.
5. MOR checks its database (DB) for the incoming DID. If it's found, MOR sees where to route
the call. In the MOR GUI, you can select to route the DID to a special Dial Plan (CallBack,
Calling Cards, Authorization by PIN/ANI) or to some local device.
6. The local device in its Call Flow can forward the call to:
1. VoiceMail.
2. Another Local Device.
Kolmisoft 2006-2013

286

3. An External Number.
7. So summed up, MOR can forward a DID to:
1. Dial Plan (CallBack, Calling Cards, Authorization by PIN, IVR).
2. A Local Device.
3. VoiceMail.
4. An External Number.
8. Call -> Provider -> PSTN/SIP/IAX2 -> DID -> Your Asterisk -> MOR -> (Dial Plan or
Local Device, Voicemail, External Number) -> ...

DID Billing
Description
DIDs can be billed. DID billing is quite complex, as they have three types of rates. That means
three prices are counted for one call. DID rates can be reached in the main DIDs window by
clicking the Rates icon for the selected DID:

Kolmisoft 2006-2013

287

Incoming rate
For incoming calls, when the Incoming rate is greater than zero, the rate is paid to the system
owner by the user who is dialing to that DID. It represents a profit for the system owner.
If the rate is less than zero, the price is paid TO the dialing user for the DID usage.
The dialing user is the user in MOR, and this rate applies only then when MOR recognizes the
dialing user (by PIN/ANI).

Owner rate
For incoming calls, when the Owner rate is greater than zero, this rate is paid to the MOR system
owner by the DID owner. This represents a profit for the system owner.
If the rate is less than zero, this price is paid TO the DID owner.
This rate is charged even if the local user dials another local user using DID with Owner Rate set.
DID usage is not allowed if this rate is > 0 and the DID owner does not have a large enough
balance to cover call costs.
DID owner rate is not applied to the DID's owner - that is, the owner of the DID will be not
charged when dialing his own DID.

Who is a DID's owner?


When a DID is assigned to User/Device, the owner is the User:

If a DID is assigned to a Dial Plan, then its Owner can be selected in the DIDs settings and any
user can be considered as the 'owner' of the DID and can be billed at this rate when anybody
dials this DID.

Kolmisoft 2006-2013

288

Select "Device" to see calls to this DID near this Device's calls:

Provider rate
For incoming calls, when the Provider rate is greater than zero, this rate is paid to the system
owner by the Provider. It represents a profit for the system owner.
If the rate is less than zero, this price is paid TO the Provider for the DID usage.

See also

DID Billing Time explained

Kolmisoft 2006-2013

289

DID Billing Time explained


Which time in DID is billed?
Let's imagine we have a call consisting of the following parts:

Here:

A is when a person dials DID number.


B is when a call arrives to MOR
C is when the dialed destination is sent to the provider.
D is when the calling party answers the call
E is when one of the parties hangs up and the call is ended.

So:

DID billable time is B - E.


Normal call billable time is D - E.
C - E is Call Duration.
D - E is Call Billsec.

Kolmisoft 2006-2013

290

DIDs Usage
STATISTICS -> Various -> DIDs -> Usage
This page shows current DIDs status and Actions with DIDs in a selected period:

Personal DIDs
PERSONAL MENU > Various > DIDs
This page shows DIDs which are associated with a User. No changes to configuration can be
made in his window.

Kolmisoft 2006-2013

291

Example - Configuring DID to ring some Device


Primary situation
We have:

DID - an external number (02180995165) provided by a Provider.


The number is from the UK.
The connection to the provider is via IAX2, IP: 23.45.67.89:4569.
Devices SIP/201 and SIP/202.

We want:

To dial the DID 02180995165 using our mobile phone and ring Device SIP/201.

Kolmisoft 2006-2013

292

To dial the DID 02180995165 using the local Device SIP/202 in order to ring Device
SIP/201 (local SIP-SIP call not going to PSTN).

Configuration
Plan
1.
2.
3.
4.
5.

Configure Localization for Provider.


Create Provider.
Register Provider.
Create Devices SIP/201 and SIP/202.
Create/Configure DID.

Kolmisoft 2006-2013

293

Configure Localization for Provider


As the DID is not in E.164 format, we must configure MOR to handle this.
Since the DID 02180995165 does not come from the provider in E.164 format, we must create a
Location for this provider and add a rule to it. We create Location: UK and add a rule to convert
the non-E1.64 DID to E.164 DID: 02180995165 -> 4402180995165.

Create Provider
Create Provider in MOR GUI.
Do not forget to set Location: UK for this Provider.

Register Provider
IF your Provider asks you to register it, do so.

Create Devices SIP/201 and SIP/202


Create Devices as usual (there is no need to edit any .conf files!)
DO NOT forget to set Location: UK for these Devices.

Kolmisoft 2006-2013

294

Create/Configure DID
Create DID in E164 format

Reserve this DID to your User

Kolmisoft 2006-2013

295

Assign DID to Device SIP/201

That's it.

DID with VoxBone using his URI


Question:
I have DIDs with Voxbone. They send the URI using ext@sip.server.
It's okay for receiving calls, but I need to know how I can use this system to redirect to a Calling
Card Dial Plan.

Kolmisoft 2006-2013

296

Answer:
When you configure your Calling Card Dial Plan (DP), you should assign it to a DID.
Let's say your Calling Card DP DID is 12345. Configure your Voxbone DID to call to:
12345@sip.server where sip.server is your server's IP or hostname.
NOTE: 12345 is an EXAMPLE! DO NOT CREATE 12345 as your DID - create a real one!
Make sure you have Voxbone configured properly in your system.

Forward DID to External Number

Create a User/Device.
In the Device's Call Flow, in the Before Call section, select Forward.
Enter the External Number to which you want to forward the call (make sure the number is
in E.164 format).
Assign your DID to this User/Device.

Now when a call comes to the DID, it will be forwarded to the External Number.
Video example how to forward DID to external number can be found here:
[http://wiki.kolmisoft.com/index.php/Forward_DID_to_External_Number]

How to charge DID on a monthly basis

Assign DID to the User's Device.


Create a Service with a name, for example: "DID price for 1 month".
Allocate a price for it.
Create a Subscription for the User of this service.
This subscription will be visible in the User's Invoice.

Video example how to charge DID on a monthly basis can be found here:
[http://wiki.kolmisoft.com/index.php/How_to_charge_DID_on_a_monthly_basis]

Kolmisoft 2006-2013

297

DID handling by Localization


When a call comes in to your system from the Provider, it should be localized to E.164 format for
DID search. In other words, as DIDs are in E.164 format, whatever comes from the provider
should be localized to E.164 to find the correct DID.
To do this, each Provider also has a Location. This means that Location rules can be created and
applied for the Provider. You can do this in the Provider settings window:

For example, you have DID 37052058393 and the provider sends you 0037052058393. You need
to strip this international prefix with the following rule:

Don't forget to apply the correct Location to the Provider!

Kolmisoft 2006-2013

298

Special case: In some countries when E1 is connected to the server, only the four last digits of
the number reach MOR. Localization should be used here to add the remaining part of the
number.

DID Blocking
If a customer is not paying or you want to block calls to his DIDs for any other reason, go to the
DID window and Close DIDs which belong to this customer.
"Blocking" in the User EDIT menu will not block his DIDs. It will only block dialing, so that the user
will not be able to dial out.

Dial Plans
Dial Plan is the name for a specific functionality in MOR. Currently it has the following types:

Authorization by PIN
Authorization by ANI
Calling Card Dial Plan
Callback Dial Plan
IVR Dial Plan
Authorization by ANI + CallCard on one DID

You can find all dial plans in SETTINGS > Billing > DIDs > Dial Plans:

Kolmisoft 2006-2013

299

Authorization by PIN
Description
This function is for customers who can dial an access number and enter their device PIN number
in order to get a dial tone and enter a destination number. It is used in some countries to get
cheaper calls abroad.
The algorithm for the Authorization by PIN dial plan is seen in the following image:

The main steps to configure this functionality are:


1. Create an appropriate Dial Plan.
2. Assign an DID to this Dial Plan.

Kolmisoft 2006-2013

300

First, in the main Dial Plan window, click on


Authorization by PIN dial plan:

New Dial Plan and enter values to create an

IMPORTANT! Check the Use ANI? field otherwise it will create a different type of Dial Plan.

Ask Number/PIN (times) how many times the user can try to enter the PIN.
Ask destination (times) how many times the user can try to enter the destination.

Click on

to create this dial plan. The first step is complete we have created our dial plan:

Now we need to assign a DID to this Dial Plan. To do this, in the DIDs edit window we assign the
selected DID to the Dial Plan:

Kolmisoft 2006-2013

301

In the main DIDs window we see that this DID is now pointing to our dial plan:

That's it. Very simple. Now, dialing 37063042439, we reach our Dial Plan. Here we hear a message
that asks us to enter our device PIN. If the PIN is correct, we can dial the desired destination.
Save original CallerID into CallerID Name field
Sometimes the CallerID of the original Caller is changed by the CallerID set in MOR. To see the
real CallerID in CDR, it can be saved in the CallerID Name field.
Enable this setting if you want to save it:

See also

Dial Plans

Kolmisoft 2006-2013

302

Authorization by ANI
Authorization by Automatic Number Identification (ANI) is a variant of the Auth. by PIN method
that makes the system act in a different way. If you check the Use ANI? field in the Dial Plan
creation window, the user's CallerID will be checked automatically when he dials in, and he will
only be asked to enter his PIN if his CallerID is not found.
CallerIDs are entered for every device in Device Settings using the

icon.

ANI - Automatic Number Identification


ANI is used to authenticate who is calling, by CallerID.
When a call comes into MOR, the CallerID is checked with all available CLI's in the database. If a
match is found, the call is authorized and assigned to the device which CLI has matched against
the CallerID of the call:

Kolmisoft 2006-2013

303

All other details are the same as for Authorization by PIN dial plan, and the dial plan is created in
the same way. Just check Use ANI?:

In main Dial Plan window, we have:

Note the difference between Auth. by PIN and Auth. by ANI dial plans.
Assigning a DID is similar to Auth. by PIN method.
ATTENTION! Be careful because it is very easy to fake a CallerID.

Default device

This option is available when Use ANI option is checked.


Use this feature with great understanding what it is used for. It allows all calls pass over this
Dial Plan and assigns such calls to a selected Device.
This feature can be used if you want to offer any services for unauthenticated clients. Owner of
device is charged for these calls.

Kolmisoft 2006-2013

304

End IVR
When making an authorization by PIN dial plan you must set and end IVR to it. You can change
the IVR by clicking

Edit.

Troubleshooting
If the system asks for a PIN to be entered
This occurs if the CallerID comes in a different format from that which is entered in the Device
CID. Use Last Calls to check it and Number Manipulation to fix it.

See also

Dial Plans

Kolmisoft 2006-2013

305

Calling Card Dial Plan


Overview
Once we have generated a Calling Card Group and Cards, we can create a Dial Plan for this
Group.
A Dial Plan can be treated as a set of rules for how to handle a particular Calling Card Group. You
can set different rules for the same Calling Card Group.
The Dial Plan gives you more control over Calling Card Groups.

Dial Plan creation


Let's go to SETTINGS > Billing > DIDs > Dial Plans:

In this image, we see an existing Dial Plan for a Calling Card Group.
Let's review each field:

Name just for informational purposes.


Number length tells Interactive Voice Response (IVR) how many digits to wait for in
NUMBER following a request to enter a number.
PIN length how many digits to wait for in a PIN.
Ask only PIN as the PIN is unique, it is sometimes wise to ask only for the PIN, because
users can make mistakes and get annoyed about having to enter too many digits.
Tell time should IVR tell the time after the Destination is entered?
Tell Balance before Call should IVR tell the balance before the user enters the
NUMBER/PIN?
Tell Balance after Call should IVR tell the balance after the user enters the
NUMBER/PIN?
Ask Number/PIN (times) how many times the user can try to enter Number/PIN.
Ask destination (times) how many times the user can try to enter Destination.

Kolmisoft 2006-2013

306

Assigned DID(s) just for informational purposes, to see which DID(s) are assigned to
this Dial Plan.
If Card balance is lower than - self explanatory.
Balance IVR - a Balance IVR will play.

When creating a new Dial Plan, you will need to enter the correct Number and PIN length values
of an existing Calling Card Group. Otherwise you will not be able to create the Dial Plan.

Assign DID to a Calling Card Group Dial Plan


When we have created a Dial Plan for a Calling Card Group, we can assign one or more DIDs to
this Dial Plan.
A DID (in other words, an Access Number) is vital for using Calling Cards. The user will use this
number to reach IVR.
You can assign unlimited DIDs to the same Dial Plan, but a particular DID can only be assigned to
one Dial Plan.
The Calling Card Dial Plan is useful when you are selling Calling Cards in different regions, such as
different countries. In country A, the user will dial one number (which is cheaper for him or even
free), and in country B the user will dial another number. They will reach the same IVR and will
use the same service, but they will save on telephone fees.
In SETTINGS > Billing > DIDs:

Kolmisoft 2006-2013

307

We click on the

icon for the first DID:

We select our Dial Plan and click the confirmation icon to assign our Dial Plan to this DID:

Now the user can dial number 12026911622 (in the example) and he will be able to reach IVR
and use his Calling Card.

Callback Dial Plan


Example
An example can be seen in action in Callback setup example.

Options
Ask for Card data after callback
This option only applies to Calling Card Callback. You can ignore it if your Callback Dial Plan is
not for Calling Cards.

Kolmisoft 2006-2013

308

Mark it to ask for Calling Card Number/PIN only after system calls back to the caller who initiated
callback.
By default, the system asks for the caller to enter a Number/PIN at the point when he tries to
initiate the callback.

CallerID for callback


This feature provides CallerID management for callback. The following options are available:

Enter custom CallerID for callback.


Leave field empty to send empty CallerID.
Enter * (star) which means that CallerID will be the original CallerID of the caller who
initiated Callback (the same functionality as prior to MOR9).

This function is useful when Providers check Destination and CallerID and block the call when
they match. For example, without this function it is not possible to use Callback in the Telus
Mobility network in USA/Canada.
Original CallerID for callback
Starting from MOR 10 you can enable setting to use an original CallerID. To do this:
1. Create a CallBack Dial Plan
2. Go to CallBack Dial Plan edit

Kolmisoft 2006-2013

309

3. Enter * sign in a marked field:

IVR Dial Plan


The IVR (Interactive Voice Recognition) Dial Plan can be seen in action in IVR for Calling Cards.
Please note that the above example only illustrates how to create and IVR Dial Plan and it does
not mean that IVR Dial Plan is only applicable for Calling Cards. Using IVR you can program
automatic answering machine to redirect the caller to an appropriate departament, for example.
For better understanding of IVR logic see IVR system.

STATISTICS -> Various > DIDs


STATISTICS -> Various > DIDs is showing various parameters of DIDs using statistics.

DIDs - DID number which information is showing.


Date - Here is showed date from which DID is active.
Provider - provider which are used for calls.
Calls - number of calls which was made.
Kolmisoft 2006-2013

310

Incoming price - price of incoming call.


Owner price - Price which user pays.
Provider price - Provider rate.
Profit - amount expressed as a value that is left over from sales once all expenses have been
deducted.

Accounting
Accounting in MOR is implemented to keep track of all payment activity. It is also possible to
create various services, make subscriptions for them, and generate invoices for the clients.

Services
A Service is a product that can be sold to the client. There are various types of services. For
example:

Monthly fee.

Line rent.

Phone rent.

Internet plan.

Example:
You can create an unlimited number of Services. All of them can be found in SETTINGS >
Accounting > Services:

Kolmisoft 2006-2013

311

Service types

Periodic fee - user is charged periodically for this service.

Monthly - user is charged every month for this service.

Daily - user is charged every day for this service.

One time fee - user is charged only once for this service.

Flat-Rates - user is charged every month for this service and can dial a certain number of
minutes to certain destinations.

Selfcost
It allows you to include all your expenses to track the real profit correctly.
Example:
You have a subscription to charge your clients for internet connection by 10 EUR, but it cost 6
EUR for you. Client pays 10 EUR to you, but real profit is 4 EUR.
Selfcost functionality allows you to see a real profit in statistics.

Subscriptions
Users can subscribe for some services. When they do, they get a service Subscription. Service
Subscriptions can be found for each user in the Users main window by clicking the icon
for the
selected user:

Subscriptions can have a Memo (if you sell a DID, for example, you can make a note of its
number here). Subscriptions also has the important fields Activation start and Activation end.
Kolmisoft 2006-2013

312

This data interval will be billed in the invoice, but dates before and after this interval will not be
billed.
You can add/edit/delete subscriptions for the user.
It is not recommended to delete subscriptions, or the user will not be billed for that subscription.
If the user stops using a service, set the Activation end value to the date when he does so.
NOTE: A service is billed from Activation Start till Activation End, and from the start till the end of
the invoice period. The time period that fits within both the previous periods is the actual period
that will be billed.
Every month a subscription about all subscriptions made in the system during the month is sent
to admin. Also resellers' subscriptions are also sent to admin.
Example of email with subscriptions
Charging for subscriptions.
Date: 2012-5
1 User: Test User #1(101):
Service: Test_periodic_service - 10.0000
Service: Test_periodic_service - 10.0000
2 User: User Resellers(user_reseller):
Service: res_1 - 110.0000

Subscription calculation
Subscriptions are calculated by the following rules:

When a Subscription is assigned to a Prepaid user, the price for the first month is deducted
from the user's balance instantly (and an appropriate Payment with type = subscription is
created).

*If the Prepaid user does not have enough balance to cover this subscription, the
subscription fails.

Kolmisoft 2006-2013

313

When a Subscription is assigned to a Postpaid user, no changes are made to his balance
instantly.

Every month day 1, 00:10:00, an action is executed which performs the following calculations
(blocked users are skipped).

Prepaid users
For Prepaid users, the balance subtracts the Subscription price for this new month.
A New Payment is created, with type = 'Subscription', to mark the user's balance deduction (only
for Prepaid users).

If a Prepaid user's balance becomes negative, this user is blocked and receives a notification
email (as does his owner).
Allow prepaid users balance to drop below zero
SETTINGS -> Setup -> Settings -> Various -> Do not allow prepaid user balance drop
below zero
If this option is not enabled - then MOR allows user balance to drop below zero. If this option is
enabled - user is blocked when there is not enough money for a subscription - both user and
admin are informed about this by email.

Postpaid users
For Postpaid users, the balance subtracts the Subscription price for the previous month.
If the Postpaid user's balance + credit < 0, he is blocked and receives a notification email (as
does his owner).

Kolmisoft 2006-2013

314

Subscriptions scheme

Account type Prepaid or Postpaid can be changed in user details

Credit is an amount of money which user is allowed to owe you.

Example 1: user balance is -4.00 USD, credit = 5.00 USD. Balance + credit = 1 USD, so user will
still be able to call.
Example 2: user balance is -4.00 USD, credit = 4.00 USD. Balance + credit = 0 USD, so user will
not be able call.
Credit can be changed in user details

Balance is an amount of money user already paid you, but have not been spent yet on
services you provide (can make calls using this money). Current user balance can be
checked in user details

Kolmisoft 2006-2013

315

Allow prepaid users balance to drop below zero

Example
A user is postpaid.
On the first day of his first month

User balance is: -$75.

-$75 is for calls. Also, the user has to pay $475 for subscriptions.

The system calculates the subscription price and deducts $475 from his balance.

The user balance becomes -$550.

The user gets an invoice for $550.

He makes a payment of $500.

The user's balance becomes -$50.

On the first day of the next month


In the next month, the user gets an invoice for calls made over that month + subscription prices
in that month.
-$50 will be shown on the invoice, but will not be included in the new invoice.

Invoices
Configuration
All settings for Invoices can be set in the Invoices section of the Configuration window.

Kolmisoft 2006-2013

316

Invoices can be viewed and created in SETTINGS > Accounting > Invoices. In the main
window, you can see all the invoices:

The icons
Click on the

and

show whether this invoice is Paid or Unpaid.

icon to get details for the invoice:

Here you can view the details of all invoices and click on the
in PDF or CSV formats accordingly.

Kolmisoft 2006-2013

or

icons to generate invoice files

317

Invoice generation
In the main Invoices window, click

Generate Invoices to generate additional invoices:

Select for which users to generate invoices. Prepaid and Postpaid users can have separate details.
Also, you can check to generate an invoice for only one particular user.

Invoice generation when total call price is zero


Sometimes it is needed to generate invoice when total call price is 0 anyway. By default this
possibility is disabled if you want to enable it go to SETTINGS -> Setup -> Settings ->
Invoices tab, select Calculate 0 price Calls into Invoices and click Save changes.

Kolmisoft 2006-2013

318

Detailed invoice settings


To access detailed invoice settings go to: SETTINGS -> Setup -> Settings. Click on tabs:
Invoices -> Postpaid or Prepaid -> Details. You will see this window:

Fill in the fields with wanted information.


In MOR 12 there are new additional options: Add Average rate in detailed invoice (shows total
price/total minutes) and Show Time in Minutes (shows time in mm:ss instead of hh:mm:ss, for
example, not 02:13:42 but 133:42).

Invoice recalculation
An invoice cannot be modified after being sent. But if you want to allow recalculations after
sending invoices, go to: Settings -> Setup -> Settings. Then click on the tabs: Invoices ->
Functionality.

Kolmisoft 2006-2013

319

Select Invoice allow recalculate after send:

To recalculate invoices in the main Invoices window click

Recalculate invoices:

Select for which users to recalculate invoices.

Send invoices by email


Click to open more options to enter the period in which you want to send invoices. Click Send
to send invoices to their Users in this period:

Kolmisoft 2006-2013

320

PDF invoices
The layout of PDF invoices is not customizable.
Logos are not supported in PDF invoices.
You can print your invoices on paper with a pre-printed logo if you want to send paper invoices.

Invoice comment
Sometimes it is useful to add a comment to the invoice:

Recalculate a single invoice


If an invoice is not marked as paid - it can be recalculated for the same user, same period. To
achieve this - press the marked icon:

Kolmisoft 2006-2013

321

Invoice list to csv


You can export invoice list to CSV:

Invoice language
Default language in MOR is English. However, you can send invoices in different languages (click
on the flag icon on the top of the page).

See also

Accounting
Invoice configuration
Pay Invoice with balance deduction
Invoice by CallerID
MOR API invoices
Cannot generate Invoice

Invoice configuration
In User's settings it is possible to configure some invoice settings for this user:

Kolmisoft 2006-2013

322

Generate Invoice
This option marks whether an Invoice for this user should be generated.

PDF/CSV Options
Here, checks decide what kind of invoices (as attachments) should be sent to users by email.

See also

Configuration from GUI -> Invoices

Pay Invoice with balance deduction


When an invoice for a user is generated, and the user pays it, we need to check it as completed.
After this is done, the user's balance is increased by the value of invoice.
Let's see our user's balance (SETTINGS - Users):

Then in invoices (SETTINGS - Accounting - Invoices), we see an invoice for this user:

Kolmisoft 2006-2013

323

Click Details to see the invoice details. Check Create payment for completed invoice and click the
red cross icon above to mark the invoice as completed and paid:

You will see the invoice as paid:

In
user details, we see that the user's balance has decreased:

... and in Payments (SETTINGS - Accounting - Payments), we see that payment for invoice is
created:

Other notes
Note: if you want to revert all changes, it is enough to click the green check mark in Invoice
details. The user balance will be decreased, payment deleted, and the invoice marked as not
processed.

Kolmisoft 2006-2013

324

Invoice by CallerID
This type of invoice groups all calls by CallerID.
Only outgoing calls are included in this invoice.
It looks like this:
Client number: 37052058393
Number Date Duration Rate Price Destination
37063042439 2007-12-01 16:21:03 00:00:20 0.7597 0.2532 Lithuania
...
37068723423 2007-12-14 12:50:17 00:00:22 0.7597 0.2785 Lithuania
Lithuania 150.4886 LTL (Without TAX)
Total: 150.4886 LTL (Without TAX)
Client number: 37063042438
Number Date Duration Rate Price Destination
37068723423 2007-12-01 14:45:14 00:03:20 0.7597 2.5322 Lithuania
...
37065017476 2007-12-13 21:31:14 00:04:11 0.7597 3.1779 Lithuania
Lithuania 26.9805 LTL (Without TAX)
Total: 26.9805 LTL (Without TAX)
Monthly fee - test memo2 10.0000 LTL (Without TAX)
TOTAL TO PAY: 187.4692 LTL

Invoice by CallerID CSV


Starting from MOR 9 you can export invoices by CallerID into CSV:

Kolmisoft 2006-2013

325

MOR API invoices


MOR API
Retrieves a list of invoices in the selected time period.

Request
If a user has 'admin' rights, he will get ALL invoices from the selected period. If user has 'user'
rights, he will get only HIS invoices from the selected period.
HTML POST:
http://<SERVER
IP>/billing/api/invoices?u=username&p=password&from=1188604800&till=1191196799&lang=
en
Here:

from/till - time period for invoices in Unix Epoch Time format. Invoice's period start
should be >= from and period end <= till.
o http://www.epochconverter.com/ can help to convert time for testing.
lang - choose the language in which you want to get invoice details (mainly 'Calls').

Example result
<Invoices from="2007-09-01" till="2007-10-01">
<Invoice agreementnumber="0000000000" user_id="0" clientid="240887380">
<Product>
<Name>Monthly fee - test</Name>
<Quantity></Quantity>
<Price>10.0</Price>
<Date_added>2012.02.02</Date_added>
<Issue_date>2012.02.02</Issue_date>
</Product>
</Invoice>
<Invoice agreementnumber="0000000000" user_id="0" clientid="240887380">
<Product>
<Name>Calls</Name>
Kolmisoft 2006-2013

326

<Quantity>65</Quantity>
<Price>112.3324</Price>
<Issue_date>2010.01.01</Issue_date>
</Product>
</Invoice>
</Invoices>

Errors
<Error>user not found</Error>
<Error>no invoices found</Error>

Credit notes
About
We can say that Credit notes functionality is opposite to invoices. If "paid invoice" means that
users balance decreased then "paid credit note" means that users balance increased. Sometimes
due to various inaccuracies user pays more than he should. That is why this functionality useful to correct those inaccuracies by paying the money back to the user.

Create Credit notes


To create a Credit note go to SETTINGS -> Accounting -> Credit notes:

Kolmisoft 2006-2013

327

Click Create credit note. You will see this window:

Issue day - by default it is the day credit note was created. But you can choose different date.
User - select a user from dropdown for which you are making this credit card.
Number - same as with invoices, you can enter any symbol or symbols here.
Price - enter price without tax you want to transfer to user.
Comment - your comment.
Click Create.
A user whom you made and paid a credit note will see this in his Payments:

Kolmisoft 2006-2013

328

Possible errors

"Incorrect hash" - self-explanatory


"Bad login" - self-explanatory
"Credit note was not found":
o editable credit note was not found
o credit note does not exist
o credit note belongs to the user you cannot see
"Credit note was not updated" - if you see this error possibly something in MOR database
went wrong
"Credit note was not created" - this error shows up if Issue day or Price fields are empty.

Kolmisoft 2006-2013

329

Payments
Definition
A Payment is created when a user pays the system owner for some Service:

Possible payment types are:

Card - when a card is bought.

Invoice - when an invoice is paid.

Paypal - when a payment is made using Paypal.

Webmoney - when a payment is made using WebMoney.

Linkedin - when a payment is made using Linkedin.

Cyberplat - when a payment is made using Cyberplat.

Voucher - when a Voucher is used.

Subscription - for Prepaid users when charged for a subscription.

Manual - a manually added payment.


Credit note - when a credit note is paid.
Initial balance - it's a user's primary balance.

Kolmisoft 2006-2013

330

Manual payments
Sometimes customers send money through a bank or other means, or they might use some
online gateway not implemented in MOR. To handle such transactions, MOR has Manual
Payments.
When a user sends an amount to you as the owner, you need to enter this amount into MOR
using the Manual Payment window, which can be found in
SETTINGS > Accounting >
Payments > Add manual payment.
The first window lets you choose the user and enter the amount (with TAX) in the selected
currency:

Next, click Proceed to see the calculated values for this Payment:

Kolmisoft 2006-2013

331

Click Confirm to enter this payment, which can be seen in the Payments window:

By clicking

you will see the editable entered description of a payment.

After payment is entered, the user's balance will increase and he will see the payment in his
Payment sections.s
The Administrator can delete this payment by the user. After it is deleted, the user's account will
decrease accordingly.
Use negative payment to remove money from a user's balance.

Initial balance
Initial balance is the balance that was added to user during its creation. Initial balance is valid for
registered users (via GUI or API), users created by admin and users created by reseller.

Initial balance lets you see user's primary balance without CLI.

See also

Accounting

Kolmisoft 2006-2013

332

Vouchers
What is vouchers?
Vouchers are used to fill the balance of a user. You can sell vouchers printed on paper, or sell
them over the Internet. When a user logs in and enters a voucher number, his balance will
increase by the value issued for this voucher.

Where I can find vouchers?


You can find vouchers here: SETTINGS > Accounting > Vouchers

All voucher configuration options are in the Vouchers section of the Configuration window.
You can view created vouchers in SETTINGS > Accounting > Vouchers:

Kolmisoft 2006-2013

333

This window show the status of the voucher. Active? shows whether we can use the voucher. All
other information is self-explanatory.
In order to add new vouchers, click

Add vouchers:

Here you can enter the necessary information to generate an array of vouchers.
The tag field is only used to mark a series of vouchers. It is just for informational purposes or for
easier search.
Click

to make various changes to many Vouchers at once:

Kolmisoft 2006-2013

334

After that remember to enable vouchers:


1. Go to SETTINGS > Setup > Settings > Payments:

2. Select tab vouchers and ensure that option Vouchers enabled is enabled.
When a user logs in, he sees vouchers icon on the main page:

He can click it and enter the voucher number. He can try up to X times, where X is set in
configuration menu. If he fails to enter the correct voucher number X times (the maximum
number he is allowed), he will not be allowed to enter the voucher number again for a set period
of time. The values for how many times he can try and for how long to disable attempts to enter
are configurable in the Configuration menu.
When the user enters a correct voucher number, his balance will increase, he will get a new
payment record, and this voucher will be marked as used.

Vouchers are not accepted


Make sure Active Till is tomorrow or a more distant point in the future.
Vouchers are not visible for postpaid users
1. Go to SETTINGS > Setup > Settings
2. Go to "Visual" tab and check if Hide payment options for postpaid users option is set. If so unset it and vouchers will be visible.
Kolmisoft 2006-2013

335

Flat-Rates
Description
Flat-Rates means a service plan under which a Client can dial a number of minutes to certain
Destinations for a fixed amount. After the user has used all his flat-rate minutes, all additional
minutes are charged at the normal rate.

Setup
1.
2.
3.
4.
5.

Create a New Service with type: Flat-Rate.


Set a Price for this Service and set how many minutes the User can chat for at this price.
Create the Service by clicking the Create button.
In the Services window near the just-created service, click the icon.
Add the Destinations to which this Service should be applied. Use Include/Exclude to
create an exact list of the prefixes you want to use with this Service.
6. Add Subscription to a user to use this Service.

Acknowledgments

Flat-Rates are calculated by seconds.


Every month, the minutes available under Flat-Rates plans are reset to the initial value,
which allows the client to use the same amount of minutes each new month. The clients'
unused minutes for the previous month are lost.
A Service is applicable for a whole month - that is, the service cannot start/end in the
middle in the month.
IMPORTANT: If a user is PREPAID, limit his calls to 1, because otherwise a loss is
possible. (Explanation: calls will not be cut when Flat-Minutes will run out and small
loss is possible till all Flat-Rate based calls will finish. After that no more calls will be
possible).

Kolmisoft 2006-2013

336

Reporting
Active Calls
Description

In Quick Stats in the main window, it is possible to see Active Calls. These are the calls that are in
the system at the moment.
It is possible to click and open a new window with detailed Active Calls. You can get to this
window in STATISTICS > Calls > Active Calls.
In this window all active calls are presented with more details, such as Start Date, Duration, Src,
Dst.
In order to see the correct duration on multi-server systems, the time should be synchronized on
all of the servers.
It is possible to reset statistic by clicking the "Reset active calls information" button. As the text
next to the information icon says, it will not affect your calls in any way.

Kolmisoft 2006-2013

337

NOTE: local calls are not visible on MOR GUI, only calls to/from outside.

Hangup Active Call


To hang up an active call, click the

delete icon next to it.

The system will try to hang the call up.


If the call is still here, it means that Asterisk can't hang up the call. It has stuck. Stuck calls are
cleared every two hours. There's no need to do anything further.

Active Calls for Users/Resellers


In order to enable this functionality for Users/Resellers, check the relevant setting (it is disabled
by default):

Kolmisoft 2006-2013

338

Users/Resellers will now be able to see an Active Calls selection in their Personal menus:

Active Calls for Users/Resellers shows codec used for call

System requirements:

MOR version 11 or higher.


Asterisk 1.4.42.
Monitorings addon.

This functionality shows which codec is used and PDD for active calls in real time.
When call is in ringing stage when system shows information of Leg A.
When call is answered it shows information of codec used for LegA and LegB and call time.
Kolmisoft 2006-2013

339

Show DID in Active Calls


To make a DID column appear in the Active Calls window go to SETTINGS -> Setup -> Settings,
click on the Functionality tab and look for Active Calls tab in the appeared window. Select Show
DIDs in Active Calls.

The result in Active Calls window:

Kolmisoft 2006-2013

340

Last Calls
STATISTICS > Calls > Last Calls shows the most recent calls in the system. It is used in
Troubleshooting.

Please note that when occurs a call where DID is involved it consists of two legs (call from DID to
MOR and call from MOR to Destination). They will be shown seperately in Last Calls list.

Search
Starting from MOR 9 a search bar was added for Last Calls statistics.

Kolmisoft 2006-2013

341

Search is available both for users and administrators.


Reseller in any DIDs lets one search for all calls made through specific reseller's DID or range of
DIDs.

CSV
Using the "Export to CSV" icon you can export your currently displayed calls into CSV

PDF
Using the "Export to PDF" icon you can export your currently displayed calls into PDF

Call information representation


When call is initiated by the caller, at least one call leg is created - from user agent client(UAC) to
user agent server(UAS) - usually called LEG A. Based on routing rules, call may be canceled(in
case there is no suficcient funds, no appropriate rule etc.) or one more call leg may be created Kolmisoft 2006-2013

342

from UAS to destination another UAC (LEG B). Many call legs may be created depending on
routing rules and whether call to destination was succesfull. For instance:
1. User A dials user B

call leg from user A to PBX is created

PBX can route call to user B

call leg from PBX to user B is created

when user B answer these two legs are bridged

there we have two bridged legs and one call

2. User A dials user B.

call leg from user A to PBX is created

PBX cannot route call to destination and the call is canceled

there we have one failed call and one call leg (LEG A - OK, LEG B - FAILED)

3. User A dials user B

call leg from user A to PBX is created

PBX can route call to user B through provider C

C fails to route the call

but PBX can route the call through another provider D

D succeeds in routing the call

user B answers

there we have three call legs, two of them were bridged and we would say that there was
only one call which was connected.
If user A is interested only in calls made, information, about how many attempts were made to
call user B, has no interest for him. Majority of users will be interested only in call duration, who
terminated the call etc.

Kolmisoft 2006-2013

343

Hence this is how call information is represented in call statistics, trying not to overwhelm users
with too much technical details, only information about successful call is presented, ignoring
details about made call legs (FAILED or NOT, etc). Provided you want to check the information on
FAILED and connected call LEGS, you can use the Call Info page.

Users Calls
This report shows all the calls a user has made in a selected period. It is possible to export this list
to PDF or CSV format.
To find this report go to STATISTICS > Calls and click on

Kolmisoft 2006-2013

icon.

344

Users Finances
The Finances window lets you view a user's entire financial situation in one window. It can be
reached in STATISTICS > Finances:

DIDs Report
This page allows you to check how much profit each DID accumulated and how much you owe to
DID providers.
To find DIDs Report go toSTATISTICS -> Various -> DIDs -> Summary.

Kolmisoft 2006-2013

345

Loss Making Calls


Sometimes you may import or set rates that are lower for a provider than for the user. In such
cases, when the call is made, you are taking a loss.
To find such calls, you should use this function. Just select the desired period and all loss making
calls will be visible.
You can find this report in STATISTICS > Calls > Loss making calls:

This window shows you loss making calls in the selected period. If you click on the user or
provider rate, you will go directly to the rate's edit window and be able to edit it.

Providers Statistics
You can reach this report in STATISTICS > Various > Providers. This report shows all
providers' statistics at once:

Kolmisoft 2006-2013

346

In the selected period, you can check various statistics about all the providers in your system. If
you click on a number in the Answered/No Answer/Busy/Failed columns, you will open a window
where these calls are listed.
While making a prefix search, if you want to see all prefixes starting with a certain combination,
you should enter % at the end. For example, if you want to see all prefixes starting with 37 you
will have to enter 37%. If you enter only 37 you will only see this prefix.

Kolmisoft 2006-2013

347

Providers Calls
1. Go to SETTINGS > Billing > Providers:

2. In the main Providers window, click on the

to open the Providers' Calls page:

Here you can see all calls for the selected provider in the selected time period. You can change
the type of the call.
You can also export the selected calls to

Kolmisoft 2006-2013

PDF or

CSV format.

348

Aggregate
About
Aggregate statistics can be found here: STATISTICS -> Calls -> Aggregate
These statistics provide brief information about terminators and originators, ASR, ACD. Only calls
routed via Terminators are included. Every call made from every user to every different terminator
is in the statistic so there may be the same prefixes repeated if grouping by prefix is not selected.

Available details

If Destination is checked, the destination countries are shown in statistics sorted by prefix.

If Orig. is checked, calls are additionally grouped by user.

If Term. is checked, calls are additionally grouped by terminator.

If Orig. Price is checked, show additional collum with originator price.

If Term. Price is checked, show additional collum with terminator price.

If Orig. Billed time is checked, show additional collum with originator billsec.

If Term. Billed time is checked, show additional collum with terminator billsec.

If Destination is checked, show additional collum with Destination name.

Kolmisoft 2006-2013

349

Group by prefix - calls are grouped by prefix.

Group by direction - calls are grouped by destinations subcode.

If Orig. and Term. are unchecked and Group by direction selected, calls are grouped by
country.

You can also search statistics by prefix. To see results at least one option Orig. or Term. of
Customer
must
be
checked.

Kolmisoft 2006-2013

350

First Activity
This window shows the User's First Call, if the call was made in the selected period.
NOTE: It does not necessarily show the first call the user made! It only shows the first call of the
user in the selected period. The first call of the user may have been made outside the selected
period. In that case, it will not be shown here.

Quick Stats
These stats are seen on the Main Page just after Login.

Kolmisoft 2006-2013

351

Admin Quick Stats

These are stats for all calls made in the system in this month.
Admin calls are counted same way as user calls, i.e. profit from then = user price - provider price.
Click on the Active Calls value to go to the Active Calls page for more details.

Reseller Quick Stats

Kolmisoft 2006-2013

352

These are calls made by the reseller or by his users.


The profit from calls made by the reseller himself = 0 for the reseller.

User Quick Stats

How to hide quick stats?


Go to SETTINGS > Setup > Settings > Visual and check Hide Quick Stats option.

Other notes

If you have a big database quick stats might degrade your server performance. If you have
a big database it is recommended to hide quick stats.

Kolmisoft 2006-2013

353

Simultaneous Calls stats


STATISTICS -> Calls -> Load Stats

These stats help to check and find how the server is loaded during a certain time period.
Direction:

All - all calls.


Incoming - calls coming to system over DID.
Outgoing - calls made by devices connected to the system.
Mixed - calls that come to the system over DID and go out (mainly using ANI/PIN
authentication or Calling Cards).

Provider - a provider that was used to send calls, not receive them.

Kolmisoft 2006-2013

354

Calls by Source
Description
This window shows from which Destination calls have come.

NOTE: Unknown calls are calls for which the CallerID length is < 11 digits or for which the
number is invalid (does not match the E164 format).
Window is empty!
This happens when MOR cannot determine the destination calls have come from (for example,
when there are no correct CallerIDs).
MOR tries to determine the origin by CallerID. So, if we have calls like these in Last Calls:

Kolmisoft 2006-2013

355

... MOR can't know which destination calls came from.


Here all CallerIDs are local extensions, which means they are not related to any Destination.
That's why the window is empty.

See also

Last Calls

Login Stats
Login statistics can be viewed by the admin under STATISTICS > Calls and clicking the
It shows in which periods the User was logged into the MOR GUI.

Kolmisoft 2006-2013

356

icon.

Profit Stats
It is important to know at any moment what profit your system is generating for you.
The profit can be seen in STATISTICS > Finances > Profit:

All fields are self-explanatory. You can check your profit by period and by selected user.
The PDF report shows the same information.

Country Stats
This report shows calls by countries.

Kolmisoft 2006-2013

357

It can be found in STATISTICS > Various > Country Stats:

You can select time period and user.

Country Stats export to CSV


By pressing the marked link you can export country statistics to CSV

Kolmisoft 2006-2013

358

Troubleshooting
If rates does not seem right, check Destinations Groups because based on Prefixes included in
these Groups are accounted in this report.

Google Maps integration

Shows your providers/servers/clients on the map (geolocation by IP).


Shows Active Calls in Realtime

You can find a demo for Google Maps at Google Maps integration wiki page

Get Google Maps key


You need a Google maps key to use the Google maps plugin.

Go to Google.
Write your site in the text box below. Note that http://1.2.3.4 differs from
http://yoursite.com, so enter the hostname that you will use to access your site.
Press "Generate API key" and Google will give you your key.
Insert this key in SETTINGS > Setup > Settings > Google Maps > Key.
Click Save changes.

Kolmisoft 2006-2013

359

Balance in phone
Some phones and softphones support displaying your account balance on their screens.
For example, we will use iaxLite
[http://iaxtalk.com/index.php?main_page=product_info&cPath=6&products_id=7].
Download link [http://www.kolmisoft.com/packets/iaxlite_setup.zip]
In SETTINGS > Setup > Settings > Various > Allow devices to check balance over HTTP,
check to allow this functionality:
Log in as the user you want to check your balance:

... and in Details you will see the link:

Kolmisoft 2006-2013

360

Copy and paste this link into the phone:

... and you will see your balance:

Optionaly you can send api request and specify currency, valid values are USER, in that case
balance is returned in user's currency. And currency code(EUR, USD etc.)
HTML POST:
http://<SERVER_IP>/billing/api/simple_balance?id=UNIQUEHASH&currency={USER|CURRENCY_C
ODE}

Kolmisoft 2006-2013

361

Privacy to hide Destination ends


Description
This functionality is required by Italian law, which states that the last three digits of Destinations
(Numbers dialed by User) should be hidden if the User requests it. However, they should not be
hidden by default in Italy.
The law making this requirement can be read at here
[http://www.garanteprivacy.it/garante/doc.jsp?ID=1501106].
The English translation is here
[http://translate.google.com/translate?js=y&prev=_t&hl=en&ie=UTF8&layout=1&eotf=1&u=http%3A%2F%2Fwww.garanteprivacy.it%2Fgarante%2Fdoc.jsp%3FID%3
D1501106&sl=it&tl=en].
In MOR it is possible to set up Global settings for hiding Destination ends that are applied to all
Users by default, or to set up per User if a User requests that his destinations should not be
hidden.
Destinations are hidden only for Users and Resellers. Destinations are not hidden for Admin.
It is possible to hide Destinations in three places:

GUI - what users see on the monitor.


CSV - in CSV file reports.
PDF - in PDF invoices/reports.

Kolmisoft 2006-2013

362

Global Settings
In SETTINGS > Setup > Settings > Privacy, it is possible to set Global settings for all Users
that will be used by default:

Per User settings


In Users details, set to use Global settings or select different settings just for this User:

Kolmisoft 2006-2013

363

How it looks
When Destination is set to be hidden, it looks like this:

Troubleshooting
Action log
In this window you can check what actions were done on the system at which time and who did
what.

Action Name

User

login

which user logged in

Target

logout

shows

which

Data 1

Data 2

Data 3

Comment

from which IP

user

logged out
bad_login

shows which user tried

entered

to log in

username/pass

from which IP

word
user_balance_chang

which user has had his

the

ed

balance changed

balance

previous

the
balance

warning_balance_se

from which user send

for which user

which

nd

(Admin/reseller)

new

Shows

that

Admin

has

changed a user's balance


from the User Edit window

Kolmisoft 2006-2013

email

send

364

email_send

from which user send

for which user

(Admin/reseller)
error

which

email

send

to which user error

error, example:

error

happened

"Can't

description,

send

email"

which email send

example:
"getaddrinfo:
Name

or

service

not

known"
backup_created

shows

which

user

what

created a backup

was

backed up

return values: 0
- success, 1 error

device_created

shows

which

user

created a device

which
device it
is

device_pin_changed

shows

which

user

changed the device PIN

which

the old PIN

the new PIN

the old secret

the new secret

the

device it
is

device_secret_chang

shows

ed

changed

which
the

user
Device

secret

which
device it
is

device_voice_mail_p

shows

which

the

assword_changed

changed the device's

device it

voicemail

voicemail

voicemail password

is

did_assigned

which

user

old

password

password

user

which DID it is

which dialplan

shows which user closed

which DID it is

shows

which

assigned a DID
did_closed

new

it is

a DID
did_created

shows

which

user

which DID it is

user

which DID it is

shows which user edited

which DID it is

created a DID
did_deleted

shows

which

deleted a DID
did_edited

a DID
did_edit_provider

shows which user edited

which DID it is

a DID provider
did_made_available

which provider
it is

shows which user made

which DID it is

the DID available


did_rate_edited

shows which user edited

which DID it is

which rate it is

user

which DID it is

which user it is

user

which dialplan it

a DID rate
did_reserved

shows

which

reserved DID
dp_created

shows

which

created a dialplan
dp_deleted

shows

which

is
user

deleted a dialplan
dp_edited
first_call

shows

which

which dialplan it
is

user

which dialplan it

changed a dialplan

is

shows which user made

which call it was

a first call
invoice_deleted
hacking_attempt

shows

which

user

which

users

deleted invoice

invoice it was

which user

request URL

Kolmisoft 2006-2013

request remote

which

This message is not always

365

address

paramet

related to real "hacking" it

ers

may be caused by multiple


tabs opened, with different
users

logged

entering

direct

in

or

by

links

in

browser to call some action.


Generally

this

action

is

registered when a user tries


to open a link which is only
available to admin. This
action is also registered
when a user instead of
clicking on some icons tries
to access the page directly
PayPal

which user

payment status,
example :
"Payment
completed: 5.8
EUR"

SMS_callback

which user

which

SMS

SMS

example : "003"

status,

clicatell charge,

SMS

Data 4: parameters have

example :

charge

been received

"3.000"

status,
for
example
:

"0

user
balance
was not
charged
", or "1 user
balance
was
charged.
"
system_validated

Admin

tariff_import

shows

which

user

'Tariff_was_impo

imported tariff
user_created

shows

rted_from_CSV'.

which

user

created a user

which
user was
created

user_edited

shows

which

user

changed a user

which
user was
changed

user_tariff_changed

shows

which

user

changed a tariff
Device

send

asterisk

to

shows
created

the tariff's old

the tariff's new


name

user

name

user

which

device user ID

updated

device

which
/

which

device
Confline changed

shows
created

which
/

user

which

updated

device

device user ID

from MOR 11

device

Kolmisoft 2006-2013

366

User actions
By pressing the 'User Log' button in the User window:

... you can instantly get Actions for this User:

As it is seen in the picture, you can mark all the actions as reviewed.

Call Tracing
Overview
This function is for checking the setup of MOR in order to be sure a user will be able to dial out.
To set MOR up isn't simple, but we are trying to make it easier with this manual and with
improvements to GUI. It often happens that users miss some important detail while trying to
make everything work. Call Tracing will save a lot of head-scratching, and we hope it will be
helpful for beginners.
Important! This function is for testing Dialing OUT. DID testing is not yet implemented.
Kolmisoft 2006-2013

367

This function can be found in SETTINGS > Billing > Function > Call Tracing. It can be
quickly accessed in the Users menu (SETTINGS Users) as well. Just click on the icon for a user.
In the first window, we have to select which user we want to check:

User testing
The next window shows us whether we have configured everything properly for the selected user.
Let's look at each section separately.
The first section shows information special to the user:

Here we see four errors that prevent the user from operating. Let's say we want to allow a user
to make calls. We will go through each of the errors and fix them.
1. This error tells us that the user is Blocked and so unable to make calls. We should go to User
Details and unblock him.

Kolmisoft 2006-2013

368

2. Balance and Credit for this user are empty, and the user type is Prepaid. That means he has no
funds to cover the call fees. There are several ways to go about fixing this:

If the user is postpaid, he should use some payment method to increase his balance.
PayPal and Manual Payment, among others, are good ways to do this.
We can change the user type to postpaid and then we should adjust his credit. Maybe it is
unlimited, maybe some limit exists. But this will allow the user to dial out.

3. We see that the user has assigned a tariff and a type of tariff. The type of tariff is just for
informational purposes. Here 'Explanation' tells us that Tariff is empty. That is the reason why the
user is not able to dial out. In addition, the user can dial out only to those destinations which
have rates. Currently none of them has. You need to add some rates to the existing tariff or
assign a non-empty tariff to this user.
4. The user has no devices. A Device is necessary in order to dial out. Just create one for this user.
After solving all these issues, we should see:

Kolmisoft 2006-2013

369

We can proceed with the next section, which is about LCR:

It tells us that the LCR we assigned to the user has no Providers. We should fix this. When at least
one Provider is in the LCR assigned to the User, we should see:

This error happens when all providers in LCR are disabled. We need to have at least one active
provider for the user to be able to dial out:

Another problem is that none of our active providers has any rates. We should add rates to the
provider's tariff. We can click directly on the Tariff to go to its rates and add some of them. After
that, we should see:

Kolmisoft 2006-2013

370

To summarize this whole section, you should check for and read the error descriptions. After
fixing the errors, you should see . That means the problem is solved and you can proceed. If at
the bottom of the page, you see:

... that means you still have unresolved issues. After all the issues are resolved, you should see:

When you see this green message, you know that your user is configured properly. He is not
blocked, he has enough money in his balance to pay for the call, his tariff has rates for some
destinations (so only these destinations are available to dial), and he has some devices to use for
dialing. Also, his LCR has active providers with tariffs that are not empty.
You can proceed.

Device testing
The following section lets us choose a device and a call date, and enter the destination we want
to test. For example:

This data means that we are testing a virtual call from device SIP/1004 to number 863042438 on
2009 August 26th 00:00.

Kolmisoft 2006-2013

371

When we click Press this button to continue, we will go to the next page and we will see
something like:

The Details section shows us just routine information. We already knew this information, so it is
not important.

If you see direction as Unknown, it means your number is not in E.164-compatible format. Edit
Localization rules to transform your number to E.164 number format.
The Localization section is much more important.
Here we see the device's Location and Applied rule, and the result after localization.
IMPORTANT! Software can't read a user's mind, so it can't know where a user is dialing.
This can be illustrated by this example:
A User dials 863042438. After Localization, we see that number is still 863042438 - which means
it's somewhere in China. But this is wrong, because the user dialed a Lithuanian number in local
format! What does this mean? It means that Localization is not configured properly. MOR can't
show you an error here because there's no way to tell whether it's okay or not.
You should decide for yourself. All MOR can do is show you all the information it can get from
the call, and it does that.
So in order to proceed with the example, we have to set a correct Localization rule for this

Kolmisoft 2006-2013

372

number format. After doing this, we will see:

Now everything is okay. The localized destination is E.164 compatible. Now MOR understands
that it's Lithuania.
If we get the following window:

... it means we do not have rates or custom rates for the dialed destination. After adding them,
we should see:

This window also shows us that we do not have a custom rate for this destination. But it's enough
to have a simple rate for a destination to be able to dial out or vice versa.

Kolmisoft 2006-2013

373

We can proceed to the providers:

We can see that our provider does not have a rate for this destination. After fixing it we should
see:

That's it. Now a real call should go out without problems.

Conclusion
To summarize Call Tracing, it is very important to configure Localization properly.
You will see using Call Tracing what is happening and where the call is going.
When rates for user and provider are checked using localized destination, and when all data are
in place, there's no obstacle to prevent the call from being sent to the provider.
IMPORTANT! The green message at the end of Call Tracing does not mean the call will be
successful! It only means that MOR will send the call to the provider. The last table shows what

Kolmisoft 2006-2013

374

string it will send to the provider. Applied Provider Rule parameters (Cut and Add) are also visible
in the table.
MOR can't know whether the provider accepts your dial string or not. That depends on how you
configured Provider Rules. Call Tracing shows you the formatted number which is sent to the
provider, but you should decide whether or not it is correct.
If a call fails, check Users Calls or Providers Calls and check Hangupcause Codes to find the
reason.

Integrity Check
This window tests various properties of the billing system and tells where potential problems may
be.
It can be reached in SETTINGS > Setup > Integrity Check.

Destinations not assigned to Destination Groups


This window shows Destinations which are not assigned to any Destination Group. This can lead
to many problems, such as incorrect billing.
Destinations not assigned to any Destination Group appear after a tariff rate import. It is
necessary to assign these Destinations to their correct Destination Groups just after new rates are
imported.

Kolmisoft 2006-2013

375

IMPORTANT: if you have Destinations not assigned to Destination Groups, your Detailed
Invoices will have incorrect call amounts!

Actions errors
Shows actions which requires attention and possibly changes in configuration. It reports about
issues such as unsent emails and suspicious activity on accounts. Click "Fix" to see the list.

Insecure devices
Shows a list of devices which have Dynamic IP and Insecure Invite options enabled. Such
combination allows to make call with incorrect device password.

Devices with weak password


Shows devices which have weak passwords. Passwords of these devices should be changed. Click
"Fix" to see the list.

Users with weak password


Shows users which have weak passwords. Passwords of these users should be changed. Click "Fix"
to see the list.

See also

Destinations Groups

Kolmisoft 2006-2013

376

Hangupcause Codes
MOR application saves hangupcause codes (HGC in MOR terminology) to the database, so it is
easy to check what the error was and why the call failed.
These codes can be seen in the Calls window (Hangup Cause column) when selected to show
'All', 'Busy', 'No Answer', 'Failed' or 'Missed' calls.

Standard hangup codes can be found here.


ISDN Hangup cause codes

MOR

specific

codes

Code Cause

221

Device call limit reached

200

MOR can't determine who is calling

222

Resellers call limit reached

201

User is blocked

223

Providers call limit reached

202

Reseller is blocked

224

Provider skipped because his rate is higher than user's rate

203

No rates for User

225

CallerID is banned

204

No suitable providers found

226

DID is free

205

MOR PRO not authorized to work on this computer

227

Calling Card PIN is not entered

206

server_id is not set in mor.conf file - this error code is not used
anymore

228

Calling Card Destination is not entered

229

DID is reserved

207

Not clear who should receive call

230

Connection returned error code 0 instead of real code

208

MOR can not make more calls

231

Provider unreachable - this error code is not used anymore

209

Test time exceeded

232

Callback DID not available

210

Balance more than 0, but not enough to make call 1s in length

233

Skype Addon Disabled

211

Low balance for user

234

Internal Loop

212

Balance too low for more simultaneous calls

235

Providers rate higher by percent

213

Low balance for DID owner

236

Callback initiation too early

214

DID owner's balance is too low to make more simultaneous calls

237

DID User is blocked

215

Low balance for reseller

238

Provider used its daily call time limit

216

Reseller's balance is too low to make more simultaneous calls

239

Device used its daily call time limit

217

Callback not initiated because device not found by ANI

240

Provider belongs to the User which makes call (loop)

218

Reseller does not allow loss calls

241

Local Caller canceled the call before call was answered

219

DID has reached call limit. No more calls allowed to this DID

242

No Rates for Reseller

220

User call limit reached

Kolmisoft 2006-2013

377

Relation between MOR hangupcause codes and Standard codes


This table describes which standard ISDN code is MOR giving when one or another hangupcause
is given.
MOR code

ISDN code

SIP code

208

34

503 Service unavailable

210

34

503 Service unavailable

211

34

503 Service unavailable

212

34

503 Service unavailable

213

34

503 Service unavailable

214

34

503 Service unavailable

215

34

503 Service unavailable

216

34

503 Service unavailable

219

34

503 Service unavailable

220

34

503 Service unavailable

221

34

503 Service unavailable

222

34

503 Service unavailable

223

34

503 Service unavailable

226

404 Not found

229

404 Not found

233

66

500 Internal server error

All others not listed above and greater than 21

403 Forbidden

199 ( >=200 )

See also

Hangupcause Sounds
H323 hangupcause codes
SIP Error Codes

Kolmisoft 2006-2013

378

Hangupcause Sounds
Description
MOR returns error codes when a call fails.
The codes are written in Asterisk CLI. The codes are visible in the Call List near each call.
To make it even simpler, MOR can play associated audio when some error happens. To enable
the audio, make play_hgc_audio = 1 in mor.conf and restart Asterisk.
If this setting is equal to 2, then sound files will be played for ALL error codes (sound files for
these error codes are not included into MOR) (This option is available starting from MOR 10.)
This setting is available to help new users start with MOR and get instant feedback about failed
calls.
Sound files are stored in /var/lib/asterisk/sounds/mor/hgc.
IMPORTANT! For production use this setting should be disabled, because a call has to be
answered in order to play these sounds and the dialer has to pay for the call.

How to disable
In order to disable these audio prompts in mor.conf set:
play_hgc_audio = 0
and restart Asterisk.
To check whether this setting is disabled, you can enter in Asterisk CLI:
mor show status
It should show as disabled:
CLI> mor show status
MOR billing and Routing application status
Version: 8.1.10
Kolmisoft 2006-2013

379

Server ID: 1
Active calls now/limit: 0/1000
Global call timeout: 7200 s
Use LCR Partials: 1
Check banned CLIs: 1
Use Speed Dials: 1
>>> Play HGC Audio: 0 <<<
Use Flat-Rates: 1

How to change
Sound files are stored in /var/lib/asterisk/sounds/mor/hgc. Overwrite them with sound files
(converted to Asterisk readable format).

See also

Hangupcause Codes
H323 hangupcause codes
I do not want to hear an error message at the end of the call

Different code send to User compared to received from


Provider
Sometimes it happens that an error code received from a Provider is not sent to the User or is
sent to a different one.
This is decided by the Asterisk system and MOR has absolutely no control over this behavior.
One possibility is to mark the Device as Trunk. This can help in receiving the correct code, but it is
not guaranteed.

Kolmisoft 2006-2013

380

Call Info
This window gives detailed info about the call.
It can be accessed from various pages by clicking on the icon

Kolmisoft 2006-2013

near the call:

381

A new window opens with detailed call info:

Kolmisoft 2006-2013

382

Call Log

See also

SIP debug info

SIP debug info


Process SIPCHANINFO
SIP debug info can be enabled per SIP device basis. It is useful in debugging. When enabled, it is
saved to the Calls table.
It can be turned on/off in the device edit window:

Kolmisoft 2006-2013

383

When it is checked and the Device Type is SIP, then in Asterisk CLI you can see something like:

In GUI, hold the mouse pointer over the special icon for this call to see the same info:

This info is also available in Call Info.

Asterisk CLI
You can see all call progress on Asterisk CLI (command line interface).
To login to Asterisk CLI you need:
1. SSH to your Asterisk server as root
2. Type:
asterisk -vvvvvvvvvR
That's it.
Now you will see all call progress on the screen.
To leave Asterisk CLI type exit and press ENTER
Kolmisoft 2006-2013

384

Video at [http://wiki.kolmisoft.com/index.php/Asterisk_CLI] shows you how to do that.

See also

Get Asterisk CLI output for specific call


MySQL server has gone away

Watch active calls/channels in Asterisk server from CLI


Watch number of active channels
watch "asterisk -vvvvvrx 'show channels' | grep channels"

Watch number of active calls


watch "asterisk -vvvvvrx 'show channels' | grep calls"

Watch active channels


watch "asterisk -vvvvvrx 'show channels verbose'"

Get Asterisk CLI output for specific call


1. Backup old log: mv /var/log/asterisk/full /var/log/asterisk/full_old
2. Enable full log in /etc/asterisk/logger.conf
3. asterisk -vvvvrx 'logger reload'
4. Make a call, remembering the destination number you dialed.
5. cd /var/log/asterisk/
6. cat full | grep <DESTINATION NUMBER YOU DIALED BEFORE>
You can get a lot of output. Look at the last line, which may look like this:
[Feb 26 16:12:14] NOTICE[32733] app_mor.c: Localized destination: 37063042438 (cut: , add: )
Kolmisoft 2006-2013

385

The most important part is in BOLD, and in this example it is: 32733]
NOTE: First brackets are not included! This is very important!
7. Now do:
cat messages | grep 32733]
... and you will get output of your call.

MOR's Core version


On command prompt, issue:
asterisk -vvrx 'mor show status' | grep Version

You should get something like:


Version: 9.1.15

Lots of calls made by System Admin user


You can see lots of System Admin calls in logs, because all NON-AUTHENTICATED calls from
outside are registered in System Admin user logs.
So it is not actually calls made by System Admin user.
These calls are not authenticated and made not by System Admin.
This can be hacking attempt.
YOU DO NOT HAVE TO WORRY ABOUT THIS, BECAUSE ALL THESE CALLS FAILED.
THEY FAILED BECAUSE THEY ARE UNAUTHENTICATED.
YOU DO NOT TAKE ANY LOSS.
IGNORE SUCH CALLS UNLESS YOU KNOW THE IP THEY COME FROM - SO YOU CAN BAN
THIS IP USING iptables.

Kolmisoft 2006-2013

386

Such calls look like this:

Other symptoms
In Asterisk CLI you can find such messages:
app_mor_authentication.c: User not found by accountcode.

Maintenance
How to restart Asterisk server
You should never restart it. That would be perfect.
But there are situations when you need to do it no matter what.
If you restart/shutdown your Asterisk server when there are active calls going:
1. Users will be disconnected and will not feel very happy about your service;
2. You will lose money on the active calls, because provider will charge you for these calls
but you will not be able to charge your users because calls will not be in database.

How to do it in the right way?


Just run:
/usr/src/mor/sh_scripts/asterisk_nice_restart.sh
to restart service.

Kolmisoft 2006-2013

387

Lost MOR GUI admin password


1. Run /usr/src/mor/sh_scripts/crack_gui_password.sh (temporary overwrites admin password)
2. Login as admin/admin to the GUI
3. Press ENTER in console again for script to reset password to previous one

Where I can get my serial key from


Login to your system and execute:
cat /etc/asterisk/mor.conf | grep serial
This will shows your key from mor in format where serial = xxxx (xxxx will be your serial).

Testing
VoIP Bandwidth Calculator
What is a VoIP Bandwidth Calculator?
VoIP Bandwidth Calculator is a tool which helps you determine the bandwidth you will need
depending on codecs, protocols other factors you will be using.

Where can I find a VoIP Bandwidth Calculator?


You can find VoIP Bandwidth Calculators here:

http://telconassociates.com/voip-bandwidth-calculator.html
http://www.voipcalculator.com/calculator/lipb/
http://www.asteriskguru.com/tools/bandwidth_calculator.php

Kolmisoft 2006-2013

388

Payment gateways
PayPal
WARNING

VERY IMPORTANT WARNING! PAYPAL is DANGEROUS to use!


You can lose money using PayPal because of the way PayPal works.
1. The user can pay you.
2. He can make calls.
3. He can then REFUND his money back from your account.
IMPORTANT! PayPal will not cover your loss, because they classify it as: "Seller Protection Ineligible".
Only allow PayPal payments for users you trust.

Where to find PayPal?


1. Navigate to SETTINGS -> Setup -> Settings -> Payments:

Kolmisoft 2006-2013

389

2. Select the PayPal tab:

PayPal enabled - enable or disable PayPal payments on your system.

Disable PayPal for resellers - enable or disable PayPal for resellers.


o Reseller will not see a PayPal picture in his start page and will not be able to pay
for admin via PayPal
o Reseller will still be able to enable PayPal for his users. Reseller's users will be
able to pay the reseller via PayPal

PayPal Email - PayPal Email.

Default currency - default currency.

User pays transfer fee - if selected the will pay the transfer fee.

Default amount - default amount.

Minimal amount - minimal amount of money the user is allowed to transfer you.

Maximum amount - maximum amount of money the user is allowed to transfer you.

Payment confirmation by you - allows you to confirm received payments. If payment is


not confirmed - it is not added to user balance.

Notify by email - enable/disable notifications about new payments.

PayPal custom redirect - set return address after successful payment. If not set, system
will use http://YOUR_SERVER_ADDRESS/billing/payments/personal_payments

Kolmisoft 2006-2013

390

Return URL on successful payment - redirect user to this page after a successful
payment.

Return URL on canceled payment - redirect user to this page after a canceled payment.

Test - enable or disable test mode.

Detailed warning example


1. A User is prepaid, and his balance is 0.
2. User makes payment #1 for 100USD. His balance becomes 100USD.
3. User makes payment #2 for 200USD. His balance becomes 300USD (100 + 200).
4. User makes calls for 300USD. His balance decreases to 0 USD. The system does not allow
him to make any more calls.
5. User goes to PayPal and issues refund for payment #1. PayPal refunds his money back to
him, and alerts MOR about this transaction. MOR subtracts 100USD from the user's
balance. User balance becomes -100 USD ( 0 - 100).
6. User goes to PayPal and issues refund for payment #2. PayPal refunds his money back to
him, and alerts MOR about this transaction. MOR subtracts 200USD from the user's
balance. User balance becomes -300 USD ( -100 - 200).
7. In the end, you suffer a loss totalling -300 USD. The user in the system stays prepaid and
his balance = -300 USD.

Details
A user can pay for services or increase his balance using PayPal. MOR is fully integrated into
PayPal and does not need any manual intervention from an
administrator.
All PayPal options can be set in the Configuration menu of the PayPal section.

Kolmisoft 2006-2013

391

The PayPal payment option can be reached by clicking on the PayPal picture in the main entry
window:

When the user clicks on this image, he will be able to enter the amount he wishes to pay:

Note the minimum value which can be set in Configuration menu. If the user enters a lower
value, he will not be able to proceed.
After clicking on Confirm, he gets another window which shows him how much he will pay:

After pressing on Pay, he goes to the PayPal webpage, where he enters his account details and
confirm the transfer.
After PayPal completes the transfer, the user gets back to the MOR interface. Now, under his
payments he will see a PayPal payment with a Status regarding his payment.
There are many reasons why a PayPal payment may not be completed. To make these reasons
clear, all this information is presented on the Payments page.
Some possible reasons for a PayPal payment not being completed:

echeck: The payment is pending because it was made by an eCheck that has not yet
cleared.

Kolmisoft 2006-2013

392

intl: The payment is pending because the seller holds a non-U.S. account and does not
have a withdrawal mechanism. Seller must manually accept or deny this payment.
multi-currency: Seller does not have a balance in the currency sent. Seller must manually
accept or deny this payment.
unilateral: The payment is pending because it was made to an email address that is not
yet registered or confirmed.
upgrade: The payment is pending because it was made via a credit card and seller must
upgrade his account to Business or Premier status in order to receive the funds.
verify: The payment is pending because seller is not yet verified. Seller must verify his
account before he can accept this payment.
other: The payment is pending for a reason other than those listed above. For more
information, contact PayPal Customer Service.
Denied: Seller refused to accept this payment.

When payment is completed, the user's balance will increase by the value (without TAX) he paid
by PayPal.
This integration makes possible a fully autonomous system in which a user can register online,
pay using PayPal, configure his device and dial instantly WITHOUT any intervention from the
system administrator.
ATTENTION for PayPal to work, your server should have a real IP and should be reachable from
the internet.

Resellers
Each reseller can enter his own PayPal address.
If you change PayPal as System Administrator, the new Reseller will have same the PayPal address
upon creation. He is able to change this address later.
Question:
What kind of PayPal account is needed to interwork with MOR?
Paypal offers two account types: a Business Account and a Web Account.
Answer:
Both types appear to work with MOR. I can verify that a business account works 100%.
You can create a Web account and try it with MOR. If it doesn't work, it can be upgraded free to a
Business account.

Kolmisoft 2006-2013

393

Notes

When an account is blocked, the user can't use PayPal.

How a payment is processed

User enters AMOUNT he wants to pay.


System calculates AMOUNT+TAX.
System sends AMOUNT+TAX to payment gateway.
Payment gateway calculates FEE from AMOUNT+TAX.
In payment gateway, AMOUNT+TAX is deducted from the user account.
In payment gateway, AMOUNT+TAX-FEE is added to system owner account.
After returning to the MOR, MOR adds AMOUNT to User balance.
Payment is created which shows that AMOUNT was added to User's balance.
If it is marked that User should pay FEE, then FEE is deducted from User's balance.
Payment is created, which shows that FEE was deducted from User's balance.

Testing mode
If you get a message such as this when trying to use PayPal:
Please login to use the PayPal Sandbox features.
it means you are using PayPal in Testing mode. Turn it off in SETTINGS -> Setup -> Settings ->
Payments -> PayPal:

Kolmisoft 2006-2013

394

Webmoney

Description
This payment gateway is popular in Russia and neighboring countries. Now MOR users can use
http://www.webmoney.ru/ to pay for services.

MOR configuration

Kolmisoft 2006-2013

395

Enabled: check this if you want to enable Webmoney for new signups and existing
accounts.
WebMoney purse: your purse ID consisting of a letter and twelve digits.
WebMoney currency: currency for WebMoney.
Default Amount: default amount.
Min. Amount: minimum allowed transfer amount.
Test: check this if you want to test your online Webmoney transactions.
WebMoney SIM MODE: testing mode.
WebMoney Secret Key: an optional set of symbols which you entered when setting your
purse. Make sure you have the same key in your WebMoney account.
Skip Prerequest: this option skips additional prerequest from WebMoney.

WebMoney logic requires it to prerequest payment before it sends final confirmation about a
successful (or failed) payment.
Sometimes WebMoney does not send any information in a prerequest. To avoid this situation,
this setting can be checked to complete payment.
It is against WebMoney rules and policy. Security level is decreased! USE IT AT YOUR OWN
RISK!

Webmoney configuration
Make sure in your WebMoney account that you choose MD5 hash encoding. (Do not use SIGN
encoding).

Kolmisoft 2006-2013

396

Below is an example of how to configure your Merchant gateway (click on the picture to enlarge
it):

Technical details
Technical details for implementation: https://merchant.webmoney.ru/conf/guide.asp

Troubleshooting
If payment is not processed, check for an error in your Webmoney Keeper.

Kolmisoft 2006-2013

397

payment 1.00 WM via merchant.wmtransfer.com has failed.


Error: Merchant's website is not available. HTTP_STATUS=404
Edit Web_Url in /home/mor/config/environment.rb to correct value, e.g. to hostname/ip by which
your users reach your site.
NOTE: make backup of environment.rb before editing it, restart Apache after editing
(/etc/init.d/httpd restart).

err: 4 merchant purse (Zxxxxxxxxx) not activated


You need to activate your purse.

Ouroboros payment gateway

http://ouroboros.hr/index.php?home_en

Kolmisoft 2006-2013

398

Enabled yes or no.


Merchant Code a merchant code
Secret Key a secret code.
Default amount amount to show for customer when he tries to enter payment. User
can change this amount.
Minimal amount the minimum amount a user can send you.
Currency select a currency which matches your account's supported currency. If they do
not match, you will get errors.
Language in which language Ouroboros should display the web page.

Cyberplat

Cyberplat Enabled yes or no.


Cyberplat Test testing mode.
Cyberplat Currency select a currency which matches your account's supported
currency. If they do not match, you will get errors.

Kolmisoft 2006-2013

399

Default amount amount to show for customer when he tries to enter payment. User
can change this amount.
Minimal amount the minimum amount a user can send you.
Transaction Fee - a transaction fee that user pays for a transaction
Shop IP - a shop IP

Other functionality
IVR system

This system makes it possible to configure advanced IVR (Interactive Voice Response) systems.

Kolmisoft 2006-2013

400

Definitions

Voices a set of audio files, such as male/female recordings, that together form a "voice"
for the same IVR.
Time Periods a start date/time and end date/time that describe a time period.
IVR a set of IVR blocks.
o Blocks a part of IVR in which the caller can take some action (press a buttonextension, listen to a recording, etc). Basically block in IVR is "set of rules".
o Extensions possible button presses (0-9, *, # and some other special cases).
o Actions what action the system should take when a new Block is reached.

Setup logic

Create Voice
o Record and upload the necessary sound files to Voice.
Create Time Period(s).
Create IVR.
o Create and configure Block(s).
Create the IVR Dial Plan.
Assign this IVR Dial Plan to a DID.
Call this DID to test it.

IVR Voices
SETTINGS -> Setup -> IVR -> Voices
Here it is possible to create several Voices. A Voice consists of a set of sound files. Usually all the
sound files in one Voice are recorded by one person to keep the sound consistent.
Multiple operations can be performed with Voices:

View a detailed list of the system Voices.


Add a new sound Voice.
View the sounds that have files in different Voices.
Upload new sound files for Voices.
Delete Voices and voice files from the system.

Kolmisoft 2006-2013

401

You cannot remove sounds that are currently used.

Time Periods
SETTINGS -> Setup -> IVR -> Time Periods
Here time periods can be set. Time period defines the exact time period IVR will be active. There
is a limit of three periods in Dial Plan. There is a fourth period, but it only consists of all the
remaining time that is not covered by the previous three periods.

IVR Structure

IVR consists of a set of IVR blocks.


o Blocks part of IVR in which a caller can take some action (press a buttonextension, listen to a recording, etc).
o Extensions possible button presses (0-9, *, # and some other special cases).
o Actions what action the system should take when an extension is activated.

The main part of IVR is Blocks. The whole of IVR is a set of Blocks. A Block can be considered as a
part of IVR logic where a caller can take some action.
Extension is what the user does presses a button (0-9, *, #), waits (Timeout), or presses any
non-described extension which can be described as an Invalid Extension. We explain this in
detail later.
Actions are actions which will be activated when the caller comes to a Block.

Kolmisoft 2006-2013

402

Example
For example, here is a simple IVR:

A caller calls a DID and IVR answers with a recording: "Thank you for calling SOME
COMPANY. For sales press 1, for management press 2, to speak to a consultant please
hold or press 3."

Here we have only one block: the user listens to the recording and can take some Action -> press
some button (Extension) or wait (Wait is also Extension but is special - it is called Timeout).
If the user presses something different than 1, 2 or 3, the message will be played again. This is
called an Invalid Extension, or (i) for short.
To summarize, we have the following situation:

1 Block.
Extensions: 1, 2, 3, t (timeout), i (invalid).
Actions: call to sales, call to management, call to a consultant, play recording again.

This example is to illustrate the main IVR building parts. We will show how they operate together
to build a working IVR.

Extensions
Extensions are button presses on the dialpad: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, * and # and two special
extensions:

t - means "timeout", when no extension is pressed in a determined time period.


i - means "invalid". This extension becomes active when a caller presses some extensions
that are not described in the IVR block configuration.

The 'i' (invalid) extension in the previous example could be triggered when buttons 4, 5, 6, 7, 8, 9,
0, *, # are pressed, because only 1, 2 and 3 are described.

Kolmisoft 2006-2013

403

Actions
An Action is some (yes...) action which is executed when a new Block is reached.
Possible Actions:

Playback plays a sound file.


Delay delays execution by some seconds.
Change Voice changes IVR Voice.
Hangup finishes the call.
Transfer to transfers the call to:
o Another IVR.
o DID.
o Device.
o Block.
o Extension - in an opened text field you can enter anything.
Debug text message to Asterisk CLI which helps debugging.
Set Accountcode - sets ownership for the call to some other user.
Set CallerID (Number) - Sets incoming call to IVR, callerID number to any desired value.

Timeouts
Timeout digits
The maximum amount of time permitted between digits when the user is typing in an extension.
When this timeout expires after the user has started to type in an extension, the extension will be
considered complete, and will be interpreted. Note that if an extension typed in is valid, it will not
have to timeout to be tested, so typically at the expiry of this timeout, the extension will be
considered invalid (and thus control would be passed to the 'i' extension, or if none exists the call
would be terminated). The default timeout (in MOR IVR) is 3 seconds.

Timeout Response
The maximum amount of time permitted after falling through a series of priorities for a channel
in which the user may begin typing an extension. If the user does not begin typing an extension
in this amount of time, control will pass to the 't' extension if one exists, or if none exists, the call
would be terminated. Once the user begins to type an extension, Asterisk will wait for digit
timeout to be reached, and response timeout has no effect. The default timeout (in MOR IVR) is
10 seconds.

Kolmisoft 2006-2013

404

Deleting IVR

If an IVR is not assigned to any Dial Plan, you can delete the IVR by clicking the icon
near an IVR in the IVR menu.
If the IVR is assigned to a Dial Plan, you need to unassign the IVR from the Dial Plan to be
able to delete it.

Setup Hints/Tips

If you want to play a sound file, make sure you have set the correct Voice. By default,
Voice = 'en'. If you have uploaded a sound file for a different Voice, select it before
playing your Sound File:

Limitations

Currently it is not possible to record calls for a device which is accessed from IVR. For
example, if calls go like this: IVR -> Device, and device has option to record calls for this
device, these calls will not be recorded.

IVR for Calling Cards


Description
This example shows how to add an IVR before Calling Cards.
Usually it is a greeting saying, "Welcome to X Cards, thank you for using our services..."

Kolmisoft 2006-2013

405

We need to have a Calling Card Dial Plan already created to proceed (check the main guide for
how to do this).

Steps
We need to take the following steps:
1. Create a Voice.
2. Upload a Sound file to this Voice (e.g. a greeting).
3. Create a Time Period in which our IVR will be active (we will make it active all the time in
this example).
4. Create the IVR. The IVR should:
1. Wait 2 seconds for a call to be established.
2. Change the language/Voice to 'zn' - e.g. Chinese.
3. Play the greeting.
4. Transfer the call to the Calling Card Dial Plan (through DID).

Logic
The main logic of this example is the following:

User dials into IVR Dial Plan DID (we will use 111 for this example).
DID 111 forwards to IVR Dial Plan.
IVR Dial Plan plays greeting.
IVR forwards to Calling Card Dial Plan DID (we will use 222 for this example).
DID 222 forwards to Calling Card Dial Plan.
Calling Card Dial Plan executes with normal Calling Card logic.

Note that DID 222 is a middle DID used for inner routing. It can be fake. DID 111 should be real,
so that real calls can come to it.

Video
Video at [http://wiki.kolmisoft.com/index.php/IVR_for_Calling_Cards] demonstrates the whole
setup process:

Kolmisoft 2006-2013

406

IVR Greeting for DID


Description
This section shows how to add a simple Greeting in front of any DID. When a caller calls the
relevant DID, the Greeting will be played and then the call will be routed to the the appropriate
action described in DID settings (to Local User, to Calling Card Dial Plan, to ANI/PIN Dial Plan, to
Callback Dial Plan, to PBX Function and similar).

Setting
Go to DID's settings and add sound file which was previously uploaded in IVR-Voices section:

PBX Functions
Tell balance
This function allows one to hear the balance of the account. The account holder can be a user or
card.

Kolmisoft 2006-2013

407

It is possible to hear the balance in different currencies and languages.


First MOR tries to find the user by accountcode, then by CallerID using ANI. Later, if these
methods fail, it asks for a PIN.
MOR asks for the Card PIN if the card balance should be told.

Milliwatt
Generate a Constant 1000Hz tone at 0dbm (mu-law) - good for testing line quality for losspackets.
More info about Milliwatt:
[http://www.voip-info.org/wiki/index.php?page=Asterisk%20cmd%20Milliwatt]

Use Voucher
This function allows one to enter a voucher number over the phone to top up the user's balance.

How to add Use Voucher function to DID

Dial Local
This function allows one to dial a local extension.
Most often it is used to allow one to reach local users by dialing DID from outside.
More info in Dial Local page.

DTMF Test
System will ask you to enter a destination and press #. After that, it will tell you what you entered.
If the system asks you again to enter the destination WITHOUT first telling you what you entered,
you have problems with DTMF.
Kolmisoft 2006-2013

408

Check VoiceMail
Allows to check VoiceMail over DID.

Card TopUp
This functionality allows to increase Calling Card A balance with Calling Card B money. Card B
balance become 0. This is done by using IVR when press 5 and entering Card B PIN. To activate
this functionality choose first END IVR type in Calling Card Dial Plan.
Information from GUI
Calling Card owner can see when Card A was increased with Card B balance and what amount
was added to Card A from Card B. This information is visible in STATISTICS => Action log.

Voicemail
Description
Voicemail (or voice mail, voice-mail, vmail or VMS, sometimes called messagebank) is a
centralized system of managing telephone messages for a large group of people. The term is also
used more broadly, to denote any system of conveying voice messages, including the answering
machine. (http://en.wikipedia.org/wiki/Voicemail)
Voicemail is automatically sent to a user's email if the email address is specified in the device
details.
An audio recording in WAV format is attached to the email.
Kolmisoft 2006-2013

409

One minute of audio takes approx. 100 Kb.

Configuration
This section can be found in SETTINGS > Billing > DIDs > PBX Functions > VoiceMail:

VoiceMail Extension (local) - describes which local extensions a local user can dial to
retrieve his voicemail (the system will ask him to enter his voicemail password, which can
be set in the device's details).

Kolmisoft 2006-2013

410

If you want to setup VoiceMail (VM) on a different server, then the following settings are
important:

VoiceMail Server active - turns VM server on/off. When on, all VM requests will go to
distant VM server; when off, VM will be handled locally on Asterisk.
VoiceMail Server connection/device - describes connection to VM server.
VoiceMail Retrieve Extension (local) - which extension to dial on a distant VM server to
retrieve voicemail for an extension.

Example:

Let's say we have our server on IP 23.45.67.89 connected with SIP to our Asterisk.
We create a separate user/device (vm_device) to describe this connection. Device's type is
SIP, IP = 23.45.67.89; set other settings also (codecs/etc).
VoiceMail Retrieve Extension (local) = 999.

First action is when VM is recorded


So now when the VM server is ON and the user with device 201 gets a VM, the call is redirected
like this:
Dial(SIP/vm_device/201)
This means that the server on 23.45.67.89 will receive a call to extension 201. The server SHOULD
BE configured so that it will process VM correctly when it receives such a call.

Second action - retrieving VM


When user wants to retrieve his VM on a distant machine he dials VoiceMail Extension (local).
He is redirected like this:
Dial(SIP/vm_device/999#201)
Again, the distant server should know how to process such a request.
Let's say we have a distant VM server based on Asterisk.
So in our example its configuration in /etc/asterisk/extensions.conf should look like this:
Kolmisoft 2006-2013

411

[incoming]
# to retrieve VM
exten => _999#.,1,VoiceMailMain(${EXTEN:4})
exten => _999#.,2,Hangup
# to record VM
exten => _X.,1,VoiceMail(${EXTEN})
exten => _X.,2,Hangup

Retrieve VoiceMail from outside over DID

In PBX functions create new function with type: check_voicemail.


Assign this PBX Function to a DID.

FROM string
To change the Voicemail email sending FROM field, edit the /etc/asterisk/voicemail.conf file line:
;fromstring=The Asterisk PBX
to:
fromstring=SOME OTHER LINE
... and reload Asterisk.

serveremail
This setting can be used to identify the source of a voicemail notification message.
;serveremail=asterisk
to:
serveremail=SOME OTHER LINE

Kolmisoft 2006-2013

412

OR:
;serveremail=asterisk@linux-support.net
to
serveremail=YOUR COMPANY@YOUR COMPANY.net
... and reload Asterisk.
Leave only one of those settings, not both.
Change UNAVAILABLE message
Dial Voicemail access number (default *97) and press 01; then, after the signal, dictate your
UNAVAILABLE message.

MWI - Message Waiting Indication

In telephony, a Message Waiting Indicator (MWI) is a telephone calling feature that illuminates a
LED on selected telephones to notify a user of waiting voicemail messages. It works on most
telephone networks and PBXs. (Wikipedia
[http://en.wikipedia.org/wiki/Message-waiting_indicator]).
Most phones support this feature.

See also

No sound on Voicemail or Playback


Voicemail does not work
Voicemail is sent with wrong time

Kolmisoft 2006-2013

413

Dial Local
Description
This function allows one to dial a local extension.
Most often it is used to allow one to reach local users by dialing DID from outside.

Somebody from outside PSTN dials access DID.


Enters Local Extension.
Local extension rings.

Configuration
Video how to create PBX Function "Dial Local" and assign it to a DID:
If you want to play some audio before entering the local extension, assign such DID to IVR (which
plays the necessary audio).
Video on how to do this (ALL ACTIONS IN THE FIRST VIDEO MUST ALREADY BE DONE
BEFORE STARTING ON THIS VIDEO!):
Now, when DID 22222 is dialed, audio will be played asking for the local extension to be entered.
NOTE: DIDs 11111 and 22222 are just for demo purposes - instead of 22222, use a real DID. You
can use Fake DID 11111 if you will not be using it directly.

Checking
DIDs in example 11111 and 22222 are JUST for DEMO purposes! Use your own correct
DIDs!
For this configuration you will need two DIDs. One of them can be fake (11111 in our example),
and the other should be real (22222 in our example).
If you do configuration following the instructions in the videos and it fails to work, the first thing
to do is to call your primary DID (11111 in our example) and see if you end up in your IVR, where
you can enter the local extension.
Kolmisoft 2006-2013

414

If you can - then you made a mistake in following the second video.
If you can not - you made a mistake in following the first video (at least).

Recheck accordingly. Fix. Retest.


The following screenshots are for a quick check on configuration. Change 11111/22222 to your
DIDs.
The important parts are marked in red. Check whether you have a similar configuration.

Kolmisoft 2006-2013

415

Kolmisoft 2006-2013

416

In the last picture, 't' and 'i' actions forward back to IVR, which means that if the user presses
anything in IVR, he will be routed back to IVR to retry.
In other words, the user needs to hear the whole recording before he can start entering the local
extension.

Dial Local sound file


Starting with MOR 9 after selecting Dial Local you can also specify a sound file to play in edit
menu. This sound file will be played when user calling to DID is connected to Dial Local,
afterwards system asks to enter local destination:

Kolmisoft 2006-2013

417

Troubleshooting
If all else fails, check Asterisk CLI
If you see something like this:
-- Executing Dial("Local/*99@mor_local-05df,2", "SIP/1007|60")
[Oct 9 12:54:13] WARNING[5605]: app_dial.c:1196 dial_exec_full: Unable to create channel of type
'SIP' (cause 3 - No route to destination)
== Everyone is busy/congested at this time (1:0/0/1)
... this means that the device which you dialed (1007 in our example) is offline and cannot be
reached. This is not an IVR problem. Make sure the device is registered to Asterisk, or dial
another device.

PBX Function External DID


What is External DID?
!!WARNING - Deep Asterisk knowledge is a must before proceeding!!
External DID function allows you to implement different PBX (or other Asterisk related functions)
into MOR.
When you assign some DID number pbxfunction External DID your call is forwarded to an
extension file in Asterisk called:
extensions_mor_external_did.conf
located in:
/etc/asterisk
Prior to making configurations in that file, please keep in mind, that:
When call comes to DID, for example DID number 123456 it will be forwarded to the dial plan in
that file with extension:
exten=> 1234567890

Kolmisoft 2006-2013

418

In this file you can basically configure any function that Asterisk supports to handle your call, like:
Queues [http://www.voip-info.org/wiki/view/Asterisk+call+queues]
Custom dial plans [http://www.voip-info.org/wiki/view/Asterisk+howto+dial+plan]
And many others [http://www.voip-info.org/wiki/view/Asterisk#HowtosandTutorials]

How to create External DID?


1. Go to SETTINGS > Billing -> DIDs -> PBX functions:

2. When creating a PBX function select the marked option 'External DID':

Kolmisoft 2006-2013

419

Ring-Groups
About
A ring group acts like any other Asterisk extension number except it rings a collection of Asterisk
extensions which you specify. If you dial a ring group number, it will ring all of the Asterisk
extensions associated with that ring group.

Currently supported Dialing Strategies


Currently MOR supports these Dialing Strategies:

Ringall

What is needed to setup a Ring Group?


At least one DID number, you can get one from DIDWW [http://www.didww.com]

Where to find Ring Groups?


Ring Groups currently are available only for admin and can be found in SETTINGS -> Billing ->
DIDs -> PBX functions -> Ring Groups:

How to create a new Ring Group?


1. Go to: SETTINGS -> Billing -> DIDs -> PBX functions -> Ring Groups
2. Press:

New Ring Group

Kolmisoft 2006-2013

420

3. New Ring Group setup will appear:

Ring Group name: enter your Ring Group name here, for example "Sales ring group";
Comment: (optional) enter your Ring Group description, for example "This is my Sales Ring
group";
This Ring Group will be reached by such local extension: Enter an extension, that will be used
to dial this ring group
locally. Remember not to duplicate your extensions!;
Ring Time (how long device will ring): Define how many seconds to ring the group of devices
(default is 60 seconds);
Options to use when dialing (Advanced): !!!ATTENTION!!! Do not use this field if you are not
sure what you are doing.
This field allows you to enter more advanced Dialing options. More information can be
found here: [http://www.voip-info.org/wiki/view/Asterisk+cmd+Dial#Dialmacros]
Dialing Strategy: Choose the ring strategy from the drop down list;
CallerID Prefix: Define what callerID prefix should be added for the incoming call. For example, if
your ring group is used for sales department, you can add a "sales" CallerID name;
Route to DID if No Answer: Search for a DID number from the auto-complete list, to which
route the call if none of the ring group devices answer the call. DID must be assigned to device or
dialplan to be displayed in this list.

Kolmisoft 2006-2013

421

How to add devices to a Ring Group?

This Ring Group will be reached by such DIDs: Click on the

to assign a DID number

from a drop down menu that will be used to call this Ring Group;
Will ring these devices: Click on the

and choose users with their devices which

will be used in this Ring Group;


Show Extension lines Click on this link in order to check the Extension lines which will be used
when dialing. This is for information purposes only.

Kolmisoft 2006-2013

422

After you have successfully completed the configuration, you should see a similar result on the
right hand side on the window (This is ONLY an example!!):

Fax2Email
Definition
This feature allows the user to receive a normal fax and get it to email in PDF format. The
following image shows the common implementation of the Fax2Email functionality:

NOTE: Fax over VoIP does not work reliably and should only be used for testing purposes.

Kolmisoft 2006-2013

423

Setup
In order to start using this feature, Fax enabled should be selected in in SETTINGS >
Functionality > Fax enabled.
When it's enabled, you need to create a device and make it FAX type. This can be done in Device
Settings:

When a device's type is FAX, it is marked as a FAX device everywhere with the icon

Since MOR12 there is an option to choose a server for a fax device.


Then you need to add the email address or addresses to which the received fax should be sent.
You can enter unlimited addresses.
When the fax device has been created, you have two possibilities for using it:
1. It is possible to route a call directly to the fax device.
2. You can use fax-detection, so that when a fax is detected, it will be routed to the fax
device. If it is not detected, it is routed to a normal device.
The second choice lets you save one DID by receiving calls and faxes on the same number.

Kolmisoft 2006-2013

424

The first method is very easy to implement you just need to assign the FAX device to a DID:

When you want to do fax-detection, you need to set this in a device's Call Flow. In the Before Call
state:

Here, when a call comes, the system will try to decide whether it is a fax. If it decides that it is, the
call is routed to the FAX device and sent to the appropriate email addresses. If the call is a simple
call, it is sent to an IAX2/101 device.

Kolmisoft 2006-2013

425

For received faxes and various statistics, check Fax statistics in the STATISTICS -> Various ->
Faxes section:

Stats
This report show all information about faxes received (or not received). It can be found in
STATISTICS > Various > Faxes:

All users are visible here. A fax can have three states:

Received everything okay with this fax. It's been received and sent to the appropriate
email addresses.
Corrupted the fax has been received but is corrupted. It cannot be to sent to an email
address.
Mistaken this was simple call to a fax number, not a fax.

Kolmisoft 2006-2013

426

You can click on a number for each state to get a list of these faxes:

Clicking on

, you can get this fax in PDF format.

See also

Fax over VoIP

PhoneBook
When is PhoneBook applied?
PhoneBook is applied when user call is authenticated. This means you have to use either
Authentication by PIN or ANI dial plan if call comes from outside.

Purpose
PhoneBook has several purposes:
1. If it recognizes the Caller, PhoneBook changes the CallerID Name.
2. Speed Dials are configured in PhoneBook.

Definitions

There are two types of PhoneBook: Global and Simple.


Theres only one Global PhoneBook.
Each user has his own Simple PhoneBook, except for the admin user, who is the owner of
Global PhoneBook.

Kolmisoft 2006-2013

427

A User's Simple PhoneBook has higher priority than Global PhoneBook. If a record is
found in both the Simple and the Global PhoneBook, the record from the Simple
PhoneBook will be used.

Global PhoneBook

This PhoneBook is managed by System Admin and is applicable to all system Users (e.g. Global).
A good use for it is to create some short numbers for Users to call for Support/Emergency/etc.
The Speed Dial feature is explained Speed dials for users page at wiki.

Simple PhoneBook
Each user has his own Simple PhoneBook, which has higher priority than Global PhoneBook. For
example, if records from Simple PhoneBook match those of Global PhoneBook, the record from
Simple PhoneBook will be used. (Again, in other words - the user can overwrite the System
Admin's PhoneBook record.)

Kolmisoft 2006-2013

428

NOTE: Record '22'. It is Global - that is, created by System Admin. A User can use it, but he can't
manage it.
The Speed Dial feature is explained Speed dials for users page at wiki.

Using CallerID Name overwrite


When a number (CallerID Number) which is in PhoneBook calls in, MOR checks this number and
sets the CallerID Name to the value from PhoneBook. Its visible on phones which support
CallerID Name:

Speed Dials
This functionality lets the user enter a short number (Speed Dial) which transforms into an actual
long number. For example, if the user dials '11', the system will transform this to a full number
such as 37063042438. It saves the user time by allowing him to avoid dialing long numbers.
Speed Dials can't be equal to extensions of local devices. If they are, they are ignored and local
devices are dialed instead.
Speed Dials can point to DIDs.

Kolmisoft 2006-2013

429

Speed Dials are applicable for both Users and Calling Cards. For example, Speed Dials are active
for the following dialing types:

Simple dialing from VoIP devices (e.g. local calls).


When the user is authenticated over ANI or PIN.
For Calling Cards.

Speed Dials for Users


Speed Dials for users are incorporated together with PhoneBook functionality and differ slightly
from Calling Card implementation.
More details: Speed Dials for Users page at wiki.

Speed Dials for Calling Cards


Speed Dial for Calling Cards is pretty simple: Speed Dials for Calling Cards page at wiki.
Limitation
Speed Dials cannot be a single digit in length. They must have two or more digits because of the
system architecture.

Kolmisoft 2006-2013

430

Backup system
The backup system backs up the MOR database and allows it to be restored at any time.
The backup system can be configured in Settings:

If Run Backup according below schedule is checked, the following settings become active:

Month in which month backup should be made.


Day of every month which day of every month backup should be made.
Day of week which day of the week backup should be made.
Hour which hour backup should be made.
'Keep on local server how many backups to keep on the server. The system deletes the
oldest one if the limit is reached.
Don't start backup if disk space less than checks disk space before making an auto
backup.

Kolmisoft 2006-2013

431

Now in Settings -> Backups, we can click New Backup to create a new Manual Backup:

Enter any comment and click on Create to create the Manual Backup:

You can download the backup by clicking the Download icon or restore the backup by clicking
the Restore icon:

When Scheduler (which runs every hour) makes an auto backup, it is seen as type = auto in the
backups list:

Kolmisoft 2006-2013

432

Data import
User/Device/DID/CLI import
You must import the data in the following order from CSV files:
1. Users data.
2. Devices data.
3. DIDs data.
Import Devices from CSV link is disabled while Users data is not imported. Import DIDs from
CSV link is disabled while Devices data is not imported.
CLIs data can be imported for already existing Devices by Device ID or for just imported Devices
by Temporary Device ID (which is in SETTINGS -> Users -> Import).

CSV file format


You can upload your data from a CSV file that has the following structure:
1. Each record is started in a new line.
2. Each piece of record information is separated by commas (see the example).
3. Text is enclosed within inverted commas (for example: "name").
4. Numbers are written without inverted commas (for example: 4).
5. The first line can be used for your own needs, such as for naming each field of
information. If you use this line, do not select the "include first line?" option when
asked.
For example:
We have a CSV file named example.csv with the contents:
"id", "username", "password", "e-mail"
1, "username1", "verySecretPassword", "example@example.com"
2, "username2", "34r34r4232", "example2@example.com"
3, "username3", "23er29923wjwe", "example3@example.com"
Explanation:
The first line is used in this case for naming the fields, so when asked, do not select the
"include first line?" option. (If you won't use the first line for naming the fields, please do
select "include first line?")
The other three lines (starting 1, 2, 3) are for data records. Each record (the first one is: 1,

Kolmisoft 2006-2013

433

"username1", "verySecretPassword", "example@example.com") represents:


1 - user id.
"username1" - user's username.
"verySecretPassword" - user's password.
"example@example.com" - user's e-mail.
Your CSV file can have any number of lines with any number of fields (each line must have the
same number of fields).
P.S. The file should not have any other symbols than those mentioned above. Be careful, as some
editors can add their own formatting symbols. In Windows we recommend using Notepad, and in
Linux: gedit, kedit, nano.
Here are some examples:
users csv file example:
38,2,0,"NULL","NULL",TRUE,"11420471-2-03","Example ZRt","Example ZRt","example example.
11","76/356-650","example@example.hu",04/06/07 01:48 PM,"
","en",97,20,0,FALSE,TRUE,5,0,04/06/07,"NULL","NULL",0,FALSE,04/06/07,"Lajosmi",6050,1,0,1,1
,TRUE,"NULL","NULL",3
45,2,0,"95757bfa00bf85b17921d709b5af0234","NULL",TRUE,"12969247-2-03","Example
kos","Example Example, Kft","Example's 38","70/235-4589","example@example2.hu",04/06/09 11:28 AM,"
","en",97,20,0,FALSE,TRUE,5,0,04/07/09,"NULL","NULL",0,FALSE,04/06/09,"Kecexample",6000,1,
0,1,1,TRUE,"NULL","NULL","NULL"
2138,2,0,"cc1b3ae8986559b10786d6ea73912bd5","NULL",TRUE,"11871633-2-03","Kos
Tas","Ks Kft","Als ast","20/229-36-78","pli@example.hu",12/13/07 09:42 AM,"
","en",97,20,0,FALSE,TRUE,5,0,12/13/07,"NULL","NULL",0,FALSE,12/13/07,"Sirly",6031,1,0,1,1,TR
UE,"NULL","NULL","NULL"
In the first column is a Temporary User's ID; the other columns represent other data. As
mentioned above, it does not matter in which order your data is represented in the CSV file. It
only matters that each column (the data between commas) represents the same data value (id,
email, password or other).

Kolmisoft 2006-2013

434

Devices csv file example:


38,38,76824435,"3676586421","asd dsa
u.12","jamaica","7ewfw@sip.example.com",TRUE,"dynamic","sip",TRUE,"NULL","NULL","NULL",
"NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL"
45,45,76846301,"3676886421","fgh hgf
u.","ergerSiP","76886421@sip.example.com",TRUE,"dynamic","sip",TRUE,"NULL","NULL","NULL
","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL"
2138,2138,76505921,"3676505921","jkl lkj
u.12","treK","6654@sip.example.com",FALSE,"dynamic","sip",TRUE,"NULL",FALSE,FALSE,10,FAL
SE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,FALSE
The first column here represents "id", the second "user_id", and the others represent other data.
YOUR ORDER CAN BE DIFFERENT. The main thing is that each type of data (email, password, id...)
must be in the same column. When you are asked to provide data when importing, be sure to
assign the correct data from CSV for each column and MOR will know which column represents
which data.
DIDs CSV file example:
37067531061,38,38
37065431061,45,22

CDR Import
Configuration
In Configuration, make sure you select the correct options for these values:

CSV Column Separator.


CSV Decimal Separator.

If the settings do not match your CSV file, you will not be able to import CDRs.

Kolmisoft 2006-2013

435

Import
Sometimes MOR can be used as separate billing software (that is, other than for real-time billing).
When using MOR as separate billing software, it is possible to import CDRs from other switches
(they need not be Asterisk) and bill these CDRs.
CDR Import can be found in SETTINGS > Billing > CDR > Import.
The first step is to select a CSV file to import:

Click Upload file.


Sometimes MOR system is able to detect wrong CSV separator settings. If CSV separator settings
are wrong MOR will suggest you to change them:

Kolmisoft 2006-2013

436

Next you will have to assign columns to CDR values. In step 2, you can see the necessary fields to
select. They are marked by a star (*). Without selecting at least one field marked by *, you will not
be able to continue the import process. Select the appropriate settings and click Assign Columns:

In step 2, you can see the necessary fields to select. They are marked by a star (*). You can select
to enter Date/Time in one line OR Date AND Time in separate lines. Without selecting at least
one field marked by *, you will not be able to continue the import process.
Select the appropriate settings and click Assign Columns:

Here you will be presented with a parsed file. If something is not right, click Back. If it's okay, click
Confirm columns:

Kolmisoft 2006-2013

437

Here we select the User to which we want to assign all these calls.

Next you will have to assign columns to CDR values. In step 2, you can see the necessary fields to
select. They are marked by a star (*). Without selecting at least one field marked by *, you will not
be able to continue the import process. Select the appropriate settings and click Assign
Columns:

Here you will be presented with a parsed file. If something is not right, click the Back button. If
it's okay, click Confirm columns:

Kolmisoft 2006-2013

438

Here you can choose method which should be used to assign calls to device:

Select provider - allows to assign calls to certain provider. You will not see this option if you
selected provider ID in step 2.
Import by user - allows to assign calls to one user.
Select user - user and device should be chosen here, when Import by user is selected.
Import by CallerID - allows to automatically assign calls to users by CallerID. It
checks CLIs on Device settings. If CLI matches with CallerID call is assigned to this Device.
Create CallerID - creates list of all CallerIDs on CDR file and allows to assign CallerIDs to
Devices. It creates new CLIs.

Choosing provider ID during the import


There is an option in step 2 where you can choose provider ID. System automatically selects tariff
according to the ID from the file which is the same as Provider ID in MOR.
If there is provider ID in a file that doesn't exist in a system, file is not imported and you are
informed about bad CDRs in step 5. If you chose to leave Provider ID not selected in step 2,
everything
is
fine
and
you
won't
see
the
line
"Bad
CDRs".

When you choose to import provider ID in step 2, you can select Provider in step 6, but this is
optional. This column will not be visible if you are not importing provider's ID.
Kolmisoft 2006-2013

439

Export
You can export CDR in either the PDF or the CSV format. This can be done in the Call Stats page
(STATISTICS > Calls) and other places where you see:

Export to PDF
Export to CSV

Just cick on one of these links and you will get CDR in the selected period.

Calls to DIDs
Calls to DIDs are billed as for calls to normal numbers.
Calls to DIDs which belong to the caller are not billed at all (Price = 0).

CDR Rerating
Description
This function is used when you edited rate for some customer and you want to recalculate price
for his calls in the past. You need to select user, period and system recalculates all prices for all
calls in selected period for selected user. The rating mechanism is the same as in MOR
application but here rating is done by GUI. Be patient if there are many calls it can take some
time to rerate all of them.

Kolmisoft 2006-2013

440

You can reach Rerating in: SETTINGS > Billing > CDR > Rerating:

Select date interval and user which calls you want to rerate and press Proceed:

Here you see call stats for selected date interval. Also you can save old data in PDF or CSV
formats. When you are sure everything is correct press Rerate:

Here you will see the Difference after Rerating.

Kolmisoft 2006-2013

441

Rerate all users


Select 'All Users' from User selection to rerate all users at once in selected period.

Testing mode
You can check

Testing mode and select any Tariff for user.

This way Rerating will not save changes to calls/users.


Testing mode is useful for testing "What if User had this Tariff" scenarios.

Tariff from Localization


If call's prefix is in Localization Rule which has some Tariff, this Tariff is used to count call's price
instead of User's Tariff.

Other notes

Re-rate does not take into account flat rates and user will be charged for such calls. Do
not do rerating for such user.
Re-rate does not work when call's DID, LCR or Owner Device is changed by Localization
rules.
Re-rate does not work for reseller users calls and reseller when you try to rerate the
reseller account only. You can re-rate one user at a time, for example if the reseller made
calls through his/hers account which is created by admin.

Online registration
This function lets a user register online. It can be accessed in MOR's entry page by clicking on:
If you are new user you can signup here.

Kolmisoft 2006-2013

442

Registration should be enabled in Settings in order to work. Various settings are also set in
Settings -> Registration.
In the following window, the user should enter his details. Fields marked by * are mandatory:

Note: if phone number is entered, it will be automatically added as CLI for user device.

Kolmisoft 2006-2013

443

After clicking on Sign up, the user is registered, his account is created and he will see connection
info on his screen:

If email sending is enabled (in Settings) and the email SMTP server details are valid, the user will
receive an mail containing all the settings. The administrator will also get an email with
information about the user who has registered with the system. These two settings should also
be enabled.
If you have set every setting to send email to Admin when a new user registers, but no email
arrives - check whether you have Email set for Admin user.

Online registration customization


We often get requests for information about how to customize the Online registration form.
Unfortunately, it is currently not possible to customize registration.

Quick Forwards
About
Some DIDs can be assigned to Quick Forwards functionality. When this is done, each user can
enter a different number to be forwarded when he calls a DID.
Kolmisoft 2006-2013

444

The main advantage of this function is to use a limited number of DIDs to allow different
users to call these DIDs and be forwarded to different numbers (which are assigned by
users).
Example
We have several DIDs assigned to Quick Forwards functionality:

1111111111.
2222222222.

We have two users with these CallerIDs:

User A with CallerID 8888888888.


User B with CallerID 9999999999.

User A sets his forwards:

From DID 1111111111 forward to 3333333333.


From DID 2222222222 forward to 4444444444.

User B sets his forwards:

From DID 1111111111 forward to 5555555555.


From DID 2222222222 forward to 6666666666.
When User A dials DID 1111111111, his CallerID (8888888888) is checked, the user is
recognized, and the call is automatically forwarded to number 3333333333.
When User A dials DID 2222222222, his CallerID (8888888888) is checked, the user is
recognized, and the call is automatically forwarded to number 4444444444.
When User B dials DID 1111111111, his CallerID (9999999999) is checked, the user is
recognized, and the call is automatically forwarded to number 5555555555.
When User B dials DID 2222222222, his CallerID (9999999999) is checked, the user is
recognized, and the call is automatically forwarded to number 6666666666

IMPORTANT: Correct CallerIDs should be set for users in order for them to be recognized them.
Only the system administrator can do this.

If the system doesn't recognize the caller, it asks for a PIN number of the device to be
entered.
If a user is dialing a DID that has not been assigned a Forward Number, the user is asked
to enter such a number.

Kolmisoft 2006-2013

445

The user can manipulate his Quick Forwards in his menu. He needs to log in to GUI to change
numbers.
Please note that DIDs which follow a quick forward rule can only be assigned to Quick
Forwards dial plan!

Quick forwards based on diversion number


By default quick forwards are based on CallerID but you can change it to be based on user's
diversion number. But diversion field can be used instead of CallerID. It comes in a SIP packet and
points at the device which forwarded a call before it got into a system. for example, if you put a
forward to system's DID on your cellphone and X calls you by default system will catch Xs
CallerID, which is not in the system, so it will ask for PIN. Meanwhile if quick forwards are based
on diversion system will see that the call belongs to you and it will act respectively.
Moreover, Default Device allows not to bill the user who calls to that DID but bill an other user
instead. To see why it is useful here's another example: let's assume that calling to DID costs the
same as calling to a premium rate line. When you call to such a line you pay at once. MORs
owner gets payment from DIDs provider (which itself gets it from the user). Quick forwards based
on diversion allows creating such services where user does not have to pay for anything, i.e.
forwards for him are "free" because he pays for a DID.
To make such a dial plan go to SETTINGS -> Billing -> DIDs -> Dial Plans. Click New dial plan,
you have to create a Quick Forward dial plan:

Select Use Diversion instead of CallerID and click

Tell Balance/Tell Time


By default calls via Quick forward DID will not play Balance and Time. If you want it to go to
SETTINGS -> Billing -> DIDs -> Quickforwards -> Quickforward Settings.

Kolmisoft 2006-2013

446

You will see this window:

Select Tell Balance: and/or Tell Time: and click Change.


Tell Time/Tell Balance options also can be found in device's edit window:

Here you can also select Global. Value (Yes or No) in the brackets depends on what is selected in
quickforward settings. In this example there is Global (No) to both options because in
quickforward settings both Tell Time and Tell Balance are set to No.

Why is the Quick Forwards window empty?


The window may be empty because one or more DIDs should be assigned to Quick Forwards
before calls can be forwarded.

Quickforwards rules
About
Quickforwards rules are used to restrict users which DIDs they can use for quickforwards.
Quickforwards rules can be created by:

Admin - can create rules for any DID range assigned to quickforwards DialPlan

Kolmisoft 2006-2013

447

Reseller - can create rules only for DIDs which are assigned for him with
a Quickforwards rule by admin

Reseller PRO - can create rules only for DIDs which are assigned for him with
a Quickforwards rule by admin

Quickforwards DIDs can be used by:


All system users if they have a rule assigned for them which matches any quickforwards DIDs.
Admin also must have a rule assigned for him to use a quickforwards functionality.
Read more about quickforwards Quick forwards wiki page.

How to create a quickforwards rule?


1. Go to SETTINGS -> Billing -> DIDs -> Quickforwards Rules:
2. Press the marked button

3. Fill in the required fields.

Kolmisoft 2006-2013

448

How to assign a quickforwards rule to a user?


Go to user details and assign a rule you created:

Transfers with MOR


Transfers by default are not available in MOR because Asterisk cannot guarantee correct CDRs
with Transfers.
In other words - it is possible to dial for free using Transfers with Asterisk (MOR).

If you really want transfers and do not care about possible loss, here is the way to enable them:
In file /etc/asterisk/sip.conf
change line
allowtransfer = no
to
allowtransfer = yes
And reload Asterisk. Use it at your own risk!

Kolmisoft 2006-2013

449

GUI on Mobile Devices


Description
If you access MOR GUI over your mobile phone or similar device with a reduced screen, you will
see something like this:

The mini option is used currently only if you want to send an SMS from the MOR interface as
shown here: SMS Addon iPhone.
If you want to get the full MOR interface, select the full option.
If you do not have an SMS Addon installed, the mini option is no of use to you, so you should
always use full option.

See also

SMS Addon iPhone

Kolmisoft 2006-2013

450

PBX connection to MOR


Common connection diagram
Any IP/PSTN-capable PBX can be connected to MOR:

To simplify the diagram, this is the common way for a PBX to be connected to MOR:

Here the main principles will be explained. For a detailed example, see the Trixbox section.
In this diagram, one PBX is connected to the MOR Billing system. Two phones (Phone 1 and
Phone 2) are connected to the PBX. Now both phones can dial out to the PSTN through PBX and
MOR.

Dialing from PBX


Our task is to bill each phone separately.

Kolmisoft 2006-2013

451

In MOR we need to create one User/Device for PBX.


We need to create a Device for this PBX to describe how it is connected to MOR.
You should mark this device as Trunk with ANI.

To bill our devices separately we need:

To create one virtual device for each real device connected to PBX.
In the device's CLI menu we need to add CallerIDs of these devices as described in PBX.
Using the CallerID of the device, MOR recognizes who is calling and assigns the call to the
correct device.

Dialing to PBX
DIDs should be forwarded to the PBX for a real device to get the call.
In order to assign a DID to a virtual device, the following steps are required:
1.
2.
3.
4.

Mark the virtual device as Trunk.


Assign a DID to the virtual device.
Go to the device's Call Flow.
In the Before Call state, forward the call to the PBX device.

That way, when a call goes to the virtual device through a DID, it should go through PBX Trunk.
If you do not forward the call to the PBX device, the call will fail.
This lets the user log in to GUI and see all incoming calls to his device.
ATTENTION! In order for the virtual device to receive calls from the DID, the PBX should
route calls to the correct device. MOR does not know the real location/connection type of
the virtual device, it just sends the call to the PBX, and the PBX should send the call to the
correct device. MOR CAN'T influence the PBX's configuration, so the PBX should be
configured separately to handle incoming calls from the DIDs.

Kolmisoft 2006-2013

452

MOR and Trixbox


MOR and Trixbox (FreePBX) can't work nicely on the same server, because they use same Asterisk
.conf files, which makes a lot of mess.
In order to integrate Trixbox with MOR you need to connect in the following way:

Connection diagram
As an example, we will configure one phone dialing. The phone is connected to Trixbox, which is
connected to MOR:

Here, for simplicity, all the devices are in the same LAN:

MOR server has IP: 10.10.1.10.


Trixbox: 10.10.1.20.
Phone: 10.10.1.30.

MOR and Trixbox are connected with the following settings:

username: mor_trixbox.
password: mor_trixbox_psw.

The phone to Trixbox is connected with:

username: 201.
password: 201psw.

Kolmisoft 2006-2013

453

Dialing from the phone to MOR

Here the device makes a call to example destination 9999999999.


When the call reaches Trixbox, the correct CallerID number for this phone is applied. In
our example it is 1111111111. Then the call is forwarded to MOR.
When MOR gets the call, it sees that the call was sent by Trixbox.
MOR sees that Trixbox is Trunk with ANI. This means that MOR needs to check the
CallerID of the call to find the real caller.
MOR checks for the CallerID number (1111111111) and sees that this CallerID is assigned
to a phone device.
MOR retrieves all info (LCR/Tariff/Rates/Providers/etc) that is necessary to send the call
further.
When the call is finished, it is logged in MOR, not for Trixbox, but for the phone's
user/device. That is what we wanted from our configuration.

Trixbox configuration for phone


Let's connect a phone to Trixbox. In FreePBX, create an extension for phone 201:

Kolmisoft 2006-2013

454

The most important details are:

Here we set the CallerID number that should be applied to the call from this device. The
password and dial string are also here.

Trixbox configuration for MOR


In Trixbox we need to define MOR as a Trunk:

Kolmisoft 2006-2013

455

Define a route in Trixbox to use this Trunk (this is just an example):

Trixbox Trunk Troubleshooting


When passing multiple CallerIDs from multiple extensions in TrixBox through a single ANIenabled trunk to MOR, be sure to define the outbound TrixBox PEER CallerID as empty, using
callerid="" <>.
If you don't include this, your MOR trunk will publish whichever CallerID was last passed to it.
This will not allow you to correctly track different users' CallerIDs in MOR to provide them with
separate call cost tracking.
Also, be sure NOT to define the inbound USER CallerID on the same TrixBox trunk as the same
empty entry. If you do, the CallerID will be stripped from all incoming calls.

MOR configuration for Trixbox


We need to create a connection between MOR and Trixbox. In this example, we will configure the
MOR-Trixbox connection by using SIP.

Kolmisoft 2006-2013

456

We need to create a user for Trixbox: pbx_user. Put any details for it - it does not matter which:

Now we need to configure the device for Trixbox:

The main settings are:

Mark this device as Trunk with ANI support.


Username (by example): mor_trixbox.
Password: mor_trixbox_psw.
Host: 10.10.1.20.
Make sure Dynamic? is unchecked and the port is 5060 (for SIP).

Kolmisoft 2006-2013

457

MOR configuration for phone


To correctly bill phone calls, you need to create a separate user and device for it on MOR.
First, create a user for the phone (phone_user):

Make sure you configure this user correctly by entering the password/LCR/Tariff and other
necessary details. This user will be used for real dialing out.
Next, create a virtual device for the phone:

The settings for this device are not at all important, but you should:
1. Make sure you have marked this device as Trunk. This is important for receiving calls.
2. Make sure you have a good password for security.
3. Make sure that this device's host = dynamic (for security reasons, you cannot enter the
Trixbox IP here, because 201 is not Trixbox!)

CallerID for phone in MOR


In order for MOR to recognize a device/phone, we need to assign a CallerID to our phone's
device:

Kolmisoft 2006-2013

458

NOTE: currently it is not possible to enter a CallerID that is the same as the name of the device.
That way, the call will fail. This happens because of the way Asterisk handles authentication.

Dialing to phone using DID

Here a call is coming to DID 2222222222.


When it reaches MOR, MOR knows that 2222222222 should be forwarded to device 201.
Device 201 forwards the call to Trixbox device Dial (SIP/22222222222@mor_trixbox).
Trixbox receives call with destination 2222222222.
Trixbox know that this call should be forwarded to phone SIP/201.
Phone rings.
After the call, in the MOR log the call is in device 201's logs (CDR) - as it should be.

MOR configuration
You need to create DID 2222222222 in MOR and assign the phone's user/device to this DID:

Kolmisoft 2006-2013

459

In this device's Call Flow, you need to forward the call to Trixbox:

Trixbox configuration
Now when the call arrives in Trixbox, it should know how to route the call to phone 201.
We can configure this in two ways:

Using Direct DID.


Using the Inbound Route.

Direct DID configuration

Kolmisoft 2006-2013

460

Inbound Route configuration

Final notes
In the example, we used DID 2222222222 and CallerID 1111111111. In real installations, these
values are the same in most cases. This means that if the user is dialing out and his CallerID is (for
example) 3333333333, he can receive calls by DID 3333333333. You can configure this in the
same way using this manual. Different values for DID and CallerID are chosen here to make the
example easier to understand.

Configuring more phones


In order to configure more phones:
1. Connect a phone to Trixbox.
2. Configure user/device in MOR for the phone.
3. Make sure the phone's CallerID in Trixbox is the same as CallerID (CID) for the phone's
device in MOR.
4. Create a DID for the phone on MOR, assign it to the phone's device, and forward calls
from the device to Trixbox in MOR.

Kolmisoft 2006-2013

461

5. Make sure Trixbox knows how to route calls from DID to the phone.

Limitations
Using this configuration to connect Trixbox (actually, FreePBX) to MOR has some limitations:
1. The MOR device's CallerID can't be the same as the device's name.
2. Phones connected to Trixbox can't have similar CallerIDs. (Actually they can, but MOR will
not be able to distinguish which device is making the call, so these devices with identical
CallerIDs will be billed together using one account (user/device) in MOR).

Errors
chan_sip.c:8373 check_auth: username mismatch, have <201>, digest has <mor_trixbox>
This error may occur when configuring the connection between MOR and Trixbox.
--note-This is not a connection problem. This happens when you have an incorrect (or no) outbound
CallerID set within Trixbox. Thus "201" (the display name) is being passed through to MOR.
--VCCS

MOR API
About
MOR API lets other software interact with MOR without knowing the internal structure of the
database (DB) and other logic.

MOR accepts requests by HTML POST and returns results in XML.


MOR users that are allowed to use MOR API

Admin

Kolmisoft 2006-2013

462

Reseller
Accountant

Functions
API Related

API Configuration - configuration options for API.


Hash construction - how to construct hash to authenticate data over API.

Login

login - logs user in to MOR.


logout - logs user out from MOR

User

user_details - gets user details.


user_register - create new user from params.
user_update_api - update user from params.

Callback

callback - initiates callback.


c2c_callback - initiates Click2Call specific callback.

Accounting

invoices - retrieves a list of invoices in a selected time period.

Calls

user_calls - retrieves a list of calls in a selected time period for a user/device.

Kolmisoft 2006-2013

463

Balance

balance - retrieves a user balance.


simple_balance - gets user's balance
change_user_balance - change user's balance

Rates

Rate - check user rate by prefix


get_tariff - get all tariff's rates
import_tariff_retail - import xml retail tariff
wholesale_tariff - update or create wholesale tariff

Device

device_create - create device


delete_device - delete device

DID

did_create - DID create


did_assign_device - Assign Device to DID
did_unassign_device - Unassign Device from DID

Phonebooks

phonebooks_api - phonebooks list.


phonebook_edit_api - edit phonebook.

Monitorings

ma_activate - turn on monitorings addon

Kolmisoft 2006-2013

464

Payments list

payments_list - payments list.

Credit notes

credit_notes - credit notes list.


credit_note_update - credit note update.
credit_note_create - credit note create.
credit_note_delete - credit note delete.

Financial statements

financial_statements - financial statements list.

Payments

create_payment - create payment.

Calling cards
cc_by_cli - creats and update calling cards, including adding and transferring funds, by
being identified according the Caller_ID.
buy_card_from_callingroup - solds cards from calling card group.
show_calling_card_group - Show calling group info.

MOR version

get_version - get MOR version number.

Send SMS

send_sms - send SMS.

HTML POST
All requests are in a similar format:
HTML POST: http://<SERVER_IP>/billing/api/<function>?u=username&p=password

Kolmisoft 2006-2013

465

username/password - the user name and password of the user who is asking for the data.

If the user has 'admin' rights, he will get more results and can perform more actions compared to
a user who does not have such rights.

API Configuration
Go to SETTINGS > Setup > Settings > API tab

Allow API - should we enable API?


Allow GET API - should we allow GET method to be used for API? Good for testing - but
do not use in production! It is unsafe.
API Secret Key - key to generate Hash
XML API Extension - send XML output with <HTML> tag - this is used for broken .Net
support, keep it unchecked if everything works for you
Allow API Login Redirect - if login is successful the customer will be redirected to MOR
billing Main site.
Uniquehash - admin's unique hash. Reseller can see it by going to SETTINGS > Registration.
Please note that MOR does not allow you to enable Allow API if API Secret Key is not
entered. In such case you will get a message Invalid API secret key. Enter API Secret Key
in order to fix this.

Kolmisoft 2006-2013

466

Cron actions
What is cron actions
Cron actions is MOR functionality which allows you to do some tasks at a specified time.
Currently supported actions are these:

Change tariff (for users)

Change LCR (for users)

Change provider tariff (for providers)

Who can use this functionality


Currently only system admin is allowed yo use this functionality.

Important notes on billing


MOR takes the call price before the call and uses it to calculate the final price after the call is
finished.
Example: User starts a call at 9:58 PM and is talking for 5 minutes, you have an action which
changes tariff at 10:00 PM. When call will be finished MOR will bill user using older tariff. If user
starts a call after tariff change - he will be charged using the new tariff assigned for him.

How to create a cron action?


Settings are self explaining here is an example with an action Change tariff (applied for users)
1. Go to SETTINGS -> Setup -> Settings -> Cron actions.

Kolmisoft 2006-2013

467

2. Set the settings:

Name - enter here something that will help you to remember what this settings is about
Action - what to do. Currently only change_tariff is supported.
User - for which user/users action has to be applied
Tariff - which tariff to set
Periodic type - how often to perform the task
Repeat forever - makes action never stop
From - when to start doing the action
Till - when to stop doing the action
Description - you can use this field for your notes

3. Press Create to create the action.


4. Finished, you will be taken to a list of all defined actions:

Kolmisoft 2006-2013

468

MOR Addons
Calling Cards Addon

Kolmisoft 2006-2013

469

From Wikipedia, the free encyclopedia


A telephone card, calling card or phone card for short, is a small card, usually resembling a
credit card, used to pay for telephone services. Such cards can either employ prepaid credit
system or credit card style system of credit. The exact system for payment, and the way in which
the card is used to place a telephone call, depend on the overall telecommunication system.
Currently, the most common types of telephone cards involve pre-paid credit in which the card is
purchased with a specific balance, from which the cost of calls made is deducted. Pre-paid phone
cards are disposable. When the balance is exhausted you simply buy a new card. Cards purchased
can often be refilled. The other main type of card involves a card with a special PIN printed on it
that allows one to charge calls to a land-line telephone account.

Short description
The Calling Card module makes it possible to manage cards printed on plastic/paper or sold over
the Internet for international calling.
The calling card platform is dedicated to calling cards, i.e. the plastic/paper cards with a scratch
surface that can be sold in shops or in streets. These cards (or their number/PIN) can also be sold
over the Internet.
When a user buys a card, he gets the number/PIN of the card. Then he dials an access number
and IVR asks him to enter this number/PIN.
The user hears the credit and time remaining and can enter a destination. If the destination is
okay, he is connected and can talk. After the call is finished, the call's price is deducted from the
card's balance.

Kolmisoft 2006-2013

470

Differences between Users and Cards in MOR (for A2billing users)


There are two main ways for a person to use the MOR system to dial out:
1. Using his User account.
2. Using a Calling Card.
The main difference is that the User account is for permanent users. Calling Cards are used by
occasional dialers who use the service from time to time and often anonymously.
Rule about Users and Cards:
Users and cards are not related in any way. This means:

A User (as an entity in MOR) can't have Cards.


A Card (as an entity in MOR) can't belong to a User.

NOTE: MOR is not A2Billing. So the Calling Cards Addon is ONLY for Calling Cards which are sold
over the Internet/in the streets/shops/etc.

System Setup
1.
2.
3.
4.

First, a Card Group should be created with the correct details.


Cards for the Card Group should be generated.
A Calling Card Dial Plan should be created.
A DID should be assigned to this Dial Plan.

All these steps are described in detail below.

Work-Flow
1. User buys a Calling Card (over the Internet/printed, in a store/street/etc).
2. User finds the NUMBER and PIN of the Card. It can be on the plastic/paper Card or given
to the user in an online Calling Card Store.
3. User dials an access number, which is given to the user in the same way as the
number/PIN. User can dial this number from anywhere in the world.
4. System asks the user to enter the number and PIN (or only the PIN). When user dials the
access number, IVR will ask him to enter card number and/or PIN.
Kolmisoft 2006-2013

471

5. Are the number and/or PIN good? In this step the system checks the database to see
whether a Card with the provided number/PIN exists. If the Card is not found, the user is
asked to enter new a number/PIN. It is possible to change how many times the system will
permit reentry of the number/PIN. The default is three tries.
6. The system tells the remaining balance on the card. This step is optional and can be
disabled.
7. The system asks for the Destination to be entered. IVR will ask the user to enter the
destination he wishes to dial.
8. The system tells the remaining time. Based on the entered destination and the remaining
balance, the system will tell the user the remaining time he can talk with this destination.
This step is optional. It is influenced by Ghost Minute Percent.
9. The system dials the Destination. Using LCR, the system chooses the cheapest provider
and dials the entered Destination.
10. After the call, its cost is deducted from the Card's balance.
More detailed logic is explained Calling card logic page at wiki.

PINless dialing
It is possible to enable PINless dialing to the Calling Card Dial Plan:

This lets the user enter the Card's number/PIN only once, after which the system remembers the
CallerID. Next time, when the system receives a call from same CallerID, it will not ask the user to
enter the Card's number/PIN.
If the Card's balance is empty, the user will be asked to enter a new Card number/pin.
PINless functionality is only available for a valid CallerID.
When a CallerID is not empty and is numeric and/or has a '+' sign, then it is valid. If CallerID is
invalid (has some non-numeric symbol in it, except '+'), PINless functionality will be disabled.

Kolmisoft 2006-2013

472

Can more than one Caller ID use Pinless Calling Card?


Yes, it is possible. Suppose we have two Caller IDs:

CallerID #1
CallerID #2

Then:
1. CallerID #1 dials DID number, MOR asks to enter PIN number.
2. CallerID #1 enters PIN number 1234. MOR assigns this CallerID #1 to Calling Card with PIN
1234.
3. If CallerID #1 calls once more, it is not asked to enter a PIN because MOR has assigned it
to Calling Card with PIN 1234.
4. Now CallerID #2 dials DID number, MOR asks to enter PIN number.
5. CallerID #2 enters PIN number 1234. Now MOR deletes CallerID #1 and assigns CallerID
#2 to Calling Card with PIN 1234.
6. If CallerID #2 calls once more, it is not asked to enter a PIN because MOR has assigned it
to Calling Card with PIN 1234.
7. If CallerID #1 calls once more, it is asked to enter PIN because Calling Card with PIN 1234
was assigned to CallerID #2.
8. Etc.

End IVR Type


Description
This option allows to select which End IVR to use for Calling Card Dial-Plan.

End IVR #1
This is default IVR.
When call ends or caller presses * to terminate call, he comes into this IVR.
Here he hears message: "Press 1 to dial new destination, press 2 to dial same destination, press 3
to check your balance, press 4 to use new card"
Kolmisoft 2006-2013

473

When user presses some button [1,2,3,4] he will be able to do such actions:
1 - Can enter new destination
2 - Can dial same old destination (redial)
3 - Can hear his balance
4 - Can enter new PIN to use new Card

End IVR #2
This type of IVR allows to enter new Destination or redial old one by pressing 1#.
User can enter destination and # to dial to it, o he can enter 1# and then system will redial old
destination.

End IVR #3
This IVR is just a hangup. E.g. call will end at once using this IVR and no further actions will be
possible.

Kolmisoft 2006-2013

474

Calling Card Groups


A Card Group is a set (array) of Calling Cards.

Properties

Kolmisoft 2006-2013

475

Card Image just for informational purposes and eye pleasure to view on the GUI. Can be
(and should be) the same as the real printed card for consistency. But that's not the rule.
Description a short memo for admin to view some more info for the cards. It is useful
when there are a lot of Card Groups and the Card Group name is not enough.
Price with TAX the price which all Cards in this Group will have before first use. It does
not include VAT. It's in the default currency.
Setup Fee the fee which will be charged when a call is connected the FIRST time when
the card is used.
Ghost minute percent a value to trick the user into thinking he has more minutes when
he really has less.

Example:
A user has enough balance in his card to call for 50 minutes. Ghost minute percent = 120. So
when the user enters his number/PIN, the system tells: "You have 60 minutes remaining" (50/100
* 120). Note: this is not an increase in percent; it is the value by which the actual minutes should
be multiplied to tell them to the user.

Ghost balance percent - same as Ghost Minute Percent, but this value only applies to the
Balance which is told to the user (This option is available starting from MOR9).
Daily Charge the amount which will be deducted EACH day from the card starting from
the date when the card is used for the first time. This means, if the user makes his first call
on Monday and his second call on Friday, his card will be deducted for 5 days using this
value (Mo, Tu, We, Th, Fr).
Currency - default currency for all cards
Tell cents - enable or disable telling cents when announcing card balance (This option is
available starting from MOR 10).
Tell balance in currency - choose in which currency to tell balance when announcing it.
(This option is available starting from MOR10).
TAX percent the actual value which will be used when presenting the Card's price to the
User, i.e. when telling the user his remaining balance on the Card or showing the same
information on the screen.
Least Cost Routing (LCR) which LCR will be used for all Cards in this Card Group.
Tariff the price list which will be used for this Card Group.
Location this is useful when Cards will be sold in a region with specific dialing rules.
Rules for location can vary for different Calling Card Groups.
Number Length the length of the Card's number. You can select any value here. It is
recommended to select different values for different Card Groups to minimize the risk of
anyone guessing another card's number and using it unauthorized. Card numbers are
generated in sequence order.
PIN Length the number of the Card's PIN. The same recommendation applies as for the
Card's Number. PINs are generated randomly.

Kolmisoft 2006-2013

476

Valid from - from which date Cards are valid.


Valid till - till which date Cards are valid.
Valid after first use - how many days a Card is valid after first use. Default 0 means that
card is valid forever.
Allow loss calls - enable this feature on calling card group if you want to let card users to
make calls when there might be loss.
Deny to double-use a Card with Pinless dialing, when Card is assigned to some
CallerID
Disable Voucher with same Number as Card if Card is used? - this option allows you to
print cards which can be used both for vouchers and for Calling Cards. If one is used - the
other one is deactivated.

Management
Card Groups, like many other entities in MOR, can be created/edited/deleted/viewed.
If a Calling Card module is enabled, you can find it (as Administrator) in: ADDONS > Card
Groups.

Here you can review your active Calling Card Groups:


(..) - shows the Cards window, where you can manage the Group's Cards.
- all the details of the Calling Card Group.
- exports Cards into CSV format.
- edits the Group's details.

Kolmisoft 2006-2013

477

- deletes the Group.

Calling Card management


Overview

In this window, you can manage all Cards which belong to the Calling card group. All fields are
self-explanatory.

Card Creation
Cards for the Calling Card Group can be generated or imported from CSV file.

Generating Cards
Starting from MOR 10 MOR allows you to generate only 20% cards of total possible unique PIN
number count. For example: you have defined that your card group will have 2 digits length PIN,
Kolmisoft 2006-2013

478

that means that there is 10*10=100 possible unique PIN combinations. So MOR allows you to
create: 100*0.2 = 20 cards. To generate more cards you have to increase PIN length.
Add cards opens the window where you can add additional Cards to the Card Group:

In this window, you should enter the Card's start and end numbers. They will form an interval
which will be created. If any Card of the same number exists, the old Card will remain and a new
one will not be created.
The card's PIN number is created automatically it's random and unique. It is wise to make it
reasonably long to avoid cheating by users who may guess a short PIN number.

Export Cards to CSV file


When you want to print Cards on plastic/paper, you need to provide the necessary information
for the Card Printing service.
This can be done using a CSV file. Clicking on the
in one file.

icon lets you download all Card information

You can process this file later in MS Excel or other compatible software. Use the correct format
for your Card manufacturer and send it to him.
The CSV file fields are:

Number
PIN
Balance

Kolmisoft 2006-2013

479

Sold
First_use
Daily_charge_paid_till

You can delete unnecessary fields and make it look as you need.

Card batch management


To manage cards in groups, you need to use

Kolmisoft 2006-2013

Batch Management:

480

Minimal balance
Minimal balance is the lowest card's balance when it is still available to make calls from that card.
For example if you set 10 as minimal balance if card's balance is lower than 10 no calls will be
made from that card. You can find this functionality in main calling card's edit window:

Calling cards distributor


A distributor is a user who can manage admins cards. Please note that distributor is not an
owner.

Kolmisoft 2006-2013

481

To assign distributor to a card go to ADDONS -> Calling Cards. Open any groups cards list and
click Edit. You will see this window:

Select the user from a dropdown list and click Edit.


Assigned distributor will see his cards here: PERSONAL MENU -> Various -> Calling Cards.

Distributor can only activate or deactivate calling cards by clicking

(deactivate) or

(activate).

Above is the calling cards window that distributor sees.

Kolmisoft 2006-2013

482

Disabled cards
Disabled calling cards are those which you can't call from. The reasons for disability are:

Card is not sold


Cards balance equals to zero
Card is not valid anymore.

Calling Card Dial Plan


Overview
Once we have generated a Calling Card Group and Cards, we can create a Dial Plan for this
Group.
A Dial Plan can be treated as a set of rules for how to handle a particular Calling Card Group. You
can set different rules for the same Calling Card Group.
The Dial Plan gives you more control over Calling Card Groups.

Dial Plan creation


Let's go to SETTINGS > Billing > DIDs > Dial Plans:

In
this image, we see an existing Dial Plan for a Calling Card Group.

Kolmisoft 2006-2013

483

Let's review each field:

Name just for informational purposes.


Number length tells Interactive Voice Response (IVR) how many digits to wait for in
NUMBER following a request to enter a number.
PIN length how many digits to wait for in a PIN.
Ask only PIN as the PIN is unique, it is sometimes wise to ask only for the PIN, because
users can make mistakes and get annoyed about having to enter too many digits.
Tell time should IVR tell the time after the Destination is entered?
Tell balance should IVR tell the balance after the user enters the NUMBER/PIN?
Ask Number/PIN (times) how many times the user can try to enter Number/PIN.
Ask destination (times) how many times the user can try to enter Destination.
End IVR End IVR type.

When creating a new Dial Plan, you will need to enter the correct Number and PIN length values
of an existing Calling Card Group. Otherwise you will not be able to create the Dial Plan.

Assign DID to a Calling Card Group Dial Plan


When we have created a Dial Plan for a Calling Card Group, we can assign one or more DIDs to
this Dial Plan.
A DID (in other words, an Access Number) is vital for using Calling Cards. The user will use this
number to reach IVR.
You can assign unlimited DIDs to the same Dial Plan, but a particular DID can only be assigned to
one Dial Plan.
The Calling Card Dial Plan is useful when you are selling Calling Cards in different regions, such as
different countries. In country A, the user will dial one number (which is cheaper for him or even
free), and in country B the user will dial another number. They will reach the same IVR and will
use the same service, but they will save on telephone fees.

Kolmisoft 2006-2013

484

In SETTINGS > Billing > DIDs:

We click on the

icon for the first DID:

We select our Dial Plan and click the confirmation icon to assign our Dial Plan to this DID:

Now the user can dial number 12026911622 (in the example) and he will be able to reach IVR
and use his Calling Card.

Online Calling Card Shop


MOR has a simple Calling Card shop for demo purposes where you can sell Calling Cards.
It can be reached by the same IP as MOR, just using 'ccshop' instead of 'callc'.

Kolmisoft 2006-2013

485

For example, http://<domain/ip>/billing will lead to MOR, while


http://<domain/ip>/billing/ccshop will open the Calling Card Online Shop:

All Card Groups with cards which can be sold are shown here with their images.
If we want to buy one card, we enter the amount and click the Add to cart button for that Card:

The shopping cart shows what we have selected to purchase. We can continue shopping, empty
the cart, or proceed to the checkout.
Let's go directly to the

Kolmisoft 2006-2013

checkout, because all the other functions are very simple:

486

Clicking on the PayPal button, you will be directed to the PayPal site, where you will be able to
pay for the Card.

Calling Card aggregate


What is Calling Card aggregate?
Aggregate reports from all or selected card groups

Where can I find Calling Card aggregate?


Go to ADDONS -> Calling Cards -> Cardgroup Aggregate

Kolmisoft 2006-2013

487

Speed Dials for Calling Cards


When a Calling Card owner logs in to the Calling Card portal (/billing/ccshop), he is able to
manage his Speed Dials:

Here the Calling Card owner created a new Speed Dial: '11'. When he dials '11', the system will
dial to '37063042438'.

Callback and Calling Cards


Negative balance for Calling Cards
A calling card balance will go negative in only one case:
1. A user initiates a callback, and the system dials him back.
2. The user answers and enters a calling card number/PIN.
3. The system recognizes it and checks its card balance.
4. The Card balance is 0.
5. As the calling card is recognized, the charge for Call Leg A is deducted from the Calling Card
balance. The Calling Card balance becomes negative.
This means that the system owner incurs a loss. However, there is no way of preventing a user
from initiating such a call and not paying for it.

Card import from CSV file


It is possible to import calling cards from a CSV file.

Kolmisoft 2006-2013

488

The format is simple:


CARDNUMBER,CARDPIN
When importing, make sure your CARDNUMBER length and CARDPIN length match the lengths
in the Calling Card Group.
Example. You are trying to import this file:
1000000001,6258
1000000002,5725
1000000003,9737
1000000004,9694
....

Your Calling Card number length is 10 and your PIN length is 4. So you can only import cards
into the Card Group which have the following values:

Otherwise you will get an error.


You can find a video which demonstrates Card import from a CSV file here
[http://wiki.kolmisoft.com/index.php/Card_import_from_CSV_file]

One million Calling Cards


One customer was interested in the possibility of having one million Calling Cards, so we created
this possibility.
Kolmisoft 2006-2013

489

The cards were generated on VMWare virtual machine. The host was an Intel Duo Core2
2.4ghz/3Gb RAM Laptop.
It took ~2h.
phpMyAdmin:

MOR GUI:

Kolmisoft 2006-2013

490

Questions about Calling Cards


Q. When MOR asks for CC Number and PIN number, it asks one to enter NUMBER + PIN +
#. Is it possible for it to ask for NUMBER+# and then PIN+# (not only the PIN)?
A. No, it is not possible. It is only possible to ask for the PIN without the number: PIN + #.

Q. Can I modify the first page of the CCSHOP to include some other information or links to
the rate list for each card, for example?
A. Ruby On Rails knowledge is necessary to do that. Also, custom changes will be overwritten by
the next system update.

Q. Can Resellers have their own Calling Cards?


A. Yes if Reseller and Calling Card addons are installed and a reseller permission group is
assigned to a reseller as described in Reseller permissions wiki page.

Q. Where do we see Payments for Calling Cards when we recharge them over web?
A. In SETTINGS - Accounting - Payments.

Kolmisoft 2006-2013

491

Q. Can I create calling cards in different currency?


A. You cannot create cards in different currency. And there is no need to do it. Create Cards in
USD, and in Dial Plan select Currency which will be used for such Cards. Users will hear EUR/GBP
and will not know that in DB card's balance is saved in USD.

How to change default button for call end


Description
By default, the button to end the current _CONNECTED_ call when using Calling Cards and
ANI/PIN dialing is '*'.
Sometimes it is necessary to change it to something different.
As an example, we will change it to '##'.

Configuration
In file /etc/asterisk/features.conf find lines:
[featuremap]
;blindxfer => #1
;disconnect => *0

; Blind transfer (default is #)


; Disconnect (default is *)

Change them to:


[featuremap]
blindxfer => #1
disconnect => ##

; Blind transfer (default is #)


; Disconnect (default is *)

Restart Asterisk
REMEMBER: this option is only applicable when using a Calling Card or ANI/PIN dialing when the
call is already CONNECTED.

Kolmisoft 2006-2013

492

How to set language for Calling Cards


Description
The language in which Calling Card is played can be set in several places in the following order of
priority:
1. Default (en).
2. IVR.
3. DID.

Default language
If Calling Card does not use IVR and the DID language is set to empty, the default language will
be used.
This image shows how to set to "use default language" (when IVR is not used and DID Language
is set to empty):

Language set by IVR


If Calling Card Dial Plan (DP) is using IVR, then the language set in IVR overwrites Default
Language and is used IF DID Language is empty.

Kolmisoft 2006-2013

493

This picture shows how Language (Voice) is set in IVR:

This example changes Language to Spanish (es).


Once again: it overwrites Default Language (en) only when DID Language is empty!

Language set by DID


And most important is DID Language, which can be set in user DID:

This example shows ru language which will be used no matter what Default Language is and no
matter which Language (Voice) is set in IVR.

Kolmisoft 2006-2013

494

Examples
Language/Voice
Default

empty

empty

empty

empty

en

en

en

en

IVR

empty

empty

es

es

empty

empty

es

es

DID

empty

ru

empty

ru

empty

ru

empty

ru

ru

es

ru

en

ru

es

ru

Which one will be used en

NOTES:
1. When Default is 'empty' it means that sip.conf file is messed up and is set to language = .
2. When IVR is 'empty' it means IVR is used but no Language is changed in it, OR IVR is not
used at all.
3. When DID is 'empty' it means the Language field in DID configuration is empty.

Calling Cards Payments


What is a Calling Cards Payments list?
Calling Cards Payments list lets you to see your calling cards payments in one place for each card.

Kolmisoft 2006-2013

495

How to make a Calling Card payment?


You have to mark Calling card as sold:
1. Go to Calling Card group list (Addons -> Calling Cards -> Cards) and press one of the marked
icons (later in this example always press the same icon):

2. A dialog appears, press the Buy button:

3. A confirmation dialog appears, press Confirm:

Kolmisoft 2006-2013

496

Now having your card sold make a payment for it:


1. Press the same buy icon again:

2. Now enter the amount you want to add to the current card balance

3. Confirm the payment

How to get a list of payments for a specific card?


1. Press on the marked icon and you will get into the payments list for that Calling Card

Kolmisoft 2006-2013

497

2. Calling Card payment list:

Calling Cards Ghost Minutes External Script


This topic is ADVANCED and shows how to MOD MOR. Please do not use this functionality
if you are not sure what you are doing!

What is it for?
This functionality is designed to allow clients to modify the way how MOR Core behaves with
Calling Cards.
MOR itself has some logic which allows to change this from the GUI.
But very often it is necessary to extend or change such behavior.
This functionality is made as external script in which clients (with enough programming skills) can
define the way how MOR reacts to some situations.
With External Script it is possible:

Adjust Time which is told to the Card User


Adjust Balance which is told to the Card User
Adjust real call duration of the Card User

With this script it is possible to achieve various functionality, as example some of them:

Taxation per call


Connection Fee per call
Disconnection Fee per call
Multiple in-progress fees
Post-call surcharges
Adjust call duration surcharges
Random surcharges

Kolmisoft 2006-2013

498

Maintenance/Service charges /Recurring configuration that are applied by system at fix


interval configured in days
Toll Free Surcharge in case of call is from the TOLL FREE number (pass alone to reseller in
this case owner of TF and a calling card owner a.k.a person who dial TF).
Custom rounding increments

How to turn it on?


By default it is OFF:

Turn it ON:

Kolmisoft 2006-2013

499

NOTE: When External Script is ON, Ghost Minutes and Ghost Balance
functionality is NOT used from the GUI. It is defined in External Script.
How to use it?
File which does all the logic is in /usr/src/mor/agi/mor_cc_external.c
It is written in C with a lot of commentaries which explains all the logic INSIDE THE FILE.
Same script can be rewritten in any other programming language by experienced programmer
which knows how to interact with Asterisk over AGI.
Make changes to this file, execute ./install.sh in same folder to compile and move it to correct
place.

How to know it is working?


Make a call using Calling Cards with enabled Tell Time/Balance and watch Asterisk CLI:

This shows the output BEFORE telling the balance to the Card User.
NOTE: default External Script DOES NOT change any values, it is just for demo.

Kolmisoft 2006-2013

500

This shows the output BEFORE telling the time to the Card User.
NOTE: default External Script DOES NOT change any values, it is just for demo.
IMPORTANT: To make sure script works OK, you SHOULD see line:
MOR CC External Script stopped.

Calling Card setup example


Card Group creation
We need to create a Calling Card Group to handle all such Cards.

We go to SETTINGS > Addons > Calling Cards and click


window, we enter our Card's details:

Kolmisoft 2006-2013

New card group. In the new

501

After creating a Card Group, we will see all its details:

Kolmisoft 2006-2013

502

Change image for Card Group


Click on

and go back to the Group's details and select the image for your card:

Click Upload:

Generate Cards
Now we have a Calling Card Group, we need to generate some Cards. Click

Kolmisoft 2006-2013

Add cards:

503

Here we will create ten Cards, starting from 2000000001:

Create a Dial Plan


Now that we have a Calling Card Group and Cards, we need to create rules on how to handle all
these cards.
For that, we need to create a Dial Plan. Let's go to SETTINGS > Billing > DIDs > Dial Plans
and click New Dial Plan.
In the new window, we enter the following details:

Kolmisoft 2006-2013

504

Name is just for informational purposes. Number and PIN length should match the settings of
our newly created Calling Card Group.
We want IVR to ask for the number and PIN, so we leave Ask only PIN unchecked. IVR will tell the
remaining time and balance.
IVR will ask for number/PIN and destination three times at most:

Assign a DID to the Dial Plan


In the last window, we see that we have no DID(s) assigned to our Dial Plan.
We need to go to SETTINGS > Billing > DIDs, select some available DIDs and click the

Here we select our Calling Card Test DP and click the

Kolmisoft 2006-2013

confirmation mark.

505

icon:

The new window shows the status of our action:

Mark Card as Sold


In order to be able to use Cards, they should be Sold, i.e. ready for usage.
Lets make one Card Sold for testing.
Go back to the Cards list and click the

icon near a card:

Click the Buy button:

Kolmisoft 2006-2013

506

... and Confirm the purchase:

Now this Card is marked as Sold and can be used:

Conclusion
That's it. The Calling Card engine is ready to serve calls.
In our example, number 37063042438 is the Access number to be dialed to reach IVR.
When you dial this number (in the example), IVR will ask for the card number/PIN to be entered
and follows all other Calling Card logic.

Kolmisoft 2006-2013

507

Callback Addon
About
This Addon must be purchased separately in order to use a Callback functionality.

Definition
From Wikipedia [http://en.wikipedia.org/wiki/Callback_%28telecommunications%29], the free
encyclopedia
In telecommunications, a callback (also written as call-back) occurs when the originator of a call is
immediately called back in a second call as a response.
In order to use a callback service, a subscriber is allocated a unique number, which must first be
dialled in order to trigger a return call. This is known as a Direct Inbound Dialing (DID) number
(Access Number). Where Caller ID is available, it may be possible to use the same DID number for
many different subscribers, as the callback system will be able to recognize each subscriber's
registered number.
On hearing a ringing tone for a few seconds, the subscriber simply hangs up and awaits the
callback. On receiving this, usually within a few seconds, the customer picks up the phone and
dials the required number.
The cost of making a telephone call via callback consists of two parts, as the caller is effectively
paying for an outbound and an inbound call at the same time. If it costs 20 US cents a minute to
call Nigeria from the US, and 8 cents a minute to call Spain from the US, then the caller will pay a
total of 28 US cents a minute.
NOTE: If you want to use Callback, make sure your DID provider sends correct CallerID
information. Without CallerID, you will not be able to use Callback.

Kolmisoft 2006-2013

508

Common Callback diagram

Implementation in MOR
Callback in MOR is implemented in very simple way. It's enough to tell the system the Access
Number (DID) and the way Callback should act. All of this will be described in following
paragraphs.
Supported Callback methods in MOR, listed by initialization method (which triggers Callback),
are:

Call
Over GUI
Over Email
Over API

Who pays for not authenticated call?


First of all, by the nature of Callback it is important to know that before calling back to the user,
the system does not know who the user is (when not using ANI). For example, it does not know
whether the user is a client, whether he has an account in the system, and so on.
This means that when the system makes the callback to the user and the user picks up, the call is
ANSWERED, but the system still does not know who the user is. Let's say the user unsuccessfully
Kolmisoft 2006-2013

509

tries to enter a PIN several times. Then he hangs up. The call is ANSWERED. Does the user pay for
this call? No. Who pays? You, as the owner of the system. It's sad, but true.

Callback User, Callback Device and Callback Tariff


In order to keep track of Callback calls, you need to configure MOR in the proper way. For this we
need:
1. Callback User
2. Callback Device
3. Callback Tariff
Callback User is the user who will pay for answered but not authenticated calls to the user. 100%
of the time, this user is the system owner. But creating a new user in MOR lets you keep track of
all Callback activity in your system. The other reason to have Callback User (and not use the
System Admin account) is the ability to create and assign a Callback Tariff to this user.
Callback Device is the necessary entity in MOR which will actually 'make' callback calls to user.
The type and other details do not matter. This device is pure virtual.
Callback Tariff a separate tariff which should be assigned to the Callback User. In this tariff you
enter rates only to those destinations from which you expect the user will make an Initiation Call.
This is important! Make sure you do not have some Inmarsat rates defined here. Guess how
much you will pay if the user initiates a callback from Inmarsat and, when he gets the call, enters
the PIN several times incorrectly and hangs up? In short, this tariff decides from which
destinations you allow users to initiate callback.

Types of Callback in MOR


Callback in MOR can be classified three ways depending on how the user is
authenticated/authorized:
1. By User Device's PIN.
2. Using ANI (Automatic Number Identification).
3. By the Calling Card's Number/PIN (or just the PIN).

Callback with Device's PIN authentication/authorization


Kolmisoft 2006-2013

510

The main part here is that user gets authenticated/authorized when he enters Device PIN. System
checks for such PIN in database and if user is found user can proceed.

Callback Using ANI (Automatic Number Identification)

This way of Callback is extended User auth. by PIN Callback. In order to ask user for Device's PIN
system checks user's CallerID (ANI). If such CallerID is found in database user gets

Kolmisoft 2006-2013

511

authenticated/authorized and can proceed entering destination. If CallerID is not found user is
asked to enter his Device's PIN number.
Attention! It is very easy to fake CallerID so be careful when you are enabling Callback with
ANI. Anybody can put anybodies CallerID and use your service for free.

Callback By Calling Card's Number/PIN (or only PIN)

This type of Callback lets user enter Calling Card's Number/PIN to get authenticated/authorized.
System checks for such Calling Card in database. If call is made it is assigned to particular
Calling Card.

Rule about Users and Cards:


Users and cards are not related at all. That means:
1. User (as entity in MOR) can't have Cards.
2. Card (as entity in MOR) can't belong to some User.

Kolmisoft 2006-2013

512

Setting Callback in MOR


In order to setup Callback in the MOR you need:
1.
2.
3.
4.
5.

Callback User
Callback Device
Callback Tariff
Access Number (DID)
Calling Card or Auth. by PIN Dial Plan

The work flow is as follows:


1. Create Callback User
2. Create Callback Device to the Callback User
3. Create Callback Tariff and fill it with rates to destinations from which you want to allow
users to initiate callback
4. Assign Callback Tariff to Callback User
5. Make sure you have Calling Card or Auth. by PIN Dial Plan
6. Create Callback Dial Plan and assign Calling Card or Auth. by PIN Dial-Plan to Callback
Dial Plan
7. Assign Callback Dial Plan to some DID

See also

WEB Callback
Callback over Email
API Callback
Callback setup example
217 Callback not initiated because device not found by ANI
Can't setup callback
Callback and Calling Cards

Kolmisoft 2006-2013

513

WEB Callback
You can find Web Callback in PERSONAL MENU > Various -> Callback.
The main window lets you enter callback details:

When you enter the source (and destination if you wish), press Execute and you will get a call to
Source. After that, you will be connected to Destination (or asked to enter the destination and
only then connected).

See also

Callback

Callback over Email


Description
This function receives email and initiates callback using details in this email.
A device can have one CallerID from which it is able to initiate Callback.
Admin sets up the email box, which should be monitored for callback execution.

Kolmisoft 2006-2013

514

An SMS to initiate callback can look like:


For CallerID change: change*new_callerid
For callback inititation:

first_number#second_number
first_number - will ask destination

Then SMS gateway should send email to MOR to initiate callback in following format:
CallerID change:

Email subject: change


Email body: old callerid\nnew callerid, (\n) means new line

Callback inititation:

Email subject: callback


Email body:

MOR_PARAM1 auth_callerid
MOR_PARAM2 first_number
MOR_PARAM3 second_number
NOTE: email format should be plain, not html!

Inner mechanics
1. SMS gateway sends email to specified address (example callback@hostname.com) in the
following format:
CallerID change:

Email subject: change


Email body: old callerid\nnew callerid, (\n) means new line

Callback inititation:

Email subject: callback

Kolmisoft 2006-2013

515

Email body:

MOR_PARAM1 auth_callerid
MOR_PARAM2 first_number
MOR_PARAM3 second_number
2. Postfix server gets email and sends to /usr/local/mor/mor_email2callback.sh script
This is configured in /etc/aliases file:
callback: "|/usr/local/mor/mor_email2callback.sh"
3. /usr/local/mor/mor_email2callback.sh script parses email and sends everything to MOR.
wget -o /dev/null -O /dev/null
"http://localhost/billing/emails/email_callback?subject=$subject&param1=$param1&param2=$p
aram2&param3=$param3"
4. MOR GUI initiates callback using AMI command Originate.

SMS Callback
It is possible to setup SMS Callback using such provider as: https://www.aql.com/sms/sms-toemail/

MOR API callback


About
Callback Addon is needed in order to use API callback.

Request
http://<YOUR_SERVER_IP>/billing/api/callback?u=<USERNAME>&p=<PASSWORD>&device=<
DEVICE_ID>&src=<SOURCE>&dst=<DESTINATION>

USERNAME/PASSWORD login and password from the USER, not from the device!
DEVICE_ID which device should be used to initiate callback and which Caller ID will be
set on the call (Device ID = Device ACC, or accountcode). You can find ACC in
/billing/devices/devices_all).

Kolmisoft 2006-2013

516

SOURCE which number to dial first.


DESTINATION will be dialed when SOURCE answers.

You can omit <DESTINATION>. If you do so, SOURCE will be asked to enter it.

Response
<Status>Ok</Status>

Means callback is initiated.

Errors
Not authenticated
<Status>Not authenticated</Status>

User is not present with provided username.


User's password is wrong.

Bad device
<Status>Bad device</Status>

Device does not exist.


Device should belong to user if user does not have 'admin' rights.

No source
<Status>No source</Status>

No source in request.

Call is not received

Check your CDR for a FAILED call and reason why it failed.
Check Asterisk CLI for error.

Use Call Tracing to locate the error and fix it.

Kolmisoft 2006-2013

517

Callback setup example


This example will demonstrate the basic steps needed to make a calling card callback setup:
Before proceeding, make sure you understand the concepts of dial plans in MOR!
In order to accomplish this you will need:
a) Two DID numbers (one can be fake)
b) One tariff for callback
c) One user + device for callback
d) Two dial plans (or more), one for callback and one for Calling Cards or Authorization by
PIN/ANI.
1. Let's create a Callback User:

2. When you create a callback user make sure to assign a correct Tariff for the callback.
Our suggestion is to include only those destinations in the tariff from which clients will be calling
to the callback.

3. Now, let's add a Callback Device:

Kolmisoft 2006-2013

518

The Device's settings are not at all important leave everything empty. They will not be used,
anyway.
You can even create a Virtual device for this service.
Here you can find Video which demonstrates how to create user and device.
4. Calling Card or Authorization by PIN dial plan should be created depending on your needs:
Open dial plans menu: SETTINGS -> Billing -> DIDs -> Dial Plans
We will create a calling card dial plan:

Assign the dial plan to the DID, through which it will be reached, in the DIDs menu (the DID can
be fake).
Important! This Dial Plan are active by themselves. That is, dialing the associated DID, you will
get the service described by this Dial Plan. Callback is not configured yet.

5. Now we will create a Callback Dial Plan:

1. Enter your callback dial plan name.


2. Assign a DID which will be used after callback is made (to which the call will be
connected).
3. Set the correct callback hangup cause - this allows to work with various DID
providers.
4. Wait - set how many seconds to wait before starting the callback (defined in
seconds).

Kolmisoft 2006-2013

519

5. Select your created autodialer device here.


6. Ask for card - if enabled system will was to enter PIN after callback is made

6. Save the dial plan and edit the settings, you will be forwarded to this page:

Kolmisoft 2006-2013

520

Important steps here - Assign the correct DID through which the client will reach callback service
Set the callerID which is needed. In many cases enter the Asterisk sign * - for example using
Pinless services.
7. And in the Dial Plans section, the same information is given in another perspective:

See also

Callback

Auto-Dialer Addon
Auto-Dialer addon lets you call an array of numbers automatically. When they are answered, it
plays back a prerecorded message to the receiving end of the call.
It can be used in telemarketing.

Overview
When Auto-Dialer (AD) is installed, every user can use it.
The user can find the AD menu under PERSONAL MENU -> Various -> Auto Dialer.
The main window shows the user's campaigns:

Kolmisoft 2006-2013

521

The user can Activate or Stop the Campaign by clicking the


status.

or

button near the Campaign's

A Campaign can only be Activated if it has free (not-called) numbers AND some Actions.
So please, before activating a Campaign, import some Numbers and create Actions.
NOTE: Auto Dialer starts in 5 minutes, so when you are starting this add-on, you need to wait 5
minutes before it starts.

Add a new Campaign


Auto-Dialer can be found under PERSONAL MENU -> Various -> Auto Dialer.
Add new campaign allows you to add a new campaign:

The important fields here are:

Start/Stop Times when calls will be made.


Max Retries how many times to retry an unsuccessful call.
Retry Time how many seconds the system should wait to retry the call.
Wait Time how long to wait till the call is answered.
Device each Campaign should be assigned to a Device in order for MOR to bill the call.
CallerID - what CallerID to put on calls.

Kolmisoft 2006-2013

522

Numbers
Click on

in the Numbers column to check campaign numbers:

The user can import phone numbers from a TXT file. Numbers should be in correct format.
Example of numbers file:
442012345678
442087654321
442054987123

In a new Campaign there are no numbers, so click on


the file to upload:

Kolmisoft 2006-2013

Import numbers from file and select

523

After uploading the file, you will see status of imported numbers:

You can delete all numbers by clicking

Delete all numbers.

If a number is Completed, it is possible to reactivate it (tell the system to call it again) by clicking
the icon near the number.

Actions
Click

in the Actions column to access the Campaign's actions:

Kolmisoft 2006-2013

524

In this window, the user programs the Actions for the Campaign:
Types of Actions:

WAIT how many seconds to wait.


PLAY play a file.
IVR - send call to IVR. It can be used to connect to a real person and give the callee a
greater choice. For example, it is possible to play an advertisement and tell the user to
press '1' to talk with a real person about this advertisement or similar.
o NOTE: This action is only available for admin, not for users (they can't have their
own IVRs).

Admin interface
When Auto-Dialer (AD) is installed, Admin can find it under the SETTINGS > Addons > Auto
Dialer menu. Here he can get a view of all users' campaigns:

The important information for each Campaign is:

Status is the Campaign Active or Stopped?


Run time tells when calls will be made.

All other fields are self-explanatory.


It is possible for admin to see the Actions for users' Campaigns. Just click on the
button.

Kolmisoft 2006-2013

Actions

525

Redial all failed Calls


Starting from MOR 9 you can redial all failed calls:

Workflow
Each 5 minutes, "cron job" is activated to check whether any campaigns are activated.
If there are some active campaigns, the script creates call files for the future.
It puts calls in Time Period in equal time periods, to balance the workload for Asterisk.
For example, if you have 10 calls to make, the script will execute them in 6s intervals to start all
calls in 1 min time.
Variables in /var/lib/asterisk/agi-bin/mor.conf:
calls_one_time - how many calls to distribute per one minute. (PLEASE NOTE, this value is not for
simultaneous calls! It has a very different meaning, which is explained below).
cron_interval - the interval of time (in minutes) in which we should 'put' calls.
Example #1:
calls_one_time = 10.
cron_interval = 1.
That means that in 1 minute the script will put 10 calls. So each call will be executed at a 6s
interval:
1st call: 0s
2nd call: 6s
3rd call: 12s
....
9th call: 54s
Kolmisoft 2006-2013

526

10th call: 60s


Example #2:
calls_one_time = 5.
cron_interval = 2.
That means that in 1 minute the script will put 5 calls and it will do so for 2 minutes. So each call
will be executed at a 12s interval:
1st call: 0s
2nd call: 12s
3rd call: 24s
4rd call: 36s
5th call: 48s
6th call: 60s
7th call: 72s
8th call: 84s
9th call: 96s
10th call: 108s
NOTE: Auto-Dialer is not the tool to generate a lot of calls simultaneously. Auto-Dialer
distributes calls in even intervals in a particular time period to minimize the load on Asterisk.

Logs
Autodialer log can be found here:
/var/log/mor/mor_ad_cron.log

Autodialer polls
Autodialer

supports

creating

polls,

please

check

this

guide

for

example

[http://wiki.kolmisoft.com/index.php/Autodialer_poll_example]

Kolmisoft 2006-2013

527

Reseller Addon
Description
This addon incorporates basic reseller support into MOR
Currently it lets to create user with type 'reseller'
When this user logs into the system he is able to:
1.
2.
3.
4.
5.
6.
7.

Create tariffs
Create users
Setup their own tariffs and assign them to their users
View calls and other stats for his own users
Add own logo to GUI
Customize invoice with their details (logo is not supported)
Can calculate own profit

When his users are making calls - reseller's balance decreases along with user's balance. If reseller
is prepaid and he is out of balance or postpaid and credit limit is reached - his users will not be
able to make calls even if they have money in their balance.

DIDs
DIDs can be created only by admin. Reseller can assign DIDs available to him to his users.
ADMIN can assign DID to USER directly bypassing RESELLER.

Complete Calls
To get all Calls in selected period for Reseller and his User use following link:

Kolmisoft 2006-2013

528

Manual
This manual is dedicated for resellers to work on MOR

Manual for Resellers

How to change user type to reseller?


1. Go to SETTINGS > Users:

2. Click the marked icon:

3. Select the required user type from the marked drop down box:

Kolmisoft 2006-2013

529

Web access
Each Reseller has it's own Homepage. URL can be found in MAIN MENU -> Settings Global tab.
It is possible to have different domain name for each Reseller. Domain name should be pointed
to Reseller's URL in such case.
NOTE: Kolmisoft does not provide domain names, so you need to check with certain domain
provider for such option.

Reseller Permissions
What is Reseller Permissions?
Reseller Permissions allows system administrator to select which addons can be used by Reseller
Group.

How to set Permissions for Reseller?


To create a Reseller Group, set Permissions and assign reseller to Reseller Group please follow
these steps:
1. Go to ADDONS > Resellers > Reseller permissions
2. Create a new Reseller Group:

Kolmisoft 2006-2013

530

3. Click on

(edit) icon to edit a new Reseller Group:

4. Change permissions for Reseller Group:

Disabled - reseller is not allowed to use this addon.


Enabled - reseller is allowed to use and configure this addon. Addon configuration made by
reseller is actual for his account only.
and click Update.

Kolmisoft 2006-2013

531

5. Go to reseller settings (Users ->

) and assign the reseller to a permissions group:

You can create more than one Reseller Group and assign more than one reseller to each Reseller
Group.

Reseller Settings

This page can be found in ADDONS > Resellers > Settings


Reseller Settings are global. It means that these settings will be applied for ALL resellers.

Show Hangup Cause Codes for Resellers - if this option is enabled, resellers are able to
see Hangup Cause Codes in Calls list.

Allow use ZAP devices - allows resellers to use ZAP/DAHDI devices.

Allow use Virtual devices - allows resellers to use Virtual devices.

Kolmisoft 2006-2013

532

Resellers can add their own DIDs - allows resellers to add DIDs. If this option is disabled,
only admin can add DIDs by assigning them to resellers.

Allow to assign DID to trunk - allows resellers to assign DID to trunk.

Default DID Provider for Resellers - which DID provider should be assigned to DIDs
which are created by resellers.

Dissalow for Reseller to copy Localization settings from Admin - reseller cannot copy
admin's localization rules.

Allow resellers to change device PIN - allows resellers to change their users devices
PINs.

Allow resellers to change extensions for their user devices - allows resellers to change
extensions for their user devices.

Reseller Pro Addon


What is Reseller Pro Addon?
Reseller Pro Addon is an optional MOR feature that allows Resellers to have own Providers.
With this addon admin has ability to mark some of his Providers to be optionally used for
Resellers.
Admin can allow Resellers to create his own Providers and use common use Providers by
selecting only Allow to have Providers (after update it is not possible to uncheck this option).
Or select Disallow to create own providers and let him use just common use Providers.
Reseller PRO can have his own providers and create his own LCRs, but he is able to change tariffs
for his providers only.
Reseller PRO cannot affect tariff which is assigned to him or to a common use Providers by
admin.

How to allow a Reseller to have own Providers?


1. Go to SETTINGS > Users, find reseller and click

Kolmisoft 2006-2013

icon.

533

2. Check Enable Reseller PRO option:

Now reseller can add own Providers from Reseller Menu: MAIN MENU ->Routing -> Providers

How can Reseller add own Providers?


Reseller can add own Providers in the same way as Admin:
http://wiki.kolmisoft.com/index.php/Material_for_testing_users#Add_a_provider_in_MOR

Kolmisoft 2006-2013

534

How Admin providers can be used by reseller?


You have to edit provider settings and select an option common use. All providers with
option Common use can be dedicated to all resellers who have Own providers option set in
their user details.
Starting from MOR 11 separate Common use providers can be dedicated to separate resellers
with different tariffs.

Configuration
1. Enable Common use option for a desired provider.
2. Go to ADDONS -> Resellers -> Common Use providers

No
w you have two options:
1) Press a button marked with number 1 - this will create associations for all available common
use providers for all resellers, later you can delete unneeded associations. Please note that when
you will add a new reseller to the system - you will need to press this button again or create
associations manually as stated in option 2).
2) Using menu marked with number 2 you can manually assign common use providers for each
reseller with different tariffs.

Manual for Resellers


Dear MOR prospective reseller, before reading any further, please note that all rates, and
taxes below are only sample rates to show you around our reseller panel but do not reflect
and are not related to our current real rates.
Dear MOR prospective reseller, This is your guide on how to navigate through your reseller panel
page by page with screen caps.
Kolmisoft 2006-2013

535

Login
When you first login from the URL http://<YOUR_URL>/billing with your reseller ID and
password, you will go to the following page:

On this page you can see on the Very Top Right, a group of flags, by clicking each flag you can
change the language of your display to your own native language or your preference, try to click
on every flag if you want to change the language.
Then you see info about Your Balance and Calls made by your users Today and During this
month.

Tariffs
Now under Reseller Menu, Check out the first button called Tariffs.
By clicking on this button you can start creating your own Tariffs and Rates to destinations, and
please note the following:
Extensions or devices cannot start calling, if you did not create Tariffs.
Before creating any users, you must complete this step first, this step will take time and it is
manual, but you only must do it one time only.

Kolmisoft 2006-2013

536

Now click on the Tariffs:

This is empty list of your Tariffs right now.


Click on

New Tariff to create new Tariff:

Enter any name, this is for you. And Purpose of Tariff chose "User Retail" for (demo purposes
now) then click the Create button.

Kolmisoft 2006-2013

537

You will be directed to the page, which means your Tariff was created successfully:

Rates
Name of the Tariff we created for the demo purpose of User Retail is "Test Tariff"
The currency we chose for the tariff is USD.
Before someone can dial-out, rates to the destination any user will use must be filled first.

Kolmisoft 2006-2013

538

To do this, click on the

Rates:

On this page you need to enter rates manually one by one. ( Retail Rates can be transformed
from Wholesale Rates also).
Enter all the rates per minute you need to charge your customers for every destination.
Rounded by field, is in seconds, it usually is either, per one second, or per 60 seconds which will
mean the call will be rounded per minute. So make sure you change it to rounded by 60.
And enter your rates per minute for every destination or only the destinations you want.
Then click on the Update button at the end of the page, and you will see your rates have been
filled out and saved.

Kolmisoft 2006-2013

539

More info about Tariffs/Rates can be found here


[http://wiki.kolmisoft.com/index.php/MOR_Manual#Tariffs].

Users
Now you can start creating Users and Devices for them, and those Devices can start calling if they
have enough balance in their account.
Now go to the Reseller Menu again to your left and this time click on Users to create a new User:

Press on

Add new to add new User:

Now you need to start filling out this data for the user you created:

Username/Password - For user to login to this interface to checkout his balance, rates
and later he will be able to pay affiliates automatically using Paypal inside this panel.
Tariff - from this drop down menu, you select which tariff to apply for this user since you
can create unlimited tariff plans.
Balance - enter initial balance (WITHOUT TAXES) for user here
Credit - if user is prepaid - leave it untouched
Prepaid - Make sure you check the user to PREPAID user and NOT postpaid if you do not
trust user

Kolmisoft 2006-2013

540

After you fill in all the fields properly, click on Create button to create your first user:

Kolmisoft 2006-2013

541

Devices
Now this user cannot start calling unless you create a device or extension for him.
To do that you must click on the

icon:

This page lists all devices or extensions for this user, while each user can have unlimited devices,
only you can add for them devices and not the users themselves, now as you can see this user
still has no devices created.
To create the first device for this user click on

Add new device:

Description field you can type anything you want.


Device group, you cannot edit it, so leave it as primary group.
Type - if you do not know which type to choose, then leave it as SIP, because most of the
devices used today is using SIP protocol and SIP technology

Kolmisoft 2006-2013

542

Once you have filled in the description (Which you can also leave empty if you wish), click on the
Create button:

Kolmisoft 2006-2013

543

Please do not edit any settings in this page, it is better if you do not know what you are doing,
that you leave this page like this, like the default settings, and hit the update button below.
In this page you can see the device or extension number that users need to put in X-lite (or other
softphone or real phone) to dial out, for this device for example

Device number/extension is 1004


Password is 2g1eu1pa

If you put this info on your X-lite and our SERVER_IP_ADDRESS you will be able to start making
calls from this X-Lite until this User has balance in his account.
Now you can email this user his info and how to use the system, you need to only email him:

His username
His Password
Login to GUI URL http://<SERVER_IP>/billing
Device username
Device password

Devices overview
About
This functionality lists all devices that belongs to reseller's users

Kolmisoft 2006-2013

544

Calls
If you want to check calls made by your users go to RESELLER MENU -> Calls:

Here you can press on

icon near each user to check their calls.

Personal Details
You can change your personal details in PERSONAL MENU -> Details:

Kolmisoft 2006-2013

545

Personal Rates
PERSONAL MENU -> Details -> Rates lists rates as given to you by us, this is the rates WE
CHARGE YOU per minute, So this can be your guide when you are creating your own rates for
your users, you can open both windows at the same time and make reference before you add
your rates.

SMS Addon
Description
SMS addon lets you send SMS from MOR.

SMS addon does not support SMPP protocol.


It can send SMS over Email if Provider supports that.
Addon implements SMS billing and routing.
It is possible to:

Create many SMS Providers


o Send email to provider to initiate SMS
o Native Clickatell [www.clickatell.com] integration
o Send SMS over API
Make route (LCR) from these providers
Make Tariffs, enter Rates for SMS into these Tariffs
Let Users send SMS from their MOR login or from -------> their Mobile Phone!
o iPhone optimized!

How to enable SMS sending from start page?


Assuming that you have already set rates, LCR, etc.
1. Go to SETTINGS > Setup > Settings > Addons

Kolmisoft 2006-2013

546

2. Select the marked checkbox (marked with number 1) and press the button to save changes
(marked with number 2)

3. That is all. SMS dialog should be visible now on start page:

P.S. This SMS form will be visible only for users which have SMS subscription

Kolmisoft 2006-2013

547

Troubleshooting
1 - failed, system owner does not have rate for this destination
This means that Provider does not have rate for destination where you are trying to send SMS.
Solution - add such rate to appropriate prefix.

See also

MOR Addons
SMS Addon iPhone
SMS Addon - Clickatell configuration
SMS Addon - Providers
SMS Addon - Status codes

Recordings Addon
Functionality
The Recordings Addon gives more options for managing recordings, such as making it possible
to:

Send a recording to email.


Limit space users' space for recordings.
Record calls without user knowledge.
Let users manage their recordings (send to email/listen/download/delete).
Convert recordings from WAV to MP3 format and store them on an external server, to
ease the load on the main server.

NOTE: Resellers do not have the same functions as an administrator - they can't manage
recordings of their users.

Kolmisoft 2006-2013

548

Settings
SETTINGS > Setup > Settings > Addons > Recordings

Use external Server - should system send recordings to external server?


Recordings server - details such as IP/Port/Login where port is SSH default port 22 and
Login is default root.

Kolmisoft 2006-2013

549

Administrator functionality
ADDONS > Recordings

Here the System administrator can see all recordings. He can search Recordings by:

Period.
Source (CallerID).
Destination (Dialed number).
User.
Device.

With each recording, it is possible to:

Check its details.


Check Call details.
Add comment to it.
Listen to it.
Download it.
Delete it.

Admin can decide:

Whether or not the user can use Recording Addon functionality (set to record calls, send
recordings to email, etc).
Which user calls should always be recorded (without user knowledge).

Kolmisoft 2006-2013

550

SETTINGS > Users > Edit (on selected user)


The Recordings section has the following options:

Allow to use recording functionality - can this user use the Recording addon functionality?
Forced record calls for this User - record calls for this user (all devices) without user
knowledge.
Server space - how much HDD space to reserve for recordings of this user.
Send deleted recordings to this email. If HDD space is used, the recording will be deleted
and sent to this email. If this email is empty, the recording will be sent to the default user
email.

Device > Edit window


The following options are available for Device:

Record calls for this Device - record calls for this Device (without user knowledge).
Send Recording to Email - when recording is completed, send to it email.
Recordings Email - send to this email address.
Keep Recordings on Server after sent to Email - should the recording be left on the server
after being sent to email?

Recordings bulk management


About
This feature allows an administrator to quickly delete recordings for selected period or selected
device

Who can use this functionality?

This feature is only available for MOR administrator

How to use this functionality


Go to ADDONS > Recordings > Bulk management

Kolmisoft 2006-2013

551

Check an option to delete by device or by date, select device/date and click Delete:

Confirm that you really want to delete recordings of selected period/device:

User settings
The Administrator must authorize the user to use the Recording Addon functionality before User
can use its functions. This can be done by checking Allow to use recording functionality in the
User Edit window.
PERSONAL MENU > Details

Server space - shows used/reserved HDD space for recordings.


Email for deleted Recordings - to which email recordings should be sent if there is not
enough space for them.

Kolmisoft 2006-2013

552

PERSONAL MENU > Details > Devices > Edit

Record calls for this Device - user can set to record calls for this device or not.
Send Recording to Email - should recording be sent to email?
Recordings Email - the email address email to which recordings should be sent.
Keep Recordings on Server after sent to Email - should recordings be left on the server
after being sent to email?

PERSONAL MENU > Calls > Recordings


On this page, the User can manage his recordings.

Guides
How to set up user so he can see his calls
1. As admin, go to User Edit settings and check Allow to use recording functionality. User
will be able to use Recording addon functionality.
2. Log in as this User and in PERSONAL MENU > Details > Devices, click
the Recordings section check Record calls for this Device: YES.

for Device and in

3. Now the user will be able to see his calls in PERSONAL MENU > Call > Recordings.

Mobile Number Portability Addon


Mobile number portability (MNP) enables mobile telephone users to retain their mobile
telephone numbers when changing from one mobile network operator to another.
MNP Addon for MOR allows system owner to check number if it belongs to other network and if
so - route it through different providers or bill it with different price.
Current implementation allows to save numbers in MySQL database on any server (possible not
on local server).
Before each call MOR MNP Addon checks dialed number and if number is found in database some prefix is added in front of it.
Kolmisoft 2006-2013

553

By prefix MOR can set different routing(LCR) or billing(Tariff) for this number.
Detailed technique is described here: LCR/Tariff change based on call prefix
MNP Addon for MOR is available from MOR v8
As Kolmisoft cannot make one unique database for all MNP services in all countries all over the
world. MOR admin has to manually enter numbers in MNP database (process described below) in
order for this solution to work. mor_mnp database has to contain only the necessary data
(telephone numbers).
NOTE: It is important to take care of various number formats user can use to dial a number. As a
solution to it is to insert MNP number into DB in several possible formats.

Installation
Do such steps:
1. Upgrade MOR
2. cd /usr/src/mor/sh_scripts
3. ./install_mnp.sh

Upgrade
After Upgrade MOR run /usr/src/mor/upgrade/9/mnp_reenable.sh

Database
Config to DB in: /usr/local/mor/mor_mnp.conf
It should be MySQL database mor_mnp:
DROP TABLE IF EXISTS `numbers`;
CREATE TABLE `numbers` (
`number` varchar(50) NOT NULL,
`prefix` varchar(20) NOT NULL,
PRIMARY KEY (`number`),
UNIQUE KEY `number` (`number`)
Kolmisoft 2006-2013

554

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Make sure you have set correct MySQL permissions for mor_mnp database and also local or
remote asterisk must have correct settings in /usr/local/mor/mor_mnp.conf . If your number is
still not recognized, double check if you have it in your mor_mnp database!
An example how to set MySQL permissions:

GRANT REPLICATION SLAVE , REPLICATION CLIENT ON * . * TO 'mor'@'localhost' IDENTIFIED BY


'mor' WITH MAX_QUERIES_PER_HOUR 0
MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
GRANT ALL PRIVILEGES ON `mor_mnp` . * TO 'mor'@'localhost' WITH GRANT OPTION;

Payment Gateway Addon


2Checkout.com

http://www.2checkout.com

2checkout needs some additional configuration on your side. In order to make it work, you
should login to your vendor account in 2checkout's site and do the following:
1.
2.
3.
4.

Go to "Account" -> "Site Management"


Set "Demo Setting" option to "Parameter".
Set "URL*" setting to your MOR GUI address, that is: "http://YOUR_IP/billing/"
Verify that "After completing an order, buyers should be:" setting is set to "Given links
back to my website".
5. Set "Approved URL" to:
"http://YOUR_IP/billing/payment_gateways/integrations/two_checkout/notify".
Set Pending URL to
Kolmisoft 2006-2013

555

"http://YOUR_IP/billing/payment_gateways/integrations/two_checkout/pending "

Kolmisoft 2006-2013

556

Authorize.net

http://www.authorize.net/

What is Authorize.net?
Authorize.net in Wikipedia

Where to find Authorize.net settings?


1. Navigate to ADDONS -> Payment gateways

How can I setup Authorize.net?


This example is made using ING bank as an example. Control panels of other banks may differ
but the process should be similar.

Kolmisoft 2006-2013

557

This is Authorize.net setup page in MOR:

Enabled - Check this box to make Authorize.net available for your clients.

Login - Authorize.net account login.


Password - Authorize.net account password.

Tax in amount - "Include" tax into amount that user has to pay or "Exclude" if you want
to exclude the tax from the amount that is added to user's balance

Minimum amount - Minimum payment amount

Maximum amount - Maximum payment amount.

Kolmisoft 2006-2013

558

Payment confirmation by you


o Not required - No confirmation is required. Every payment is added to clients
balance immediately.
o Required for suspicious payments - currently Authorize.net doesn't provide
enough info to calculate suspiciousness.
o Required for all payments - When payments are completed they must be
confirmed manually.

Notify by email - Check to receive notifications by email.

Test mode - Turns on the test mode. Use this option only if you know what you are
doing. In test mode MOR will send payment requests to bank's test environment, so the
payments will not transfer actual money. On the other hand MOR still counts these
payments as real and updates user's balance.

Logo - You can select and upload a custom logo picture. MOR accepts images that are
*.jpg, *.png or *.gif and less that 100Kb in size.

Google Checkout

http://checkout.google.com

What do you need before begining?


Before proceeding you need a valid (not self signed) SSL certificate
[http://support.google.com/checkout/sell/bin/topic.py?hl=en&topic=12156] implemented in
MOR.
All the valid certificates recognized by Google checkout are listed here
[http://support.google.com/checkout/sell/bin/answer.py?hl=en&answer=134466&from=57856&
rd=1].

Kolmisoft 2006-2013

559

What is Google Checkout?


Google Checkout is an online payment processing service provided by Google aimed at
simplifying the process of paying for online purchases.
More information can be found in google checkout page at wiki.

How to configure Google Checkout to work with MOR?


1. Go to Google Checkout and configure it as follows:

API Callback URL must be set to:

http://YOUR_SERVER_IP/billing/payment_gateways/google_checkout/google_checkout/notify

Notification as XML must also be selected

Kolmisoft 2006-2013

560

2. Select the marked setting:

How to configure MOR to work with Google Checkout?


1. Go to Payment gateways: ADDONS -> Payment gateways

2. Select Google Checkout

Kolmisoft 2006-2013

561

3. The marked settings are the most important:

Tick the checkbox to enable Google Checkout payment gatewai


Enter merchant ID and key - they are visible at Google Checkout integration menu (look at
the previous picture)
Select are required currency. It is very important to select the same currency as in
Google Checkout here.

4. Save the settings

Kolmisoft 2006-2013

562

More examples of configuration


Here are more examples of correct configuration:

Kolmisoft 2006-2013

563

Moneybookers

http://www.moneybookers.com

What is Moneyboookers?
Moneybookers in Wikipedia [http://en.wikipedia.org/wiki/Moneybookers]

Where to find Moneybookers settings?


1. Navigate to ADDONS -> Payment gateways

Kolmisoft 2006-2013

564

How can I setup Moneybookers?


This is Moneybookers setup page in MOR:

Enabled - Check this box to make Moneybookers available for your clients.

Login - Moneybookers account login.

Tax in amount - "Include" tax into amount that user has to pay or "Exclude" if you want
to exclude the tax from the amount that is added to user's balance

Minimum amount - Minimum payment amount

Maximum amount - Maximum payment amount.

Kolmisoft 2006-2013

565

Payment confirmation by you


o Not required - No confirmation is required. Every payment is added to clients
balance immediately.
o Required for suspicious payments - currently Moneybookers doesn't provide
enough info to calculate suspiciousness.
o Required for all payments - When payments are completed they must be
confirmed manually.

Notify by email - Check to receive notifications by email.

Test mode - Turns on the test mode. Use this option only if you know what you are
doing. In test mode MOR will send payment requests to bank's test environment, so the
payments will not transfer actual money. On the other hand MOR still counts these
payments as real and updates user's balance.

Logo - You can select and upload a custom logo picture. MOR accepts images that are
*.jpg, *.png or *.gif and less that 100Kb in size.

How to make a payment with moneybookers?


Click on "Moneybookers" icon. You can find it on a Start page:

Kolmisoft 2006-2013

566

Enter an amount of money, specify currency and click Confirm:

Click Confirm:

Enter your personal and card information:

Kolmisoft 2006-2013

567

Click Continue:

Enter Card SecureCode and click Submit:

Now your payment will be confirmed.


Payment is done!

Kolmisoft 2006-2013

568

Payment is done!

PayPal PRO

http://www.paypal.com/cgi-bin/webscr?cmd=_wp-pro-overview-outside

iDeal

iDeal [http://ideal.nl/?lang=eng-GB] [English]


iDeal [http://ideal.nl/?lang=dut-NL] [Dutch-Nederlands]

What is iDeal?
iDEAL is an Internet payment method in The Netherlands, based on online banking. Introduced in
2005, this payment method allows customers to buy securely on the Internet using direct online
transfers from their bank account. iDEAL processed 4,5 million transfers in 2006, 15 million
transfers in 2007, 28 million transfers in 2008 and 45.4 million in 2009[1]. iDEAL is owned by the
Dutch organization Currence, which also owns PIN and Chipknip.
Wikipedia [http://en.wikipedia.org/wiki/IDEAL]

Supported Banks

ING advanced. Basic account type currently is not supported.

Kolmisoft 2006-2013

569

More details about banks


The bank selection in iDeal is 2 ways.

Firstly it is the merchant (your) bank. This is where we send payment requests and that
requires configuration. Currently we have configuration for only one bank (ING).

Secondly there is a client bank (your customers). iDeal implementation fetches those on
the runtime so it always contain full list of iDeal banks.

Where to find iDeal settings?


1. Navigate to ADDONS -> Payment gateways

Kolmisoft 2006-2013

570

2. Select the marked iDeal logo:

Kolmisoft 2006-2013

571

How can I setup iDeal?


This example is made using ING bank as an example. Control panels of other banks may differ
but the process should be similar.
This is iDeal setup page in MOR:

Enabled - Check this box to make iDeal available for your clients.

Acquirer bank - Select bank that issued your iDeal account.

Merchant ID - Your merchant ID from iDEAL. You can find it in iDeal control panel.

Passphrase - Enter passphrase that you used when you generated you certificates. To get
more information about generating certificates refer to the section Generating Certificates

Kolmisoft 2006-2013

572

Payment description - Custom textual description that describes what your customer is
paying for.

Private key (*.pem) - Upload private key that you have generated. More information in
"Generate certificates"

Private certificate (*.cer) - Upload a certificate that you have generated. More
information can be found in "Generate certificates"

Ideal certificate (*.cer) - Select certificate file that can download from your iDeal
provider.

Tax in amount - "Include" tax into amount that user has to pay or "Exclude" if you want
to exclude the tax from the amount that is added to user's balance

Minimum amount - Minimum payment amount

Maximum amount - Maximum payment amount.

Client pays transaction fee - Check to additionally charge the client for the transaction
fee.

Transaction fee amount - Enter transaction fee amount if you have enabled "Client pays
transaction fee"

Payment confirmation by you


o Not required - No confirmation is required. Every payment is added to clients
balance immediately.
o Required for suspicious payments - currently iDeal doesn't provide enough info
to calculate suspiciousness.
o Required for all payments - When payments are completed they must be
confirmed manually.

Notify by email - Check to receive notifications by email.

Test mode - Turns on the test mode. Use this option only if you know what you are
doing. In test mode MOR will send payment requests to bank's test environment, so the
payments will not transfer actual money. On the other hand MOR still counts these
payments as real and updates user's balance.

Logo - You can select and upload a custom logo picture. MOR accepts images that are
*.jpg, *.png or *.gif and less that 100Kb in size.

Kolmisoft 2006-2013

573

Generating certificates
In Linux console type these commands, but replace the_passphrase with your desired passphrase.
Do not forget your passphrase because you will have to enter it in iDeal configuration window.
/usr/bin/openssl genrsa -des3 -out private_key.pem -passout pass:the_passphrase 1024
/usr/bin/openssl req -x509 -new -key private_key.pem -passin pass:the_passphrase -days 3650 out private_certificate.cer
More information can be found here [http://dovadi.com/ideal].

Transferring certificates to another server


To find your iDeal Private key, Private certificate and Ideal certificate issue these commands:
mysql mor;
Ideal certificate (*.cer):
select * from conflines where name like "%ideal_ideal_ideal_certificate_file%";
Private key (*.pem):
select * from conflines where name like "%ideal_ideal_private_key_file%";
Private certificate (*.cer):
select * from conflines where name like "%ideal_ideal_private_certificate_file%";
Copy from: -----BEGIN CERTIFICATE----till: -----END CERTIFICATE----

please note that these commands can retrieve more than 1 certificate, the one you need is
that matches owner_id field to the user id in users list.

paste to an empty text files and save. Then you can import them in MOR as normaly.

Payment status
Successful:
Kolmisoft 2006-2013

574

Completed - Payment is made and completed, user's balance was increased.


Waiting for confirmation - Payment was completed by iDeal and is currently waiting for
your confirmation. Money will be added to user's balance after you confirm the payment

Unsuccessful:

Canceled - Payment was canceled.


Expired - Payment expired. Usually because your customers haven't completed the
payment in 60 minutes.
Failure - There was an error in iDeal when dealing with transaction.

Troubleshooting
"Select bank" is empty.
1. Check all configuration options
2. Check certificates.

"Select bank" shows only "Issuer Simulator" as an available bank


Test mode should be turned off.

Payments "Confirmed" column displays "No (waiting_response)" and


payment is not being completed.
If iDeal fails to deliver money instantly (lag between issuer and acquirer banks) then MOR marks
this payment as "waiting_response" and then waits for another hour and checks iDeal again, so
be patient. If waiting_response stays like that for several hours then contact our Support.

OSMP

Kolmisoft 2006-2013

575

Technical details can be found in osmp technical details page at wiki


www.osmp.ru [Russian]

What is OSMP
OSMP is a payment gateway that lets your clients to top up their balance. The main difference
from other payment gateways is that OSMP allows you to pay using physical OSMP payment
terminals rather than MOR GUI.

How OSMP works?

Client enters his username and amount into OSMP payment terminal.
OSMP checks payment details with MOR (is there such user in MOR; amount sizes; other
technical technical details )
o User is checked buy matching user name provided by user in OSMP terminal with
MOR username. Example. if we have user with username "admin" in MOR he
should enter "admin" as his user name in OSMP.
o Other details include:
Is this transaction unique and it is not a hacking attempt.
Is amount greater that Min Amount (if Min Amount is provided in
configuration)
Is amount smaller that Max Amount (if Max Amount is provided in
configuration)
If payment can be created inside MOR and no errors occur.
If everything is correct then user pays using OSMP terminal.
After the payment has been successfully completed OSMP announces MOR about this
and MOR tops up users balance.

In what countries OSMP is available


OSMP is only available in these coutries: Belarus, Tajikistan, Uzbekistan, Kazakhstan, Georgia,
Moldova, Ukraine, China, Russia

Kolmisoft 2006-2013

576

Where to find OSMP settings in MOR?


1. Navigate to ADDONS - Payment gateways

2. Select the OSMP gateway:

How to configure SSL for OSMP?


In order to use OSMP securely SSL certificates are being used. Certificate configuration and
payment gateway testing is being done by OSMP staff.
If you want to do it by yourself the configuration file /etc/httpd/conf/httpd.conf should look
like this:
Kolmisoft 2006-2013

577

NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
RewriteCond %{REQUEST_URI} !^/billing/public
RewriteRule ^/billing(/.*)?$ /billing/public
<Directory /var/www/billing/public/>
Options ExecCGI FollowSymLinks
AllowOverride All
Allow from all
Order allow,deny
</Directory>
<Directory /var/www/html/stats/>
AddHandler cgi-script .pl
Options +ExecCGI
DirectoryIndex index.pl
</Directory>
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/ssl/billing.crt
SSLCertificateKeyFile /etc/ssl/billing.key
SSLCACertificateFile /etc/ssl/comodo.intermediate.crt
RewriteCond %{REQUEST_URI} !^/billing/public
RewriteRule ^/billing(/.*)?$ /billing/public
<Directory /var/www/billing/public/>
Options ExecCGI FollowSymLinks
AllowOverride All
Allow from all
Order allow,deny
</Directory>
<Location /billing/payment_gateways/osmp/osmp/notify>
Allow from 195.22.241.194 195.22.228.238 89.28.59.10 #contact OSMP for exact details which
IP's must be allowed
Deny from All
</Location>
<Directory /var/www/html/stats/>
Kolmisoft 2006-2013

578

AddHandler cgi-script .pl


Options +ExecCGI
DirectoryIndex index.pl
</Directory>
</VirtualHost>

Advices

You should enable manual confirmation for this payment gateway

I found a bug, OSMP logo cannot be clicked like other payment gateway logos!
This is not a BUG, that's because of the way OSMP works - payments are made from physical
terminals, please read what is OSMP section in osmp technical details page

HSBC

http://www.hsbc.com/

How can I setup HSBC?

Enabled - Check this box to make HSBC available for your clients.
Login - HSBC account login.
Client ID - Your client ID from HSBC. You can find it in HSBC control panel.
Password - HSBC account password.
XML url - The URL to send the request in XML.
Tax in amount - "Include" tax into amount that user has to pay or "Exclude" if you want
to exclude the tax from the amount that is added to user's balance
Minimum amount - Minimum payment amount
Maximum amount - Maximum payment amount.
Payment confirmation by you

Kolmisoft 2006-2013

579

o Not required - No confirmation is required. Every payment is added to clients


balance immediately.
o Required for suspicious payments - currently iDeal doesn't provide enough info
to calculate suspiciousness.
o Required for all payments - When payments are completed they must be
confirmed manually.
Notify by email - Check to receive notifications by email.
Logo - You can select and upload a custom logo picture. MOR accepts images that are
*.jpg, *.png or *.gif and less that 100Kb in size.
Test mode - Turns on the test mode. Use this option only if you know what you are
doing. In test mode MOR will send payment requests to bank's test environment, so the
payments will not transfer actual money. On the other hand MOR still counts these
payments as real and updates user's balance.

Other Notes
About SSL Certificates in Russian
Van's Apache SSL/TLS mini-HOWTO

Monitorings Addon
What is Monitorings Addon?
Monitorings Addon is an optional MOR feature that:

protects you from high money losses.


o blocks suspicious users on various activity
o informs administrators about suspicious activity
allows admin and resellers to spy their user calls on real-time
allows to see leg A and leg B codecs used and post-dial delay in Active calls.

You can find monitorings in ADDONS -> Monitorings.


Remember, you will only find this addon if you have purchased it.

Kolmisoft 2006-2013

580

How Monitorings Addon work?


Monitoring Addon crawls the MOR database and counts user's call price sum over specified
period. If user's call price sum over specified period will be higher or lower than the amount
specified in monitoring - an action will be taken. Possible action are:

Only notify admin (no action is taken against user)


Block user (user is automatically blocked, no notification is sent to admin)
Block user and send notification for admin

You can create differently configured monitorings for:

All users
Postpaid users
Prepaid users
1 user (separate monitorings for each user, also called personal monitorings)

Also it is possible to create 2 or more monitorings for each group, for example:

First monitoring only reports admin about quickly increasing sum, let's say 50 Euro

If an administrator takes no action and someone tries to abuse the system when call sum
for that user reaches for example 100 Euro the second monitoring can block that user

System's administrator can turn on monitorings for resellers. If they are off, resellers' users are
under the terms set by administrator.

Kolmisoft 2006-2013

581

Monitorings for resellers


As it is mentioned above, administrator can turn on monitorings for resellers. If you want to do it
go to ADDONS -> Resellers -> Reseller permissions. Choose or create a group and click the
Edit icon. You will see this window:

Choose whether you want to permit reading writing or to keep monitorings for resellers disabled
(this is default).

How to create a Monitoring?


Global Monitoring
Global Monitoring will be applied to all users which meet the requirements (this will be explained
later)
1. Go to ADDONS section -> Monitorings.

Kolmisoft 2006-2013

582

2. Select the desired options for new global Monitoring:

Period - this option let's you specify how often the monitoring must run and check all
users balance.
Amount - this option let's you specify the amount of money and whether it is
maximum limit or minimum call price limit. When user's balance drops to or
reaches the amount you specified an action will be taken against him depending on
other parameters.
Block user - if this option is set to Block - user will be blocked. He will not be able to
make any calls.
Send Email to Admin - here you may choose to be informed about the action by email.
User type - this options specifies a user group an action must be taken against.
o All - Monitoring will be applied to All users
o Postpaid - Monitoring will be applied to Postpaid users
o Prepaid -Monitoring will be applied to Prepaid users

3. Press Create to create the Monitoring

Additional Notes

You can create as many Monitorings for any group as you want. For example you can
create 2 monitorings for Postpaid users:
o 1 monitoring could just inform the administrator about the high user's balance (in
this case select these options: enter the amount and choose Increases more,
choose Do not block, choose Send, choose Postpaid)
o 2 monitoring could block the user with high balance if the administrator is sleeping
and didn't saw the warning email (in this case enter a bigger amount than in the

Kolmisoft 2006-2013

583

first monitoring and choose Increases more, choose Block, choose Send, choose
User type: Postpaid)
o 3 monitoring could inform the administrator that some users stoped calling for
some reason, maybe because of some technical problems, that otherwise would
not be noticed so quickly (in this case enter some amount and choose Drops
bellow, choose Do not block, choose Send, choose User type: Postpaid)

Do not add too much monitorings, because this functionality is database intensive.
A separate database server could be dedicated for monitorings.

Personal Monitorings
What is a Personal Monitoring?
A Personal Monitoring is applied only to a specific user.

How to create a Personal Monitoring?


1. Navigate to SETTINGS -> Users

2. Select the marked icon:

Kolmisoft 2006-2013

584

3. Select the marked icon:

4. Depending on your scenario enter correct settings for a monitoring. Some information about
marked fields:

1. Must never be equal 0


2. or 3. must be set to block or to send. You may select both, but you cannot leave them
both Do not block and Do not send

Kolmisoft 2006-2013

585

5. Press the marked button to create the monitoring:

6. You will get a confirmation that monitoring was created:

Monitoring alerts when usage drops


In MOR it is also possible to monitor if users call price sum is under some certain certain sum.
This is useful to detect that something is wrong with user's settings, providers assigned to him,
etc.. Go to ADDONS -> Monitorings if you want to make a monitoring for users' group
or SETTINGS -> Users if you want to make a monitoring for single users.

Kolmisoft 2006-2013

586

You will see this window:

Select Drops below, choose other settings and click Create. The text next to the information icon
below shows what actions will be taken under what conditions depending on your choices.

Disable global monitorings for 1 or more users


In some situations you might need to disable global monitorings for some users leaving only
personal monitorings. You can do that by navigating to user settings and enabling the marked
setting:

Kolmisoft 2006-2013

587

Simultaneous calls
Monitorings Addon is able to spy if there are any simultaneous calls happening to the same
destination. To create such a monitoring select Simultaneous calls in Condition section:

Recommended hardware
Minimum requirements:
20GB of free space on HDD
2GB of RAM

Recommended:

50GB or more space on HDD


2GB of RAM

See also

User Blocking

Kolmisoft 2006-2013

588

Spy real-time calls


About
This functionality is a part of Monitorings Addon and is used to spy user's real-time calls. This
functionality allows call-center managers to assess their employees work. It is also used in prisons
where such functionality is also necessary.
MOR user's which are allowed to use this functionality:

Admin

Reseller (active calls must be enabled for resellers)

How this functionality works?


1. The manager selects a device where he will receive calls from the system when he wants to spy
his user (this has to be done only once).
2. Manager configures his phone to be able to answer it.

Kolmisoft 2006-2013

589

3. Manager goes to active calls and presses a Spy icon on a desired call:

4. MOR system sends a call to a device set in step 1.


5. Manager answer's the call from the system and is able only to listen.
Please note that it is not possible to spy calls if their Server IDs do not match Spy Device Server
ID of the user (admin/reseller) who is viewing the calls. Icons for such calls are fainted:

Enable/disable this functionality


Enable
1. For administrator select Spy device in Personal Menu -> Details.
2. For Resellers go to reseller's settings.
Select a desired device where you want the system to send a call being spied:

Kolmisoft 2006-2013

590

Disable
You can also globally disable ChanSpy. Go to ADDONS -> Monitorings -> Settings. You will see
this window:

Select Chanspy is disabled globaly: and click Save changes.

What is needed to use this feature?


Admin:

System must have Monitorings Addon

A spied device cannot have recordings enabled at the same time. If this condition is not
met - you will not be able to spy this device.

Reseller:

System must have Monitorings Addon

Active calls must be enabled for resellers

A spied device cannot have recordings enabled at the same time. If this condition is not
met - you will not be able to spy this device.

Other setttings
When spying you can press # to increase/decrease sound volume.
Available sound levels:
1 2 3 4 -4 -3 -2 -1 0(default)
Here:
-4 - is the quietest
4 - is the loudest

Kolmisoft 2006-2013

591

Limitations
If you have 2 Asterisk servers in your system, both devices for the "Spy action" have to registered
to the same Asterisk server.

Call Shop Addon


What is Call Shop?
A callshop is a business that physically provides phones for the purpose of making long-distance
telephone calls. More information can be found in Call shop page at wiki.

What is a Call Shop Addon?


It is an additional functionality which allows to have and manage Call Shops for Admin and
Resellers.
Download Call Shop Brochure here
[http://www.kolmisoft.com/uploads/files/Call_Shop_Brochure.pdf].

Typical Call Shop Scenarios


Prepaid

Customer visits the call shop.


Customer pre-pays the operator for the call.
The operator will then activate a phone booth for the customer using billing software.
The customer will go to the phone booth and dial the destination number.
Billing software will record the call details and the corresponding call charges for future
reporting needs.

Kolmisoft 2006-2013

592

Postpaid

Customer visits the call shop.


Customer chooses a vacant phone booth and dials the destination number.
Billing software keeps track of each phone booth's call details and the corresponding call
charges for invoicing and future reporting needs.
When the customer has completed his/her calls, the operator generates an invoice for the
customer's calls.

Manager's view

Call Shop Management in Admin's/Reseller's view

Kolmisoft 2006-2013

593

Terms
Reseller
Reseller is a Call Shop owner. Reseller can have many Call Shops.
Manager
Manager is a person who works for reseller. He works in a Call Shop and does these tasks:

Takes money from users


Gives change to a user
Prepares a Call Booth for a user, so he would be able to call

Manager user belongs to reseller

Call booth
Call booth is a special user in MOR billing system dedicated for use in a Call Shop.

Call booth user belongs to reseller.

How to create a Call Shop?


1. You have to be Logged in as an admin or a reseller
Kolmisoft 2006-2013

594

2. Navigate to ADDONS -> Call Shop:

3. Select the marked icon:

4. Fill the required fields and press Create:


Name - the name for Call Shop
Manager's interface language - this will be the default language for Call Shop manager (the
person who will accept payments, enables call booths, etc.)
Invoice details (as seen in the invoice header) - the information you will enter here will be
displayed in the invoice.

Kolmisoft 2006-2013

595

5. Now you have to assign some call booths, select the marked icon to do that:

6. Select a required user from dropdown box (marked with number 1) and press a Add user as
booth (marked with number 2):

Very important! You have to dedicate user's for call shop booths, that means you must not
use these users anywhere else in MOR.
In this way add as many users as you need.
When there is no manager assigned in Call Shop when adding new call booth you will be offered
to mark it as a manager. Please do so. If you skip this step you can mark a booth as a manager by
pressing a marked icon:

Kolmisoft 2006-2013

596

Now you can see, that user's type was changed to manager and you can see a new icon: Login as
manager. You can use this icon to quickly access the manager's view to help him solve problems.

P.S. The manager has his own way to access his manager view. Check How can manager
access his management interface? section in Call shop addoin page for more info.

Call Shop manager interface


How can manager access his management interface?
1. The manager has to enter the server address in his browser (the same way as you access
MOR gui). Most commonly it would look like this: http://www.example.com/billing or
http://x.x.x.x/billing, where x.x.x.x is an IP address.
2. In open window the manager has to enter his Login and Password:

Kolmisoft 2006-2013

597

3. If Login and Password is correct the manager is redirected straight to his manager interface:

How can the manager assign a call booth for a user?


To assign a call booth the manager has to complete these steps:
1. Press the marked icon:

Kolmisoft 2006-2013

598

2. After pressing the start button the following settings window will appear:

3. Now the manager has 2 options - to mark the user as prepaid or postpaid:
Prepaid - user pays before a call.
1) To mark a user as Prepaid select the marked check box (number 1).
2) In box 2 enter the amount of money the user has paid.

Kolmisoft 2006-2013

599

3) Press the button marked with number 3

Postpaid - user pays after a call.


1) To mark a user as Postpaid select the marked check box (number 1)

Kolmisoft 2006-2013

600

2) Press the marked button with number 2

The field Comment can be used to remind yourself some specific details about a user like "The
man with a hat" or/and to include some personal info about this user like his Name, Surname,
Driver's licence number etc. as this is a requirement in some countries. This field is not limited
by any size limits.
4. The booth status changes to reserved (user didn't called any number yet):

The user can make a call now

Kolmisoft 2006-2013

601

How can the manager stop the user call session, write invoice and take
money?
1. Firstly you need to press the marked icon:

2. The window expands and you will see a lot of valuable information about the current user call
session. You can see how much money the user has paid and how much money should be
returned to user if his call session type was Prepaid.
The session is NOT ENDED until you press the marked button:

Kolmisoft 2006-2013

602

3. When you press the marked button (End Session and Generate Invoice) the call session is
stopped (the user will not be able to make any calls) and an invoice is generated. You can find
the generated invoice in Invoices section - press the marked button:

4. To view and print an invoice press the marked icon:

User type is prepaid, how can I top up his balance during the call?
1. Click the marked icon:

Kolmisoft 2006-2013

603

2. Enter the required amount (marked with number 1) and choose to increase (marked with
number 2) or to decrease (marked with number 3) the current user balance.

3. Depending on what you have chosen (Increase or Decrease) you will see a similar confirmation:

Press the marked button to confirm.


4. The balance get's changed.

Kolmisoft 2006-2013

604

Call Shop taxes


Taxes are counted and shown in Call Shop invoices only if they are set in that call
booth's user settings (this allows you to have different call booths with different taxes)
How to enable taxes for a call booth?
1. Go to ADDONS -> Call Shop:

2. Go to Call booths:

3. Now select a booth you want to set tax:

Kolmisoft 2006-2013

605

4. Find a displayed section in settings and set tax for a call booth:

More information about taxes can be found in multi-tax system page at wiki.
5. Save the changes
Now when you will end a calling session an invoice will be generated with taxes:

Rate search

Kolmisoft 2006-2013

606

Internal information on how Call Shop addon works


When an ordinary user is added to callshop - it is automatically blocked so he would not be able
to make calls. When calling session is started by the manager - it is unblocked (can make calls
now). When the session is ended - the user account is blocked again. You can always check
current booth blocked/unblocked status from admin or reseller in that booth details.
Please do not interfere with MOR system and do not change Blocked/Not blocked status
for call booth users.
When Call Shop Manager creates Prepaid or Postpaid session in Call Shop - MOR system also
changes Postpaid/Prepaid option and balance for that call booth user. Please do not edit these
options manually - it is not necessary.

Features which might be implemented in the future


1. Information about a number: you enter the number and get the information about the price,
destination, pricing type (per minute, per second, etc)
2. Possibility for admin to hide some reseller features if needed:

Hide Settings

3. Possibility to hide Comment field from manager view


4. Possibility to hide Price/Min field from manager view
5. Auto drop a call after a predefined amount of minutes. This setting will allow to drop a call for
example after 2 minutes if user want's to pay only for a two minutes.
6. Statistics for each Call Shop: Money collected, Calls made, etc.

Other notes

1 call booth (phone) = 1 MOR user with 1 device. If there are more than 1 device assigned
for a user - please leave only 1.
The number of call booths (phones) is unlimited for each Call Shop

Questions and Answers


Which user should have the credit in order Call Shop could make outgoing calls

Kolmisoft 2006-2013

607

That depends. If reseller uses his own providers - he must have enough balance (if he is
prepaid) on the provider side to make calls. If reseller is using admin's providers - then reseller
must have enough balance in MOR in order Call Shop call booths could make calls.
Call Shop manager and a call booth does not need to have any balance. Zero balance is OK.
When the call session is terminated by Call Shop manager - call booth balance is reseted to 0.00

Which browser should I use for manager view for best user experience?

For best experience use Mozilla Firefox. You can get it here [www.mozilla.com]

How many users should I add to a Call Shop?

You should add 1 manager (you will not be able to see this user in Call Shop manager's
view as it is needed only for administrating purposes)
You should add as many ordinary users as you need. This number depends on how many
phone booths (to simplify: phones) you have in your 1 call shop.

For example: You have 8 call booths (phones) in your call shop - then you need to create 9
users. 1 user account for a manager and 8 for call booths (phones).
How to setup tariffs (prices) for a Call Shop
Please refer to tariffs section in MOR manual to answer this question in detail. All information is
valid for Call Shop also, because Call Shop users are the same MOR user's just logically grouped
into Call Shops.
Basic scenario how admin/reseller should setup a Call Shop with tariff
1. Create rates (tariff import). More information about: rates
2. Assign that tariff to the users he will use in Call Shop
3. Create Call Shop and assign users to Call Shop as booths
Done, now Call Shop manager (the person who sits in Call Shop and collects money) enables call
booths from manager interface by assigning them credit/balance.

Kolmisoft 2006-2013

608

Other notes

Admin/Reseller can change Call Shop prices by assigning a different tariff for a call both
(user).
Call Shop booths (users) cannot change prices.
Admin can check his resellers rates by loging in as reseller.

How to setup a call booth that it would bill in increments: per second, per minute or
preferential?

This can be achieved by creating a separate tariff with such settings. Then you will have to
assign this tariff for each Call Shop call booth (phone).

I would like that Call Shop owner would be able to import tariffs for his Call Shops, how to
do that?

Create a reseller account for each Call Shop owner.

I want to separate billing statistics per Callshop

Create a Reseller account per each Call Shop and configure Call Shops on these Resellers.
Billing information will be separated per Reseller.

See also

What is a reseller?
What is a Call Shop?
Tariffs
MOR Addons

Kolmisoft 2006-2013

609

Provider billing addon


Description
Provider billing addon allows reversed billing - it counts provider's balance which increases when
admin or reseller makes a call through it.

Balances
Provider has balance which increases when call goes over this Provider. E.g. Provider receives
money for the calls over him.
If Provider is assigned to the User then such Provider can make calls. When Provider (which is
assigned to the User) makes calls, such calls goes over other Providers and User's (to which
Provider is assigned) balance is decreased.
IMPORTANT! Provider's balance and User's balance are two different values. They are not
connected and do not impact each other. They change independently of each other.

Manual payment for Provider balance


To add manual payment for provider in main provider billing addon window click
be lead to this window:

Kolmisoft 2006-2013

and you will

610

Click Proceed:

Click Confirm. You will be redirected to Payments window and see this payment if everything is
correct.
Please note that adding positive Amount will decrease provider's balance and adding negative
will increase it. Balance - amount = new balance.
Reseller can use this feature only on that reseller's providers.

Using the addon


To reach the provider billing go to ADDONS -> Provider billing. You will see this window:

By clicking

Edit you will be lead to provider's edit window.

Kolmisoft 2006-2013

611

Limit to device or provider per day


After you were lead to provider's edition page you can select a minute limit per day for provider.
You will find it in Advanced block.

If the limit is exceeded that provider is disabled which means it is not available to make calls
through it anymore. If you add a value of zero, no limit will be applied.
To apply this functionality to device go to SETTINGS -> Setup -> Default device and
see Advanced block.
This functionality is available only if provider billing addon is enabled.

Tutorials
Usual configuration sequence
1) Make a provider's tariff, then import it.
2) Make a provider, then assign the provider's tariff to the provider itself.
3) Make a user tariff by adding a % on top of the provider tariff.
4) Make a user.
5) Make at least one device for user.
6) Make LCR.
Kolmisoft 2006-2013

612

7) Add your provider to LCR and assign it to your user.


8) It is a good idea to check whether everything is working by using call tracing.
9) Register your device to MOR using your user's device details (username and password (not
PIN)) and then make a call.
If you have any questions or suggestions, or can't solve a problem on your own, please use our
forum or support system, or just send an email to support@kolmisoft.com

Conference with MOR + Trixbox


IT IS NOT POSSIBLE RUN CONFERENCES ONLY WITH MOR. YOU NEED
EXTERNAL SOFTWARE, SUCH AS TRIXBOX.

Kolmisoft 2006-2013

613

Tested with 0.7, 0.8 MORs and 2.6.2.3 Trixbox.

Settings for MOR


First of all you need a user and device in MOR [http://www.kolmisoft.com/billing-and-routing/]
for a DID channel. Make sure you use IP authentication and use the exact settings in the image
below (change 192.168.0.165 to Trixbox's IP address, and Trunk? should be set to Yes).

Kolmisoft 2006-2013

614

Create a DID and map it to the device.

Settings for Trixbox


Log in as administrator to Trixbox and create a Trunk with the following settings: Change
192.168.0.148 to your MOR server IP address and 1005 username and secret to the appropriate
settings.

Kolmisoft 2006-2013

615

Create a Conference with these settings:

Kolmisoft 2006-2013

616

Then create a DID (Inbound route):

Kolmisoft 2006-2013

617

Then try to call from any device to 8000 in MOR. You should hear a woman's voice and
instructions on what you need to do.
Of course, if you change settings everywhere from 8000 to your real DID, it will work as well.

A few hints
For each new conference room you will need a separate device and a DID in MOR.

How to configure 911 service


Description
This guide will show how to configure 911, 411 or any other similar service.
You can read more about it at: VoIP 911 Services
[http://www.myvoipprovider.com/VoIP_911_Service].
First of all, you need a provider that will allow you to use such a service. Some such providers
may be found here [http://www.voip-info.org/wiki/view/VOIP+911+Service+Providers].
When you buy a service from such a provider, he will give you an access number to dial.
As an example, let's take the number 12125551212, which should be dialed to access the service.

Short guide
In order to configure number 911, we will need to:

Create a User/Virtual Device for the 911 service.


Forward a Virtual Device to 12125551212.
Create a DID 911.
Assign a Virtual Device to DID 911.

Kolmisoft 2006-2013

618

Detailed guide
Create User/ Virtual Device for 911 service:

Forward Virtual Device to 12125551212:

Kolmisoft 2006-2013

619

Create a DID 911 and assign a Virtual Device to it:

Another way

Create User 911.

Create Virtual Device with Extension 911 for this user.

Make correct LCR for this user (with correct Provider which can handle 911 calls).

In Devices Call Flow, Forward the call to the External number given by your Provider.

How to make several connections from one IP


Description
In order to separate traffic, it is sometimes necessary to make several connections to MOR from
one IP (usually a server).
The main rules for how to do this are:
1. Devices should be DYNAMIC and should REGISTER to MOR.
2. In the INVITE packet from the external server, which device is dialing should be visible in
the From: line. (If the external server is Asterisk, then in the MOR descriptions (in sip.conf
file) on the external server, there should be fromuser= lines that point to which device is
dialing. Check explanation in details below).
If the devices are not configured properly, then a call from external server to MOR is possible, but
only one device will be billed all the time or only one trunk will be active (it depends on the
misconfiguration).
Possible error on misconfiguration:
WARNING[2836]: chan_sip.c:8385 check_auth: username mismatch, have <XXXX>, digest has
<YYYY>

Kolmisoft 2006-2013

620

SIP INVITE packet


As described previously, the correct SIP INVITE packet should be received in order for MOR to
authenticate the user correctly.

Good SIP INVITE packet


INVITE sip:3908155xxxxx@82.215.xxx.xxx SIP/2.0
Via: SIP/2.0/UDP 82.215.xxx.xxx:5060;branch=z9hG4bK50ef8b9b;rport
From: "39081761xxxxx" <sip:1028@82.215.xxx.xxx>;tag=as3b117c95
To: <sip:390815517304@82.215.xxx.xxx>
Contact <sip:1028@82.215.xxxx.xxx>
Call-ID: 2f6f09f8498065164a9aadae5ef123cf@82.215.xxx.xxx
CSeq: 102 INVITE
User-Agent: Asterisk PBX
Max-Forwards: 70
Date: Fri, 19 Feb 2010 12:28:03 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Content-Type: application/sdp
Content-Length: 242
Bad SIP INVITE packet
INVITE sip:3908155xxxxx@82.215.xxx.xxx SIP/2.0
Via: SIP/2.0/UDP 82.215.xxx.xxx:5060;branch=z9hG4bK7edd0b9e;rport
From: "3908176xxxxx" <sip:3908176xxxxx@82.215.xxx.xxx>;tag=as1b7e883e
To: <sip:3908155xxxxx@82.215.xxx.xxx>
Contact: <sip:3908176xxxxx@82.215.xxx.xxx>
Call-ID: 1efdd14505519d1a6b769e5c269f555d@82.215.xxx.xxx
CSeq: 103 INVITE
User-Agent: Asterisk PBX
Max-Forwards: 70
Proxy-Authorization:
Digest
username="1028",
realm="asterisk",
algorithm=MD5,
uri="sip:3908155xxxxx@82.215.xxx.xxx",
nonce="0f96c765",
response="df7b502821c03ad43222d007b20dbf84", opaque=""
Date: Fri, 19 Feb 2010 12:17:41 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Content-Type: application/sdp
Content-Length: 242

Kolmisoft 2006-2013

621

Example
Let's say we have MOR and another Asterisk server from which we want to configure two
connections to MOR.

MOR configuration
First, on MOR we need to describe such connections as Devices for different Users.
We will create two devices, 1028 and 1009, for these connections:
(Important parts are marked in RED)

Kolmisoft 2006-2013

622

Remote server configuration


The remote server in our example is Asterisk, so its configuration should be in sip.conf file, which
describes both connections and registers to MOR:
[general]
register => 1028:ewpjxxxx@82.215.xxx.xxx/1028
register => 1009:ca5hxxxx@82.215.xxx.xxx/1009

[authentication]
[mor1028]
canreinvite=no
host=82.215.xxx.xxx
user=1028
username=1028
secret=ewpjxxxx
type=peer
fromuser=1028
[mor1009]
canreinvite=no
host=82.215.xxx.xxx
user=1009
username=1009
secret=ca5hxxxx
type=peer
fromuser=1009

Limitations
It is not possible to send CallerID from a remote server this way, because "fromuser" overwrites
the CallerID field.
You can only hardcode CallerID in MOR for every user account.

Kolmisoft 2006-2013

623

How to forward calls when device is offline


1. Go to SETTINGS -> Users -> Devices and from opened device list choose a device. Click
icon which will lead you to Call Flow page.
2. In the Call Flow window choose Failed and click

icon:

3. In the Action dropdown choose Forward and click Change:

Kolmisoft 2006-2013

624

4. In Data section select whether you want it to be forwarded to a local device (choose one from
the dropdown) or an external number (enter the number), choose CallerID settings and click
Change:

Call flow is ready!

How to be secure using MOR


This guide will give you some hints where you could improve your MOR system security.

Passwords
1. Never give passwords to people you do not trust
2. Use only secure passwords:

Your passwords must be at least 12 symbols length

Your passwords must contain letters (a-z)

Your passwords must contain numbers (0-9)

Your passwords must contain special characters (!@#$%^&*() and so on..)

Kolmisoft 2006-2013

625

3. You must use different passwords for all types of services, for example MOR GUI, ROOT,
phpmyadmin and stats passwords must be different.
4. When using SSH - please consider using SSH keys [http://docs.redhat.com/docs/enUS/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s2-ssh-configuration-keypairs.
html] instead of passwords. More information about SSH can be found here
[http://en.wikipedia.org/wiki/Secure_Shell].
5. Change passwords regularly. Some guides how to do it:
1. Change root password [http://wiki.kolmisoft.com/index.php/I_want_to_change
_a_root_password]
2. Change stats password [http://wiki.kolmisoft.com/index.php/I_want_to_change_
Eluna_stats_password]
3. MOR GUI password - change it from user details
6. Change all default MOR passwords after installation.

Devices
1. Make sure you carefully understand what each device setting means.
2. Do not enable Insecure port + Invite [http://www.voip-info.org/wiki/index.php? page=
Asterisk+sip+insecure], unless you understand what these settings mean!
Device passwords

Always create secure (as stated above) passwords for devices if you want to avoid loss.

Multiple accounts registration


In order to prevent multiple accounts registration from the same user - you can implement an
SMS based user verification using MOR API [http://wiki.kolmisoft.com/index.php/
MOR_API_user_register] and a technique described here [http://forum.kolmisoft.com/
viewtopic.php?f=4&t=1648&p=9132#p9122].

Kolmisoft 2006-2013

626

MOR good practices


1. It is recommended to disable public new user registrations or to be careful with:
Default user settings - it is common for new users to do these mistakes:
a) DO NOT put any initial balance - if you do so you will give money for calling for
your new customers for free - such service is often abused and one or more users
make a lot of of free account registrations to call for free.
b) DO NOT MAKE USER POSTPAID - if you do so with public registrations enabled
and you set any credit for that user (it can also be automatically applied from
default user settings) - that user will be allowed to call for free and you risk that the
unknown customer will not pay you.
c) DO NOT GIVE ANY CREDIT in default user settings - if a credit is given and the
user is postpaid - he is allowed to call till he reaches this limit. Very dangerous
when being used with public user registrations.
2. Do not connect external PBX systems or at least ensure that they ARE SECURE. Please read
more about this here, here and here.
3. Use Action log feature in MOR to monitor suspicious users actions in MOR system. Keep
an eye on Hacking attempt messages here - they indicate that the user is trying to
access MOR GUI places/features which are not allowed for him to use. More information
about Action log can be found here.

Additional software to increase MOR system security


MOR Monitorings Addon [http://wiki.kolmisoft.com/index.php/Monitorings_Addon]
Monitorings Addon addon will protect your from high money losses. More information about
this addon can be found here.

Fail2Ban
Fail2Ban [http://wiki.kolmisoft.com/index.php/Fail2Ban_installation] is installed by default in MOR
systems and protects these services against brute force attacks:

SSH
Asterisk - from registration attacks
Apache - from scanning bot attacks

More information about Fail2Ban can be found here [http://wiki.kolmisoft.com/index.php


/Fail2Ban] and here [http://wiki.kolmisoft.com/index.php/Fail2Ban_installation].

Kolmisoft 2006-2013

627

Iptables
It is a default Linux firewall and is installed by default in all MOR systems. Although additional
configuration is needed in order it would protect you:

Configure iptables that it would accept connections only to ports required for MOR system to
work.
More
information
about
these
ports
can
be
found here
[http://wiki.kolmisoft.com/index.php/Ports_which_should_be_opened].
Allow connections to SSH (default TCP Port: 22) only from support.kolmisoft.com and systems
you trust.
If MOR GUI is not required for your business model - you can block access to it too (Default
TCP ports: 80/443). Only remember to allow access to it from support.kolmisoft.com and the
systems you trust.

Does Fail2ban block calls with hang up cause code 200?


No, Fail2ban do not block these calls, because this tool blocks registrations attempts to Asterisk
which where failed number of times in a short time period,
but Fail2ban do not block calls which are not making any registration. In this case it do not block
calls with 200 hang up cause code.
See also:
http://wiki.kolmisoft.com/index.php/Lots_of_calls_made_by_System_Admin_user

Services

Apache (httpd) - you must use SSL in order you and your users could surf MOR GUI safely.
More information about installing SSL can be found here.
Asterisk - do not connect external PBX systems or at least ensure that they ARE SECURE.
Please read more about known insecure PBX systems here [http://nerdvittles.com/?
p=737], here [http://www2.elastix.org/en/component/kunena/116-security/73040-how-tochange-the-default-asteriskuser-password.html] and here
[http://blogtech.oc9.com/index.php?
option=com_content&view=article&catid=18:securite--security&id=263:security201104&Itemid=6].
SSH - you can go even further securing the SSH - you can limit the number of allowed SSH
connections per minute. For more information please check this guide.

Kolmisoft 2006-2013

628

Various security related guides

How to block/unblock someone's IP

Very advanced techniques for highly technically skilled people


For these techniques Kolmisoft does not provide any support.

Port knocking (can be used for SSH or GUI access if it is not used publicly). More information
about this technique can be found here.
Intrusion prevention systems: Cisco Suricata

Other information regarding increasing MOR security

Forum1

Protection against Brute-force attacks


If you try to login to MOR system unsuccesfully 3 times in a row (via GUI or API) you will have to
wait 10 seconds to login again.

Kolmisoft 2006-2013

629

You might also like