M2 Origination Points

From Kolmisoft Wiki
Jump to navigationJump to search

Origination Point is connection from some initial entity (device/line/trunk/provider/supplier/etc) where call starts/originates.

Call comes from Origination Point and goes to Termination Points.


  • Ringing Timeout - allows to limit ringing duration (in seconds). Leave 0 for unlimited.
  • Call Timeout - allows to limit Call duration (in seconds). Leave 0 for unlimited (global Call timeout (7200 seconds) is still applicable in this case).


Origination Points (OP) can be assigned to one or more servers. If call comes from server where OP is not assigned, call will not go through.

Authentication Simple

Static IP:

M4 auth simple ip.png

  • IP Address - IP Address of Origination Point (subnetting and IP range is allowed. For more information read Subnetting and IP range sections below).
  • Port - Port of Origination Point.
  • Tech. Prefix - Destination technical prefix that is used to authenticate OP. If this field is empty, calls will be accepted with any Destination number only based on IP:PORT. If this field is not empty, then only calls with specific prefix in Destination will be authenticated (for example if Tech. Prefix is 00, then OP accepts Destination numbers which start with 00xxxxxxx).

Dynamic IP:

M4 auth simple dynamic.png

  • Username - Username you enter in your Device.
  • Password - Password you enter in your Device.
  • Status - Registration status
  • UNREGISTER - last registration information will be deleted (ipaddr, port, fullcontact).
  • Tech. Prefix - Destination technical prefix that is used to authenticate OP.

Authentication Advanced

Static IP:

M4 auth advanced ip.png

Dynamic IP:

M4 auth advanced dynamic.png

Old Format transformation rules can be found here and here.

Regexp transformation format is:


  • match_expression - POSIX regular expression
  • replacement_expression - replacement expression with back references to matched tokes: \1, \2, …, \9
  • flags:
    • i - match ignore case
    • g - replace all matches

Before putting Transformations to production, it is advisable to test them on various values.

Test in Linux console

Execute sed command (add s before transformation s/regex/replacement/flags):

echo '00370123456789' | sed -E 's/^00//'

Test in online sed live editor

If you do not have access to the Linux console, use https://sed.js.org/ (or any other online sed editor).

Validate regex

Regex part of a Transformation can be validated using https://regexr.com/ (or any other online regex editor).


Transformation Original number Modified number Comment
/^00// 003701234567 003701234567 Cut prefix 00
/^370/8/ 370123456789 8123456789 Replace 370 with 8
/\+// +370123456789 370123456789 Cut + (here + is escaped by \ since it is special regex symbol)
/\+370/86/ +370123456789 86123456789 Cut prefix +370, add prefix 86
/\+?(.*)/+\1/ 370123456789 +370123456789 Add + if it is not present already

Origination Point


  • Act as Origination Point - if set to 'yes', this Connection Point will be handled as Origination Point.
  • Active - allows to activate or deactivate OP. If OP is deactivated, calls will not be accepted from this OP.
  • Destination Transformation - special Destination Transformation rules used to modify outgoing number. Rules are applied before billing so it can be used to correct non E164 formats.
  • Source Transformation - special Source Transformation rules used to modify Source number.
  • Routing Algorithm - defines how Termination Points are ordered for this Origination Point.
  • Routing Group - Routing Group used for OP routing.
  • Use MNP - enable MNP for this OP.
  • MNP Routing Group - name of Routing Group used for MNP.
  • Capacity - limit the number of concurrent calls for this OP (both ringing and answered calls are included in this limit).
  • Source (CallerID) Allow - regular expression (regexp) that defines which CallerIDs are allowed to go through this OP. If you want to allow all CallerIDs, enter .* in this input field.
  • Source (CallerID) Deny - regular expression (regexp) that defines which CallerIDs are denied to go through this OP.
  • Custom Tariff - Custom Tariff that can override regular OP Tariff. If rates are found in Custom Tariff then these rates will be applied in accounting. If rates are not found in Custom Tariff, then regular OP Tariff is used.
  • Conditional Tariff : XXXXX (description why and how to use it here)

