<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.kolmisoft.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bogdan</id>
	<title>Kolmisoft Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.kolmisoft.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bogdan"/>
	<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php/Special:Contributions/Bogdan"/>
	<updated>2026-05-31T02:18:27Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=M4_Users&amp;diff=27470</id>
		<title>M4 Users</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=M4_Users&amp;diff=27470"/>
		<updated>2022-07-12T11:44:53Z</updated>

		<summary type="html">&lt;p&gt;Bogdan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Where to find user details?=&lt;br /&gt;
&lt;br /&gt;
Go to '''SETTINGS –&amp;gt; Users'''&lt;br /&gt;
&lt;br /&gt;
Here you can see list of all users.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
[[File:M4_Users_path_2.png]] &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
Select the [[image:icon_edit.png]] icon in window above and you will reach personal User settings page. In this window you will see a lot of options grouped into sections.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---This functionality is available from MOR X4---&amp;gt;&lt;br /&gt;
'''NOTE''' that admin is not shown in Users list. To see your own details go to '''PERSONAL MENU –&amp;gt; Details'''.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Select the [[image:icon_edit.png]] Bulk management icon in a window above to access bulk management options.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
[[File:M4_Users_path_bulk_management.png]]&lt;br /&gt;
&lt;br /&gt;
= Details update = &lt;br /&gt;
&lt;br /&gt;
Every User can update his own details in '''PERSONAL MENU –&amp;gt; Details'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
To disallow users to change their details Admin/Reseller has to check setting &amp;quot;Do not allow users to change their Personal Details&amp;quot; in '''SETTINGS -&amp;gt; Setup -&amp;gt; Settings -&amp;gt; Various'''. After this User Details can only be updated by user's owner.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE''' that even if User is not allowed to update his own details, he still can see it in '''PERSONAL MENU –&amp;gt; Details''' as form with not editable options.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= General =&lt;br /&gt;
&lt;br /&gt;
* '''Status''' - indicates User status for accounting purposes. It is just a note and does not affect functionality in any way.&lt;br /&gt;
* '''Username''' – username for user to login to MOR GUI.&lt;br /&gt;
* '''Password''' – password for user to login to MOR GUI.&lt;br /&gt;
* '''Suggest strong password''' - secure password will be generated and filled in the password field.&lt;br /&gt;
* '''2FA Enabled''' - enables two factors authentication for this User. Only visible if 2FA is enabled in system settings.&lt;br /&gt;
* '''[[Balance and Credit | Balance]]''' – the user's balance.&lt;br /&gt;
* '''Balance range''' – minimal and maximal balance which User will be able to have.&lt;br /&gt;
* '''[[Minimum contract billing | Minimal Charge for Calls]]''' – minimum charge user pays for voice calls.&lt;br /&gt;
* '''[[Minimum contract billing | Minimal Charge for Calls Date]]''' – date since when the previous option is valid.&lt;br /&gt;
* '''[[Hide Users | Not Hidden/Hidden]]''' – is this user hidden?&lt;br /&gt;
* '''[[Simultaneous call limitation | Call Limit]]''' – how many simultaneous calls the user can make?&lt;br /&gt;
* '''Max Call rate''' - set maximum allowed rate (price per min) when making calls (0 - unlimited).&lt;br /&gt;
* '''Price Protection''' - set User's Price Protection method. &lt;br /&gt;
** '''Off''' - Price Protection disabled (default)&lt;br /&gt;
** '''Minimal Rate Margin''' - if margin is lower than this value, call will fail with [[Rate margin is lower than allowed|HGC 324 - Rate margin is lower than allowed]]&lt;br /&gt;
** '''Minimal Rate Margin Percent''' - if margin percent is lower than this value, call will fail with [[Rate margin is lower than allowed|HGC 324 - Rate margin is lower than allowed]]&lt;br /&gt;
* '''Default Currency''' – User's default Currency&lt;br /&gt;
* '''Time Zone''' –  User's native Time Zone&lt;br /&gt;
* '''Time Format''' –  Available options - '''Default''' from general settings, '''H:M:S''', '''M:S'''. The option is taken into account when showing the user info on the GUI and creating invoices for the user.&lt;br /&gt;
* '''Responsible Manager''' – dropdown to choose Manager responsible for this User. (only Admin can set Responsible Manager)&lt;br /&gt;
* '''PBX Pool''' – PBX pool assigned to User&lt;br /&gt;
* '''Hide Non-Answered calls''' – with this option enabled simple user sees only answered calls in [[Last Calls]] and in Detailed Statistics page. &amp;lt;!-- veikia su x5_functionality_15 --&amp;gt; &lt;br /&gt;
* '''Ignore Global Alerts''' – check and User will be ignored on checking for [[M2_Alerts | Alerts]]&lt;br /&gt;
* '''Show Hangup Cause''' – allow User to see numeric hangup cause value (for example '''FAILED (41)''' instead of '''FAILED''').&lt;br /&gt;
* '''Round Call Price in CDR''' - Yes or No. This is not a visual setting. For E.g. Call Price will be saved in CDR rounded by these settings.&lt;br /&gt;
* '''Digits used for Price''' - round the call price to this many decimal places.&lt;br /&gt;
* '''Rounding method''' - rounding method to use for the call price.&lt;br /&gt;
* '''Rate Notification Template''' - [[Rate Notifications | select desired template]]'''&lt;br /&gt;
* '''Hide financial data in Quick Stats''' - if enabled, financial data in Quick Stats will be hidden.&lt;br /&gt;
* '''  Show Calls Statistics for last''' - allows to set a day amount limit on shown calls statistics.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Fraud Protection =&lt;br /&gt;
* '''Enforce Daily Limit''' - enable or disable Fraud Protection.&lt;br /&gt;
* '''Daily Spend Limit''' - limit in User's currency. When Daily Spend Limit value reached, the User cannot make more calls. Daily Spend Limit value is reset at midnight in the User's time zone.&lt;br /&gt;
* '''Daily Spend Warning''' - the User will receive an email with a warning message once set value reached.&lt;br /&gt;
* '''Kill Calls In Progress''' - kill all User's calls when Daily Spend Limit reached.&lt;br /&gt;
* '''Show Daily Limit''' - the User will see Daily Spend Limit in his account dashboard.&lt;br /&gt;
* '''Allow Customer To Edit''' - the User can set his Fraud Protection Daily Spend Limit value.&lt;br /&gt;
* '''Kill All Calls Now''' - all User's calls will be terminated.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Blocking =&lt;br /&gt;
&lt;br /&gt;
Various options for [[User Blocking]].&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Warning Balance Email =&lt;br /&gt;
&lt;br /&gt;
If you want to get and email notification or send it to a User and Accountant (or take another action) when his balance drops lower than a certain amount, check this setting and enter the desired amount.&lt;br /&gt;
&lt;br /&gt;
More details: [[M2 Warning Balance | Warning Balance]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Invoices =&lt;br /&gt;
&lt;br /&gt;
* '''Generate Invoice automatically''' – should we generate Invoices for this User automatically based on set Billing Period?&lt;br /&gt;
* '''Generate Invoice manually''' - should this user be included when we generate Invoice manually with option &amp;quot;All Users&amp;quot;?&lt;br /&gt;
* '''Billing Period''' – select period for which Invoice should be generated.&lt;br /&gt;
* '''Grace Period''' – select period for which Invoice should be paid by User. For example, if you generate Invoice for January 1-31, and you set Grace Period 15 days, then User will see Due Date February 15 (15 days after Invoice period end).&lt;br /&gt;
* '''Create Invoices on Manual Payments''' - generate an Invoice when a new [[M2 Payments | Payment]] (of type Payment from Client) is made. An invoice will be sent to the User's email and will be listed in the Invoice list. It is not possible to recalculate such an invoice.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Static Invoice Billing Period time ==&lt;br /&gt;
[[File:InvoicesStaticPeriod.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Static Billing Period time can be set to one of these values: Weekly, Bi-weekly, Monthly, Bimonthly, Quarterly, Half-yearly. &lt;br /&gt;
&lt;br /&gt;
Once the Period will be selected, information will be displayed about the First Day of the Period, the Last Day of the Period, and the Invoice creation date.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Every X days in Dynamic Periodic type==&lt;br /&gt;
&lt;br /&gt;
[[File:Everyxdaysm2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dynamic Periodic Type allows selecting flexible billing periods.&lt;br /&gt;
If '''Generation time:''' is set to 24 hours (default value), Invoice will be generated at midnight (00:00), at today + period day(s) + 2.&lt;br /&gt;
&lt;br /&gt;
For example, let's say today is 2018-09-06 and we choose parameter '''From date''' 2018-09-06 and parameter '''every 4 days''' and '''Generation time:''' 24 hours (default value).&lt;br /&gt;
System will start to generate the invoice at 2018-09-11 00:00:00  and invoice will be generated for period 2018-09-06 and 2018-09-09.&lt;br /&gt;
Next invoice generation will begin at 2018-09-15 and period for this invoice will be 2018-09-10 and 2018-09-13.&lt;br /&gt;
&lt;br /&gt;
If '''Generation time:''' is less than 24 hours, invoice will be generated at selected hour, at today + period day(s) + 1 day + Generation time. This is handy if we want to generate invoice for each day.&lt;br /&gt;
For example, let's say today is 2018-09-06  and we set parameter '''From date''' 2018-09-06 and parameter '''every 1 days''' and '''Generation time:''' 23 hours.&lt;br /&gt;
Invoice will be generated for 2018-09-06 00:00:00 - 23:59:59 at 2018-09-07 23:00:00. Next invoice will be generated at 2018-09-08 23:00:00 for 2018-09-07 00:00:00 - 23:59:59 and so on.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documents =&lt;br /&gt;
Here Admin can upload documents for simple Users. Each document can have a comment made by Admin. Admin can upload, download and delete documents for simple Users. &lt;br /&gt;
&lt;br /&gt;
Simple users can see these documents under their '''Personal Details''' menu. Simple User can only download documents, it is not possible to delete or upload new Documents for him/her.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:documents_admin.png]]&lt;br /&gt;
&lt;br /&gt;
= PayPal =&lt;br /&gt;
[[File:M2_users_paypal.png]]&lt;br /&gt;
&lt;br /&gt;
* '''Allow PayPal''' - enable or disable PayPal payments for user. If enabled, PayPal will be displayed on the user's dashboard.&lt;br /&gt;
* '''Need Approval''' - if enabled, the user's balance will be updated only when the admin confirms the payment.&lt;br /&gt;
* '''Credit Entered Amount''' - credit entered amount minus the calculated fee.&lt;br /&gt;
* '''Credit Net Amount''' - amount returned by PayPal minus the calculated fee.&lt;br /&gt;
* '''Charge Fee on Entered Amount''' - amount in percent.&lt;br /&gt;
* '''Charge Fee on Net Amount''' - amount in percent.&lt;br /&gt;
* '''Do not send confirmation email''' - if enabled, a confirmation email is not sent to the user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Details =&lt;br /&gt;
&lt;br /&gt;
Self-explanatory.&lt;br /&gt;
&lt;br /&gt;
If Country of Taxation is in the EU, validation of TAX Registration Number will be checked from this website: http://ec.europa.eu/taxation_customs/vies/&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Company Emails =&lt;br /&gt;
&lt;br /&gt;
Self-explanatory:&lt;br /&gt;
&lt;br /&gt;
* '''Main email'''&lt;br /&gt;
* '''NOC email'''&lt;br /&gt;
* '''Billing email'''&lt;br /&gt;
* '''Rates email'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Taxes =&lt;br /&gt;
&lt;br /&gt;
Here tax parameters are entered for the user.&lt;br /&gt;
&lt;br /&gt;
The tax system is explained [[Multi-Tax system | here]].&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Registration Address =&lt;br /&gt;
&lt;br /&gt;
Self-explanatory.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:'''&lt;br /&gt;
&lt;br /&gt;
From version 2.255, '''Email''' field was removed. All entered email addresses are moved to '''Main Email''' field in section '''Company Emails'''.&lt;br /&gt;
&amp;lt;!-- http://trac.kolmisoft.com/trac/ticket/16273 --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Blacklists / Whitelists=&lt;br /&gt;
&lt;br /&gt;
'''Enable static Source''' - enables static Blacklist or Whitelist&amp;lt;br&amp;gt;&lt;br /&gt;
* '''No''' - do not use any Blacklist or Whitelist&lt;br /&gt;
* '''Blacklist''' - choose [[Number Pool]] which will be used to block calls sent by User specific Source numbers. If User sends CallerID number which is in selected [[Number Pool]] then call will be hangup with hangupcause ''334 - Source number is in blacklist''&lt;br /&gt;
* '''Whitelist''' - choose [[Number Pool]] which will be used to allow User to send only specific Source numbers. If User sends number which is NOT in selected [[Number Pool]] then call will be hangup with hangupcause ''335 - Source number is not in whitelist''&lt;br /&gt;
&lt;br /&gt;
'''Enable static Destination''' - enables static Blacklist or Whitelist&amp;lt;br&amp;gt;&lt;br /&gt;
* '''No''' - do not use any Blacklist or Whitelist&lt;br /&gt;
* '''Blacklist''' - choose [[Number Pool]] which will be used to block User from calling specific Destination numbers. If User calls number which is in selected [[Number Pool]] then call will be hangup with hangupcause ''325 - Destination is in blacklist''&lt;br /&gt;
* '''Whitelist''' - choose [[Number Pool]] which will be used to allow User to call only specific Destination numbers. If User calls number which is NOT in selected [[Number Pool]] then call will be hangup with hangupcause ''326 - Destination is not in whitelist''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Note:''' when using Number Pools for Blacklist/Whitelist, it is possible to upload prefixes. To do so, just import prefixes with percent sign at the end (example: 370% will act as prefix for 370xxxxxxxx number).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Important:''' Blacklists / Whitelists work for Originator only. They will not work for Terminator.&lt;/div&gt;</summary>
		<author><name>Bogdan</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Data_import&amp;diff=27469</id>
		<title>Data import</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Data_import&amp;diff=27469"/>
		<updated>2022-07-12T09:39:56Z</updated>

		<summary type="html">&lt;p&gt;Bogdan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= User/Device/DID/CLI import =&lt;br /&gt;
&lt;br /&gt;
You must import the data in the following order '''from CSV files''':&lt;br /&gt;
&lt;br /&gt;
1. Users data&amp;lt;br&amp;gt;&lt;br /&gt;
2. Devices data&amp;lt;br&amp;gt;&lt;br /&gt;
3. DIDs data&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''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.&lt;br /&gt;
&lt;br /&gt;
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 -&amp;gt; Users -&amp;gt; Import''').&lt;br /&gt;
&lt;br /&gt;
Functionality is available for '''Admin''' and '''Reseller'''.&lt;br /&gt;
&lt;br /&gt;
== CSV file format ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Please note that such details like tariff, LCR, IDs should be specified in csv instead names.'''&lt;br /&gt;
&lt;br /&gt;
Example you have LCR called &amp;quot;My first LCR&amp;quot; this LCR ID is 2. You should specify in csv 2, but not My first LCR. &lt;br /&gt;
&lt;br /&gt;
Other way if you will not specify ID system will not find it.&lt;br /&gt;
&lt;br /&gt;
You can upload your data from a CSV file that has the following structure:&amp;lt;br&amp;gt;&lt;br /&gt;
1. Each record is started in a new line.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Each piece of record information is separated by commas (see the example).&amp;lt;br&amp;gt;&lt;br /&gt;
3. Text is enclosed within inverted commas (for example: &amp;quot;name&amp;quot;).&amp;lt;br&amp;gt;&lt;br /&gt;
4. Numbers are written without inverted commas (for example: 4).&amp;lt;br&amp;gt;&lt;br /&gt;
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 &amp;quot;include first line?&amp;quot; option when asked.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''For example:'''&amp;lt;br&amp;gt;&lt;br /&gt;
We have a CSV file named '''example.csv''' with the contents:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;id&amp;quot;, &amp;quot;username&amp;quot;, &amp;quot;password&amp;quot;, &amp;quot;e-mail&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
1, &amp;quot;username1&amp;quot;, &amp;quot;verySecretPassword&amp;quot;, &amp;quot;example@example.com&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
2, &amp;quot;username2&amp;quot;, &amp;quot;34r34r4232&amp;quot;, &amp;quot;example2@example.com&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
3, &amp;quot;username3&amp;quot;, &amp;quot;23er29923wjwe&amp;quot;, &amp;quot;example3@example.com&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Explanation:'''&amp;lt;br&amp;gt;&lt;br /&gt;
The '''first line''' is used in this case for naming the fields, so '''when asked, do not select the &amp;quot;include first line?&amp;quot;''' option. (If you won't use the first line for '''naming the fields''', please do select '''&amp;quot;include first line?&amp;quot;)'''&amp;lt;br&amp;gt;&lt;br /&gt;
The other three lines (starting 1, 2, 3) are for data records. Each record (the first one is: 1, &amp;quot;username1&amp;quot;, &amp;quot;verySecretPassword&amp;quot;, &amp;quot;example@example.com&amp;quot;) represents:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 - user id.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;username1&amp;quot; - user's username.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;verySecretPassword&amp;quot; - user's password.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;example@example.com&amp;quot; - user's e-mail.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your CSV file can have any number of lines with any number of fields ('''each line must have the same number of fields''').&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Here are some examples:'''&lt;br /&gt;
&lt;br /&gt;
'''Users CSV file example:'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
38,2,0,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,TRUE,&amp;quot;11420471-2-03&amp;quot;,&amp;quot;Example ZRt&amp;quot;,&amp;quot;Example ZRt&amp;quot;,&amp;quot;example example. 11&amp;quot;,&amp;quot;76/356-650&amp;quot;,&amp;quot;example@example.hu&amp;quot;,04/06/07 01:48 PM,&amp;quot; &amp;quot;,&amp;quot;en&amp;quot;,97,20,0,FALSE,TRUE,5,0,04/06/07,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,0,FALSE,04/06/07,&amp;quot;Lajosmi&amp;quot;,6050,1,0,1,1,TRUE,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,3&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
45,2,0,&amp;quot;95757bfa00bf85b17921d709b5af0234&amp;quot;,&amp;quot;NULL&amp;quot;,TRUE,&amp;quot;12969247-2-03&amp;quot;,&amp;quot;Example Ákos&amp;quot;,&amp;quot;Example Example, Kft&amp;quot;,&amp;quot;Example's 38&amp;quot;,&amp;quot;70/235-45-89&amp;quot;,&amp;quot;example@example2.hu&amp;quot;,04/06/09 11:28 AM,&amp;quot; &amp;quot;,&amp;quot;en&amp;quot;,97,20,0,FALSE,TRUE,5,0,04/07/09,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,0,FALSE,04/06/09,&amp;quot;Kecexample&amp;quot;,6000,1,0,1,1,TRUE,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2138,2,0,&amp;quot;cc1b3ae8986559b10786d6ea73912bd5&amp;quot;,&amp;quot;NULL&amp;quot;,TRUE,&amp;quot;11871633-2-03&amp;quot;,&amp;quot;Kos Tas&amp;quot;,&amp;quot;Ks Kft&amp;quot;,&amp;quot;Alsó ast&amp;quot;,&amp;quot;20/229-36-78&amp;quot;,&amp;quot;pli@example.hu&amp;quot;,12/13/07 09:42 AM,&amp;quot; &amp;quot;,&amp;quot;en&amp;quot;,97,20,0,FALSE,TRUE,5,0,12/13/07,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,0,FALSE,12/13/07,&amp;quot;Sirly&amp;quot;,6031,1,0,1,1,TRUE,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Blocked&amp;quot; column accepts values &amp;quot;1&amp;quot;, &amp;quot;y&amp;quot;, &amp;quot;true&amp;quot;, &amp;quot;yes&amp;quot;, &amp;quot;block&amp;quot; or &amp;quot;blocked&amp;quot;. These values will result in imported User being blocked. Any other or empty value will result in User not being Blocked.&lt;br /&gt;
&lt;br /&gt;
'''Devices CSV file example:'''&lt;br /&gt;
&lt;br /&gt;
38,38,76824435,&amp;quot;3676586421&amp;quot;,&amp;quot;asd  dsa u.12&amp;quot;,&amp;quot;jamaica&amp;quot;,&amp;quot;7ewfw@sip.example.com&amp;quot;,TRUE,&amp;quot;dynamic&amp;quot;,&amp;quot;sip&amp;quot;,TRUE,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
45,45,76846301,&amp;quot;3676886421&amp;quot;,&amp;quot;fgh hgf u.&amp;quot;,&amp;quot;ergerSiP&amp;quot;,&amp;quot;76886421@sip.example.com&amp;quot;,TRUE,&amp;quot;dynamic&amp;quot;,&amp;quot;sip&amp;quot;,TRUE,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;,&amp;quot;NULL&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2138,2138,76505921,&amp;quot;3676505921&amp;quot;,&amp;quot;jkl  lkj u.12&amp;quot;,&amp;quot;treK&amp;quot;,&amp;quot;6654@sip.example.com&amp;quot;,FALSE,&amp;quot;dynamic&amp;quot;,&amp;quot;sip&amp;quot;,TRUE,&amp;quot;NULL&amp;quot;,FALSE,FALSE,10,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,FALSE&lt;br /&gt;
&lt;br /&gt;
The first column here represents &amp;quot;id&amp;quot;, the second &amp;quot;user_id&amp;quot;, 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.&lt;br /&gt;
&lt;br /&gt;
'''Dids CSV file example:'''&lt;br /&gt;
&lt;br /&gt;
37067531061,38,38&amp;lt;br&amp;gt;&lt;br /&gt;
37065431061,45,22&amp;lt;br&amp;gt;&lt;br /&gt;
37062431031,2138,2138&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Importing data ==&lt;br /&gt;
&lt;br /&gt;
Firstly, from the MOR Graphical User Interface (GUI), navigate to: '''Settings -&amp;gt; Users -&amp;gt; Import''', as in the picture:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Imports_menu.png|alt import_menu]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Temporary User ID &amp;amp; Temporary Device ID ===&lt;br /&gt;
&lt;br /&gt;
These fields are necessary to map DIDs to Devices and Devices to Users.&lt;br /&gt;
&lt;br /&gt;
Temporary IDs can be integer digits only.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Importing users ==&lt;br /&gt;
&lt;br /&gt;
To import users, click on the &amp;quot;Import Users from CSV&amp;quot; link:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Imports_users_selection.png|alt Imports_users_selection]] &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Now locate the CSV file in your local system by clicking the &amp;quot;Browse&amp;quot; button. As indicated above, don't click the &amp;quot;Include first line?&amp;quot; checkbox if you have used the first line for commenting on the fields.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Upload_csv_file.png|alt upload_csv_file]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Click on the &amp;quot;Upload file&amp;quot; button.'''&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Assign columns&amp;quot; button.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:User import.png|alt select_fields]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
On the next page, check whether all the data was assigned correctly. If not, click the &amp;quot;Back&amp;quot; button and correct the mistakes. If all the data was assigned correctly, click the &amp;quot;Confirm columns&amp;quot; button. After the &amp;quot;Columns assigned&amp;quot; notification informs you that data successfully imported. &lt;br /&gt;
&lt;br /&gt;
'''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.&lt;br /&gt;
 &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' In the Payment type section you have to select do you want to upload prepaid or postpaid user. In CSV file 1 stand for postpaid user, 0 for prepaid user. By default, if Payment type is not select all users will be uploaded as prepaid users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Having completed all these steps, you should see a page similar to this:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Users_imported.png|alt Users_imported]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Importing devices ==&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Import Devices from CSV&amp;quot; link and follow the same procedure for uploading a CSV file as in the &amp;quot;Importing users&amp;quot; section. That is, locate the CSV file in your local system by clicking the &amp;quot;Browse&amp;quot; button. As stated before, don't click the &amp;quot;Include first line?&amp;quot; checkbox if you have used the first line for commenting on the fields. Click on the &amp;quot;Upload file&amp;quot; button. Now you should see a menu similar to this:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Device_selection.png|alt device_selection]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
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.'''&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' When you are going to import CSV file, which includes Location, the '''name''' of Location should be specified in CSV file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Having finished selecting the fields, press the &amp;quot;Assign columns&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
Once the columns are assigned, check whether all the data is correct. If not, press the &amp;quot;Back&amp;quot; button and correct the mistakes. Now, if you haven't made any mistakes, you should see two tables similar to these:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Users_devices_tables.png|alt users_devices]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Importing DIDs ==&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Import Devices from CSV&amp;quot; link and follow the same steps for uploading a CSV file as in the &amp;quot;Importing users&amp;quot; section. That is,&lt;br /&gt;
locate the CSV file in your local system by clicking the &amp;quot;Browse&amp;quot; button. As stated before, don't click on the &amp;quot;Include first line?&amp;quot; checkbox if you have used the first line for commenting on the fields. Click on the &amp;quot;Upload file&amp;quot; button. Now you should see a menu similar to this:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Dids select.png|alt dids_selection]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
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 &amp;quot;Assign columns&amp;quot; button. In the next page, if all imported data is assigned correctly, click the &amp;quot;Confirm columns&amp;quot; button. If you haven't made any mistakes, you should now see a &amp;quot;DIDs successfully imported&amp;quot; message. &lt;br /&gt;
&lt;br /&gt;
== Importing CLIs ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- This option is available starting with [[MOR X3]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CLIs data can be imported for already existing Devices by Device ID or for just imported Devices by Temporary Device ID.&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Import CLIs from CSV&amp;quot; link and follow the same steps for uploading a CSV file as in the &amp;quot;Importing users&amp;quot; section. That is, locate the CSV file in your local system by clicking the &amp;quot;Browse&amp;quot; button. As stated before, don't click on the &amp;quot;Include first line?&amp;quot; checkbox if you have used the first line for commenting on the fields. Click on the &amp;quot;Upload file&amp;quot; button. Now you should see a menu similar to this:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:CLIs select.png|alt clis_selection]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Select all matching fields from your CSV here. It is very IMPORTANT to select the CORRECT Device ID (if it is selected &amp;quot;Use Device ID&amp;quot;) or Temporary Device ID(if it is selected &amp;quot;Use Temporary Device ID&amp;quot;)! Having selected everything correctly, click the &amp;quot;Assign columns&amp;quot; button. In the next page, if all imported data is assigned correctly, click the &amp;quot;Confirm columns&amp;quot; button. If you haven't made any mistakes, you should now see a &amp;quot;CLIs successfully imported&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now check whether all your data has been imported.&lt;br /&gt;
&lt;br /&gt;
To check users, go to: '''SETTINGS –&amp;gt; Users'''.&lt;br /&gt;
&lt;br /&gt;
To check devices, go to: '''SETTINGS –&amp;gt; Users –&amp;gt; Devices'''.&lt;br /&gt;
&lt;br /&gt;
To check DIDs, go to: '''SETTINGS –&amp;gt; Billing –&amp;gt; DIDs'''.&lt;br /&gt;
&lt;br /&gt;
To check CLIs, go to: '''SETTINGS –&amp;gt; Billing –&amp;gt; Devices –&amp;gt; CLIs'''.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Dids devices users.png|alt dids_devices_users]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Explanation of IDs =&lt;br /&gt;
&lt;br /&gt;
Many users find it difficult to understand what User_ID or Device_ID mean in Data Import.&lt;br /&gt;
&lt;br /&gt;
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.'''&lt;br /&gt;
&lt;br /&gt;
The workflow of Import is:&lt;br /&gt;
&lt;br /&gt;
1. We have Users/Devices/DIDs.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
5. We import the User file, and MOR remembers the temporary User_ID.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
8. We import the CLI file. If during import there is selected &amp;quot;Use Temporary Device ID &amp;quot; MOR checks the Device_ID in the CLIs file and assigns a CLI to this Device. If it is checked &amp;quot;Use Device ID&amp;quot; MOR checks the ID of Device in the CLIs file and assigns a CLI to this Device&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
* [[Export Users and Devices]]&lt;/div&gt;</summary>
		<author><name>Bogdan</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=M4_Termination_Points&amp;diff=27211</id>
		<title>M4 Termination Points</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=M4_Termination_Points&amp;diff=27211"/>
		<updated>2022-04-05T10:46:54Z</updated>

		<summary type="html">&lt;p&gt;Bogdan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
