Calling Cards External Script

From Kolmisoft Wiki
Jump to navigationJump to search


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!


Asterisk AGI and C programming knowledge is necessary to use this feature.



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 users (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
  • 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:


Card group edit ext script no.png

Turn it ON:


Card group edit ext script yes.png

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:


Cc external1.png

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.


Cc external2.png

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.



See also