Change Tariff and (or) Routing Group if:

    • CallerID matches/not matches Rule-Set: Number Pool Rule Set
    • Use CallerID Number from PAI Header if available: No / Yes
    • and if Destination: do not use/matches/not matces Rule-Set Number Pool Rule Set
    • Using this option it is possible to Use other tariff if CallerID and Destination matched Rule-Set. It is possible to create a Rule-Set at Maintenance - Number Pools. Also, it offers possibility to use CallerID Number from PAI Header if available.
  • Default Tariff - Tariff used for OP accounting if previous option is not used.
  • USA Jurisdictional Routing - Jurisdictional routing is telephone call routing logic based upon the locations of the calling and called number and regulatory considerations. More information can be found here Here.
    • M2 - Can be enabled by Kolmisoft only. Please contact support to enable.
      • Intra Tariff- Tariff for Intrastate routing. Calls between two points within the same state
      • Inter Tariff - Tariff for Interstate routing. Calls made from one state to another
      • Indeter Tariff - Tariff for Invalid ANI, or indeterminate routing. Calls where the calling number is any value other than a valid telephone number—these are usually rated at the intrastate rate
    • M4: M4 configuration available here


  • Name - set name part for CallerID.
  • Number - set number part for CallerID.
  • Random Number from Number Pool - set random number from Number Pool. Only number part for CallerID is set.
    • Random - Send random CallerID from Number Pool.
    • Pseudorandom with Deviation - Range can vary from 0 to 9999999. If 0 is chosen, then all numbers will be chosen same amount of times. If 9999999 is set, then numbers will be completely random.


Set which codecs are allowed for OP.

  • Inherit leg B Codecs - if enabled, system will try to force leg B negotiated Codec to leg A. If leg A does not support that Codec, then system uses any other available Codec. This option is used to prevent transcoding in some cases. More information can be found here.


  • Grace Time - if call duration is less than Grace Time, it will not be accounted (CDR will be generated, but OP balance will not be reduced).
  • Custom SIP Header - adds custom header to SIP request. Format is header: value (for example x-My-Custom-Header: my value).
  • Limit up to X Calls, during Y seconds - allows to control Calls per Second (CPS).
  • Disable Q.850 Reason - by default M2 returns Q.850 Reason header in SIP responses to Originator. This can be disabled by setting this option to "yes".
  • Bypass Media - when set, the media (RTP) from the originating endpoint is sent directly to the destination endpoint and vice versa. The signaling (SIP) for both endpoints still goes through M2, but the media is point-to-point.

Advanced Origination Point Settings

  • Accept calls from any port - if set to 'yes', then calls from any port are accepted. If set to 'no', then only calls from a specific port are accepted (see Port input field in authentication section).
  • Change RPID/PAI Host - allows overwriting original host address in RPID/PAI header with proxy server's IP address.
  • Use Destination from INVITE request - by default M2 uses Destination number from SIP To header (To: <sip:123@sip.com>). If you set this option to "yes", M2 will use Destination number from SIP INVITE request line (INVITE sip:123@sip.com SIP/2.0).
  • Ring instead Session Progress - if enabled, M2 translates SIP 183 Session Progress from terminator side to SIP 180 Ringing to originator side (M2 receives SIP 183 from terminator but sends SIP 180 to the originator).
  • Send CallerID in Contact header - when this option is enabled, the Contact header will be set to CallerID number.
  • Disconnect Code Changes - allows changing hangup code which is returned to OP.
  • Use PAI Number for Routing - uses PAI Number instead of FROM callerID for routing.
  • Send PAI Number as CallerID to TP - uses PAI Number as CallerID.
  • Forward RPID - by default forward RPID header from Originator to Terminator. This can be disabled by setting this option to "no". More info
  • Forward PAI - by default forward PAI header from Originator to Terminator. This can be disabled by setting this option to "no". More info
  • PAI Transformation - apply Transformation on PAI header. More info
  • RPID Transformation - apply Transformation on RPID header. More info
  • Ignore SIP 183 without SDP - by default disabled. Select Yes to enable the option.
  • Ignore SIP 180 after 183 - by default disabled. Select Yes to enable the option.
  • Allow to use own User's TPs - by default, it is not allowed to route the call through TP which belongs to the same User. Such call results in HGC 339. By setting this option to Yes, you can disable this protection.


It is possible to set subnetwork (subnet) for Origination Point. Subnets allow you to have single Origination Point for multiple IP addresses. Instead of IP address, you can set subnet in IP Address input field. Subnet should be written in CIDR notation (for example When subnet is used in Origination Point, all calls coming from that subnet will be authenticated.

M2 subnet value range is 4-30.

You can use online subnet calculator to check IP addresses for given subnet.

IP range

If you need to set multiple IP addresses for single Orignation Point and Subnetting does not meet your needs, then you can set IP ranges. Ranges are written in the following format:


When IP range is used in Origination Point, all calls coming from that IP range will be authenticated. For example, if we have IP range, then all IP addresses starting from to will be authenticated (50 different IP addresses are allowed to call to this Origination Point).