&lt;br /&gt;
Termination Point is connection to some final entity (device/line/trunk/provider/supplier/etc) where call will be terminated.&lt;br /&gt;
&lt;br /&gt;
Call comes from [[M2 Origination Points | Origination Points]] and goes to Termination Point.&lt;br /&gt;
&lt;br /&gt;
Termination Points are assigned to [[M2 Dial Peers | Dial Peers]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Timeouts==&lt;br /&gt;
&lt;br /&gt;
* '''Progress Timeout''' – allows to limit the maximum time we will wait before we get media (whether it's early media, ringing or answer). Leave 0 for unlimited.&lt;br /&gt;
* '''Ringing Timeout''' – allows to limit the ringing duration in seconds. Leave 0 for unlimited. Minimal value is 10 seconds.&lt;br /&gt;
* '''Call Timeout''' – allows to limit answered call duration. Leave 0 for unlimited.&lt;br /&gt;
&lt;br /&gt;
==Termination Point==&lt;br /&gt;
[[File:TerminationPoint.png]]&lt;br /&gt;
* '''Act as Termination Point''' - turns on/turns of Termination Point. If selected No and saved, all settings of Termination Point will be erased.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Active''' - activates/deactivates Termination Point.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Source Transformation''' - special [[M2 Source Transformation | Source Transformation]] rules used to modify Source number.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Destination Transformation''' - special [[M2 Destination Transformation | Destination Transformation]] rules used to modify outgoing number.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Capacity''' - limits the number of concurrent calls to this termination point.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Source (CallerID) Allow''' - regular expression (regexp) for CallerIDs that are allowed to go through this termination point (use regexp '''.*''' if you want to allow all CallerIDs to go through this termination point).&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Source (CallerID) Deny''' - regular expression (regexp) for CallerIDs that are NOT allowed to go through this termination point (leave empty if you do not want to disallow any CallerIDs).&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Register''' - should we register the provider? This option is not available on M4 yet&amp;lt;br&amp;gt;&lt;br /&gt;
* '''From Domain''' - field is active only whent Register is enabled&amp;lt;br&amp;gt;&lt;br /&gt;
* '''[[M2 Mobile Number Portability|MNP]] Carrier Group''' - name of [[M2 MNP Carrier Groups | MNP Carrier Group]]&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Authentication - Enabled/Disabled''' -  When Enabled, login and username data can be entered.&lt;br /&gt;
* '''Login/Username''' - username if your provider asks for it.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Password''' - password used for authentication by your provider.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''USA Jurisdictional Routing''' - Jurisdictional routing is telephone call routing logic based upon the locations of the calling and called number and regulatory considerations. '''Can be enabled by Kolmisoft only. Please contact support to enable.''' More information can be found here [https://transnexus.com/whitepapers/jurisdictional-routing Here]&lt;br /&gt;
* Intra Tariff- Tariff for Intrastate routing. Calls between two points within the same state&lt;br /&gt;
* Inter Tariff - Tariff for Interstate routing. Calls made from one state to another&lt;br /&gt;
* 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&lt;br /&gt;
&lt;br /&gt;
==Termination Point Tariffs==&lt;br /&gt;
[[File:TerminationPoint_Tariffs.png]]&lt;br /&gt;
* '''Tariff''' - Tariff used for Termination Point accounting.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Use Tariffs by CLIs''' – disabled by default.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Codecs==&lt;br /&gt;
&lt;br /&gt;
Define which Codecs will be offered when dialing Terminator (in the order they are listed).&lt;br /&gt;
&lt;br /&gt;
* '''Enforce leg A Codecs to leg B''' - if this option is enabled in Terminator settings, M2 will ignore selected Terminator Codecs and will offer the same Codecs (in same order) from leg A to leg B. More information can be found [[M2 Codec Negotiation | here]].&lt;br /&gt;
&lt;br /&gt;
== CallerID ==&lt;br /&gt;
&lt;br /&gt;
* '''Name''' - set name part for CallerID.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Number''' - set number part for CallerID.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Random Number from Number Pool''' - set random number from Number Pool. Only number part for CallerID is set.&lt;br /&gt;
** '''Random''' - Send random CallerID from Number Pool.&lt;br /&gt;
** '''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.&lt;br /&gt;
&lt;br /&gt;
== Advanced Settings ==&lt;br /&gt;
&lt;br /&gt;
* '''Grace Time''' - Grace time in seconds. &lt;br /&gt;
* '''Custom SIP Header''' - adds custom header to SIP request. Format is header: value (for example x-My-Custom-Header: my value). Do not omit space after colon character.&lt;br /&gt;
* '''Limit up to X Calls, during Y seconds''' - allows to control Calls per Second (CPS).&amp;lt;br&amp;gt;&lt;br /&gt;
* '''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 &amp;quot;yes&amp;quot;.&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
== Advanced Termination Point Settings ==&lt;br /&gt;
&lt;br /&gt;
* '''Interpret NO ANSWER as FAILED''' - makes NO ANSWER calls interpretation as FAILED. &amp;lt;br&amp;gt;&lt;br /&gt;
* '''Interpret BUSY as FAILED''' - makes BUSY calls interpretation as FAILED &amp;lt;br&amp;gt;&lt;br /&gt;
* '''Periodic check''' - if enabled, periodic SIP OPTIONS requests will be sent to Termination Point to check if it is reachable. If Periodic Check is enabled and Termination Point does not respond to OPTIONS request then Termination Point will be marked as unreachable and will be skipped with '''HGC 324 - Unreachable Terminator skipped (Periodic Check is enabled)''' when making calls. Once Termination Point starts to respond to OPTIONS request it will be marked as reachable and calls will be routed through this Termination Point. Termination Points are checked every 5 minutes. If Periodic check is enabled, and Termination Point IP is reachable, in [[M2_Connection_Points|Connection Points]] window IP will be in green color. If Termination Point IP is NOT reachable, its IP will be in red color, also UNCREACHABLE icon near IP will appear in Termination Point edit window.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Sticky Contact''' – if this option is enabled, M2 uses only first SIP Contact header received from Termination Point. Sometimes Terminators change Contact header in the middle of SIP dialog and in some cases this may lead to unpredicted behavior (for example Terminator changes Contact header to wrong address and calls do not terminate properly). Use this option only if you know what you are doing. This option applies only to Termination points.&lt;br /&gt;
* '''Disable SIP URI encoding''' - enable or disable SIP URI encoding. If enabled, then some characters in SIP URI (Invite, To) are encoded in percent-encoding. For example if you send number 123#99999, encoded SIP URI will be sent to Provider as 123%2399999 (note that # is replaced by %23). If your Provider does not accept encoded SIP URI, you may disable this feature and characters like # will not be encoded.&lt;br /&gt;
&lt;br /&gt;
== Termination Point Signaling Settings ==&lt;br /&gt;
*  '''Remote-Party-ID to TP''' - same options as for ''' P-Asserted-Identity to TP''' below. These options are identical both for Remote-Party-ID and for P-Asserted-Identity and so only P-Asserted-Identity will be described below&lt;br /&gt;
* ''' P-Asserted-Identity to TP''' -  allow manipulation P-Asserted-Identity headers before sending them to TP. Available options are: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Pai_to_tp.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Drop''' - drop (do not send) header to TP.&lt;br /&gt;
** '''Forward''' - Forward header from OP to TP.&lt;br /&gt;
*** '''PAI from OP Transformation:''' - Optional regex to transform header before forwarding. [[M4 Transformations | More info]].&lt;br /&gt;
** '''Generate if missing''' - Generate header if it is missing. &lt;br /&gt;
*** '''PAI from OP Transformation:''' - Optional regex to transform header before forwarding if header is '''not''' missing. [[M4 Transformations | More info]].&lt;br /&gt;
*** '''PAI Generation:''' - PAI header value to genrate if header '''is''' missing. [[M4 PAI And RPID Header Generation| More info]].&lt;br /&gt;
** '''Overwrite''' - Overwrite header value with a new one.&lt;br /&gt;
*** '''PAI Generation:''' - PAI header value to generate which will overwrite existing PAI. [[M4 PAI And RPID Header Generation| More info]].&lt;br /&gt;
* '''Send PAI Number as CallerID (From:) to TP:''' - available options are: Never, Always, If FROM is Anonymous, If FROM is not Anonymous, By OP (uses Origination Point setting).&lt;br /&gt;
&lt;br /&gt;
This setting depends on the same setting from the OP. The logic is described below:&lt;br /&gt;
&lt;br /&gt;
[[File:Send pai table.png]]&lt;br /&gt;
&lt;br /&gt;
* '''Ignore SIP 183 without SDP''' - by default disabled. Select '''Yes''' to enable the option.&lt;br /&gt;
* '''Ignore SIP 180 after 183''' - by default disabled. Select '''Yes''' to enable the option.&lt;br /&gt;
* '''Disconnect Codes Group:''' - Disconnect Codes Group to use. More information available [[M4 Disconnect Codes|here]].&lt;br /&gt;
&lt;br /&gt;
== Subnetting ==&lt;br /&gt;
&lt;br /&gt;
It is possible to set [http://en.wikipedia.org/wiki/Subnetwork subnetwork] for Termination Point. Instead of IP address, you can set subnet in '''IP Address''' input field. Subnet should be written in [http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR notation] (for example 192.168.0.1/28). When call is routed through Termination Point which uses subnet, '''random''' IP address from that subnet will be chosen for outgoing call.&lt;br /&gt;
&lt;br /&gt;
M2 subnet value range is 4-30.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
You can use online subnet [http://www.aboutmyip.com/AboutMyXApp/SubnetCalculator.jsp? calculator] to check first and last usable IP address from given subnet.&lt;br /&gt;
&lt;br /&gt;
== IP range ==&lt;br /&gt;
&lt;br /&gt;
If you need to set multiple IP addresses for single Termination Point and Subnetting does not meet your needs, then you can set IP ranges. Ranges are written in the following format:&lt;br /&gt;
&lt;br /&gt;
 xxx.xxx.xxx.xxx-yyy&lt;br /&gt;
&lt;br /&gt;
Note that you can set range only for last octet in IP address.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When call is routed through Termination Point which uses IP range, '''random''' IP address from that range will be chosen for outgoing call. For example, if we have IP range 192.168.0.100-150, then random IP address from range 192.168.0.100 - 192.168.0.150 will be generated.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[M2 Disconnect Code Changes|Disconnect Code Changes]]&lt;br /&gt;
* [[NO_ANSWER/BUSY_interpretation_for_providers]]&lt;/div&gt;</summary>
		<author><name>Bogdan</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Centos_6_repositories_does_not_work_anymore&amp;diff=26865</id>
		<title>Centos 6 repositories does not work anymore</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Centos_6_repositories_does_not_work_anymore&amp;diff=26865"/>
		<updated>2021-11-11T08:42:17Z</updated>

		<summary type="html">&lt;p&gt;Bogdan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In file /etc/yum.repos.d/CentOS-Base.repo, comment out &amp;quot;mirrorlist&amp;quot; lines and add new &amp;quot;baseurl&amp;quot; lines.&lt;br /&gt;
File should look like:&lt;br /&gt;
&lt;br /&gt;
 # CentOS-Base.repo&lt;br /&gt;
 #&lt;br /&gt;
 # The mirror system uses the connecting IP address of the client and the&lt;br /&gt;
 # update status of each mirror to pick mirrors that are updated to and&lt;br /&gt;
 # geographically close to the client.  You should use this for CentOS updates&lt;br /&gt;
 # unless you are manually picking other mirrors.&lt;br /&gt;
 #&lt;br /&gt;
 # If the mirrorlist= does not work for you, as a fall back you can try the &lt;br /&gt;
 # remarked out baseurl= line instead.&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 &lt;br /&gt;
 [base]&lt;br /&gt;
 name=CentOS-$releasever - Base&lt;br /&gt;
 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;amp;arch=$basearch&amp;amp;repo=os&amp;amp;infra=$infra&lt;br /&gt;
 #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/&lt;br /&gt;
 baseurl=https://vault.centos.org/6.10/os/$basearch/&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6&lt;br /&gt;
 &lt;br /&gt;
 #released updates &lt;br /&gt;
 [updates]&lt;br /&gt;
 name=CentOS-$releasever - Updates&lt;br /&gt;
 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;amp;arch=$basearch&amp;amp;repo=updates&amp;amp;infra=$infra&lt;br /&gt;
 #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/&lt;br /&gt;
 baseurl=https://vault.centos.org/6.10/updates/$basearch/&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6&lt;br /&gt;
 &lt;br /&gt;
 #additional packages that may be useful&lt;br /&gt;
 [extras]&lt;br /&gt;
 name=CentOS-$releasever - Extras&lt;br /&gt;
 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;amp;arch=$basearch&amp;amp;repo=extras&amp;amp;infra=$infra&lt;br /&gt;
 #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/&lt;br /&gt;
 baseurl=https://vault.centos.org/6.10/extras/$basearch/&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6&lt;br /&gt;
 &lt;br /&gt;
 #additional packages that extend functionality of existing packages&lt;br /&gt;
 [centosplus]&lt;br /&gt;
 name=CentOS-$releasever - Plus&lt;br /&gt;
 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;amp;arch=$basearch&amp;amp;repo=centosplus&amp;amp;infra=$infra&lt;br /&gt;
 #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/&lt;br /&gt;
 baseurl=https://vault.centos.org/6.10/centosplus/$basearch/&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6&lt;br /&gt;
 &lt;br /&gt;
 #contrib - packages by Centos Users&lt;br /&gt;
 [contrib]&lt;br /&gt;
 name=CentOS-$releasever - Contrib&lt;br /&gt;
 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;amp;arch=$basearch&amp;amp;repo=contrib&amp;amp;infra=$infra&lt;br /&gt;
 #baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/&lt;br /&gt;
 baseurl=https://vault.centos.org/6.10/contrib/$basearch/&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If repositories does not work after changes, run these commands:&lt;br /&gt;
 yum clean all&lt;br /&gt;
 yum makecache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If this does not help run:&lt;br /&gt;
&lt;br /&gt;
 yum update ca-certificates&lt;br /&gt;
&lt;br /&gt;
If it gives such error:&lt;br /&gt;
&lt;br /&gt;
 [Errno 14] Peer cert cannot be verified or peer cert invalid. Trying other mirror…&lt;br /&gt;
&lt;br /&gt;
In /etc/yum.conf in the [main] section add:&lt;br /&gt;
 &lt;br /&gt;
 sslverify=false&lt;br /&gt;
&lt;br /&gt;
And check that in the /etc/yum.repos.d/CentOS-Base.repo there are paths with https (if not, change from http to https) and retry yum update ca-certificates&lt;br /&gt;
&lt;br /&gt;
If all ok - change https-&amp;gt;http back (if you changed http-&amp;gt;https before). And remove sslverify=false from /etc/yum.conf&lt;/div&gt;</summary>
		<author><name>Bogdan</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Centos_6_repositories_does_not_work_anymore&amp;diff=26115</id>
		<title>Centos 6 repositories does not work anymore</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Centos_6_repositories_does_not_work_anymore&amp;diff=26115"/>
		<updated>2021-01-21T09:46:17Z</updated>

		<summary type="html">&lt;p&gt;Bogdan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In file /etc/yum.repos.d/CentOS-Base.repo, comment out &amp;quot;mirrorlist&amp;quot; lines and add new &amp;quot;baseurl&amp;quot; lines.&lt;br /&gt;
File should look like:&lt;br /&gt;
&lt;br /&gt;
 # CentOS-Base.repo&lt;br /&gt;
 #&lt;br /&gt;
 # The mirror system uses the connecting IP address of the client and the&lt;br /&gt;
 # update status of each mirror to pick mirrors that are updated to and&lt;br /&gt;
 # geographically close to the client.  You should use this for CentOS updates&lt;br /&gt;
 # unless you are manually picking other mirrors.&lt;br /&gt;
 #&lt;br /&gt;
 # If the mirrorlist= does not work for you, as a fall back you can try the &lt;br /&gt;
 # remarked out baseurl= line instead.&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 &lt;br /&gt;
 [base]&lt;br /&gt;
 name=CentOS-$releasever - Base&lt;br /&gt;
 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;amp;arch=$basearch&amp;amp;repo=os&amp;amp;infra=$infra&lt;br /&gt;
 #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/&lt;br /&gt;
 baseurl=https://vault.centos.org/6.10/os/$basearch/&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6&lt;br /&gt;
 &lt;br /&gt;
 #released updates &lt;br /&gt;
 [updates]&lt;br /&gt;
 name=CentOS-$releasever - Updates&lt;br /&gt;
 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;amp;arch=$basearch&amp;amp;repo=updates&amp;amp;infra=$infra&lt;br /&gt;
 #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/&lt;br /&gt;
 baseurl=https://vault.centos.org/6.10/updates/$basearch/&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6&lt;br /&gt;
 &lt;br /&gt;
 #additional packages that may be useful&lt;br /&gt;
 [extras]&lt;br /&gt;
 name=CentOS-$releasever - Extras&lt;br /&gt;
 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;amp;arch=$basearch&amp;amp;repo=extras&amp;amp;infra=$infra&lt;br /&gt;
 #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/&lt;br /&gt;
 baseurl=https://vault.centos.org/6.10/extras/$basearch/&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6&lt;br /&gt;
 &lt;br /&gt;
 #additional packages that extend functionality of existing packages&lt;br /&gt;
 [centosplus]&lt;br /&gt;
 name=CentOS-$releasever - Plus&lt;br /&gt;
 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;amp;arch=$basearch&amp;amp;repo=centosplus&amp;amp;infra=$infra&lt;br /&gt;
 #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/&lt;br /&gt;
 baseurl=https://vault.centos.org/6.10/centosplus/$basearch/&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6&lt;br /&gt;
 &lt;br /&gt;
 #contrib - packages by Centos Users&lt;br /&gt;
 [contrib]&lt;br /&gt;
 name=CentOS-$releasever - Contrib&lt;br /&gt;
 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;amp;arch=$basearch&amp;amp;repo=contrib&amp;amp;infra=$infra&lt;br /&gt;
 #baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/&lt;br /&gt;
 baseurl=https://vault.centos.org/6.10/contrib/$basearch/&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If repositories does not work after changes, run these commands:&lt;br /&gt;
 yum clean all&lt;br /&gt;
 yum makecache&lt;/div&gt;</summary>
		<author><name>Bogdan</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=External_Recordings_Server&amp;diff=25527</id>
		<title>External Recordings Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=External_Recordings_Server&amp;diff=25527"/>
		<updated>2020-04-28T10:33:02Z</updated>

		<summary type="html">&lt;p&gt;Bogdan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Configuration=&lt;br /&gt;
&lt;br /&gt;
External Recordings Server allows to convert and store Recordings in external server thus increasing storage space on switch server (Asterisk). It will also reduce load on switch server because wav to mp3 convertion is executed in external server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;'''NOTE: Configuration applies ONLY for fresh CentOS 6 server.'''&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Configuration in GUI==&lt;br /&gt;
&lt;br /&gt;
External Recordings Server can be configured in '''ADDONS -&amp;gt; Recordings -&amp;gt; Settings'''&lt;br /&gt;
&lt;br /&gt;
[[File:Recordings external server.png]]&lt;br /&gt;
&lt;br /&gt;
Check 'User external Server' checkbox, enter external server IP, SSH port and login username.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE: make sure that servers are configured with SSH keys! Login by password will not work for External Recordings Server.'''&amp;lt;br&amp;gt;&lt;br /&gt;
External recordings server must be accessible using both root (/root/.ssh/id_rsa) and special GUI /var/www/.ssh/id_rsa) SSH keys.&lt;br /&gt;
Just execute script below and it will check SSH keys and connectivity and will print exact command you need to enter for correct configuration. Make sure that External Recordins Server details: (IP, Port, Login) are already entered as shown in sreenshot above before executing these commands:&lt;br /&gt;
 svn update /usr/src/mor&lt;br /&gt;
On Centos 6:&lt;br /&gt;
 /usr/src/mor/x15/maintenance/test_fix_scripts/gui/check_gui_recordings_server_access.sh &lt;br /&gt;
On Centos 7:&lt;br /&gt;
 /usr/src/mor/x15/maintenance/test_fix_scripts_c7/gui/check_gui_recordings_server_access.sh &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In '''SETTINGS -&amp;gt; Billing -&amp;gt; Servers''' add new server, where&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hostname for SIP&amp;quot; and &amp;quot;Server IP for SIP&amp;quot; are External Recordings Server IP,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Type&amp;quot; is &amp;quot;Other&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GUI&amp;quot; and &amp;quot;DB&amp;quot; are disables (red cross).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration in Database server==&lt;br /&gt;
&lt;br /&gt;
In Database Server create MySQL user for External Recordings Server:&lt;br /&gt;
&lt;br /&gt;
  CREATE USER 'mor'@''''IP_OF_RECORDINGS_SERVER'''' IDENTIFIED BY 'mor';&lt;br /&gt;
  GRANT ALL PRIVILEGES ON `mor`.* TO 'mor'@''''IP_OF_RECORDINGS_SERVER'''' WITH GRANT OPTION ;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration in External Recordings server==&lt;br /&gt;
&lt;br /&gt;
1. Install required packages and dowload sources:&lt;br /&gt;
&lt;br /&gt;
  yum -y install subversion gcc wget perl-IO-Socket-SSL&lt;br /&gt;
  svn co http://svn.kolmisoft.com/mor/install_script/trunk/ /usr/src/mor&lt;br /&gt;
&lt;br /&gt;
2. Install Apache (change MOR version accordingly in the script):&lt;br /&gt;
&lt;br /&gt;
  /usr/src/mor/x15/gui/apache_install.sh&lt;br /&gt;
  /usr/src/mor/x15/gui/apache_uid_fix.sh&lt;br /&gt;
  iptables -F&lt;br /&gt;
  /etc/init.d/iptables save&lt;br /&gt;
&lt;br /&gt;
3. Install MySQL (change MOR version accordingly in the script):&lt;br /&gt;
&lt;br /&gt;
  /usr/src/mor/x15/mysql/mysql_install.sh&lt;br /&gt;
&lt;br /&gt;
4. Create needed directories and permissions:&lt;br /&gt;
&lt;br /&gt;
  mkdir -p /var/log/mor&lt;br /&gt;
  chmod 777 -R /var/log/mor&lt;br /&gt;
  mkdir -p /etc/mor/&lt;br /&gt;
  mkdir -p /var/lib/asterisk/agi-bin/&lt;br /&gt;
  mkdir -p /usr/local/mor/recordings/&lt;br /&gt;
  chmod 777 -R /usr/local/mor/&lt;br /&gt;
&lt;br /&gt;
5. Install scripts (change MOR version accordingly in the script):&lt;br /&gt;
&lt;br /&gt;
  cd /usr/src/mor/x15/scripts/&lt;br /&gt;
&lt;br /&gt;
  gcc -Wall -Wunused -g -I/usr/include/mysql mor_record_remote.c -o mor_record_remote -lmysqlclient -lnsl -lm -lz -L/usr/lib/mysql -L/usr/lib64/mysql&lt;br /&gt;
  cp -fr mor_record_remote /usr/local/mor&lt;br /&gt;
&lt;br /&gt;
  gcc -Wall -g -I/usr/include/mysql mor_record_control.c -o mor_record_control -lmysqlclient -lnsl -lm -lz -L/usr/lib/mysql -L/usr/lib64/mysql&lt;br /&gt;
  cp -fr mor_record_control /usr/local/mor&lt;br /&gt;
&lt;br /&gt;
  gcc -g -Wall -o mor_delete_old_recordings mor_delete_old_recordings.c -L/usr/lib/mysql -L/usr/lib64/mysql -lmysqlclient -lm&lt;br /&gt;
  cp -fr mor_delete_old_recordings /usr/local/mor/&lt;br /&gt;
&lt;br /&gt;
  gcc -Wall -g -o mor_server_loadstats mor_server_loadstats.c -L/usr/lib/mysql -L/usr/lib64/mysql -lmysqlclient -lpthread&lt;br /&gt;
  cp -fr mor_server_loadstats /usr/local/mor/mor_server_loadstats&lt;br /&gt;
  cp -fr mor_server_loadstats_service /etc/init.d/mor_server_loadstats&lt;br /&gt;
  chmod +x /etc/init.d/mor_server_loadstats&lt;br /&gt;
  chkconfig --add mor_server_loadstats&lt;br /&gt;
  chkconfig --level 2345 mor_server_loadstats on&lt;br /&gt;
&lt;br /&gt;
  cp -fr cronjobs/mor_delete_old_recordings /etc/cron.d/&lt;br /&gt;
  service crond restart&lt;br /&gt;
&lt;br /&gt;
  cp -fr sendEmail /usr/local/mor/&lt;br /&gt;
&lt;br /&gt;
6. Install Lame (change MOR version accordingly in the script):&lt;br /&gt;
&lt;br /&gt;
  /usr/src/mor/x15/helpers/lame_install.sh&lt;br /&gt;
&lt;br /&gt;
7. Symlink directories:&lt;br /&gt;
&lt;br /&gt;
  ln -s /usr/local/mor/recordings /var/www/html/recordings&lt;br /&gt;
&lt;br /&gt;
8. Create configuration files:&lt;br /&gt;
&lt;br /&gt;
Create file:&lt;br /&gt;
&lt;br /&gt;
  vi /etc/mor/system.conf&lt;br /&gt;
&lt;br /&gt;
Enter:&lt;br /&gt;
&lt;br /&gt;
  # database connection settings&lt;br /&gt;
  dbhost = '''Database_server_IP'''&lt;br /&gt;
  dbname = mor&lt;br /&gt;
  dbuser = mor&lt;br /&gt;
  dbsecret = mor&lt;br /&gt;
  dbport = 3306&lt;br /&gt;
  &lt;br /&gt;
  server_id = '''unique server ID; same as on GUI'''&lt;br /&gt;
&lt;br /&gt;
Save file.&lt;br /&gt;
&lt;br /&gt;
Create file:&lt;br /&gt;
&lt;br /&gt;
  vi /var/lib/asterisk/agi-bin/mor.conf&lt;br /&gt;
&lt;br /&gt;
Enter:&lt;br /&gt;
&lt;br /&gt;
  host = '''Database_server_IP'''&lt;br /&gt;
  db = mor&lt;br /&gt;
  user = mor&lt;br /&gt;
  secret = mor&lt;br /&gt;
  port = 3306&lt;br /&gt;
&lt;br /&gt;
Save file.&lt;br /&gt;
&lt;br /&gt;
9. Edit ''/etc/httpd/conf/httpd.conf''&lt;br /&gt;
&lt;br /&gt;
Change from:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Directory /&amp;gt;&lt;br /&gt;
      Options FollowSymLinks&lt;br /&gt;
      AllowOverride '''None'''&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Directory /&amp;gt;&lt;br /&gt;
      Options FollowSymLinks&lt;br /&gt;
      AllowOverride '''All'''&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And change from:&lt;br /&gt;
&lt;br /&gt;
  # AllowOverride controls what directives may be placed in .htaccess files.&lt;br /&gt;
  # It can be &amp;quot;All&amp;quot;, &amp;quot;None&amp;quot;, or any combination of the keywords:&lt;br /&gt;
  #   Options FileInfo AuthConfig Limit&lt;br /&gt;
  #&lt;br /&gt;
      AllowOverride '''None'''&lt;br /&gt;
&lt;br /&gt;
To:&lt;br /&gt;
&lt;br /&gt;
      AllowOverride '''All'''&lt;br /&gt;
&lt;br /&gt;
10. Run:&lt;br /&gt;
&lt;br /&gt;
  chcon -R -h -t httpd_sys_content_t /var/www/html/recordings/&lt;br /&gt;
  service httpd restart&lt;br /&gt;
&lt;br /&gt;
11. Edit ''/etc/selinux/config''&lt;br /&gt;
&lt;br /&gt;
Change from:&lt;br /&gt;
&lt;br /&gt;
  SELINUX=enforcing&lt;br /&gt;
&lt;br /&gt;
To:&lt;br /&gt;
&lt;br /&gt;
  SELINUX=disabled&lt;br /&gt;
&lt;br /&gt;
12. Reboot server:&lt;br /&gt;
&lt;br /&gt;
  reboot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
&lt;br /&gt;
If Recordings are not displayed in GUI check the following log files in both servers:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
/var/log/mor/mor_record_file.log&amp;lt;br&amp;gt;&lt;br /&gt;
/var/log/mor/record_file.log&lt;/div&gt;</summary>
		<author><name>Bogdan</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=MOR_Prelocalization&amp;diff=23526</id>
		<title>MOR Prelocalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=MOR_Prelocalization&amp;diff=23526"/>
		<updated>2018-06-22T13:26:54Z</updated>

		<summary type="html">&lt;p&gt;Bogdan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Prelocalization allows to do [http://wiki.kolmisoft.com/index.php/Localization Localization] before any other action in MOR.&lt;br /&gt;
&lt;br /&gt;
=How to enable it=&lt;br /&gt;
&lt;br /&gt;
'''Latest MOR X12 (or higher) version is required for this feature to work'''&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Modify '''/etc/asterisk/extensions_mor.conf''' to include MOR prelocalization AGI script (at around 40th line, just above '''exten =&amp;gt; _X.,n,mor(${EXTEN})''')&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MOR starts)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[&amp;quot;${MOR_DIAL_LOCAL_IVR}&amp;quot; != &amp;quot;&amp;quot;]?mor_dial_local_ivr,s,1)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Gosub(diversion_settings,${EXTEN},1)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Gosub(proxy_settings,${EXTEN},1)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(__MOR_SIP_TO=${SIP_HEADER(To)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(TIMEOUT(response)=20)&lt;br /&gt;
 exten =&amp;gt; _X.,n,AGI(mor_prelocalization)  &amp;lt;--------------------------------------- ADD THIS LINE HERE ----------- !!!!&lt;br /&gt;
 exten =&amp;gt; _X.,n,mor(${EXTEN})&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[&amp;quot;${MOR_CARD_USED}&amp;quot; != &amp;quot;&amp;quot;]?mor_callingcard,s,1)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[&amp;quot;${MOR_ANIPIN_USED}&amp;quot; != &amp;quot;&amp;quot;]?mor_anipin,s,1)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[&amp;quot;${DIALSTATUS}&amp;quot; = &amp;quot;BUSY&amp;quot;]?BUSY,1:HANGUP,1)&lt;br /&gt;
&lt;br /&gt;
Asterisk dialplan should be reloaded each time this file is changed:&lt;br /&gt;
&lt;br /&gt;
 asterisk -rx &amp;quot;dialplan reload&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
&lt;br /&gt;
Configuration file '''/etc/mor/system.conf'''&lt;br /&gt;
&lt;br /&gt;
'''prelocalization_location''' - which Location to use for prelocalization? Value should be Location ID.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''prelocalization_global_rules''' - should we include global rules? Value is either 1 or 0 (default 0).&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
  prelocalization_location = 17&lt;br /&gt;
  prelocalization_global_rules = 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: reload is not required when this file is changed.&lt;br /&gt;
&lt;br /&gt;
=Location rules=&lt;br /&gt;
&lt;br /&gt;
Prelocalization supports only '''Destination''' and '''Source''' rules. '''Combined''' rules are not supported.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only '''Cut''', '''Add''', '''Min Len''' and  '''Max Len''' are applied when doing prelocalization.&lt;br /&gt;
&lt;br /&gt;
=Script output=&lt;br /&gt;
&lt;br /&gt;
Prelocalization output is written to Asterisk verbose log at the beginning of the call:&lt;br /&gt;
                                                                                                                                                                                                                        &lt;br /&gt;
 mor_prelocalization: MOR prelocalization AGI script started                                                                                                                                                                                  &lt;br /&gt;
 mor_prelocalization: Original destination number: 00370123456                                                                                                                                                                                &lt;br /&gt;
 mor_prelocalization: Original source number: +390000000&lt;br /&gt;
 mor_prelocalization: Original source name: test&lt;br /&gt;
 mor_prelocalization: Localized dst number: 370123456 (cut: 00, add: )&lt;br /&gt;
 mor_prelocalization: Localized src number: 390000000 (cut: +, add: )                                                                                                                                                                         &lt;br /&gt;
 mor_prelocalization: MOR prelocalization AGI script stopped&lt;/div&gt;</summary>
		<author><name>Bogdan</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Localization_copy_function.png&amp;diff=22261</id>
		<title>File:Localization copy function.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Localization_copy_function.png&amp;diff=22261"/>
		<updated>2017-05-16T21:04:08Z</updated>

		<summary type="html">&lt;p&gt;Bogdan: uploaded a new version of &amp;quot;File:Localization copy function.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bogdan</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Localization3.png&amp;diff=22260</id>
		<title>File:Localization3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Localization3.png&amp;diff=22260"/>
		<updated>2017-05-16T21:01:15Z</updated>

		<summary type="html">&lt;p&gt;Bogdan: uploaded a new version of &amp;quot;File:Localization3.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bogdan</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Localization2.png&amp;diff=22259</id>
		<title>File:Localization2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Localization2.png&amp;diff=22259"/>
		<updated>2017-05-16T21:01:07Z</updated>

		<summary type="html">&lt;p&gt;Bogdan: uploaded a new version of &amp;quot;File:Localization2.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bogdan</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Localization1.png&amp;diff=22258</id>
		<title>File:Localization1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Localization1.png&amp;diff=22258"/>
		<updated>2017-05-16T21:00:53Z</updated>

		<summary type="html">&lt;p&gt;Bogdan: uploaded a new version of &amp;quot;File:Localization1.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bogdan</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Mor_accountant_permissions.png&amp;diff=22251</id>
		<title>File:Mor accountant permissions.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Mor_accountant_permissions.png&amp;diff=22251"/>
		<updated>2017-05-16T20:53:29Z</updated>

		<summary type="html">&lt;p&gt;Bogdan: uploaded a new version of &amp;quot;File:Mor accountant permissions.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bogdan</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=CDR_Import&amp;diff=22042</id>
		<title>CDR Import</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=CDR_Import&amp;diff=22042"/>
		<updated>2017-02-27T12:46:15Z</updated>

		<summary type="html">&lt;p&gt;Bogdan: /* Setp 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
&lt;br /&gt;
Sometimes MOR can be used as separate billing software (that is, other than for real-time billing). In case if MOR is used as separate billing software, CDRs Import is most important functionality, because it allows to import CDRs from other switches (they need not be Asterisk) and bill these CDRs.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Configuration =&lt;br /&gt;
&lt;br /&gt;
In [[Configuration_from_GUI#Various | Configuration]], make sure you select the correct options for these values:&lt;br /&gt;
&lt;br /&gt;
* '''CSV Column Separator'''.&lt;br /&gt;
* '''CSV Decimal Separator'''.&lt;br /&gt;
&lt;br /&gt;
If the settings do not match your CSV file, you will not be able to import CDRs.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Import=&lt;br /&gt;
&lt;br /&gt;
==Step 1==&lt;br /&gt;
CDR Import can be found in '''SETTINGS –&amp;gt; Billing –&amp;gt; CDR –&amp;gt; Import'''.&lt;br /&gt;
&lt;br /&gt;
The first step is to select a CSV file to import:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:cdrimport1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click on '''Upload file'''.&lt;br /&gt;
&lt;br /&gt;
== Step 2==&lt;br /&gt;
&lt;br /&gt;
Sometimes MOR system is able to detect wrong CSV separator settings. If CSV separator settings are wrong MOR will suggest you to change them:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Cdr_import_wrong_separators.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
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''':&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:cdrimport2_2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Step 3 ==&lt;br /&gt;
&lt;br /&gt;
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''':&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:cdrimport3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Step 4 ==&lt;br /&gt;
Here you can choose method which should be used to assign calls to device:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:cdrimport4_2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Select provider''' - allows to assign calls to certain provider. You will not see this option if you selected provider ID in step 2. &lt;br /&gt;
* '''Import by user''' - allows to assign calls to one user.&lt;br /&gt;
* '''Select user''' - user and device should be chosen here, when '''Import by user''' is selected.&lt;br /&gt;
* '''Import by CallerID''' - allows to automatically assign calls to users by CallerID. It checks [[CLIs_(Incoming_CallerIDs)|CLIs]] on Device settings. If CLI matches with CallerID call is assigned to this Device.&lt;br /&gt;
Admin are able to assign Calls to CLI of Device which belongs to User of Simple Reseller. Admin cannot import calls for Reseller PRO Users, but Reseller PRO able to import such Calls by himself. &lt;br /&gt;
* '''Create CallerID''' - creates list of all CallerIDs on CDR file and allows to assign CallerIDs to Devices. It creates new CLIs.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
====Choosing provider ID during the import====&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Bad CDRs&amp;quot;. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:cdrimport5_2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
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. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:cdrimport6_4.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Imported Calls Billing=&lt;br /&gt;
&lt;br /&gt;
Imported Calls are billed using [[CDR Rerating]] functionality logic. This means that imported Calls will be re-rated using Tariffs' Rates of MOR Resellers, Users and Providers who will be assigned for Calls during Calls Import.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=How to use file exported form [[Last Calls]]=&lt;br /&gt;
&lt;br /&gt;
You can export CDR in either the PDF or the CSV format. This can be done in the Call Stats page ('''STATISTICS –&amp;gt; Calls''') and other places where you see:&lt;br /&gt;
&lt;br /&gt;
* [[Image:pdf.png]] Export to PDF&lt;br /&gt;
* [[Image:excel.png]] Export to CSV&lt;br /&gt;
&lt;br /&gt;
Just cick on one of these links and you will get CDR in the selected period.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Make sure that before exporting Last Calls, setting '''Show Full Source (CallerID Name and Number)''' in Settings Visual tab is '''unchecked''', otherwise CallerId will be exported not correctly and CDR import will be unsuccessful.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Check your localization rules before the import. Exported calls are localized calls (localization rules were applied to these calls). Localization rules are applied for the imported calls as well. This is how it is suppose to be, since:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
1) If you import numbers which are not in E.164 format (not from MOR), localization rules will be applied and the calls will be billed correctly.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2) If you import numbers in E.164 format, they will not be changed, since there should be no localization rules for good numbers in E.164 format.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
However, you can encounter a problem if you have incorrect Localization rules in a MOR systems. &lt;br /&gt;
====Example of a wrong configuration====&lt;br /&gt;
&lt;br /&gt;
*There is a Global rule for international calls: '''Cut''': 00, '''Add''': , '''Min''': 1, '''Max''': 100.&lt;br /&gt;
*There is also a rule for Spain local calls:  '''Cut''': 9, '''Add''': 349, '''Min''': 1, '''Max''': 100.&lt;br /&gt;
If you had a call too destination: 00972xxxxxxxxx, it will be changed to 972xxxxxxxxx (Israel number). You export the CDR of this call and re-import it (or import it to another MOR system), then localization rules will be applied again and you will have destination number 34972xxxxxxxxx (Spain number). To avoid this, use correct [[Number_Manipulation_Examples#Example_4_-_Spain | localization rules]].&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Other Notes=&lt;br /&gt;
== Calls to DIDs ==&lt;br /&gt;
&lt;br /&gt;
Calls to DIDs are billed as for calls to normal numbers.&amp;lt;br&amp;gt;&lt;br /&gt;
Calls to DIDs which belong to the caller are not billed at all (Price = 0).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
* [[How to create a csv file]]&lt;br /&gt;
* [[CDR Rerating]]&lt;br /&gt;
* [[Automatic CDR Export]]&lt;/div&gt;</summary>
		<author><name>Bogdan</name></author>
	</entry>
</feed>