<?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=Zilvinas</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=Zilvinas"/>
	<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php/Special:Contributions/Zilvinas"/>
	<updated>2026-05-19T21:20:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=MOR_API_payments_get&amp;diff=22974</id>
		<title>MOR API payments get</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=MOR_API_payments_get&amp;diff=22974"/>
		<updated>2017-12-04T08:14:11Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Parametres */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
&amp;lt;!---This functionality is available from MOR 11---&amp;gt;&lt;br /&gt;
[[MOR API]] Payments list&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
* From '''MOR X4''' call: '''/api/payments_get'''&lt;br /&gt;
* For Backwards-compatibility old name 'payments_list' is also usable. Call: '''/api/payments_list'''&lt;br /&gt;
* Methods: POST, GET(if allowed, not recomended)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
* u - username for authentication. '''Required'''.&lt;br /&gt;
* [[MOR API hash construction | hash]] - SHA1 hash constructed using '''params''' and '''API_Secret_Key''' ([[MOR API hash construction | More described in Constructing hash]]). '''Required'''.&lt;br /&gt;
*s_user_id - payments user id.&lt;br /&gt;
*s_from - Unix timestamp of calls period starting date. (Default: Today at 00:00). '''Note:''' only works when ''s_till'' is provided.&lt;br /&gt;
*s_till - Unix timestamp of calls period end date. (Default: Today at 23:59). '''Note:''' only works when ''s_from'' is provided.&lt;br /&gt;
* s_transaction - transaction id.&lt;br /&gt;
*s_completed - payment status. Possible values[ 1 - completed, 0 - not completed, if not sent - default: All]&lt;br /&gt;
*s_username -  users username.&lt;br /&gt;
*s_first_name - users first name. &lt;br /&gt;
*s_last_name - users last name&lt;br /&gt;
*s_paymenttype - payment type. Possible values['Card', 'paypal','webmoney','ouroboros','manual','gateways_paypal','gateways_authorize_net','integrations_moneybooker','integrations_two_checkout', if not sent - default: All] &lt;br /&gt;
*s_amount_min - amount starting from.&lt;br /&gt;
*s_amount_max - amount ending with. &lt;br /&gt;
*s_currency - payment currency. Example: USD&lt;br /&gt;
*s_number - card number.&lt;br /&gt;
*s_pin - card pin.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Request===&lt;br /&gt;
&lt;br /&gt;
We have s_user_id = 123, API Secret Key = 456789&lt;br /&gt;
&lt;br /&gt;
We send:&lt;br /&gt;
&lt;br /&gt;
 HTML POST: http://&amp;lt;SERVER_IP&amp;gt;/billing/api/payments_get?u=username&amp;amp;s_user_id=123&amp;amp;hash=f7c3bc1d808e04732adf679965ccc34ca7ae3441&lt;br /&gt;
&lt;br /&gt;
'''NOTE that username are not included in hash'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
&lt;br /&gt;
'''Success'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;page&amp;gt;&lt;br /&gt;
  &amp;lt;pagename&amp;gt; Payments_list &amp;lt;/pagename&amp;gt;&lt;br /&gt;
  &amp;lt;payments&amp;gt;&lt;br /&gt;
   &amp;lt;payment&amp;gt;&lt;br /&gt;
    &amp;lt;user&amp;gt;  ''payment user''   &amp;lt;/user&amp;gt;&lt;br /&gt;
    &amp;lt;payer&amp;gt; ''email or payer ''&amp;lt;/payer&amp;gt; &lt;br /&gt;
    &amp;lt;transaction_id&amp;gt; ''transaction id'' &amp;lt;/transaction_id&amp;gt;&lt;br /&gt;
    &amp;lt;date&amp;gt; ''date added'' &amp;lt;/date&amp;gt;&lt;br /&gt;
    &amp;lt;confirm_date&amp;gt; ''confirm date'' &amp;lt;/confirm_date&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;   ''payment type''   &amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;amount&amp;gt; ''payment amount'' &amp;lt;/amount&amp;gt;&lt;br /&gt;
    &amp;lt;fee&amp;gt; ''payment fee'' &amp;lt;/fee&amp;gt;&lt;br /&gt;
    &amp;lt;amount_with_tax&amp;gt; ''payment amount with tax'' &amp;lt;/amount_with_tax&amp;gt;&lt;br /&gt;
    &amp;lt;currency&amp;gt;  ''payment currency'' &amp;lt;/currency&amp;gt;&lt;br /&gt;
    &amp;lt;completed&amp;gt; ''payment status''   &amp;lt;/completed&amp;gt;&lt;br /&gt;
    &amp;lt;confirmed_by_admin&amp;gt; ''confirmed by admin?'' &amp;lt;/confirmed_by_admin&amp;gt;&lt;br /&gt;
    &amp;lt;comments_for_user&amp;gt; ''commented by admin'' &amp;lt;/comments_for_user&amp;gt;&lt;br /&gt;
   &amp;lt;/payment&amp;gt;&lt;br /&gt;
  &amp;lt;/payments&amp;gt;&lt;br /&gt;
 &amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Errors'''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;error&amp;gt;Bad login&amp;lt;/error&amp;gt; - User was not found by username. Use correct username. Make sure that username (u) are specified.&lt;br /&gt;
* &amp;lt;error&amp;gt;Incorrect hash&amp;lt;/error&amp;gt; - Hash was not correct. Check API_Secret_Key and order or params while concatenating hash_string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[MOR API]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=MOR_API_payments_get&amp;diff=22973</id>
		<title>MOR API payments get</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=MOR_API_payments_get&amp;diff=22973"/>
		<updated>2017-12-04T08:14:00Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Parametres */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
&amp;lt;!---This functionality is available from MOR 11---&amp;gt;&lt;br /&gt;
[[MOR API]] Payments list&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
* From '''MOR X4''' call: '''/api/payments_get'''&lt;br /&gt;
* For Backwards-compatibility old name 'payments_list' is also usable. Call: '''/api/payments_list'''&lt;br /&gt;
* Methods: POST, GET(if allowed, not recomended)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Parametres===&lt;br /&gt;
&lt;br /&gt;
* u - username for authentication. '''Required'''.&lt;br /&gt;
* [[MOR API hash construction | hash]] - SHA1 hash constructed using '''params''' and '''API_Secret_Key''' ([[MOR API hash construction | More described in Constructing hash]]). '''Required'''.&lt;br /&gt;
*s_user_id - payments user id.&lt;br /&gt;
*s_from - Unix timestamp of calls period starting date. (Default: Today at 00:00). '''Note:''' only works when ''s_till'' is provided.&lt;br /&gt;
*s_till - Unix timestamp of calls period end date. (Default: Today at 23:59). '''Note:''' only works when ''s_from'' is provided.&lt;br /&gt;
* s_transaction - transaction id.&lt;br /&gt;
*s_completed - payment status. Possible values[ 1 - completed, 0 - not completed, if not sent - default: All]&lt;br /&gt;
*s_username -  users username.&lt;br /&gt;
*s_first_name - users first name. &lt;br /&gt;
*s_last_name - users last name&lt;br /&gt;
*s_paymenttype - payment type. Possible values['Card', 'paypal','webmoney','ouroboros','manual','gateways_paypal','gateways_authorize_net','integrations_moneybooker','integrations_two_checkout', if not sent - default: All] &lt;br /&gt;
*s_amount_min - amount starting from.&lt;br /&gt;
*s_amount_max - amount ending with. &lt;br /&gt;
*s_currency - payment currency. Example: USD&lt;br /&gt;
*s_number - card number.&lt;br /&gt;
*s_pin - card pin.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Request===&lt;br /&gt;
&lt;br /&gt;
We have s_user_id = 123, API Secret Key = 456789&lt;br /&gt;
&lt;br /&gt;
We send:&lt;br /&gt;
&lt;br /&gt;
 HTML POST: http://&amp;lt;SERVER_IP&amp;gt;/billing/api/payments_get?u=username&amp;amp;s_user_id=123&amp;amp;hash=f7c3bc1d808e04732adf679965ccc34ca7ae3441&lt;br /&gt;
&lt;br /&gt;
'''NOTE that username are not included in hash'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
&lt;br /&gt;
'''Success'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;page&amp;gt;&lt;br /&gt;
  &amp;lt;pagename&amp;gt; Payments_list &amp;lt;/pagename&amp;gt;&lt;br /&gt;
  &amp;lt;payments&amp;gt;&lt;br /&gt;
   &amp;lt;payment&amp;gt;&lt;br /&gt;
    &amp;lt;user&amp;gt;  ''payment user''   &amp;lt;/user&amp;gt;&lt;br /&gt;
    &amp;lt;payer&amp;gt; ''email or payer ''&amp;lt;/payer&amp;gt; &lt;br /&gt;
    &amp;lt;transaction_id&amp;gt; ''transaction id'' &amp;lt;/transaction_id&amp;gt;&lt;br /&gt;
    &amp;lt;date&amp;gt; ''date added'' &amp;lt;/date&amp;gt;&lt;br /&gt;
    &amp;lt;confirm_date&amp;gt; ''confirm date'' &amp;lt;/confirm_date&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;   ''payment type''   &amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;amount&amp;gt; ''payment amount'' &amp;lt;/amount&amp;gt;&lt;br /&gt;
    &amp;lt;fee&amp;gt; ''payment fee'' &amp;lt;/fee&amp;gt;&lt;br /&gt;
    &amp;lt;amount_with_tax&amp;gt; ''payment amount with tax'' &amp;lt;/amount_with_tax&amp;gt;&lt;br /&gt;
    &amp;lt;currency&amp;gt;  ''payment currency'' &amp;lt;/currency&amp;gt;&lt;br /&gt;
    &amp;lt;completed&amp;gt; ''payment status''   &amp;lt;/completed&amp;gt;&lt;br /&gt;
    &amp;lt;confirmed_by_admin&amp;gt; ''confirmed by admin?'' &amp;lt;/confirmed_by_admin&amp;gt;&lt;br /&gt;
    &amp;lt;comments_for_user&amp;gt; ''commented by admin'' &amp;lt;/comments_for_user&amp;gt;&lt;br /&gt;
   &amp;lt;/payment&amp;gt;&lt;br /&gt;
  &amp;lt;/payments&amp;gt;&lt;br /&gt;
 &amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Errors'''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;error&amp;gt;Bad login&amp;lt;/error&amp;gt; - User was not found by username. Use correct username. Make sure that username (u) are specified.&lt;br /&gt;
* &amp;lt;error&amp;gt;Incorrect hash&amp;lt;/error&amp;gt; - Hash was not correct. Check API_Secret_Key and order or params while concatenating hash_string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[MOR API]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Hangupcause_Codes&amp;diff=22885</id>
		<title>Hangupcause Codes</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Hangupcause_Codes&amp;diff=22885"/>
		<updated>2017-10-26T06:26:43Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;mkmeta&amp;gt;Disconnect Codes for MOR Class 5 Softswitch&amp;lt;/mkmeta&amp;gt;&lt;br /&gt;
MOR application saves hangupcause codes (HGC in MOR terminology) to the database, so it is easy to check what the error was and why the call failed.&lt;br /&gt;
&lt;br /&gt;
These codes can be seen in the Calls window (Hangup Cause column) when selected to show 'All', 'Busy', 'No Answer', 'Failed' or 'Missed' calls.&lt;br /&gt;
&lt;br /&gt;
* Standard hangup codes can be found [http://www.voip-info.org/wiki/index.php?page=Asterisk+variable+hangupcause here].&lt;br /&gt;
* [http://networking.ringofsaturn.com/RemoteAccess/isdncausecodes.php ITU-T Q.850 Codes ]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/List_of_SIP_response_codes SIP Response Codes]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Standard codes =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;b&amp;gt;Code&amp;lt;/b&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;b&amp;gt;Cause&amp;lt;/b&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 34 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[34 no circuit/channel available | no circuit/channel available]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= MOR specific codes =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;b&amp;gt;Code&amp;lt;/b&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;b&amp;gt;Cause&amp;lt;/b&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 200 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[200 MOR can't determine who is calling | MOR can't determine who is calling]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 201 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[201 User is blocked | User is blocked]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 202 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[202 Reseller is blocked | Reseller is blocked]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 203 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[203 No rates for user|No rates for User]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 204 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[204 No suitable providers found | No suitable providers found]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 205 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[205 MOR PRO not authorized to work on this computer | MOR PRO not authorized to work on this computer]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 206 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[206 server_id is not set in mor.conf file | server_id is not set in mor.conf file]] - ''this error code is not used anymore''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 207 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[207 Not clear who should receive call | Not clear who should receive call]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 208 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[208 MOR can not make more calls | MOR can not make more calls]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 209 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[209 Test time exceeded | Test time exceeded]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 210 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[210 Balance more then 0, but not enough to make call 1s in length | Balance more than 0, but not enough to make call 1s in length]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 211 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[211 Low balance for user | Low balance for user]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 212 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[mor_authorize: Too low balance for more simultaneus calls!!!| Balance too low for more simultaneous calls]]  &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 213 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[213 Low balance for DID owner | Low balance for DID owner]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 214 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[214 Too low balance for DID owner for more simultaneous calls | DID owner's balance is too low to make more simultaneous calls]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 215 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[215 Low balance for reseller | Low balance for reseller]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 216 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[216 Too low balance for reseller for more simultaneous calls | Reseller's balance is too low to make  more simultaneous calls]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 217 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[217 Callback not initiated because device not found by ANI | Callback not initiated because device not found by ANI]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 218 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[218 Reseller does now allow loss calls | Reseller does not allow loss calls]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 219 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[219 DID has reached call limit. No more calls allowed to this DID | DID has reached call limit. No more calls allowed to this DID]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 220 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[220 User call limit reached | User call limit reached]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 221 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[221 Device call limit reached | Device call limit reached]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 222 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[222 Resellers call limit reached | Resellers call limit reached]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 223 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[223 Providers call limit reached | Providers call limit reached]]  &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 224 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[224 Provider skipped because his rate is higher then users rate | Provider skipped because his rate is higher than user's rate]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 225 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[225 CallerID is banned | CallerID is banned]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 226 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[226 DID is free | DID is free]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 227 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[227 Calling Card PIN is not entered | Calling Card PIN is not entered]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 228 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[228 Calling Card Destination is not entered | Calling Card Destination is not entered]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 229 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[229 DID is reserved | DID is reserved]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 230 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[230 Connection returned error code 0 instead of real code | Connection returned error code 0 instead of real code]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 231 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[231 Provider unreachable | Provider unreachable]] - ''this error code is not used anymore'' &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 232 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[232 Callback DID not available | Callback DID not available]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 233 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[233 Skype Addon Disabled | Skype Addon Disabled]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 234 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[234 Internal Loop | Internal Loop]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 235 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[235 Providers rate higher by percent | Providers rate higher by percent]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 236 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[236 Callback initiation too early| Callback initiation too early]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 237 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[237 DID User is blocked| DID User is blocked]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 238 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[238 Provider used its daily call time limit| Provider used its daily call time limit]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 239 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[239 Device used its daily call time limit| Device used its daily call time limit]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 240 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[240 Provider belongs to the User which makes call| Provider belongs to the User which makes call (loop)]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 241 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[241 Local Caller canceled the call before call was answered|Local Caller canceled the call before call was answered]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 242 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[242 No Rates for Reseller|No Rates for Reseller]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 243 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[243 Provider skipped because of CPS limitation|Provider skipped because of CPS limitation]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 244 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[244 Device call aborted because of CPS limitation|Device call aborted because of CPS limitation]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 245 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[245 Provider skipped because of balance limitation|Provider skipped because of balance limitation]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 246 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[246 Duplicate call hangup|Duplicate call hangup]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 247 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[247 Dead Provider skipped|Dead Provider skipped]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 248 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[248 Call was terminated because FAS(False Answer Supervision) control detected an issue. | Call was terminated because FAS(False Answer Supervision) control detected an issue]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 249 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[249 Partner's call limit reached | Partner's call limit reached]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 250 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[250 Partner is blocked | Partner is blocked]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 251 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[251 Low balance for Partner | Low balance for Partner]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 252 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[252 Partner's balance is too low to make more simultaneous calls | Partner's balance is too low to make more simultaneous calls]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 253 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[253 Partner does not allow loss calls | Partner does not allow loss calls]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 254 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[254 No Rates for Partner | No Rates for Partner]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 255 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[255 Destination is in blacklist | Destination is in blacklist]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 256 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[256 Destination is not in whitelist  | Destination is not in whitelist]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 257 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[257 Calling Card expired  | Calling Card expired]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 258 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[258 Calling Card is not sold yet  | Calling Card is not sold yet]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 259 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[259 Calling Card is empty  | Calling Card is empty]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 260 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[260 Destination is blocked in User Tariff | Destination is blocked in User's Tariff]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 261 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[261 Destination is blocked in Provider Tariff | Destination is blocked in Provider's Tariff]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 262 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[262 Source number is in blacklist | Source number is in blacklist]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 263 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[263 Source number is not in whitelist | Source number is not in whitelist]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 264 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[264 No Rates for DID Owner | No Rates for DID Owner]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 265 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[265 Provider skipped because rate margin is lower than allowed | Provider skipped because rate margin is lower than allowed]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 266 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[266 Provider skipped because AGI script returned timeout error | Provider skipped because AGI script returned timeout error]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 267 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[267 Provider skipped because AGI script rejected this provider (AGI script status 0) | Provider skipped because AGI script rejected this provider (AGI script status 0)]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 268 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[268 PDD limit reached | PDD limit reached]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 269 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[269 User call rate is higher than allowed | User's call rate is higher than allowed]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 270 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[270 Reseller call rate is higher than allowed | Reseller's call rate is higher than allowed]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 271 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[271 Partner call rate is higher than allowed | Partner's call rate is higher than allowed]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 272 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[272 Provider skipped because the CallerID is in a Blacklist | Provider skipped because the CallerID is in a Blacklist]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 273 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[273 Provider skipped because the CallerID is not in a Whitelist | Provider skipped because the CallerID is not in a Whitelist]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 274 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[274 No rates for Provider | No rates for Provider]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 275 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[275 Incorrect DID PIN | Incorrect DID PIN]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 276 &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[276 No Rates for DID Provider | No Rates for DID Provider]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Relation between MOR hangupcause codes and Standard codes =&lt;br /&gt;
&lt;br /&gt;
This table describes which standard ISDN code is MOR giving when one or another hangupcause is given.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; &lt;br /&gt;
| '''MOR code''' || '''ISDN code''' || '''SIP code'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[208 MOR can not make more calls | 208]] || [[34 no circuit/channel available | 34]] || 503 Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| [[210_Balance_more_then_0,_but_not_enough_to_make_call_1s_in_length | 210]] || [[34 no circuit/channel available | 34]] || 503 Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| [[211_Low_balance_for_user | 211]] || [[34 no circuit/channel available | 34]] || 503 Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| [[Mor_authorize:_Too_low_balance_for_more_simultaneus_calls!!! | 212]] || [[34 no circuit/channel available | 34]] || 503 Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| [[213_Low_balance_for_DID_owner | 213]] || [[34 no circuit/channel available | 34]] || 503 Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| [[214 Too low balance for DID owner for more simultaneous calls | 214]] || [[34 no circuit/channel available | 34]] || 503 Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| [[215_Low_balance_for_reseller | 215]] || [[34 no circuit/channel available | 34]] || 503 Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| [[216 Too low balance for reseller for more simultaneous calls | 216]] || [[34 no circuit/channel available | 34]] || 503 Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| [[219 DID has reached call limit. No more calls allowed to this DID | 219]] || [[34 no circuit/channel available | 34]] || 503 Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| [[220 User call limit reached | 220]] || [[34 no circuit/channel available | 34]] || 503 Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| [[221 Device call limit reached | 221]] || [[34 no circuit/channel available | 34]] || 503 Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| [[222 Resellers call limit reached | 222]] || [[34 no circuit/channel available | 34]] || 503 Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| [[223 Providers call limit reached | 223]] || [[34 no circuit/channel available | 34]] || 503 Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| [[226 DID is free | 226]] || 1 || 404 Not found&lt;br /&gt;
|-&lt;br /&gt;
| [[229 DID is reserved | 229]] || 1 || 404 Not found&lt;br /&gt;
|-&lt;br /&gt;
| [[233 Skype Addon Disabled | 233]] || 66 || 500 Internal server error&lt;br /&gt;
|-&lt;br /&gt;
| All others not listed above and greater than 199 ( &amp;gt;=200 ) || 21 || 403 Forbidden&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Starting from [[MOR 12]], it is possible to change relation between MOR code and ISDN code. Relation can be defined in [[Mor.conf|mor.conf]].&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[Hangupcause Sounds]]&lt;br /&gt;
* [[H323 hangupcause codes]]&lt;br /&gt;
* [[SIP Error Codes]]&lt;br /&gt;
* [[Change HGC for a User]]&lt;br /&gt;
* [[M2 Hangupcause Codes]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Invoice_generation.png&amp;diff=22880</id>
		<title>File:Invoice generation.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Invoice_generation.png&amp;diff=22880"/>
		<updated>2017-10-20T10:45:06Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: uploaded a new version of &amp;quot;File:Invoice generation.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=M4_Customer_Invoices&amp;diff=22879</id>
		<title>M4 Customer Invoices</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=M4_Customer_Invoices&amp;diff=22879"/>
		<updated>2017-10-20T10:42:51Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* XLSX invoice files without Currency names */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
&lt;br /&gt;
M2 '''Customer Invoice''' is dedicated for final User of M2, who have to pay for made Calls. Admin can see and manage them in '''ACCOUNTING –&amp;gt; Customer Invoices''', User can reach list of his Invoices and check them from main menu. Despite your settings all values in Invoices are rounded into two digits after comma.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Invoices are generated automatically according to User's Billing Period (weekly, bi-weekly or monthly).&lt;br /&gt;
==Invoices List==&lt;br /&gt;
&lt;br /&gt;
Invoices can be viewed, created (WIP) or exported to either XLSX or PDF file in '''ACCOUNTING –&amp;gt; Customer Invoices'''. In the main window, you can see list of all the Invoices.&lt;br /&gt;
&lt;br /&gt;
All Prices are displayed in particular Invoice Currency. That means that in each line of Invoice Price and Price with TAX will be shown in currency which is written in Currency column. The Currency column tells which currency Invoice was generated with. Also the exchange rate at the invoice generation moment is saved in the database so it may differ from the up to date exchange rate.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Total Price and Price with TAX are calculated into viewing Currency, which you can choose in upper corner of page. In Total price calculation there are used saved exchange Rate of each Invoice.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Example'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Default system Currency is USD&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Invoice A is generated on price = 100 in currency EUR with exchange rate 0.5&amp;lt;br&amp;gt;&lt;br /&gt;
Invoice B is generated on price = 100 in currency DZD with exchange rate 0.25&amp;lt;br&amp;gt;&lt;br /&gt;
Invoice C is generated on price = 100 in currency ALL with exchange rate 0.75&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
But now exchange rate are different: EUR - 0.75, DZD - 0.5 and ALL - 1.0. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to see Total price(sum of these 3 Invoices) in EUR. For Invoice B and C will be set exchange rate of today, but for invoice A exchange rate will be from that day when invoice was generated (0.5).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same calculations with other currencies&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to see Total price in DZD. For Invoice A and C will be set exchange rate of today, but for invoice B exchange rate will be from that day when invoice was generated (0.25).&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to see Total price in ALL. For Invoice A and B will be set exchange rate of today, but for invoice C exchange rate will be from that day when invoice was generated (0.75).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Total price will be 733.3333 USD, or 500 EUR, or 266.6667 DZD, or 700 ALL&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Invoice Edit==&lt;br /&gt;
&lt;br /&gt;
Invoice edit is accessed from invoices list.&lt;br /&gt;
 &lt;br /&gt;
Here you are able to see some information of the user and Invoice displayed and also some details of the Invoice can be edited.&lt;br /&gt;
&lt;br /&gt;
'''Price''' and '''Price with TAX''' are displayed in a currency the invoice was generated with. It will not be changed according to system settings. &amp;lt;br&amp;gt;&lt;br /&gt;
The '''Exchange rate''' at the invoice generation moment is also saved in the database and displayed in Invoice Edit page. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Period Start''' and '''Period End''' dates are not affected by time zones: only '''Issue Date''', '''Date Due''' and '''Status changed at''' changes according to the [[GUI_time_zone | time zone]] of the system.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Also you are able to refresh Client Details and regenerate xlsx file by pressing '''RECALCULATE''' in particular Invoice edit.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Invoice Details==&lt;br /&gt;
&lt;br /&gt;
You can find this page by clicking '''Invoice details''' link in the Invoice Edit page.&lt;br /&gt;
&lt;br /&gt;
In the Invoice Lines page there is information about destinations, rates assigned to those destinations, calls made to the destinations, total time per destination and price for all the calls made to the specific destination. &lt;br /&gt;
&lt;br /&gt;
This page can be accessed from Invoice edit page.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this page you can search by destination prefix. For example: enter ''35567'' and ''Albania mobile'' destination will be displayed.&lt;br /&gt;
 &lt;br /&gt;
Search can also be made with wildcard %. If you enter ''35%'', ''%67'', ''3%7'' or ''%56%'', ''Albania mobile'' will also be displayed.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Billing Period==&lt;br /&gt;
&lt;br /&gt;
User can have 3 different Billing Periods:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Weekly - every week for Monday - Sunday&lt;br /&gt;
* Bi-weekly - twice a month for 1 - 15 and 16 - end of month&lt;br /&gt;
* Monthly - every month for 1 - end of month&lt;br /&gt;
&lt;br /&gt;
If you change User's Billing Period, old Invoices will be generated automatically. To disable this feature, you may set variable ''skip_missing_invoices = 1'' in ''/etc/m2/system.conf''. This way only new Invoices will be generated and missing/deleted Invoices will not be re-generated automatically.&lt;br /&gt;
&lt;br /&gt;
==Invoice recalculate==&lt;br /&gt;
&lt;br /&gt;
Invoices can be recalculated in Invoice list by selecting check boxes for each Invoice individually and then pressing &amp;quot;Recalculate selected&amp;quot; button or by pressing &amp;quot;Recalculate&amp;quot; button in specific Invoice edit page.&lt;br /&gt;
&lt;br /&gt;
==Send selected==&lt;br /&gt;
&lt;br /&gt;
Invoices can be sent to User manually by selecting check boxes in Invoice list for each Invoice individually and then pressing &amp;quot;Send selected&amp;quot; button. Invoices are being sent once in 10 minutes. By default Invoices are will be sent in XLSX format. If '''Send XLSX Invoices converted to PDF:''' option is enabled in '''Maintenance-&amp;gt;Settings''', Invoices will be converted to PDF and sent as PDF files.&lt;br /&gt;
&lt;br /&gt;
=User Invoices=&lt;br /&gt;
Invoices can be viewed by Users and exported in XLSX or PDF format&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Fine results.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
By pressing on DETAILS User will be redirected to Invoice Details page&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:M2_invoice_edit_2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Manual Invoices generation =&lt;br /&gt;
Invoices can be generated manually in Invoices list.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Invoice generation.png]]&lt;br /&gt;
&lt;br /&gt;
=Invoice cannot be generated error=&lt;br /&gt;
&lt;br /&gt;
Invoices will be generated only if Elasticsearch data is up to date and consistent with MySQL data. This is usually seen in MOR main page ES Sync Status:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:ES_SYNC_100%.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there are data inconsistencies between Elasticsearch and MySQL, you will see a notification '''Invoice cannot be generated due to data inconsistencies, please contact support''' and Invoice will not be generated. This is done to prevent generating incorrect Invoices. Please contact support if you get this message or you may solve it manually by following this [http://wiki.kolmisoft.com/index.php/No_data_in_Statistics_pages guide].&lt;br /&gt;
&lt;br /&gt;
= XLSX Invoices =&lt;br /&gt;
&lt;br /&gt;
XLSX file to export an Invoice is made from your own XLSX format template and information from Invoices main window. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Default XLSX template===&lt;br /&gt;
&lt;br /&gt;
Create a xlsx file. Template you can prepare as you wish, you can fill it with information of company, draw tables with column names, describe information taken from Invoice main window and so on. Template '''have to be uploaded in MAINTENANCE -&amp;gt; Settings''', INVOICES setting  '''XSLX Template'''&lt;br /&gt;
* Check '''New XLSX template apply for old Invoices''' if you want to change XLSX template for Invoices which is already generated.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Configuration for Dynamic information===&lt;br /&gt;
&lt;br /&gt;
When you already have a template for example with all data of your company, with drawn tables and so on, you need to define where should be shown the dynamic information of invoice. How and what information is displayed can be set same '''MAINTENANCE -&amp;gt; Settings''' page. Just need to define cell address in correct format. &lt;br /&gt;
&lt;br /&gt;
For example &amp;quot;A2&amp;quot;, &amp;quot;B15&amp;quot;, &amp;quot;AA9&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:callc.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE''': If you do not want to use particular dynamic value just leave empty input for it.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===XLSX invoice files without Currency names ===&lt;br /&gt;
&lt;br /&gt;
In some cases when you want to add additional mathematical formulas in XLSX file, you will need invoice prices without Currency names. In this case you should use setting '''Do not show currencies in XLSX Invoices''' in&lt;br /&gt;
'''MAINTENANCE -&amp;gt; Settings'''. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Invoice setting.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Converting to PDF format'''&lt;br /&gt;
&lt;br /&gt;
It is possible to convert XLSX invoice to PDF format using the following methods:&lt;br /&gt;
&lt;br /&gt;
* By clicking on DOWNLOAD PDF in Invpoice Details page.&lt;br /&gt;
* If '''Send XLSX Invoices converted to PDF''' option is enabled, sending invoices over email will convert XLSX files to PDF.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:M2_Send_XLSX_as_PDF.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=M4_Customer_Invoices&amp;diff=22878</id>
		<title>M4 Customer Invoices</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=M4_Customer_Invoices&amp;diff=22878"/>
		<updated>2017-10-20T10:42:27Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* XLSX Invoices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
&lt;br /&gt;
M2 '''Customer Invoice''' is dedicated for final User of M2, who have to pay for made Calls. Admin can see and manage them in '''ACCOUNTING –&amp;gt; Customer Invoices''', User can reach list of his Invoices and check them from main menu. Despite your settings all values in Invoices are rounded into two digits after comma.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Invoices are generated automatically according to User's Billing Period (weekly, bi-weekly or monthly).&lt;br /&gt;
==Invoices List==&lt;br /&gt;
&lt;br /&gt;
Invoices can be viewed, created (WIP) or exported to either XLSX or PDF file in '''ACCOUNTING –&amp;gt; Customer Invoices'''. In the main window, you can see list of all the Invoices.&lt;br /&gt;
&lt;br /&gt;
All Prices are displayed in particular Invoice Currency. That means that in each line of Invoice Price and Price with TAX will be shown in currency which is written in Currency column. The Currency column tells which currency Invoice was generated with. Also the exchange rate at the invoice generation moment is saved in the database so it may differ from the up to date exchange rate.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Total Price and Price with TAX are calculated into viewing Currency, which you can choose in upper corner of page. In Total price calculation there are used saved exchange Rate of each Invoice.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Example'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Default system Currency is USD&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Invoice A is generated on price = 100 in currency EUR with exchange rate 0.5&amp;lt;br&amp;gt;&lt;br /&gt;
Invoice B is generated on price = 100 in currency DZD with exchange rate 0.25&amp;lt;br&amp;gt;&lt;br /&gt;
Invoice C is generated on price = 100 in currency ALL with exchange rate 0.75&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
But now exchange rate are different: EUR - 0.75, DZD - 0.5 and ALL - 1.0. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to see Total price(sum of these 3 Invoices) in EUR. For Invoice B and C will be set exchange rate of today, but for invoice A exchange rate will be from that day when invoice was generated (0.5).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same calculations with other currencies&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to see Total price in DZD. For Invoice A and C will be set exchange rate of today, but for invoice B exchange rate will be from that day when invoice was generated (0.25).&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to see Total price in ALL. For Invoice A and B will be set exchange rate of today, but for invoice C exchange rate will be from that day when invoice was generated (0.75).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Total price will be 733.3333 USD, or 500 EUR, or 266.6667 DZD, or 700 ALL&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Invoice Edit==&lt;br /&gt;
&lt;br /&gt;
Invoice edit is accessed from invoices list.&lt;br /&gt;
 &lt;br /&gt;
Here you are able to see some information of the user and Invoice displayed and also some details of the Invoice can be edited.&lt;br /&gt;
&lt;br /&gt;
'''Price''' and '''Price with TAX''' are displayed in a currency the invoice was generated with. It will not be changed according to system settings. &amp;lt;br&amp;gt;&lt;br /&gt;
The '''Exchange rate''' at the invoice generation moment is also saved in the database and displayed in Invoice Edit page. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Period Start''' and '''Period End''' dates are not affected by time zones: only '''Issue Date''', '''Date Due''' and '''Status changed at''' changes according to the [[GUI_time_zone | time zone]] of the system.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Also you are able to refresh Client Details and regenerate xlsx file by pressing '''RECALCULATE''' in particular Invoice edit.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Invoice Details==&lt;br /&gt;
&lt;br /&gt;
You can find this page by clicking '''Invoice details''' link in the Invoice Edit page.&lt;br /&gt;
&lt;br /&gt;
In the Invoice Lines page there is information about destinations, rates assigned to those destinations, calls made to the destinations, total time per destination and price for all the calls made to the specific destination. &lt;br /&gt;
&lt;br /&gt;
This page can be accessed from Invoice edit page.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this page you can search by destination prefix. For example: enter ''35567'' and ''Albania mobile'' destination will be displayed.&lt;br /&gt;
 &lt;br /&gt;
Search can also be made with wildcard %. If you enter ''35%'', ''%67'', ''3%7'' or ''%56%'', ''Albania mobile'' will also be displayed.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Billing Period==&lt;br /&gt;
&lt;br /&gt;
User can have 3 different Billing Periods:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Weekly - every week for Monday - Sunday&lt;br /&gt;
* Bi-weekly - twice a month for 1 - 15 and 16 - end of month&lt;br /&gt;
* Monthly - every month for 1 - end of month&lt;br /&gt;
&lt;br /&gt;
If you change User's Billing Period, old Invoices will be generated automatically. To disable this feature, you may set variable ''skip_missing_invoices = 1'' in ''/etc/m2/system.conf''. This way only new Invoices will be generated and missing/deleted Invoices will not be re-generated automatically.&lt;br /&gt;
&lt;br /&gt;
==Invoice recalculate==&lt;br /&gt;
&lt;br /&gt;
Invoices can be recalculated in Invoice list by selecting check boxes for each Invoice individually and then pressing &amp;quot;Recalculate selected&amp;quot; button or by pressing &amp;quot;Recalculate&amp;quot; button in specific Invoice edit page.&lt;br /&gt;
&lt;br /&gt;
==Send selected==&lt;br /&gt;
&lt;br /&gt;
Invoices can be sent to User manually by selecting check boxes in Invoice list for each Invoice individually and then pressing &amp;quot;Send selected&amp;quot; button. Invoices are being sent once in 10 minutes. By default Invoices are will be sent in XLSX format. If '''Send XLSX Invoices converted to PDF:''' option is enabled in '''Maintenance-&amp;gt;Settings''', Invoices will be converted to PDF and sent as PDF files.&lt;br /&gt;
&lt;br /&gt;
=User Invoices=&lt;br /&gt;
Invoices can be viewed by Users and exported in XLSX or PDF format&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Fine results.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
By pressing on DETAILS User will be redirected to Invoice Details page&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:M2_invoice_edit_2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Manual Invoices generation =&lt;br /&gt;
Invoices can be generated manually in Invoices list.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Invoice generation.png]]&lt;br /&gt;
&lt;br /&gt;
=Invoice cannot be generated error=&lt;br /&gt;
&lt;br /&gt;
Invoices will be generated only if Elasticsearch data is up to date and consistent with MySQL data. This is usually seen in MOR main page ES Sync Status:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:ES_SYNC_100%.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there are data inconsistencies between Elasticsearch and MySQL, you will see a notification '''Invoice cannot be generated due to data inconsistencies, please contact support''' and Invoice will not be generated. This is done to prevent generating incorrect Invoices. Please contact support if you get this message or you may solve it manually by following this [http://wiki.kolmisoft.com/index.php/No_data_in_Statistics_pages guide].&lt;br /&gt;
&lt;br /&gt;
= XLSX Invoices =&lt;br /&gt;
&lt;br /&gt;
XLSX file to export an Invoice is made from your own XLSX format template and information from Invoices main window. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Default XLSX template===&lt;br /&gt;
&lt;br /&gt;
Create a xlsx file. Template you can prepare as you wish, you can fill it with information of company, draw tables with column names, describe information taken from Invoice main window and so on. Template '''have to be uploaded in MAINTENANCE -&amp;gt; Settings''', INVOICES setting  '''XSLX Template'''&lt;br /&gt;
* Check '''New XLSX template apply for old Invoices''' if you want to change XLSX template for Invoices which is already generated.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Configuration for Dynamic information===&lt;br /&gt;
&lt;br /&gt;
When you already have a template for example with all data of your company, with drawn tables and so on, you need to define where should be shown the dynamic information of invoice. How and what information is displayed can be set same '''MAINTENANCE -&amp;gt; Settings''' page. Just need to define cell address in correct format. &lt;br /&gt;
&lt;br /&gt;
For example &amp;quot;A2&amp;quot;, &amp;quot;B15&amp;quot;, &amp;quot;AA9&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:callc.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE''': If you do not want to use particular dynamic value just leave empty input for it.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===XLSX invoice files without Currency names ===&lt;br /&gt;
&lt;br /&gt;
In some cases when you want to add additional mathematical formulas in XLSX file, you will need invoice prices without Currency names. In this case you should use setting '''Do not show currencies in XLSX Invoices''' in&lt;br /&gt;
'''MAINTENANCE -&amp;gt; Settings'''. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Invoice setting.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Converting to PDF format'''&lt;br /&gt;
&lt;br /&gt;
It is possible to convert XLSX invoice to PDF format using the following methods:&lt;br /&gt;
&lt;br /&gt;
* By clicking on DOWNLOAD PDF in Invpoice Details page.&lt;br /&gt;
* If '''Send XLSX Invoices converted to PDF''' option is enabled, sending invoices over email will convert XLSX files to PDF.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File::M2_Send_XLSX_as_PDF.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:M2_Send_XLSX_as_PDF.png&amp;diff=22877</id>
		<title>File:M2 Send XLSX as PDF.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:M2_Send_XLSX_as_PDF.png&amp;diff=22877"/>
		<updated>2017-10-20T10:42:12Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Fine_results.png&amp;diff=22876</id>
		<title>File:Fine results.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Fine_results.png&amp;diff=22876"/>
		<updated>2017-10-20T10:35:34Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: uploaded a new version of &amp;quot;File:Fine results.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=M4_Customer_Invoices&amp;diff=22836</id>
		<title>M4 Customer Invoices</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=M4_Customer_Invoices&amp;diff=22836"/>
		<updated>2017-10-16T10:36:43Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Interconnection between invoice generation and Elastic Search Sync Status (ES) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
&lt;br /&gt;
M2 '''Customer Invoice''' is dedicated for final User of M2, who have to pay for made Calls. Admin can see and manage them in '''ACCOUNTING –&amp;gt; Customer Invoices''', User can reach list of his Invoices and check them from main menu. Despite your settings all values in Invoices are rounded into two digits after comma.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Invoices are generated automatically according to User's Billing Period (weekly, bi-weekly or monthly).&lt;br /&gt;
==Invoices List==&lt;br /&gt;
&lt;br /&gt;
Invoices can be viewed, created (WIP) or exported to XLSX file in '''ACCOUNTING –&amp;gt; Customer Invoices'''. In the main window, you can see list of all the Invoices.&lt;br /&gt;
&lt;br /&gt;
All Prices are displayed in particular Invoice Currency. That means that in each line of Invoice Price and Price with TAX will be shown in currency which is written in Currency column. The Currency column tells which currency Invoice was generated with. Also the exchange rate at the invoice generation moment is saved in the database so it may differ from the up to date exchange rate.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Total Price and Price with TAX are calculated into viewing Currency, which you can choose in upper corner of page. In Total price calculation there are used saved exchange Rate of each Invoice.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Example'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Default system Currency is USD&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Invoice A is generated on price = 100 in currency EUR with exchange rate 0.5&amp;lt;br&amp;gt;&lt;br /&gt;
Invoice B is generated on price = 100 in currency DZD with exchange rate 0.25&amp;lt;br&amp;gt;&lt;br /&gt;
Invoice C is generated on price = 100 in currency ALL with exchange rate 0.75&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
But now exchange rate are different: EUR - 0.75, DZD - 0.5 and ALL - 1.0. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to see Total price(sum of these 3 Invoices) in EUR. For Invoice B and C will be set exchange rate of today, but for invoice A exchange rate will be from that day when invoice was generated (0.5).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same calculations with other currencies&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to see Total price in DZD. For Invoice A and C will be set exchange rate of today, but for invoice B exchange rate will be from that day when invoice was generated (0.25).&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to see Total price in ALL. For Invoice A and B will be set exchange rate of today, but for invoice C exchange rate will be from that day when invoice was generated (0.75).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Total price will be 733.3333 USD, or 500 EUR, or 266.6667 DZD, or 700 ALL&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Invoice Edit==&lt;br /&gt;
&lt;br /&gt;
Invoice edit is accessed from invoices list.&lt;br /&gt;
 &lt;br /&gt;
Here you are able to see some information of the user and Invoice displayed and also some details of the Invoice can be edited.&lt;br /&gt;
&lt;br /&gt;
'''Price''' and '''Price with TAX''' are displayed in a currency the invoice was generated with. It will not be changed according to system settings. &amp;lt;br&amp;gt;&lt;br /&gt;
The '''Exchange rate''' at the invoice generation moment is also saved in the database and displayed in Invoice Edit page. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Period Start''' and '''Period End''' dates are not affected by time zones: only '''Issue Date''', '''Date Due''' and '''Status changed at''' changes according to the [[GUI_time_zone | time zone]] of the system.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Also you are able to refresh Client Details and regenerate xlsx file by pressing '''RECALCULATE''' in particular Invoice edit.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Invoice Details==&lt;br /&gt;
&lt;br /&gt;
You can find this page by clicking '''Invoice details''' link in the Invoice Edit page.&lt;br /&gt;
&lt;br /&gt;
In the Invoice Lines page there is information about destinations, rates assigned to those destinations, calls made to the destinations, total time per destination and price for all the calls made to the specific destination. &lt;br /&gt;
&lt;br /&gt;
This page can be accessed from Invoice edit page.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this page you can search by destination prefix. For example: enter ''35567'' and ''Albania mobile'' destination will be displayed.&lt;br /&gt;
 &lt;br /&gt;
Search can also be made with wildcard %. If you enter ''35%'', ''%67'', ''3%7'' or ''%56%'', ''Albania mobile'' will also be displayed.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Billing Period==&lt;br /&gt;
&lt;br /&gt;
User can have 3 different Billing Periods:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Weekly - every week for Monday - Sunday&lt;br /&gt;
* Bi-weekly - twice a month for 1 - 15 and 16 - end of month&lt;br /&gt;
* Monthly - every month for 1 - end of month&lt;br /&gt;
&lt;br /&gt;
If you change User's Billing Period, old Invoices will be generated automatically. To disable this feature, you may set variable ''skip_missing_invoices = 1'' in ''/etc/m2/system.conf''. This way only new Invoices will be generated and missing/deleted Invoices will not be re-generated automatically.&lt;br /&gt;
&lt;br /&gt;
==Invoice recalculate==&lt;br /&gt;
&lt;br /&gt;
Invoices can be recalculated in Invoice list by selecting check boxes for each Invoice individually and then pressing &amp;quot;Recalculate selected&amp;quot; button or by pressing &amp;quot;Recalculate&amp;quot; button in specific Invoice edit page.&lt;br /&gt;
&lt;br /&gt;
==Send selected==&lt;br /&gt;
&lt;br /&gt;
Invoices can be sent to User manually by selecting check boxes in Invoice list for each Invoice individually and then pressing &amp;quot;Send selected&amp;quot; button. Invoices are being sent once in 10 minutes.&lt;br /&gt;
&lt;br /&gt;
=User Invoices=&lt;br /&gt;
Invoices can be viewed by Users and exported in XLSX format&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Fine results.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
By pressing on DETAILS User will be redirected to Invoice Details page&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:M2_invoice_edit_2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Manual Invoices generation =&lt;br /&gt;
Invoices can be generated manually in Invoices list.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Invoice generation.png]]&lt;br /&gt;
&lt;br /&gt;
=Interconnection between Invoice generation and ElasticSearch Sync Status (ES)=&lt;br /&gt;
&lt;br /&gt;
Invoices will be generated if ES Sync Status is 100%.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:ES_SYNC_100%.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In other cases, you will see notification: '''&amp;quot;Invoice cannot be generated due to data inconsistencies, please contact support&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
While Invoice is being generated, system will check if ES Call quantity is the same as in MySQL. Because of Timezone differenece, system will consider the period for which Invoices are generated +2 days from start time and end time.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* User is generating invoice at 2017-10-12 '''10:00:00''';&lt;br /&gt;
* User is generating invoice for 2017-10-11 00:00:00 - 2017-10-11 23:59:59;&lt;br /&gt;
* System will check call quantity from 2017-10-09 00:00:00 - 2017-10-12 '''09:00:00'''.&lt;br /&gt;
&lt;br /&gt;
= XLSX Invoices =&lt;br /&gt;
&lt;br /&gt;
XLSX file to export an Invoice is made from your own XLSX format template and information from Invoices main window. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Default XLSX template===&lt;br /&gt;
&lt;br /&gt;
Create a xlsx file. Template you can prepare as you wish, you can fill it with information of company, draw tables with column names, describe information taken from Invoice main window and so on. Template '''have to be uploaded in MAINTENANCE -&amp;gt; Settings''', INVOICES setting  '''XSLX Template'''&lt;br /&gt;
* Check '''New XLSX template apply for old Invoices''' if you want to change XLSX template for Invoices which is already generated.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Configuration for Dynamic information===&lt;br /&gt;
&lt;br /&gt;
When you already have a template for example with all data of your company, with drawn tables and so on, you need to define where should be shown the dynamic information of invoice. How and what information is displayed can be set same '''MAINTENANCE -&amp;gt; Settings''' page. Just need to define cell address in correct format. &lt;br /&gt;
&lt;br /&gt;
For example &amp;quot;A2&amp;quot;, &amp;quot;B15&amp;quot;, &amp;quot;AA9&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:callc.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE''': If you do not want to use particular dynamic value just leave empty input for it.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===XLSX invoice files without Currency names ===&lt;br /&gt;
&lt;br /&gt;
In some cases when you want to add additional mathematical formulas in XLSX file, you will need invoice prices without Currency names. In this case you should use setting '''Do not show currencies in XLSX Invoices''' in&lt;br /&gt;
'''MAINTENANCE -&amp;gt; Settings'''. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Invoice setting.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Invoices&amp;diff=22835</id>
		<title>Invoices</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Invoices&amp;diff=22835"/>
		<updated>2017-10-16T10:35:25Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Interconnection between invoice generation and Elastic Search Sync Status (ES) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
&lt;br /&gt;
An invoice, bill or tab is a commercial document issued by a seller to a buyer, relating to a sale transaction and indicating the products, quantities, and agreed prices for products or services the seller had provided the buyer.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Configuration =&lt;br /&gt;
 &lt;br /&gt;
You can manage Invoices settings, details, Address information and functionality in the Invoices section of the [[Configuration_from_GUI#Invoices | SETTINGS -&amp;gt; Setup -&amp;gt; Settings]] window.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want show user_billsec instead of billsec in Users invoices and last calls, go to [[Configuration_from_GUI#Visual | Settings –&amp;gt; Various]] and check ''Show user_billsec for Users instead of billsec''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to User's edit page to enable or disable types of invoices he can see in his invoices details. And also these selected types will be the ones that are sent to user via email. &lt;br /&gt;
&lt;br /&gt;
[[File:Invoice types.png]]&lt;br /&gt;
&lt;br /&gt;
=Invoices list=&lt;br /&gt;
&lt;br /&gt;
Invoices can be viewed, generated, recalculated, sent, also &amp;lt;!---...from MOR 9---&amp;gt; list of Invoices can be exported to CSV file (Invoice number and TAX Registration Number are included in the output CSV file) in '''SETTINGS –&amp;gt; Accounting –&amp;gt; Invoices'''. In the main window, you can see list of all Invoices:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Invoice list small.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The icons [[Image:icon_check.png]] and [[Image:icon_cross.png]] show whether this invoice is Paid or Unpaid, Sent or Not Sent. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE''' Each Invoice generated in particular Time Zone and on particular Currency. That means that in each line of Invoice Price and Price with TAX will be shown in currency which is written in Currency column. The Currency column tells which currency Invoice was generated with. Also the exchange rate at the invoice generation moment is saved in the database so it may differ from the up to date exchange rate.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Total Price and Price with TAX are calculated into viewing Currency, which you can choose in upper corner of page. In Total price calculation there are used saved exchange Rate of each Invoice.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Example'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Default system Currency is USD&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Invoice A is generated on price = 100 in currency EUR with exchange rate 0.5&amp;lt;br&amp;gt;&lt;br /&gt;
Invoice B is generated on price = 100 in currency DZD with exchange rate 0.25&amp;lt;br&amp;gt;&lt;br /&gt;
Invoice C is generated on price = 100 in currency ALL with exchange rate 0.75&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
But now exchange rate are different: EUR - 0.75, DZD - 0.5 and ALL - 1.0. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to see Total price(sum of these 3 Invoices) in EUR. For Invoice B and C will be set exchange rate of today, but for Invoice A exchange rate will be from that day when Invoice was generated (0.5).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same calculations with other currencies:&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to see Total price in USD. For Invoice A, B and C the exchange rates will be set from the day when invoice was generated (EUR - 0.5, DZD - 0.25 and ALL - 0.75).&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to see Total price in DZD. For Invoice A and C will be set exchange rate of today, but for Invoice B exchange rate will be from the day when Invoice was generated (0.25).&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to see Total price in ALL. For Invoice A and B will be set exchange rate of today, but for Invoice C exchange rate will be from the day when Invoice was generated (0.75).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Total price will be 733.3333 USD, or 500 EUR, or 266.6667 DZD, or 700 ALL&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Invoice details=&lt;br /&gt;
&lt;br /&gt;
Click on the [[Image:icon_details.png]] icon to get details of the Invoice:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:invoice_details_x6.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Invoice details are shown in Currency which was used to generate Invoice. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==General Details==&lt;br /&gt;
&lt;br /&gt;
'''Payment date''' - An option which will set the period of payment on current month. By default ''Years'' and ''Month'' is current, it is only possible to change ''Day of Month'' which is indicating the last date of ''Invoice'' issue.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Currecy of Invoice''' - &amp;lt;!---This functionality is available from MOR X6---&amp;gt; Invoices are exported in Invoice currency.&lt;br /&gt;
&lt;br /&gt;
'''Language of Invoice'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Default language in MOR is English. However, you can send invoices in different languages (click on the flag icon on the top of the page).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==User Details==&lt;br /&gt;
&lt;br /&gt;
User Details which will be used in xlsx file of invoice. These Details are taken form [[User Details]] and it can be changed manually, but after recalculate it will be reset to same information as it is in [[User Details]].&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Files to send or download==&lt;br /&gt;
&lt;br /&gt;
Here you can view the details of all invoices and click on the [[Image:icon_pdf.png]] or [[Image:icon_csv.png]] icons to generate invoice files in PDF or CSV formats accordingly. First icon [[Image:icon_csv.png]] will download a xlsx file.&lt;br /&gt;
&lt;br /&gt;
*'''Invoice XLSX''' xlsx file shows information which are set by you. Check [[Invoices#XLSX_Invoices | XLSX Invoice]]&lt;br /&gt;
*'''Simplified Invoice''' PDF shows separate services Prices and Total Invoice Prices, CSV shows just Total Invoice Prices.&lt;br /&gt;
*'''Detailed Invoice''' shows same information like simple Invoice and includes Calls list grouped by Destination.&lt;br /&gt;
*'''Invoice by CallerID'''  shows Calls list grouped by CallerID.&lt;br /&gt;
*'''Invoice Destinations''' shows Calls list grouped by Destination. &lt;br /&gt;
&lt;br /&gt;
You can manage what kind of Invoice should be showed for User and/or sent to User as email attachment in [[User_Details#Invoices |User Details]]. Here you can check ''Show zero Calls'' option if you need to calculate 0 price Calls into Invoices.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== XLSX Invoices ===&lt;br /&gt;
&lt;br /&gt;
XLSX file to export an Invoice is made from your own XLSX format template and information from Invoices main window.&lt;br /&gt;
Example of template can be downloaded [http://www.kolmisoft.com/packets/x6_invoice_template.xlsx here].&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example of XLSX Invoice can be downloaded [http://wiki.kolmisoft.com/images/9/93/Invoice_example_for_wiki.xls here].&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Default XLSX template'''&lt;br /&gt;
&lt;br /&gt;
Create a xlsx file. Template you can prepare as you wish, you can fill it with information of company, draw tables with column names, describe information taken from Invoice main window and so on. Template '''have to be uploaded in SETTINGS -&amp;gt; Setup -&amp;gt; Settings''', Invoices - XLSX tab setting  '''XSLX Template'''&lt;br /&gt;
* Check '''New XLSX template apply for old Invoices''' if you want to change XLSX template for Invoices which is already generated.&lt;br /&gt;
* Check '''Group regular Calls by Destinations''' if you want XLSX file use as detailed Invoice.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Balance Line settings'''&lt;br /&gt;
&lt;br /&gt;
''Outstanding balance (Debt)'', ''Outstanding balance (Debt) with TAX'', ''Total amount due'' options are present when ''Show balance line'' ('''SETTINGS -&amp;gt; Setup -&amp;gt; Settings''', Invoices - Postpaid - Settings) setting is enabled.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Configuration for Dynamic information'''&lt;br /&gt;
&lt;br /&gt;
When you already have a template for example with all data of your company, with drawn tables and so on, you need to define where should be shown the dynamic information of invoice. How and what information is displayed can be set same '''SETTINGS -&amp;gt; Setup -&amp;gt; Settings''', Invoices - XLSX tab. Just need to define cell address in correct format.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
[[File:Setttings xlsx.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For example &amp;quot;A2&amp;quot;, &amp;quot;B15&amp;quot;, &amp;quot;AA9&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:callc.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE''': If you do not want to use particular dynamic value just leave empty input for it.&lt;br /&gt;
&lt;br /&gt;
=== PDF invoices ===&lt;br /&gt;
&lt;br /&gt;
The layout of PDF invoices is not customizable. &lt;br /&gt;
&lt;br /&gt;
Logos are not supported in PDF invoices.&lt;br /&gt;
&lt;br /&gt;
You can print your invoices on paper with a pre-printed logo if you want to send paper invoices.&lt;br /&gt;
&lt;br /&gt;
Example of PDF invoice can be downloaded by clicking [http://wiki.kolmisoft.com/images/a/a0/Example-Invoice-for-wiki.pdf here] and for detailed invoice click [http://wiki.kolmisoft.com/images/e/e1/Example-Detailed-Invoice-for-wiki.pdf here]. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CSV invoices ===&lt;br /&gt;
&lt;br /&gt;
Detailed CSV invoice does not include list of all calls. Please use [[How_to_export_CDRs|CDR export]] if you need list of calls in CSV format.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Comment==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!---This functionality is available from MOR 9---&amp;gt;&lt;br /&gt;
Sometimes it is useful to add a comment to the invoice. It can be used in xlsx file also.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Invoice  Details==&lt;br /&gt;
Click on the Invoice Details icon in the Invoice details page &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Service_details.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
to get Services Details of the Invoice: &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:invoice_services_x6.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Services:'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* '''SMS''' – quantity and price of SMS sent in selected period. Invoice for Reseller counts all SMS that was sent by his users using price for Reseller. Note, that SMS are included to Invoice only when [[SMS Addon]] is used&lt;br /&gt;
* '''DID Owner Cost''' – price for having and using own DID(s)&lt;br /&gt;
* '''Subscriptions''' – price of subscription applied to selected period. Period considered as month is from first till last day of month and from concrete day of month till next month one day before selected last month. Eg. from 2013-02-26 till 2013-03-25&lt;br /&gt;
* '''Calls''' – quantity and price of outgoing calls&lt;br /&gt;
* '''Calls from Users''' – quantity and price of resellers users calls&lt;br /&gt;
* '''Calls to DIDs''' – price for calling to DID(s)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Invoice generation =&lt;br /&gt;
&lt;br /&gt;
In the main Invoices window, click [[Image:icon_generate_invoices.png]] '''Generate Invoices''' to generate additional invoices:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:generate_invoices_x6.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Select for which users to generate invoices. Prepaid and Postpaid users can have separate details. Also, you can check to generate an invoice for only one particular user. Invoice will be generated if selected User existed at least one day of all Invoice period. When Invoice Generation Task is created, admin can check the progress in [[Background Tasks]]. &lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' For Prepaid User after every executed Manual Payment will be generated Invoice automatically.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!---This functionality is available from MOR X5---&amp;gt;&lt;br /&gt;
'''NOTE:''' If Currency of User is different than default System Currency. All his Invoices will be generated with [[Currencies| Currency]] Exchange Rate of current day. &amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE:''' When generating invoice, current user details will be used.  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Interconnection between Invoice generation and ElasticSearch Sync Status (ES)=&lt;br /&gt;
&lt;br /&gt;
Invoices will be generated if ES Sync Status is 100%.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:ES_SYNC_100%.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In other cases, you will see a notification: '''&amp;quot;Invoice cannot be generated due to data inconsistencies, please contact support&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
While Invoice is being generated, system will check if ES Call quantity is the same as in MySQL. Because of Timezone differenece, system will consider the period for which Invoices are generated +2 days from start time and end time.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For example:&lt;br /&gt;
* User is generating Invoice at 2017-10-12 '''10:00:00''';&lt;br /&gt;
* User is generating Invoice for 2017-10-11 00:00:00 - 2017-10-11 23:59:59;&lt;br /&gt;
* System will check Call quantity from 2017-10-09 00:00:00 till 2017-10-12 '''09:00:00'''.&lt;br /&gt;
&lt;br /&gt;
= Invoice recalculation =&lt;br /&gt;
&lt;br /&gt;
An invoice cannot be modified after being sent. But if you want to allow recalculations after sending invoices, go to: '''Settings -&amp;gt; Setup -&amp;gt; Settings'''. Then click on the tabs: '''Invoices -&amp;gt; Functionality'''. Select ''Invoice allow recalculate after send'':&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:ivoicesnewnew.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Recalculate a group of Invoices===&lt;br /&gt;
&lt;br /&gt;
To recalculate invoices in the main Invoices window click [[Image:icon_generate_invoices.png]] '''Recalculate invoices''':&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:recalc.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Select which type of Invoices or whose Invoices to recalculate.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Recalculate a single Invoice ===&lt;br /&gt;
&lt;br /&gt;
If an invoice is not marked as paid - it can be recalculated for the same user, same period. To achieve this - press the marked icon:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Recalculate_single_invoice_x6.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Pay unpaid Invoices =&lt;br /&gt;
&lt;br /&gt;
In list of Invoices click [[Image:icon_edit.png]]'''Bulk management''' and button '''Pay unpaid Invoices''' will appear.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Pay_unpaid_invocies.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Click '''Pay unpaid Invoices''' and '''All''' unpaid Invoices will be marked as paid. For each marked Invoice Payment will be created.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Delete all Invoices =&lt;br /&gt;
&lt;br /&gt;
In list of Invoices click [[Image:icon_edit.png]]'''Bulk management''' and button '''Delete all invoices''' will appear.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Delete_all_invoices.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Click '''Delete all invoices''' and '''all listed Invoices in all pages''' will be deleted (with respect to search filter). &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Note:''' Invoices, which were already sent, are possible to delete only with option enabled in: Invoices-&amp;gt;Functionality-&amp;gt; Invoice allow recalculate after send.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Send invoices by email (manual) =&lt;br /&gt;
&lt;br /&gt;
Click '''Send Invoices over Email to Users''' to send invoices to their Users in this period:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Invoce email.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
You can use these settings to choose which users should get an email with the invoice. Using these settings you can send emails in parts.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Email sending''' option must be enabled in Email Settings to use this feature&lt;br /&gt;
* Tip: you can '''send invoices in parts''' by using text fields to send invoices for users which '''Username, First name, Last name''' or '''Number''' begins with some letters. For example: you have users with usernames john, albert and alex. You want to send invoices only for users whose usernames begins with '''&amp;quot;a&amp;quot;''' so you just have to enter '''&amp;quot;a&amp;quot;''' in a '''Username text field''' to send invoices only to albert and alex.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Generate and send invoices by email (automatically) =&lt;br /&gt;
&lt;br /&gt;
Use [http://wiki.kolmisoft.com/index.php/Cron_actions#Generate_Invoices_and_send_by_Email Cron Actions] to Generate and send Emails automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Export all to XLSX =&lt;br /&gt;
&lt;br /&gt;
In Invoices list you can click on '''Export all to XLSX''' link to download all Invoices' XLSX files in a single ZIP. It includes all Invoices matching your search.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[Accounting]]&lt;br /&gt;
* [[Invoice configuration]]&lt;br /&gt;
* [[Pay Invoice with balance deduction]]&lt;br /&gt;
* [[Outstanding balance(Debt)]]&lt;br /&gt;
* [[Invoice by CallerID]]&lt;br /&gt;
* [[MOR API invoices_get]]&lt;br /&gt;
* [[Cannot generate Invoice]]&lt;br /&gt;
* [[Duplicate value in Cell Address field]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Auto-Dialer_Addon&amp;diff=22809</id>
		<title>Auto-Dialer Addon</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Auto-Dialer_Addon&amp;diff=22809"/>
		<updated>2017-10-10T10:17:25Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Limitations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
&lt;br /&gt;
Auto-Dialer addon lets you call an array of [[Auto-Dialer_Addon#Numbers | numbers]] automatically. When call is answered, receiver hears  the audio message or he is in standby mode, it depends on what is set in Auto Dialer [[Auto-Dialer_Addon#Actions | actions]] (PLAY / IVR / WAIT).&lt;br /&gt;
This functionality can be used in telemarketing.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
When Auto-Dialer (AD) is installed, every user can use it and '''only users can create Campaigns. Admin cannot create Campaings.'''&lt;br /&gt;
&lt;br /&gt;
==From User==&lt;br /&gt;
&lt;br /&gt;
The user can find the AD menu under '''PERSONAL MENU -&amp;gt; Various -&amp;gt; Auto Dialer'''.&lt;br /&gt;
&lt;br /&gt;
The main window shows the user's campaigns:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:ad1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The user can Activate or Stop the Campaign by clicking the [[Image:icon_play.png]] or [[Image:icon_stop.png]] button near the Campaign's status.&lt;br /&gt;
&lt;br /&gt;
A Campaign can only be '''Activated''' if it has free (not-called) numbers AND some Actions. &lt;br /&gt;
&lt;br /&gt;
So please, before activating a Campaign, import some Numbers and create Actions.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' Auto Dialer starts in 5 minutes, so when you are starting this add-on, you need to wait 5 minutes before it starts.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Campaigns===&lt;br /&gt;
&lt;br /&gt;
Auto-Dialer can be found under '''PERSONAL MENU -&amp;gt; Various -&amp;gt; Auto Dialer'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:icon_add.png]] '''Add new campaign''' allows you to add a new campaign:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The important fields here are:&lt;br /&gt;
&lt;br /&gt;
* '''Start/Stop Times''' – when calls will be made.&lt;br /&gt;
* '''Max Retries''' – how many times to retry an unsuccessful call.&lt;br /&gt;
* '''Retry Time''' – how many seconds the system should wait to retry the call.&lt;br /&gt;
* '''Wait Time''' – how long to wait till the call is answered. This field by default is 10 and cannot be made less. This is done in order to &lt;br /&gt;
prevent annoying multiple calls from Auto Dialer to the end user if for example &amp;quot;Wait Time&amp;quot; is configured as 5 seconds.&lt;br /&gt;
* '''Device''' – each Campaign should be assigned to a Device in order for MOR to bill the call.&lt;br /&gt;
* '''CallerID''' - what CallerID to put on calls.&lt;br /&gt;
* '''Allow duplicate numbers''' - when checked allows duplicate number import into the Auto-Dialer Campaign.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Numbers  ===&lt;br /&gt;
&lt;br /&gt;
Click on [[Image:icon_list.png]] in the '''Numbers''' column to check numbers which will be dialed on campaign:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The user can import phone numbers from a TXT file. Numbers should be in correct dialing format.&lt;br /&gt;
&lt;br /&gt;
Example of numbers file:&lt;br /&gt;
&lt;br /&gt;
 442012345678&lt;br /&gt;
 442087654321&lt;br /&gt;
 442054987123&lt;br /&gt;
&lt;br /&gt;
In a new Campaign there are no numbers, so click on [[Image:icon_csv.png]] '''Import numbers from file''' and select the file to upload:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After uploading the file, you will see status of imported numbers:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer4.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
You can delete all numbers by clicking [[Image:icon_cross.png]] '''Delete all numbers'''. Also you can export details by clicking [[Image:excel.png]] '''Export IVR/poll results to CSV'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If a number is Completed, it is possible to reactivate it (tell the system to call it again) by clicking the [[Image:icon_reactivate.png]] icon near the number.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Actions ===&lt;br /&gt;
&lt;br /&gt;
Click [[Image:icon_actions.png]] in the Actions column to access the Campaign's actions:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer5.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In this window, the user programs the Actions for the Campaign:&lt;br /&gt;
&lt;br /&gt;
Types of Actions:&lt;br /&gt;
&lt;br /&gt;
* '''WAIT''' – how many seconds to wait.&lt;br /&gt;
* '''PLAY''' – play a file.&lt;br /&gt;
* '''IVR''' - send call to IVR. It can be used to connect to a real person and give the callee a greater choice. For example, it is possible to play an advertisement and tell the user to press '1' to talk with a real person about this advertisement or similar.&lt;br /&gt;
** NOTE: admin or [[Reseller_Pro_Addon|Reseller PRO]] must check option &amp;quot;All users can use it&amp;quot; on IVR to allow users to set that IVR on AD campaign.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Redial all failed Calls===&lt;br /&gt;
&amp;lt;!---This functionality is available from MOR 9---&amp;gt;&lt;br /&gt;
You can redial all failed calls:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_redial_all_failed_calls.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Autodialer Campaign statistics===&lt;br /&gt;
To view the Autodialer Campaign statistics, click on the bar chart icon in the '''Stats''' column.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_Stats_icon.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
On the newly opened page you will be able to see the desired Autodialer Campaign statistics with a search filter and a visual representation of data.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_Stats_User.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==From Admin==&lt;br /&gt;
&lt;br /&gt;
When Auto-Dialer (AD) is installed, Admin can find it under the  '''ADDONS –&amp;gt; Auto Dialer''' menu. Here he can get a view of all users' campaigns:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer6.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The important information for each Campaign is:&lt;br /&gt;
&lt;br /&gt;
* Status – is the Campaign Active or Stopped?&lt;br /&gt;
* Run time – tells when calls will be made.&lt;br /&gt;
&lt;br /&gt;
All other fields are self-explanatory.&lt;br /&gt;
&lt;br /&gt;
It is possible for admin to see the Actions for users' Campaigns. Just click on the [[Image:icon_actions.png]] '''Actions''' button. However he cannot make any changes to the user's campaign. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Workflow=&lt;br /&gt;
&lt;br /&gt;
Each 5 minutes, &amp;quot;cron job&amp;quot; is activated to check whether any campaigns are activated.&lt;br /&gt;
&lt;br /&gt;
If there are some active campaigns, the script creates call files for the future. &lt;br /&gt;
&lt;br /&gt;
It puts calls in Time Period in equal time periods, to balance the workload for Asterisk.&lt;br /&gt;
&lt;br /&gt;
For example, if you have 10 calls to make, the script will execute them in 6s intervals to start all calls in 1 min time.&lt;br /&gt;
&lt;br /&gt;
Variables in '''/etc/mor/system.conf''':&lt;br /&gt;
&lt;br /&gt;
'''calls_one_time''' - how many calls to distribute per one minute. (PLEASE NOTE, this value is not for simultaneous calls! It has a very different meaning, which is explained below).&lt;br /&gt;
&lt;br /&gt;
'''cron_interval''' - the interval of time (in minutes) in which we should 'put' calls. Do not set value higher than &amp;quot;4&amp;quot; as it would cause overlapping of Autodialer sessions.&lt;br /&gt;
&lt;br /&gt;
'''ad_disabled''' - when set to 1, disables Auto-Dialer functionality on a Server. '''Note:''' in multi-Asterisk systems all Asterisks but one must have this setting set to 1. This neeeds to be done in order to prevent duplicate calls. &lt;br /&gt;
&lt;br /&gt;
Example #1:&lt;br /&gt;
&lt;br /&gt;
 calls_one_time = 10&lt;br /&gt;
 cron_interval = 1&lt;br /&gt;
&lt;br /&gt;
That means that in 1 minute the script will put 10 calls. So each call will be executed at a 6s interval:&lt;br /&gt;
&lt;br /&gt;
 1st call: 0s&lt;br /&gt;
 2nd call: 6s&lt;br /&gt;
 3rd call: 12s&lt;br /&gt;
 ....&lt;br /&gt;
 9th call: 54s&lt;br /&gt;
 10th call: 60s&lt;br /&gt;
&lt;br /&gt;
Example #2:&lt;br /&gt;
&lt;br /&gt;
 calls_one_time = 5&lt;br /&gt;
 cron_interval = 2&lt;br /&gt;
&lt;br /&gt;
That means that in 1 minute the script will put 5 calls and it will do so for 2 minutes. So each call will be executed at a 12s interval:&lt;br /&gt;
&lt;br /&gt;
 1st call: 0s&lt;br /&gt;
 2nd call: 12s&lt;br /&gt;
 3rd call: 24s&lt;br /&gt;
 4rd call: 36s&lt;br /&gt;
 5th call: 48s&lt;br /&gt;
 6th call: 60s&lt;br /&gt;
 7th call: 72s&lt;br /&gt;
 8th call: 84s&lt;br /&gt;
 9th call: 96s&lt;br /&gt;
 10th call: 108s&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Limitations=&lt;br /&gt;
&lt;br /&gt;
Currently MOR does not support such functionality as to issue the Auto Dialer campaign only in that Asterisk &lt;br /&gt;
&lt;br /&gt;
server to which the device belongs (if you have multiple Asterisk servers). Now MOR just issues the campaign in all servers. If you want it to &lt;br /&gt;
&lt;br /&gt;
run only on one server you need to disable the Auto-Dialer functionality with the setting in '''/etc/mor/system.conf''': &lt;br /&gt;
  ad_disabled = 1&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Logs=&lt;br /&gt;
&lt;br /&gt;
Autodialer log can be found here:&lt;br /&gt;
 /var/log/mor/mor_ad_cron.log&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Problems =&lt;br /&gt;
&lt;br /&gt;
* [[MOR Server Speedup]] (to get more calls by AD)&lt;br /&gt;
* [[I have a problem with Auto Dialer]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[Autodialer poll example]]&lt;br /&gt;
* [[Convert WAV file to Asterisk playable format]]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Sound files]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Auto-Dialer_Addon&amp;diff=22808</id>
		<title>Auto-Dialer Addon</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Auto-Dialer_Addon&amp;diff=22808"/>
		<updated>2017-10-10T10:12:42Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Workflow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
&lt;br /&gt;
Auto-Dialer addon lets you call an array of [[Auto-Dialer_Addon#Numbers | numbers]] automatically. When call is answered, receiver hears  the audio message or he is in standby mode, it depends on what is set in Auto Dialer [[Auto-Dialer_Addon#Actions | actions]] (PLAY / IVR / WAIT).&lt;br /&gt;
This functionality can be used in telemarketing.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
When Auto-Dialer (AD) is installed, every user can use it and '''only users can create Campaigns. Admin cannot create Campaings.'''&lt;br /&gt;
&lt;br /&gt;
==From User==&lt;br /&gt;
&lt;br /&gt;
The user can find the AD menu under '''PERSONAL MENU -&amp;gt; Various -&amp;gt; Auto Dialer'''.&lt;br /&gt;
&lt;br /&gt;
The main window shows the user's campaigns:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:ad1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The user can Activate or Stop the Campaign by clicking the [[Image:icon_play.png]] or [[Image:icon_stop.png]] button near the Campaign's status.&lt;br /&gt;
&lt;br /&gt;
A Campaign can only be '''Activated''' if it has free (not-called) numbers AND some Actions. &lt;br /&gt;
&lt;br /&gt;
So please, before activating a Campaign, import some Numbers and create Actions.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' Auto Dialer starts in 5 minutes, so when you are starting this add-on, you need to wait 5 minutes before it starts.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Campaigns===&lt;br /&gt;
&lt;br /&gt;
Auto-Dialer can be found under '''PERSONAL MENU -&amp;gt; Various -&amp;gt; Auto Dialer'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:icon_add.png]] '''Add new campaign''' allows you to add a new campaign:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The important fields here are:&lt;br /&gt;
&lt;br /&gt;
* '''Start/Stop Times''' – when calls will be made.&lt;br /&gt;
* '''Max Retries''' – how many times to retry an unsuccessful call.&lt;br /&gt;
* '''Retry Time''' – how many seconds the system should wait to retry the call.&lt;br /&gt;
* '''Wait Time''' – how long to wait till the call is answered. This field by default is 10 and cannot be made less. This is done in order to &lt;br /&gt;
prevent annoying multiple calls from Auto Dialer to the end user if for example &amp;quot;Wait Time&amp;quot; is configured as 5 seconds.&lt;br /&gt;
* '''Device''' – each Campaign should be assigned to a Device in order for MOR to bill the call.&lt;br /&gt;
* '''CallerID''' - what CallerID to put on calls.&lt;br /&gt;
* '''Allow duplicate numbers''' - when checked allows duplicate number import into the Auto-Dialer Campaign.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Numbers  ===&lt;br /&gt;
&lt;br /&gt;
Click on [[Image:icon_list.png]] in the '''Numbers''' column to check numbers which will be dialed on campaign:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The user can import phone numbers from a TXT file. Numbers should be in correct dialing format.&lt;br /&gt;
&lt;br /&gt;
Example of numbers file:&lt;br /&gt;
&lt;br /&gt;
 442012345678&lt;br /&gt;
 442087654321&lt;br /&gt;
 442054987123&lt;br /&gt;
&lt;br /&gt;
In a new Campaign there are no numbers, so click on [[Image:icon_csv.png]] '''Import numbers from file''' and select the file to upload:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After uploading the file, you will see status of imported numbers:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer4.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
You can delete all numbers by clicking [[Image:icon_cross.png]] '''Delete all numbers'''. Also you can export details by clicking [[Image:excel.png]] '''Export IVR/poll results to CSV'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If a number is Completed, it is possible to reactivate it (tell the system to call it again) by clicking the [[Image:icon_reactivate.png]] icon near the number.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Actions ===&lt;br /&gt;
&lt;br /&gt;
Click [[Image:icon_actions.png]] in the Actions column to access the Campaign's actions:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer5.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In this window, the user programs the Actions for the Campaign:&lt;br /&gt;
&lt;br /&gt;
Types of Actions:&lt;br /&gt;
&lt;br /&gt;
* '''WAIT''' – how many seconds to wait.&lt;br /&gt;
* '''PLAY''' – play a file.&lt;br /&gt;
* '''IVR''' - send call to IVR. It can be used to connect to a real person and give the callee a greater choice. For example, it is possible to play an advertisement and tell the user to press '1' to talk with a real person about this advertisement or similar.&lt;br /&gt;
** NOTE: admin or [[Reseller_Pro_Addon|Reseller PRO]] must check option &amp;quot;All users can use it&amp;quot; on IVR to allow users to set that IVR on AD campaign.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Redial all failed Calls===&lt;br /&gt;
&amp;lt;!---This functionality is available from MOR 9---&amp;gt;&lt;br /&gt;
You can redial all failed calls:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_redial_all_failed_calls.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Autodialer Campaign statistics===&lt;br /&gt;
To view the Autodialer Campaign statistics, click on the bar chart icon in the '''Stats''' column.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_Stats_icon.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
On the newly opened page you will be able to see the desired Autodialer Campaign statistics with a search filter and a visual representation of data.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_Stats_User.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==From Admin==&lt;br /&gt;
&lt;br /&gt;
When Auto-Dialer (AD) is installed, Admin can find it under the  '''ADDONS –&amp;gt; Auto Dialer''' menu. Here he can get a view of all users' campaigns:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer6.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The important information for each Campaign is:&lt;br /&gt;
&lt;br /&gt;
* Status – is the Campaign Active or Stopped?&lt;br /&gt;
* Run time – tells when calls will be made.&lt;br /&gt;
&lt;br /&gt;
All other fields are self-explanatory.&lt;br /&gt;
&lt;br /&gt;
It is possible for admin to see the Actions for users' Campaigns. Just click on the [[Image:icon_actions.png]] '''Actions''' button. However he cannot make any changes to the user's campaign. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Workflow=&lt;br /&gt;
&lt;br /&gt;
Each 5 minutes, &amp;quot;cron job&amp;quot; is activated to check whether any campaigns are activated.&lt;br /&gt;
&lt;br /&gt;
If there are some active campaigns, the script creates call files for the future. &lt;br /&gt;
&lt;br /&gt;
It puts calls in Time Period in equal time periods, to balance the workload for Asterisk.&lt;br /&gt;
&lt;br /&gt;
For example, if you have 10 calls to make, the script will execute them in 6s intervals to start all calls in 1 min time.&lt;br /&gt;
&lt;br /&gt;
Variables in '''/etc/mor/system.conf''':&lt;br /&gt;
&lt;br /&gt;
'''calls_one_time''' - how many calls to distribute per one minute. (PLEASE NOTE, this value is not for simultaneous calls! It has a very different meaning, which is explained below).&lt;br /&gt;
&lt;br /&gt;
'''cron_interval''' - the interval of time (in minutes) in which we should 'put' calls. Do not set value higher than &amp;quot;4&amp;quot; as it would cause overlapping of Autodialer sessions.&lt;br /&gt;
&lt;br /&gt;
'''ad_disabled''' - when set to 1, disables Auto-Dialer functionality on a Server. '''Note:''' in multi-Asterisk systems all Asterisks but one must have this setting set to 1. This neeeds to be done in order to prevent duplicate calls. &lt;br /&gt;
&lt;br /&gt;
Example #1:&lt;br /&gt;
&lt;br /&gt;
 calls_one_time = 10&lt;br /&gt;
 cron_interval = 1&lt;br /&gt;
&lt;br /&gt;
That means that in 1 minute the script will put 10 calls. So each call will be executed at a 6s interval:&lt;br /&gt;
&lt;br /&gt;
 1st call: 0s&lt;br /&gt;
 2nd call: 6s&lt;br /&gt;
 3rd call: 12s&lt;br /&gt;
 ....&lt;br /&gt;
 9th call: 54s&lt;br /&gt;
 10th call: 60s&lt;br /&gt;
&lt;br /&gt;
Example #2:&lt;br /&gt;
&lt;br /&gt;
 calls_one_time = 5&lt;br /&gt;
 cron_interval = 2&lt;br /&gt;
&lt;br /&gt;
That means that in 1 minute the script will put 5 calls and it will do so for 2 minutes. So each call will be executed at a 12s interval:&lt;br /&gt;
&lt;br /&gt;
 1st call: 0s&lt;br /&gt;
 2nd call: 12s&lt;br /&gt;
 3rd call: 24s&lt;br /&gt;
 4rd call: 36s&lt;br /&gt;
 5th call: 48s&lt;br /&gt;
 6th call: 60s&lt;br /&gt;
 7th call: 72s&lt;br /&gt;
 8th call: 84s&lt;br /&gt;
 9th call: 96s&lt;br /&gt;
 10th call: 108s&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Limitations=&lt;br /&gt;
&lt;br /&gt;
Currently MOR does not support such functionality as to issue the Auto Dialer campaign only in that Asterisk &lt;br /&gt;
&lt;br /&gt;
server to which the device belongs (if you have multiple Asterisk servers). Now MOR just issues the campaign on both servers, if you want it to &lt;br /&gt;
&lt;br /&gt;
run only on one server you need to just disable the cron job on one of the servers. &lt;br /&gt;
Cron can be found in &lt;br /&gt;
 /etc/cron.d/mor_ad&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Logs=&lt;br /&gt;
&lt;br /&gt;
Autodialer log can be found here:&lt;br /&gt;
 /var/log/mor/mor_ad_cron.log&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Problems =&lt;br /&gt;
&lt;br /&gt;
* [[MOR Server Speedup]] (to get more calls by AD)&lt;br /&gt;
* [[I have a problem with Auto Dialer]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[Autodialer poll example]]&lt;br /&gt;
* [[Convert WAV file to Asterisk playable format]]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Sound files]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Auto-Dialer_Addon&amp;diff=22806</id>
		<title>Auto-Dialer Addon</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Auto-Dialer_Addon&amp;diff=22806"/>
		<updated>2017-10-10T08:26:29Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Workflow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
&lt;br /&gt;
Auto-Dialer addon lets you call an array of [[Auto-Dialer_Addon#Numbers | numbers]] automatically. When call is answered, receiver hears  the audio message or he is in standby mode, it depends on what is set in Auto Dialer [[Auto-Dialer_Addon#Actions | actions]] (PLAY / IVR / WAIT).&lt;br /&gt;
This functionality can be used in telemarketing.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
When Auto-Dialer (AD) is installed, every user can use it and '''only users can create Campaigns. Admin cannot create Campaings.'''&lt;br /&gt;
&lt;br /&gt;
==From User==&lt;br /&gt;
&lt;br /&gt;
The user can find the AD menu under '''PERSONAL MENU -&amp;gt; Various -&amp;gt; Auto Dialer'''.&lt;br /&gt;
&lt;br /&gt;
The main window shows the user's campaigns:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:ad1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The user can Activate or Stop the Campaign by clicking the [[Image:icon_play.png]] or [[Image:icon_stop.png]] button near the Campaign's status.&lt;br /&gt;
&lt;br /&gt;
A Campaign can only be '''Activated''' if it has free (not-called) numbers AND some Actions. &lt;br /&gt;
&lt;br /&gt;
So please, before activating a Campaign, import some Numbers and create Actions.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' Auto Dialer starts in 5 minutes, so when you are starting this add-on, you need to wait 5 minutes before it starts.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Campaigns===&lt;br /&gt;
&lt;br /&gt;
Auto-Dialer can be found under '''PERSONAL MENU -&amp;gt; Various -&amp;gt; Auto Dialer'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:icon_add.png]] '''Add new campaign''' allows you to add a new campaign:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The important fields here are:&lt;br /&gt;
&lt;br /&gt;
* '''Start/Stop Times''' – when calls will be made.&lt;br /&gt;
* '''Max Retries''' – how many times to retry an unsuccessful call.&lt;br /&gt;
* '''Retry Time''' – how many seconds the system should wait to retry the call.&lt;br /&gt;
* '''Wait Time''' – how long to wait till the call is answered. This field by default is 10 and cannot be made less. This is done in order to &lt;br /&gt;
prevent annoying multiple calls from Auto Dialer to the end user if for example &amp;quot;Wait Time&amp;quot; is configured as 5 seconds.&lt;br /&gt;
* '''Device''' – each Campaign should be assigned to a Device in order for MOR to bill the call.&lt;br /&gt;
* '''CallerID''' - what CallerID to put on calls.&lt;br /&gt;
* '''Allow duplicate numbers''' - when checked allows duplicate number import into the Auto-Dialer Campaign.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Numbers  ===&lt;br /&gt;
&lt;br /&gt;
Click on [[Image:icon_list.png]] in the '''Numbers''' column to check numbers which will be dialed on campaign:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The user can import phone numbers from a TXT file. Numbers should be in correct dialing format.&lt;br /&gt;
&lt;br /&gt;
Example of numbers file:&lt;br /&gt;
&lt;br /&gt;
 442012345678&lt;br /&gt;
 442087654321&lt;br /&gt;
 442054987123&lt;br /&gt;
&lt;br /&gt;
In a new Campaign there are no numbers, so click on [[Image:icon_csv.png]] '''Import numbers from file''' and select the file to upload:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After uploading the file, you will see status of imported numbers:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer4.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
You can delete all numbers by clicking [[Image:icon_cross.png]] '''Delete all numbers'''. Also you can export details by clicking [[Image:excel.png]] '''Export IVR/poll results to CSV'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If a number is Completed, it is possible to reactivate it (tell the system to call it again) by clicking the [[Image:icon_reactivate.png]] icon near the number.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Actions ===&lt;br /&gt;
&lt;br /&gt;
Click [[Image:icon_actions.png]] in the Actions column to access the Campaign's actions:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer5.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In this window, the user programs the Actions for the Campaign:&lt;br /&gt;
&lt;br /&gt;
Types of Actions:&lt;br /&gt;
&lt;br /&gt;
* '''WAIT''' – how many seconds to wait.&lt;br /&gt;
* '''PLAY''' – play a file.&lt;br /&gt;
* '''IVR''' - send call to IVR. It can be used to connect to a real person and give the callee a greater choice. For example, it is possible to play an advertisement and tell the user to press '1' to talk with a real person about this advertisement or similar.&lt;br /&gt;
** NOTE: admin or [[Reseller_Pro_Addon|Reseller PRO]] must check option &amp;quot;All users can use it&amp;quot; on IVR to allow users to set that IVR on AD campaign.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Redial all failed Calls===&lt;br /&gt;
&amp;lt;!---This functionality is available from MOR 9---&amp;gt;&lt;br /&gt;
You can redial all failed calls:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_redial_all_failed_calls.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Autodialer Campaign statistics===&lt;br /&gt;
To view the Autodialer Campaign statistics, click on the bar chart icon in the '''Stats''' column.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_Stats_icon.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
On the newly opened page you will be able to see the desired Autodialer Campaign statistics with a search filter and a visual representation of data.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_Stats_User.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==From Admin==&lt;br /&gt;
&lt;br /&gt;
When Auto-Dialer (AD) is installed, Admin can find it under the  '''ADDONS –&amp;gt; Auto Dialer''' menu. Here he can get a view of all users' campaigns:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer6.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The important information for each Campaign is:&lt;br /&gt;
&lt;br /&gt;
* Status – is the Campaign Active or Stopped?&lt;br /&gt;
* Run time – tells when calls will be made.&lt;br /&gt;
&lt;br /&gt;
All other fields are self-explanatory.&lt;br /&gt;
&lt;br /&gt;
It is possible for admin to see the Actions for users' Campaigns. Just click on the [[Image:icon_actions.png]] '''Actions''' button. However he cannot make any changes to the user's campaign. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Workflow=&lt;br /&gt;
&lt;br /&gt;
Each 5 minutes, &amp;quot;cron job&amp;quot; is activated to check whether any campaigns are activated.&lt;br /&gt;
&lt;br /&gt;
If there are some active campaigns, the script creates call files for the future. &lt;br /&gt;
&lt;br /&gt;
It puts calls in Time Period in equal time periods, to balance the workload for Asterisk.&lt;br /&gt;
&lt;br /&gt;
For example, if you have 10 calls to make, the script will execute them in 6s intervals to start all calls in 1 min time.&lt;br /&gt;
&lt;br /&gt;
Variables in '''/etc/mor/system.conf''':&lt;br /&gt;
&lt;br /&gt;
'''calls_one_time''' - how many calls to distribute per one minute. (PLEASE NOTE, this value is not for simultaneous calls! It has a very different meaning, which is explained below).&lt;br /&gt;
&lt;br /&gt;
'''cron_interval''' - the interval of time (in minutes) in which we should 'put' calls. Do not set value higher than &amp;quot;4&amp;quot; as it would cause overlapping of Autodialer sessions.&lt;br /&gt;
&lt;br /&gt;
'''ad_disabled''' - when set to 1, disables Auto-Dialer functionality on a Server.&lt;br /&gt;
&lt;br /&gt;
Example #1:&lt;br /&gt;
&lt;br /&gt;
 calls_one_time = 10&lt;br /&gt;
 cron_interval = 1&lt;br /&gt;
&lt;br /&gt;
That means that in 1 minute the script will put 10 calls. So each call will be executed at a 6s interval:&lt;br /&gt;
&lt;br /&gt;
 1st call: 0s&lt;br /&gt;
 2nd call: 6s&lt;br /&gt;
 3rd call: 12s&lt;br /&gt;
 ....&lt;br /&gt;
 9th call: 54s&lt;br /&gt;
 10th call: 60s&lt;br /&gt;
&lt;br /&gt;
Example #2:&lt;br /&gt;
&lt;br /&gt;
 calls_one_time = 5&lt;br /&gt;
 cron_interval = 2&lt;br /&gt;
&lt;br /&gt;
That means that in 1 minute the script will put 5 calls and it will do so for 2 minutes. So each call will be executed at a 12s interval:&lt;br /&gt;
&lt;br /&gt;
 1st call: 0s&lt;br /&gt;
 2nd call: 12s&lt;br /&gt;
 3rd call: 24s&lt;br /&gt;
 4rd call: 36s&lt;br /&gt;
 5th call: 48s&lt;br /&gt;
 6th call: 60s&lt;br /&gt;
 7th call: 72s&lt;br /&gt;
 8th call: 84s&lt;br /&gt;
 9th call: 96s&lt;br /&gt;
 10th call: 108s&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Limitations=&lt;br /&gt;
&lt;br /&gt;
Currently MOR does not support such functionality as to issue the Auto Dialer campaign only in that Asterisk &lt;br /&gt;
&lt;br /&gt;
server to which the device belongs (if you have multiple Asterisk servers). Now MOR just issues the campaign on both servers, if you want it to &lt;br /&gt;
&lt;br /&gt;
run only on one server you need to just disable the cron job on one of the servers. &lt;br /&gt;
Cron can be found in &lt;br /&gt;
 /etc/cron.d/mor_ad&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Logs=&lt;br /&gt;
&lt;br /&gt;
Autodialer log can be found here:&lt;br /&gt;
 /var/log/mor/mor_ad_cron.log&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Problems =&lt;br /&gt;
&lt;br /&gt;
* [[MOR Server Speedup]] (to get more calls by AD)&lt;br /&gt;
* [[I have a problem with Auto Dialer]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[Autodialer poll example]]&lt;br /&gt;
* [[Convert WAV file to Asterisk playable format]]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Sound files]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=MySQL_Replication&amp;diff=22783</id>
		<title>MySQL Replication</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=MySQL_Replication&amp;diff=22783"/>
		<updated>2017-10-03T05:42:18Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;MySQL Replication works only on servers where MySQL 5.x is installed&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
[[Image:mysql_logo.png|right]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''THIS TUTORIAL WILL GUIDE YOU THROUGH HOW TO IMPLEMENT MASTER&amp;lt;-&amp;gt;MASTER REPLICATION''' &lt;br /&gt;
&lt;br /&gt;
'''Before you start, make a backup of your database.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Create user on Server 1==&lt;br /&gt;
&lt;br /&gt;
* Username: rep2&lt;br /&gt;
* Password: rep2&lt;br /&gt;
* Host: 222.222.222.222&lt;br /&gt;
* Grant all privileges to this user (on database mor)&lt;br /&gt;
&lt;br /&gt;
Login as root and issue such commands:&lt;br /&gt;
&lt;br /&gt;
 CREATE USER 'rep2'@''''222.222.222.222'''' IDENTIFIED BY 'rep2';&lt;br /&gt;
&lt;br /&gt;
 GRANT REPLICATION SLAVE , REPLICATION CLIENT ON *.* TO 'rep2'@''''222.222.222.222'''' IDENTIFIED BY 'rep2' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'rep2'@''''222.222.222.222'''' WITH GRANT OPTION ;&lt;br /&gt;
&lt;br /&gt;
Go to Server 2 and test the connection:&lt;br /&gt;
&lt;br /&gt;
 mysql -h 111.111.111.111 -u rep2 -prep2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Create user on Server 2==&lt;br /&gt;
&lt;br /&gt;
* Username: rep1&lt;br /&gt;
* Password: rep1&lt;br /&gt;
* Host: 111.111.111.111&lt;br /&gt;
* Grant all privileges to this user (on database mor)&lt;br /&gt;
&lt;br /&gt;
Login as root and issue such commands:&lt;br /&gt;
&lt;br /&gt;
 CREATE USER 'rep1'@''''111.111.111.111'''' IDENTIFIED BY 'rep1';&lt;br /&gt;
&lt;br /&gt;
 GRANT REPLICATION SLAVE , REPLICATION CLIENT ON *.* TO 'rep1'@''''111.111.111.111'''' IDENTIFIED BY 'rep1' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'rep1'@''''111.111.111.111'''' WITH GRANT OPTION ;&lt;br /&gt;
&lt;br /&gt;
Go to Server 1 and test the connection:&lt;br /&gt;
&lt;br /&gt;
 mysql -h 222.222.222.222 -u rep1 -prep1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' Note: Make sure you have applied REPLICATION CLIENT and REPLICATION SLAVE on both users. '''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Server 1 my.cnf==&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 innodb_file_per_table=1&lt;br /&gt;
 datadir=/var/lib/mysql&lt;br /&gt;
 socket=/var/lib/mysql/mysql.sock  &lt;br /&gt;
 # Default to using old password format for compatibility with mysql 3.x&lt;br /&gt;
 # clients (those using the mysqlclient10 compatibility package).&lt;br /&gt;
 #old_passwords=1&lt;br /&gt;
 &lt;br /&gt;
 bind-address = 0.0.0.0&lt;br /&gt;
 &lt;br /&gt;
 binlog-do-db = mor&lt;br /&gt;
 # binlog-do-db = mor_mnp          #uncomment if there is mor_mnp database&lt;br /&gt;
 # binlog-do-db = opensips         #uncomment if there is opensips database&lt;br /&gt;
 server-id = 10&lt;br /&gt;
 auto_increment_increment = 10&lt;br /&gt;
 auto_increment_offset = 1&lt;br /&gt;
 replicate-do-db = mor&lt;br /&gt;
 # replicate-do-db = mor_mnp       #uncomment if there is mon_mnp database&lt;br /&gt;
 # replicate-do-db = opensips      #uncomment if there is opensips database&lt;br /&gt;
 binlog_format=MIXED&lt;br /&gt;
 log-bin = /var/lib/mysql/mysql-bin.log&lt;br /&gt;
 log-bin-index = /var/lib/mysql/master-log-bin.index&lt;br /&gt;
 # sync_binlog = 1               #increases reliability, but decreases performance&lt;br /&gt;
 relay-log = /var/lib/mysql/slave-relay.log&lt;br /&gt;
 relay-log-index = /var/lib/mysql/slave-relay-log.index&lt;br /&gt;
 &lt;br /&gt;
 slave-skip-errors=1061,1062,1213,1060&lt;br /&gt;
 slave_transaction_retries=3600&lt;br /&gt;
 &lt;br /&gt;
 expire_logs_days = 3&lt;br /&gt;
 # '''innodb_flush_log_at_trx_commit = 1'''&lt;br /&gt;
 # '''innodb_support_xa'''&lt;br /&gt;
 max_allowed_packet = 256M&lt;br /&gt;
 key_buffer_size=256M&lt;br /&gt;
 key_buffer=258M&lt;br /&gt;
 &lt;br /&gt;
 innodb_buffer_pool_size = 100M&lt;br /&gt;
 &lt;br /&gt;
 query_cache_type=1&lt;br /&gt;
 query_cache_limit=64M&lt;br /&gt;
 query_cache_size=64M&lt;br /&gt;
 &lt;br /&gt;
 join_buffer_size = 2M&lt;br /&gt;
 tmp_table_size = 512M&lt;br /&gt;
 max_heap_table_size = 512M&lt;br /&gt;
 thread_cache_size = 4&lt;br /&gt;
 table_cache = 128&lt;br /&gt;
 &lt;br /&gt;
 max_connections = 300&lt;br /&gt;
 slave_transaction_retries = 3600&lt;br /&gt;
 &lt;br /&gt;
 ;log-slow-queries = /var/lib/mysql/slow_query.log&lt;br /&gt;
 &lt;br /&gt;
 log-error=/var/lib/mysql/mysqld.log&lt;br /&gt;
 &lt;br /&gt;
 [mysql.server]&lt;br /&gt;
 user=mysql&lt;br /&gt;
 basedir=/var/lib&lt;br /&gt;
 &lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log-error=/var/lib/mysql/mysqld.log&lt;br /&gt;
 pid-file=/var/run/mysqld/mysqld.pid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Stop services:&lt;br /&gt;
&lt;br /&gt;
 service elasticsearch stop&lt;br /&gt;
 service httpd stop&lt;br /&gt;
 service asterisk stop&lt;br /&gt;
 service mor_server_loadstats stop&lt;br /&gt;
 service crond stop&lt;br /&gt;
 service mor_alerts stop&lt;br /&gt;
 service mor_aggregates stop&lt;br /&gt;
&lt;br /&gt;
==Server 2 my.cnf==&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 innodb_file_per_table=1&lt;br /&gt;
 datadir=/var/lib/mysql&lt;br /&gt;
 socket=/var/lib/mysql/mysql.sock  &lt;br /&gt;
 # Default to using old password format for compatibility with mysql 3.x&lt;br /&gt;
 # clients (those using the mysqlclient10 compatibility package).&lt;br /&gt;
 #old_passwords=1&lt;br /&gt;
 &lt;br /&gt;
 bind-address = 0.0.0.0&lt;br /&gt;
 &lt;br /&gt;
 binlog-do-db = mor&lt;br /&gt;
 # binlog-do-db = mor_mnp        #uncomment if there is mon_mnp database&lt;br /&gt;
 # binlog-do-db = opensips       #uncomment if there is opensips database&lt;br /&gt;
 server-id = 20&lt;br /&gt;
 auto_increment_increment = 10&lt;br /&gt;
 auto_increment_offset = 2&lt;br /&gt;
 replicate-do-db = mor&lt;br /&gt;
 # replicate-do-db = mor_mnp     #uncomment if there is mon_mnp database&lt;br /&gt;
 # replicate-do-db = opensips    #uncomment if there is opensips database&lt;br /&gt;
 binlog_format=MIXED&lt;br /&gt;
 log-bin = /var/lib/mysql/mysql-bin.log&lt;br /&gt;
 log-bin-index = /var/lib/mysql/master-log-bin.index&lt;br /&gt;
 # sync_binlog = 1               #increases reliability, but decreases performance&lt;br /&gt;
 relay-log = /var/lib/mysql/slave-relay.log&lt;br /&gt;
 relay-log-index = /var/lib/mysql/slave-relay-log.index&lt;br /&gt;
 &lt;br /&gt;
 slave-skip-errors=1061,1062,1213,1060&lt;br /&gt;
 slave_transaction_retries=3600&lt;br /&gt;
 &lt;br /&gt;
 expire_logs_days = 3&lt;br /&gt;
 # '''innodb_flush_log_at_trx_commit = 1'''&lt;br /&gt;
 # '''innodb_support_xa'''&lt;br /&gt;
 max_allowed_packet = 256M&lt;br /&gt;
 key_buffer_size=256M&lt;br /&gt;
 key_buffer=258M&lt;br /&gt;
 innodb_buffer_pool_size = 100M&lt;br /&gt;
 query_cache_type=1&lt;br /&gt;
 query_cache_limit=64M&lt;br /&gt;
 query_cache_size=64M&lt;br /&gt;
 join_buffer_size = 2M&lt;br /&gt;
 tmp_table_size = 512M&lt;br /&gt;
 max_heap_table_size = 512M&lt;br /&gt;
 thread_cache_size = 4&lt;br /&gt;
 table_cache = 128&lt;br /&gt;
 &lt;br /&gt;
 max_connections = 300&lt;br /&gt;
 slave_transaction_retries = 3600&lt;br /&gt;
 ;log-slow-queries = /var/lib/mysql/slow_query.log&lt;br /&gt;
 &lt;br /&gt;
 log-error=/var/lib/mysql/mysqld.log&lt;br /&gt;
 &lt;br /&gt;
 [mysql.server]&lt;br /&gt;
 user=mysql&lt;br /&gt;
 basedir=/var/lib&lt;br /&gt;
 &lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log-error=/var/lib/mysql/mysqld.log&lt;br /&gt;
 pid-file=/var/run/mysqld/mysqld.pid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Stop services:&lt;br /&gt;
&lt;br /&gt;
 service elasticsearch stop&lt;br /&gt;
 service httpd stop&lt;br /&gt;
 service asterisk stop&lt;br /&gt;
 service mor_server_loadstats stop&lt;br /&gt;
 service crond stop&lt;br /&gt;
 service mor_alerts stop&lt;br /&gt;
 service mor_aggregates stop&lt;br /&gt;
&lt;br /&gt;
==Server 2==&lt;br /&gt;
&lt;br /&gt;
Make sure data on Server 2 = data on Server 1. E.g. MySQL table structure and data are identical on both machines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Server 1==&lt;br /&gt;
&lt;br /&gt;
 /usr/src/mor/sh_scripts/configure_mycnf.sh&lt;br /&gt;
 /etc/init.d/mysqld restart&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p &lt;br /&gt;
&lt;br /&gt;
 USE mor;&lt;br /&gt;
 FLUSH TABLES WITH READ LOCK; &lt;br /&gt;
 SHOW MASTER STATUS; &lt;br /&gt;
&lt;br /&gt;
Remember '''File''' and '''Position'''.&lt;br /&gt;
&lt;br /&gt;
 UNLOCK TABLES;&lt;br /&gt;
 quit;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Server2==&lt;br /&gt;
&lt;br /&gt;
Check if you can connect to first server:&lt;br /&gt;
&lt;br /&gt;
 mysql -h 111.111.111.111 -u rep2 -p&lt;br /&gt;
&lt;br /&gt;
Proceed if okay:&lt;br /&gt;
&lt;br /&gt;
 /usr/src/mor/sh_scripts/configure_mycnf.sh&lt;br /&gt;
 /etc/init.d/mysqld restart&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p &lt;br /&gt;
&lt;br /&gt;
 SLAVE STOP; &lt;br /&gt;
&lt;br /&gt;
 CHANGE MASTER TO MASTER_HOST='111.111.111.111', MASTER_USER='rep2', MASTER_PASSWORD='rep2', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=205; &lt;br /&gt;
&lt;br /&gt;
'''NOTE: Change MASTER_HOST, MASTER_LOG_FILE and MASTER_LOG_POS accordingly.'''&lt;br /&gt;
&lt;br /&gt;
 START SLAVE;&lt;br /&gt;
&lt;br /&gt;
 USE mor;&lt;br /&gt;
 FLUSH TABLES WITH READ LOCK; &lt;br /&gt;
 SHOW MASTER STATUS; &lt;br /&gt;
&lt;br /&gt;
Remember '''File''' and '''Position'''.&lt;br /&gt;
&lt;br /&gt;
 UNLOCK TABLES;&lt;br /&gt;
 quit;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Server 1==&lt;br /&gt;
&lt;br /&gt;
Check if you can connect to first server:&lt;br /&gt;
&lt;br /&gt;
 mysql -h 222.222.222.222 -u rep1 -p&lt;br /&gt;
&lt;br /&gt;
Proceed if okay: &lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p &lt;br /&gt;
&lt;br /&gt;
 SLAVE STOP; &lt;br /&gt;
&lt;br /&gt;
 CHANGE MASTER TO MASTER_HOST='222.222.222.222', MASTER_USER='rep1', MASTER_PASSWORD='rep1', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=205; &lt;br /&gt;
&lt;br /&gt;
'''NOTE: Change MASTER_HOST, MASTER_LOG_FILE and MASTER_LOG_POS accordingly.''' &lt;br /&gt;
&lt;br /&gt;
 START SLAVE;&lt;br /&gt;
 quit;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Start services on both servers '''Server 1''' and '''Server 2''':&lt;br /&gt;
&lt;br /&gt;
 service elasticsearch start&lt;br /&gt;
 service httpd start&lt;br /&gt;
 service asterisk start&lt;br /&gt;
 service mor_server_loadstats start&lt;br /&gt;
 service crond start&lt;br /&gt;
 service mor_alerts start&lt;br /&gt;
 service mor_aggregates start&lt;br /&gt;
&lt;br /&gt;
==Log files==&lt;br /&gt;
&lt;br /&gt;
In order for MySQL Replication to function properly, you need to check log files in /var/lib/mysql&lt;br /&gt;
&lt;br /&gt;
Open ''master-log-bin.index''. It should contain names of the files which really exist in same folder. If there's some mismatch, edit this file: enter missing names for files or delete file names which do not represent real files in this folder.&lt;br /&gt;
&lt;br /&gt;
Do the same with the file ''slave-relay-log.index''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
Login to MySQL console on both servers:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p &lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
 SHOW SLAVE STATUS\G&lt;br /&gt;
&lt;br /&gt;
If everything is okay, you should see lines between others on both servers:&lt;br /&gt;
&lt;br /&gt;
 Slave_IO_State: Waiting for master to send event&lt;br /&gt;
 Slave_IO_Running: Yes&lt;br /&gt;
 Slave_SQL_Running: Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If Replication is off, you will see:&lt;br /&gt;
&lt;br /&gt;
 Slave_IO_State:&lt;br /&gt;
 Slave_IO_Running: No&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The quick way to do this is:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -e 'SHOW SLAVE STATUS\G' | grep 'Slave'&lt;br /&gt;
&lt;br /&gt;
If root has psw:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -pPASSWORD -e 'SHOW SLAVE STATUS\G' | grep 'Slave'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Never use phpmyadmin to check if data is same on both servers. Use mysql console and a command like count. For example: SELECT COUNT(*) FROM destinations;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
Check file: /var/lib/mysql/mysqld.log&amp;lt;br&amp;gt;&lt;br /&gt;
Check GUI production logs and look for error messages beginning with: &amp;quot;Replication exception:&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==='Could not find first log file name in binary log index file' from master when reading data from binary log===&lt;br /&gt;
&lt;br /&gt;
We go to the master and check ''/var/lib/mysql/master-log-bin.index'' file.&lt;br /&gt;
&lt;br /&gt;
For example, it can show:&lt;br /&gt;
&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000001&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000002&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000003&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000005&lt;br /&gt;
&lt;br /&gt;
In ''/var/lib/mysql/'' we also have file ''mysql-bin.000004'', so its' name is missing in index file, lets add it, so ''master-log-bin.index'' looks like:&lt;br /&gt;
&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000001&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000002&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000003&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000004&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000005&lt;br /&gt;
&lt;br /&gt;
Restart mysql on this server and try with the slave again.&lt;br /&gt;
&lt;br /&gt;
This is just an example - some other file's records can be missing. Make sure the file has all related files' records, which are in same folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Failed to open the relay log ===&lt;br /&gt;
&lt;br /&gt;
* stop mysql on the slave server&lt;br /&gt;
* find the directory that contains the relay logs (usually /var/lib/mysql)&lt;br /&gt;
* delete all relay logs called hostname-relay-bin.XXX, hostname-relay-bin.index and relay-log.info&lt;br /&gt;
* restart mysql&lt;br /&gt;
&lt;br /&gt;
Your mysql will start with fresh relay logs and is getting the missing data directly from the master server, as there will probably still be binlogs!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Couldn't find MySQL manager or server ===&lt;br /&gt;
&lt;br /&gt;
Comment out basedir in my.cnf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Default mysql.cnf]] - can be useful to go back if something goes wrong and no backup is done.&lt;br /&gt;
* If server is rebooted - it takes ~45s for the database to start synchronizing after MySQL is up.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Could not initialize master info structure, more error messages can be found in the MySQL error log===&lt;br /&gt;
Please check this link: http://forums.mysql.com/read.php?26,163227,163241#msg-163241&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Broken replication fix ===&lt;br /&gt;
&lt;br /&gt;
http://rackerhacker.com/2008/01/09/mysql-replication-breakdown/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== What to do if you have errors with binlogs ===&lt;br /&gt;
Delete all binlog files from both servers (but leave database structures and data!), then reapply replication.&lt;br /&gt;
'''You have to test GUI on both servers after you apply MySQL replication.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== No more MySQL Crash Safe Replication in 5.0? ===&lt;br /&gt;
http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' ===&lt;br /&gt;
Error looks like this:&lt;br /&gt;
&lt;br /&gt;
 # mysql -h 222.222.222.222 -u rep1 -prep1&lt;br /&gt;
 ERROR 2003 (HY000): Can't connect to MySQL server on '222.222.222.222' (113)&lt;br /&gt;
&lt;br /&gt;
Please check firewalls and make sure that port TCP 3306 is not blocked.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== TRUNCATE usage ===&lt;br /&gt;
&lt;br /&gt;
Do not use TRUNCATE statement because it can ruin Replication.&lt;br /&gt;
&lt;br /&gt;
* http://bugs.mysql.com/bug.php?id=36763&lt;br /&gt;
* http://dev.mysql.com/doc/refman/5.1/en/replication-features-truncate.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [http://www.ducea.com/2008/02/13/mysql-skip-duplicate-replication-errors/ slave-skip-errors=1062] more details&lt;br /&gt;
* [http://mysqldatabaseadministration.blogspot.com/2006/12/mysql-replication-stopped-lock-wait.html Replication stopped: Lock wait timeout exceeded]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=MySQL_Replication&amp;diff=22782</id>
		<title>MySQL Replication</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=MySQL_Replication&amp;diff=22782"/>
		<updated>2017-10-03T05:42:09Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;MySQL Replication works only on servers where MySQL 5.x is installed&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
[[Image:mysql_logo.png|right]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''THIS TUTORIAL WILL GUIDE YOU THROUGH HOW TO IMPLEMENT MASTER&amp;lt;-&amp;gt;MASTER REPLICATION''' &lt;br /&gt;
&lt;br /&gt;
'''Before you start, make a backup of your database.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Create user on Server 1==&lt;br /&gt;
&lt;br /&gt;
* Username: rep2&lt;br /&gt;
* Password: rep2&lt;br /&gt;
* Host: 222.222.222.222&lt;br /&gt;
* Grant all privileges to this user (on database mor)&lt;br /&gt;
&lt;br /&gt;
Login as root and issue such commands:&lt;br /&gt;
&lt;br /&gt;
 CREATE USER 'rep2'@''''222.222.222.222'''' IDENTIFIED BY 'rep2';&lt;br /&gt;
&lt;br /&gt;
 GRANT REPLICATION SLAVE , REPLICATION CLIENT ON *.* TO 'rep2'@''''222.222.222.222'''' IDENTIFIED BY 'rep2' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'rep2'@''''222.222.222.222'''' WITH GRANT OPTION ;&lt;br /&gt;
&lt;br /&gt;
Go to Server 2 and test the connection:&lt;br /&gt;
&lt;br /&gt;
 mysql -h 111.111.111.111 -u rep2 -prep2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Create user on Server 2==&lt;br /&gt;
&lt;br /&gt;
* Username: rep1&lt;br /&gt;
* Password: rep1&lt;br /&gt;
* Host: 111.111.111.111&lt;br /&gt;
* Grant all privileges to this user (on database mor)&lt;br /&gt;
&lt;br /&gt;
Login as root and issue such commands:&lt;br /&gt;
&lt;br /&gt;
 CREATE USER 'rep1'@''''111.111.111.111'''' IDENTIFIED BY 'rep1';&lt;br /&gt;
&lt;br /&gt;
 GRANT REPLICATION SLAVE , REPLICATION CLIENT ON *.* TO 'rep1'@''''111.111.111.111'''' IDENTIFIED BY 'rep1' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'rep1'@''''111.111.111.111'''' WITH GRANT OPTION ;&lt;br /&gt;
&lt;br /&gt;
Go to Server 1 and test the connection:&lt;br /&gt;
&lt;br /&gt;
 mysql -h 222.222.222.222 -u rep1 -prep1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' Note: Make sure you have applied REPLICATION CLIENT and REPLICATION SLAVE on both users. '''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Server 1 my.cnf==&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 innodb_file_per_table=1&lt;br /&gt;
 datadir=/var/lib/mysql&lt;br /&gt;
 socket=/var/lib/mysql/mysql.sock  &lt;br /&gt;
 # Default to using old password format for compatibility with mysql 3.x&lt;br /&gt;
 # clients (those using the mysqlclient10 compatibility package).&lt;br /&gt;
 #old_passwords=1&lt;br /&gt;
 &lt;br /&gt;
 bind-address = 0.0.0.0&lt;br /&gt;
 &lt;br /&gt;
 binlog-do-db = mor&lt;br /&gt;
 # binlog-do-db = mor_mnp          #uncomment if there is mor_mnp database&lt;br /&gt;
 # binlog-do-db = opensips         #uncomment if there is opensips database&lt;br /&gt;
 server-id = 10&lt;br /&gt;
 auto_increment_increment = 10&lt;br /&gt;
 auto_increment_offset = 1&lt;br /&gt;
 replicate-do-db = mor&lt;br /&gt;
 # replicate-do-db = mor_mnp       #uncomment if there is mon_mnp database&lt;br /&gt;
 # replicate-do-db = opensips      #uncomment if there is opensips database&lt;br /&gt;
 binlog_format=MIXED&lt;br /&gt;
 log-bin = /var/lib/mysql/mysql-bin.log&lt;br /&gt;
 log-bin-index = /var/lib/mysql/master-log-bin.index&lt;br /&gt;
 # sync_binlog = 1               #increases reliability, but decreases performance&lt;br /&gt;
 relay-log = /var/lib/mysql/slave-relay.log&lt;br /&gt;
 relay-log-index = /var/lib/mysql/slave-relay-log.index&lt;br /&gt;
 &lt;br /&gt;
 slave-skip-errors=1061,1062,1213,1060&lt;br /&gt;
 slave_transaction_retries=3600&lt;br /&gt;
 &lt;br /&gt;
 expire_logs_days = 3&lt;br /&gt;
 # '''innodb_flush_log_at_trx_commit = 1'''&lt;br /&gt;
 # '''innodb_support_xa'''&lt;br /&gt;
 max_allowed_packet = 256M&lt;br /&gt;
 key_buffer_size=256M&lt;br /&gt;
 key_buffer=258M&lt;br /&gt;
 &lt;br /&gt;
 innodb_buffer_pool_size = 100M&lt;br /&gt;
 &lt;br /&gt;
 query_cache_type=1&lt;br /&gt;
 query_cache_limit=64M&lt;br /&gt;
 query_cache_size=64M&lt;br /&gt;
 &lt;br /&gt;
 join_buffer_size = 2M&lt;br /&gt;
 tmp_table_size = 512M&lt;br /&gt;
 max_heap_table_size = 512M&lt;br /&gt;
 thread_cache_size = 4&lt;br /&gt;
 table_cache = 128&lt;br /&gt;
 &lt;br /&gt;
 max_connections = 300&lt;br /&gt;
 slave_transaction_retries = 3600&lt;br /&gt;
 &lt;br /&gt;
 ;log-slow-queries = /var/lib/mysql/slow_query.log&lt;br /&gt;
 &lt;br /&gt;
 log-error=/var/lib/mysql/mysqld.log&lt;br /&gt;
 &lt;br /&gt;
 [mysql.server]&lt;br /&gt;
 user=mysql&lt;br /&gt;
 basedir=/var/lib&lt;br /&gt;
 &lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log-error=/var/lib/mysql/mysqld.log&lt;br /&gt;
 pid-file=/var/run/mysqld/mysqld.pid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Stop services:&lt;br /&gt;
&lt;br /&gt;
 service elasticsearch stop&lt;br /&gt;
 service httpd stop&lt;br /&gt;
 service asterisk stop&lt;br /&gt;
 service mor_server_loadstats stop&lt;br /&gt;
 service crond stop&lt;br /&gt;
 service mor_alerts stop&lt;br /&gt;
 service mor_aggregates stop&lt;br /&gt;
&lt;br /&gt;
==Server 2 my.cnf==&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 innodb_file_per_table=1&lt;br /&gt;
 datadir=/var/lib/mysql&lt;br /&gt;
 socket=/var/lib/mysql/mysql.sock  &lt;br /&gt;
 # Default to using old password format for compatibility with mysql 3.x&lt;br /&gt;
 # clients (those using the mysqlclient10 compatibility package).&lt;br /&gt;
 #old_passwords=1&lt;br /&gt;
 &lt;br /&gt;
 bind-address = 0.0.0.0&lt;br /&gt;
 &lt;br /&gt;
 binlog-do-db = mor&lt;br /&gt;
 # binlog-do-db = mor_mnp        #uncomment if there is mon_mnp database&lt;br /&gt;
 # binlog-do-db = opensips       #uncomment if there is opensips database&lt;br /&gt;
 server-id = 20&lt;br /&gt;
 auto_increment_increment = 10&lt;br /&gt;
 auto_increment_offset = 2&lt;br /&gt;
 replicate-do-db = mor&lt;br /&gt;
 # replicate-do-db = mor_mnp     #uncomment if there is mon_mnp database&lt;br /&gt;
 # replicate-do-db = opensips    #uncomment if there is opensips database&lt;br /&gt;
 binlog_format=MIXED&lt;br /&gt;
 log-bin = /var/lib/mysql/mysql-bin.log&lt;br /&gt;
 log-bin-index = /var/lib/mysql/master-log-bin.index&lt;br /&gt;
 # sync_binlog = 1               #increases reliability, but decreases performance&lt;br /&gt;
 relay-log = /var/lib/mysql/slave-relay.log&lt;br /&gt;
 relay-log-index = /var/lib/mysql/slave-relay-log.index&lt;br /&gt;
 &lt;br /&gt;
 slave-skip-errors=1061,1062,1213,1060&lt;br /&gt;
 slave_transaction_retries=3600&lt;br /&gt;
 &lt;br /&gt;
 expire_logs_days = 3&lt;br /&gt;
 # '''innodb_flush_log_at_trx_commit = 1'''&lt;br /&gt;
 # '''innodb_support_xa'''&lt;br /&gt;
 max_allowed_packet = 256M&lt;br /&gt;
 key_buffer_size=256M&lt;br /&gt;
 key_buffer=258M&lt;br /&gt;
 innodb_buffer_pool_size = 100M&lt;br /&gt;
 query_cache_type=1&lt;br /&gt;
 query_cache_limit=64M&lt;br /&gt;
 query_cache_size=64M&lt;br /&gt;
 join_buffer_size = 2M&lt;br /&gt;
 tmp_table_size = 512M&lt;br /&gt;
 max_heap_table_size = 512M&lt;br /&gt;
 thread_cache_size = 4&lt;br /&gt;
 table_cache = 128&lt;br /&gt;
 &lt;br /&gt;
 max_connections = 300&lt;br /&gt;
 slave_transaction_retries = 3600&lt;br /&gt;
 ;log-slow-queries = /var/lib/mysql/slow_query.log&lt;br /&gt;
 &lt;br /&gt;
 log-error=/var/lib/mysql/mysqld.log&lt;br /&gt;
 &lt;br /&gt;
 [mysql.server]&lt;br /&gt;
 user=mysql&lt;br /&gt;
 basedir=/var/lib&lt;br /&gt;
 &lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log-error=/var/lib/mysql/mysqld.log&lt;br /&gt;
 pid-file=/var/run/mysqld/mysqld.pid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Stop services:&lt;br /&gt;
&lt;br /&gt;
 service elasticsearch stop&lt;br /&gt;
 service httpd stop&lt;br /&gt;
 service asterisk stop&lt;br /&gt;
 service mor_server_loadstats stop&lt;br /&gt;
 service crond stop&lt;br /&gt;
 service mor_alerts stop&lt;br /&gt;
 service mor_aggregates stop&lt;br /&gt;
&lt;br /&gt;
==Server 2==&lt;br /&gt;
&lt;br /&gt;
Make sure data on Server 2 = data on Server 1. E.g. MySQL table structure and data are identical on both machines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Server 1==&lt;br /&gt;
&lt;br /&gt;
 /usr/src/mor/sh_scripts/configure_mycnf.sh&lt;br /&gt;
 /etc/init.d/mysqld restart&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p &lt;br /&gt;
&lt;br /&gt;
 USE mor;&lt;br /&gt;
 FLUSH TABLES WITH READ LOCK; &lt;br /&gt;
 SHOW MASTER STATUS; &lt;br /&gt;
&lt;br /&gt;
Remember '''File''' and '''Position'''.&lt;br /&gt;
&lt;br /&gt;
 UNLOCK TABLES;&lt;br /&gt;
 quit;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Server2==&lt;br /&gt;
&lt;br /&gt;
Check if you can connect to first server:&lt;br /&gt;
&lt;br /&gt;
 mysql -h 111.111.111.111 -u rep2 -p&lt;br /&gt;
&lt;br /&gt;
Proceed if okay:&lt;br /&gt;
&lt;br /&gt;
 /usr/src/mor/sh_scripts/configure_mycnf.sh&lt;br /&gt;
 /etc/init.d/mysqld restart&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p &lt;br /&gt;
&lt;br /&gt;
 SLAVE STOP; &lt;br /&gt;
&lt;br /&gt;
 CHANGE MASTER TO MASTER_HOST='111.111.111.111', MASTER_USER='rep2', MASTER_PASSWORD='rep2', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=205; &lt;br /&gt;
&lt;br /&gt;
'''NOTE: Change MASTER_HOST, MASTER_LOG_FILE and MASTER_LOG_POS accordingly.'''&lt;br /&gt;
&lt;br /&gt;
 START SLAVE;&lt;br /&gt;
&lt;br /&gt;
 USE mor;&lt;br /&gt;
 FLUSH TABLES WITH READ LOCK; &lt;br /&gt;
 SHOW MASTER STATUS; &lt;br /&gt;
&lt;br /&gt;
Remember '''File''' and '''Position'''.&lt;br /&gt;
&lt;br /&gt;
 UNLOCK TABLES;&lt;br /&gt;
 quit;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Server 1==&lt;br /&gt;
&lt;br /&gt;
Check if you can connect to first server:&lt;br /&gt;
&lt;br /&gt;
 mysql -h 222.222.222.222 -u rep1 -p&lt;br /&gt;
&lt;br /&gt;
Proceed if okay: &lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p &lt;br /&gt;
&lt;br /&gt;
 SLAVE STOP; &lt;br /&gt;
&lt;br /&gt;
 CHANGE MASTER TO MASTER_HOST='222.222.222.222', MASTER_USER='rep1', MASTER_PASSWORD='rep1', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=205; &lt;br /&gt;
&lt;br /&gt;
'''NOTE: Change MASTER_HOST, MASTER_LOG_FILE and MASTER_LOG_POS accordingly.''' &lt;br /&gt;
&lt;br /&gt;
 START SLAVE;&lt;br /&gt;
 quit;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Start services on both servers '''Server 1''' and '''Server 2''':&lt;br /&gt;
&lt;br /&gt;
 service elasticsearch start&lt;br /&gt;
 service httpd start&lt;br /&gt;
 service asterisk start&lt;br /&gt;
 service mor_server_loadstats start&lt;br /&gt;
 service crond start&lt;br /&gt;
 service mor_alerts start&lt;br /&gt;
 service mor_aggregates start&lt;br /&gt;
&lt;br /&gt;
==Log files==&lt;br /&gt;
&lt;br /&gt;
In order for MySQL Replication to function properly, you need to check log files in /var/lib/mysql&lt;br /&gt;
&lt;br /&gt;
Open ''master-log-bin.index''. It should contain names of the files which really exist in same folder. If there's some mismatch, edit this file: enter missing names for files or delete file names which do not represent real files in this folder.&lt;br /&gt;
&lt;br /&gt;
Do the same with the file ''slave-relay-log.index''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
Login to MySQL console on both servers:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p &lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
 SHOW SLAVE STATUS\G&lt;br /&gt;
&lt;br /&gt;
If everything is okay, you should see lines between others on both servers:&lt;br /&gt;
&lt;br /&gt;
 Slave_IO_State: Waiting for master to send event&lt;br /&gt;
 Slave_IO_Running: Yes&lt;br /&gt;
 Slave_SQL_Running: Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If Replication is off, you will see:&lt;br /&gt;
&lt;br /&gt;
 Slave_IO_State:&lt;br /&gt;
 Slave_IO_Running: No&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The quick way to do this is:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -e 'SHOW SLAVE STATUS\G' | grep 'Slave'&lt;br /&gt;
&lt;br /&gt;
If root has psw:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -pPASSWORD -e 'SHOW SLAVE STATUS\G' | grep 'Slave'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Never use phpmyadmin to check if data is same on both servers. Use mysql console and a command like count. For example: SELECT COUNT(*) FROM destinations;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
Check file: /var/lib/mysql/mysqld.log&lt;br /&gt;
Check GUI production logs and look for error messages beginning with: &amp;quot;Replication exception:&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==='Could not find first log file name in binary log index file' from master when reading data from binary log===&lt;br /&gt;
&lt;br /&gt;
We go to the master and check ''/var/lib/mysql/master-log-bin.index'' file.&lt;br /&gt;
&lt;br /&gt;
For example, it can show:&lt;br /&gt;
&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000001&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000002&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000003&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000005&lt;br /&gt;
&lt;br /&gt;
In ''/var/lib/mysql/'' we also have file ''mysql-bin.000004'', so its' name is missing in index file, lets add it, so ''master-log-bin.index'' looks like:&lt;br /&gt;
&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000001&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000002&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000003&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000004&lt;br /&gt;
 /var/lib/mysql/mysql-bin.000005&lt;br /&gt;
&lt;br /&gt;
Restart mysql on this server and try with the slave again.&lt;br /&gt;
&lt;br /&gt;
This is just an example - some other file's records can be missing. Make sure the file has all related files' records, which are in same folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Failed to open the relay log ===&lt;br /&gt;
&lt;br /&gt;
* stop mysql on the slave server&lt;br /&gt;
* find the directory that contains the relay logs (usually /var/lib/mysql)&lt;br /&gt;
* delete all relay logs called hostname-relay-bin.XXX, hostname-relay-bin.index and relay-log.info&lt;br /&gt;
* restart mysql&lt;br /&gt;
&lt;br /&gt;
Your mysql will start with fresh relay logs and is getting the missing data directly from the master server, as there will probably still be binlogs!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Couldn't find MySQL manager or server ===&lt;br /&gt;
&lt;br /&gt;
Comment out basedir in my.cnf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Default mysql.cnf]] - can be useful to go back if something goes wrong and no backup is done.&lt;br /&gt;
* If server is rebooted - it takes ~45s for the database to start synchronizing after MySQL is up.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Could not initialize master info structure, more error messages can be found in the MySQL error log===&lt;br /&gt;
Please check this link: http://forums.mysql.com/read.php?26,163227,163241#msg-163241&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Broken replication fix ===&lt;br /&gt;
&lt;br /&gt;
http://rackerhacker.com/2008/01/09/mysql-replication-breakdown/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== What to do if you have errors with binlogs ===&lt;br /&gt;
Delete all binlog files from both servers (but leave database structures and data!), then reapply replication.&lt;br /&gt;
'''You have to test GUI on both servers after you apply MySQL replication.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== No more MySQL Crash Safe Replication in 5.0? ===&lt;br /&gt;
http://www.mysqlperformanceblog.com/2008/01/29/no-more-mysql-crash-safe-replication-in-50/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' ===&lt;br /&gt;
Error looks like this:&lt;br /&gt;
&lt;br /&gt;
 # mysql -h 222.222.222.222 -u rep1 -prep1&lt;br /&gt;
 ERROR 2003 (HY000): Can't connect to MySQL server on '222.222.222.222' (113)&lt;br /&gt;
&lt;br /&gt;
Please check firewalls and make sure that port TCP 3306 is not blocked.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== TRUNCATE usage ===&lt;br /&gt;
&lt;br /&gt;
Do not use TRUNCATE statement because it can ruin Replication.&lt;br /&gt;
&lt;br /&gt;
* http://bugs.mysql.com/bug.php?id=36763&lt;br /&gt;
* http://dev.mysql.com/doc/refman/5.1/en/replication-features-truncate.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [http://www.ducea.com/2008/02/13/mysql-skip-duplicate-replication-errors/ slave-skip-errors=1062] more details&lt;br /&gt;
* [http://mysqldatabaseadministration.blogspot.com/2006/12/mysql-replication-stopped-lock-wait.html Replication stopped: Lock wait timeout exceeded]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Cc_example2.png&amp;diff=22701</id>
		<title>File:Cc example2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Cc_example2.png&amp;diff=22701"/>
		<updated>2017-09-05T08:27:55Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: uploaded a new version of &amp;quot;File:Cc example2.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Cc_example1.png&amp;diff=22700</id>
		<title>File:Cc example1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Cc_example1.png&amp;diff=22700"/>
		<updated>2017-09-05T08:26:20Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: uploaded a new version of &amp;quot;File:Cc example1.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=MOR_API_Card_Group_update&amp;diff=22699</id>
		<title>MOR API Card Group update</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=MOR_API_Card_Group_update&amp;diff=22699"/>
		<updated>2017-09-05T08:09:40Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
[[MOR API]] Card Group update&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
* From '''MOR X7''' Calling Card: '''/api/cc_group_update'''&lt;br /&gt;
* Methods: POST, GET(if allowed, not recomended)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
Parameters which are '''included''' into hash:&lt;br /&gt;
&lt;br /&gt;
* cc_Group_id - id of a Card Group '''Required'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters which are '''not included''' into hash:&lt;br /&gt;
&lt;br /&gt;
* '''[[MOR API hash construction | hash]]''' - SHA1 hash constructed using the '''parameters''' which are listed above. Note that the parameters are shown in the same order as they need to be when generating the hash. The last parameter in a row is '''API_Secret_Key''' ([[MOR API hash construction | More described in Constructing hash]]). '''Required'''.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''u''' - username for authentication. '''Required'''.&lt;br /&gt;
* '''name''' - name of Card Group.&lt;br /&gt;
* '''description''' - description of Card Group.&lt;br /&gt;
* '''price_with_vat''' - price with TAX of Card Group.&lt;br /&gt;
* '''setup_fee''' - setup fee of Card Group.&lt;br /&gt;
* '''use_external_function''' - use of external script [0-no, 1-yes].&lt;br /&gt;
* '''ghost_min_perc''' - ghost min percent of Card Group.&lt;br /&gt;
* '''ghost_balance_perc''' - ghost balance percent of Card Group.&lt;br /&gt;
* '''daily_charge''' - daily charge of Card Group.&lt;br /&gt;
* '''tell_cents''' - usage of tell cents [0-no, 1-yes].&lt;br /&gt;
* '''tell_balance_in_currency''' - Card Group Balance/Rate Currency.&lt;br /&gt;
* '''tariff_id''' - tariff if of Card Group&lt;br /&gt;
* '''lcr_id''' - LCR id of Card Group&lt;br /&gt;
* '''location_id''' - Card Group location id.&lt;br /&gt;
* '''date_from''' - Card Group valid from date (timestamp).&lt;br /&gt;
* '''date_till''' - Card Group valid till date (timestamp).&lt;br /&gt;
* '''valid_after_first_use''' - number of days, after which Card Group gets valid.&lt;br /&gt;
* '''allow_loss_calls''' - Allow Loss Calls for Card Group [0-off, 1-on].&lt;br /&gt;
* '''solo_pinless''' - Deny to double-use a Card with Pinless dialing, when Card is assigned to some CallerID [0-no, 1-yes].&lt;br /&gt;
* '''disable_topup_from_cards_with_cid''' - Disable credit transfers from Cards with a CallerID assigned [0-no, 1-yes].&lt;br /&gt;
* '''disable_voucher''' - disable Voucher with same Number as Card if Card is used [0-off, 1-on].&lt;br /&gt;
* '''callerid_leave''' - Leave CallerID assigned to Card when balance is empty [0-no, 1-yes].&lt;br /&gt;
* '''tax2_enabled''' - [0-no, 1-yes].&lt;br /&gt;
* '''tax3_enabled''' - [0-no, 1-yes].&lt;br /&gt;
* '''tax4_enabled''' - [0-no, 1-yes].&lt;br /&gt;
* '''compound_tax''' - [0-no, 1-yes].&lt;br /&gt;
* '''tax1_name''' - name of the first tax.&lt;br /&gt;
* '''tax2_name''' - name of the second tax.&lt;br /&gt;
* '''tax3_name''' - name of the third tax.&lt;br /&gt;
* '''tax4_name''' - name of the fourth tax.&lt;br /&gt;
* '''total_tax_name''' - name of total taxes.&lt;br /&gt;
* '''tax1_value''' - value of the first tax.&lt;br /&gt;
* '''tax2_value''' - value of the second tax.&lt;br /&gt;
* '''tax3_value''' - value of the third tax.&lt;br /&gt;
* '''tax4_value''' - value of the fourth tax.&lt;br /&gt;
* '''currency''' - Card Group Currency name (must be one of active Currencies e.g. EUR).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Request===&lt;br /&gt;
&lt;br /&gt;
We have u = admin, API Secret Key = secret&lt;br /&gt;
We send:&lt;br /&gt;
&lt;br /&gt;
 HTML POST: http://&amp;lt;SERVER_IP&amp;gt;/billing/api/cc_group_update?u=admin&amp;amp;cc_Group_id=1&amp;amp;hash=7e112ededcfee097cce21b6201c6d2a00dda1f4c&lt;br /&gt;
&lt;br /&gt;
* Now we can find 1 updated Card Group.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''* Note that a Username and a Password are not included into hash'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Returns===&lt;br /&gt;
&lt;br /&gt;
'''Success'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;page&amp;gt;&lt;br /&gt;
   &amp;lt;status&amp;gt;&lt;br /&gt;
     &amp;lt;success&amp;gt;Card Group was successfully updated&amp;lt;/success&amp;gt;&lt;br /&gt;
   &amp;lt;/status&amp;gt;&lt;br /&gt;
 &amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Errors'''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;error&amp;gt;Access Denied&amp;lt;/error&amp;gt; - User is not authorized or is a Simple User. Only Admin, Reseller or Accounant can use this API method. &lt;br /&gt;
* &amp;lt;error&amp;gt;Incorrect hash&amp;lt;/error&amp;gt; - hash is not correct. Check API_Secret_Key and order or parameters while concatenating a hash_string.&lt;br /&gt;
* &amp;lt;error&amp;gt;You are not authorized to use this functionality&amp;lt;/error&amp;gt; - User has no permissions to manage Calling Cards. &lt;br /&gt;
* &amp;lt;error&amp;gt;Card Group was not found&amp;lt;/error&amp;gt; - There is no such Card Group id or user is not authorized to manage this Card Group.&lt;br /&gt;
* &amp;lt;error&amp;gt;Use external function is incorrect format&amp;lt;/error&amp;gt; - Use external script parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Tell cents is incorrect format&amp;lt;/error&amp;gt; - Tell cents parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Currency was not found&amp;lt;/error&amp;gt; - Currency id is not correct. There is no such Currency.&lt;br /&gt;
* &amp;lt;error&amp;gt;Tariff was not found&amp;lt;/error&amp;gt; -  There is no such Tariff.&lt;br /&gt;
* &amp;lt;error&amp;gt;LCR was not found&amp;lt;/error&amp;gt; - LCR id is not correct. There is no such LCR.&lt;br /&gt;
* &amp;lt;error&amp;gt;Location was not found&amp;lt;/error&amp;gt; - Location id is not correct. There is no such Location.&lt;br /&gt;
* &amp;lt;error&amp;gt;Date from is incorrect format&amp;lt;/error&amp;gt; - Valid from is incorrect format.&lt;br /&gt;
* &amp;lt;error&amp;gt;Time till is incorrect format&amp;lt;/error&amp;gt; - Valid till is incorrect format.&lt;br /&gt;
* &amp;lt;error&amp;gt;Date from is greater than date till&amp;lt;/error&amp;gt; - Valid from is greater than valid till.&lt;br /&gt;
* &amp;lt;error&amp;gt;Valid after is incorrect format&amp;lt;/error&amp;gt; - Valid after maximum value can be 9999.&lt;br /&gt;
* &amp;lt;error&amp;gt;Allow loss calls is incorrect format&amp;lt;/error&amp;gt; - Allow loss calls parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Solo pinless is incorrect format&amp;lt;/error&amp;gt; - Solo pinless parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Disable voucher is incorrect format&amp;lt;/error&amp;gt; - Voucher parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;CallerID leave is incorrect format&amp;lt;/error&amp;gt; - Caller id leave parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Compound TAX enabling value is incorrect format&amp;lt;/error&amp;gt; - Compound parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;TAX 2 enabling value is incorrect format&amp;lt;/error&amp;gt; - TAX 2 enabling value parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;TAX 3 enabling value is incorrect format&amp;lt;/error&amp;gt; - TAX 3 enabling value parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;TAX 4 enabling value is incorrect format&amp;lt;/error&amp;gt; - TAX 4 enabling value parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;page&amp;gt;&lt;br /&gt;
   &amp;lt;status&amp;gt;&lt;br /&gt;
     &amp;lt;error&amp;gt;Invalid Price with TAX&amp;lt;/error&amp;gt;&lt;br /&gt;
   &amp;lt;/status&amp;gt;&lt;br /&gt;
 &amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[MOR API]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=MOR_API_Card_Group_create&amp;diff=22698</id>
		<title>MOR API Card Group create</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=MOR_API_Card_Group_create&amp;diff=22698"/>
		<updated>2017-09-05T08:09:15Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
[[MOR API]] Card Group create&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
* From '''MOR X7''' Calling Card: '''/api/cc_group_create'''&lt;br /&gt;
* Methods: POST, GET(if allowed, not recomended)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
Parameters which are '''included''' into hash:&lt;br /&gt;
&lt;br /&gt;
* name - name of a Card Group '''Required'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters which are '''not included''' into hash:&lt;br /&gt;
&lt;br /&gt;
* '''[[MOR API hash construction | hash]]''' - SHA1 hash constructed using the '''parameters''' which are listed above. Note that the parameters are shown in the same order as they need to be when generating the hash. The last parameter in a row is '''API_Secret_Key''' ([[MOR API hash construction | More described in Constructing hash]]). '''Required'''.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''u''' - username for authentication. '''Required'''.&lt;br /&gt;
* '''description''' - description for Card Group.&lt;br /&gt;
* '''price_with_vat''' - price with TAX for Card Group.&lt;br /&gt;
* '''setup_fee''' - setup fee for Card Group.&lt;br /&gt;
* '''ghost_min_perc''' - ghost min percent for Card Group.&lt;br /&gt;
* '''daily_charge''' - daily charge for Card Group.&lt;br /&gt;
* '''tariff_id''' - Card Group Tariff ID.&lt;br /&gt;
* '''lcr_id''' - Card Group LCR id.&lt;br /&gt;
* '''date_from''' - Card Group valid from date (timestamp).&lt;br /&gt;
* '''date_till''' - Card Group valid till date (timestamp).&lt;br /&gt;
* '''number_length''' - Card Group number length.&lt;br /&gt;
* '''pin_length''' - Card Group PIN length.&lt;br /&gt;
* '''location_id''' - Card Group Location ID.&lt;br /&gt;
* '''tax_id''' - Card Group TAX ID.&lt;br /&gt;
* '''valid_after_first_use''' - number of days, after which Card Group gets valid.&lt;br /&gt;
* '''ghost_balance_perc''' - Card Group ghost balance percent.&lt;br /&gt;
* '''use_external_function''' - enable or disable use of external script [0-no, 1-yes].&lt;br /&gt;
* '''allow_loss_calls''' - Allow Loss Calls for Card Group [0-off, 1-on].&lt;br /&gt;
* '''tell_cents''' - tell cents for Card Group [0-off, 1-on].&lt;br /&gt;
* '''tell_balance_in_currency''' - Card Group Balance/Rate Currency [0-off, 1-on].&lt;br /&gt;
* '''solo_pinless''' - Deny to double-use a Card with Pinless dialing, when Card is assigned to some CallerID [0-no, 1-yes].&lt;br /&gt;
* '''disable_topup_from_cards_with_cid''' - Disable credit transfers from Cards with a CallerID assigned [0-no, 1-yes].&lt;br /&gt;
* '''disable_voucher''' - enable or disable voucher [0-off, 1-on].&lt;br /&gt;
* '''callerid_leave''' -  Leave CallerID assigned to Card when balance is empty [0-no, 1-yes].&lt;br /&gt;
* '''currency''' - Card Group Currency name (must be one of active Currencies e.g. EUR).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Request===&lt;br /&gt;
&lt;br /&gt;
We have u = admin, API Secret Key = secret&lt;br /&gt;
We send:&lt;br /&gt;
&lt;br /&gt;
 HTML POST: http://&amp;lt;SERVER_IP&amp;gt;/billing/api/cc_group_create?u=admin&amp;amp;name=card_group_test&amp;amp;hash=7e112ededcfee097cce21b6201c6d2a00dda1f4c&lt;br /&gt;
&lt;br /&gt;
* Now we can find 1 newly created Card Group.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''* Note that if not passing optional parameters, default values will be used.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''* Note that a Username and a Password are not included into hash'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Returns===&lt;br /&gt;
&lt;br /&gt;
'''Success'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;page&amp;gt;&lt;br /&gt;
   &amp;lt;status&amp;gt;&lt;br /&gt;
     &amp;lt;success&amp;gt;Card Group was successfully created&amp;lt;/success&amp;gt;&lt;br /&gt;
   &amp;lt;/status&amp;gt;&lt;br /&gt;
 &amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Errors'''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;error&amp;gt;Access Denied&amp;lt;/error&amp;gt; - User is not authorized or is a Simple User. Only Admin, Reseller or Accounant can use this API method. &lt;br /&gt;
* &amp;lt;error&amp;gt;Incorrect hash&amp;lt;/error&amp;gt; - hash is not correct. Check API_Secret_Key and order or parameters while concatenating a hash_string.&lt;br /&gt;
* &amp;lt;error&amp;gt;You are not authorized to use this functionality&amp;lt;/error&amp;gt; - User has no permissions to manage Calling Cards.  &lt;br /&gt;
* &amp;lt;error&amp;gt;Card Group must have name&amp;lt;/error&amp;gt; - Card Group name is not given. Name is required parameter.&lt;br /&gt;
* &amp;lt;error&amp;gt;Use external function is incorrect format&amp;lt;/error&amp;gt; - use external script parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Allow loss calls is incorrect format&amp;lt;/error&amp;gt; - allow loss calls parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Tell cents is incorrect format&amp;lt;/error&amp;gt; - tell cents parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Solo pinless is incorrect format&amp;lt;/error&amp;gt; - solo pinless parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Disable voucher is incorrect format&amp;lt;/error&amp;gt; - voucher parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;CallerID leave is incorrect format&amp;lt;/error&amp;gt; - Caller ID leave parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Invalid date from&amp;lt;/error&amp;gt; - UNIX time stamp date not correct.&lt;br /&gt;
* &amp;lt;error&amp;gt;Invalid date till&amp;lt;/error&amp;gt; - UNIX time stamp date not correct.&lt;br /&gt;
* &amp;lt;error&amp;gt;Date from is greater than date till&amp;lt;/error&amp;gt; - valid from is greater than valid till.&lt;br /&gt;
* &amp;lt;error&amp;gt;Tariff was not found&amp;lt;/error&amp;gt; - Tariff id is not correct. There is no such Tariff.&lt;br /&gt;
* &amp;lt;error&amp;gt;LCR was not found&amp;lt;/error&amp;gt; - LCR ID is not correct. There is no such LCR.&lt;br /&gt;
* &amp;lt;error&amp;gt;Location was not found&amp;lt;/error&amp;gt; - Location ID is not correct. There is no such Location.&lt;br /&gt;
* &amp;lt;error&amp;gt;Currency was not found&amp;lt;/error&amp;gt; - Currency ID is not correct. There is no such Currency.&lt;br /&gt;
* &amp;lt;error&amp;gt;Invalid Price with TAX&amp;lt;/error&amp;gt; - price is not correct, can not be negative.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;page&amp;gt;&lt;br /&gt;
   &amp;lt;status&amp;gt;&lt;br /&gt;
     &amp;lt;error&amp;gt;Invalid solo pinless parameter, should be: 0 or 1&amp;lt;/error&amp;gt;&lt;br /&gt;
   &amp;lt;/status&amp;gt;&lt;br /&gt;
 &amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[MOR API]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=MOR_API_Card_Group_create&amp;diff=22697</id>
		<title>MOR API Card Group create</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=MOR_API_Card_Group_create&amp;diff=22697"/>
		<updated>2017-09-05T08:08:38Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
[[MOR API]] Card Group create&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
* From '''MOR X7''' Calling Card: '''/api/cc_group_create'''&lt;br /&gt;
* Methods: POST, GET(if allowed, not recomended)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
Parameters which are '''included''' into hash:&lt;br /&gt;
&lt;br /&gt;
* name - name of a Card Group '''Required'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters which are '''not included''' into hash:&lt;br /&gt;
&lt;br /&gt;
* '''[[MOR API hash construction | hash]]''' - SHA1 hash constructed using the '''parameters''' which are listed above. Note that the parameters are shown in the same order as they need to be when generating the hash. The last parameter in a row is '''API_Secret_Key''' ([[MOR API hash construction | More described in Constructing hash]]). '''Required'''.&amp;lt;br&amp;gt;&lt;br /&gt;
* '''u''' - username for authentication. '''Required'''.&lt;br /&gt;
* '''description''' - description for Card Group.&lt;br /&gt;
* '''price_with_vat''' - price with TAX for Card Group.&lt;br /&gt;
* '''setup_fee''' - setup fee for Card Group.&lt;br /&gt;
* '''ghost_min_perc''' - ghost min percent for Card Group.&lt;br /&gt;
* '''daily_charge''' - daily charge for Card Group.&lt;br /&gt;
* '''tariff_id''' - Card Group Tariff ID.&lt;br /&gt;
* '''lcr_id''' - Card Group LCR id.&lt;br /&gt;
* '''date_from''' - Card Group valid from date (timestamp).&lt;br /&gt;
* '''date_till''' - Card Group valid till date (timestamp).&lt;br /&gt;
* '''number_length''' - Card Group number length.&lt;br /&gt;
* '''pin_length''' - Card Group PIN length.&lt;br /&gt;
* '''location_id''' - Card Group Location ID.&lt;br /&gt;
* '''tax_id''' - Card Group TAX ID.&lt;br /&gt;
* '''valid_after_first_use''' - number of days, after which Card Group gets valid.&lt;br /&gt;
* '''ghost_balance_perc''' - Card Group ghost balance percent.&lt;br /&gt;
* '''use_external_function''' - enable or disable use of external script [0-no, 1-yes].&lt;br /&gt;
* '''allow_loss_calls''' - Allow Loss Calls for Card Group [0-off, 1-on].&lt;br /&gt;
* '''tell_cents''' - tell cents for Card Group [0-off, 1-on].&lt;br /&gt;
* '''tell_balance_in_currency''' - Card Group Balance/Rate Currency [0-off, 1-on].&lt;br /&gt;
* '''solo_pinless''' - Deny to double-use a Card with Pinless dialing, when Card is assigned to some CallerID [0-no, 1-yes].&lt;br /&gt;
* '''disable_topup_from_cards_with_cid''' - Disable a Card Top Up and other kinds if Credit transfers from Cards which already have a CallerID assigned to them, [0-no, 1-yes].&lt;br /&gt;
* '''disable_voucher''' - enable or disable voucher [0-off, 1-on].&lt;br /&gt;
* '''callerid_leave''' -  Leave CallerID assigned to Card when balance is empty [0-no, 1-yes].&lt;br /&gt;
* '''currency''' - Card Group Currency name (must be one of active Currencies e.g. EUR).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Request===&lt;br /&gt;
&lt;br /&gt;
We have u = admin, API Secret Key = secret&lt;br /&gt;
We send:&lt;br /&gt;
&lt;br /&gt;
 HTML POST: http://&amp;lt;SERVER_IP&amp;gt;/billing/api/cc_group_create?u=admin&amp;amp;name=card_group_test&amp;amp;hash=7e112ededcfee097cce21b6201c6d2a00dda1f4c&lt;br /&gt;
&lt;br /&gt;
* Now we can find 1 newly created Card Group.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''* Note that if not passing optional parameters, default values will be used.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''* Note that a Username and a Password are not included into hash'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Returns===&lt;br /&gt;
&lt;br /&gt;
'''Success'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;page&amp;gt;&lt;br /&gt;
   &amp;lt;status&amp;gt;&lt;br /&gt;
     &amp;lt;success&amp;gt;Card Group was successfully created&amp;lt;/success&amp;gt;&lt;br /&gt;
   &amp;lt;/status&amp;gt;&lt;br /&gt;
 &amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Errors'''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;error&amp;gt;Access Denied&amp;lt;/error&amp;gt; - User is not authorized or is a Simple User. Only Admin, Reseller or Accounant can use this API method. &lt;br /&gt;
* &amp;lt;error&amp;gt;Incorrect hash&amp;lt;/error&amp;gt; - hash is not correct. Check API_Secret_Key and order or parameters while concatenating a hash_string.&lt;br /&gt;
* &amp;lt;error&amp;gt;You are not authorized to use this functionality&amp;lt;/error&amp;gt; - User has no permissions to manage Calling Cards.  &lt;br /&gt;
* &amp;lt;error&amp;gt;Card Group must have name&amp;lt;/error&amp;gt; - Card Group name is not given. Name is required parameter.&lt;br /&gt;
* &amp;lt;error&amp;gt;Use external function is incorrect format&amp;lt;/error&amp;gt; - use external script parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Allow loss calls is incorrect format&amp;lt;/error&amp;gt; - allow loss calls parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Tell cents is incorrect format&amp;lt;/error&amp;gt; - tell cents parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Solo pinless is incorrect format&amp;lt;/error&amp;gt; - solo pinless parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Disable voucher is incorrect format&amp;lt;/error&amp;gt; - voucher parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;CallerID leave is incorrect format&amp;lt;/error&amp;gt; - Caller ID leave parameter can only be: 1  - enabled, 0 - disabled.&lt;br /&gt;
* &amp;lt;error&amp;gt;Invalid date from&amp;lt;/error&amp;gt; - UNIX time stamp date not correct.&lt;br /&gt;
* &amp;lt;error&amp;gt;Invalid date till&amp;lt;/error&amp;gt; - UNIX time stamp date not correct.&lt;br /&gt;
* &amp;lt;error&amp;gt;Date from is greater than date till&amp;lt;/error&amp;gt; - valid from is greater than valid till.&lt;br /&gt;
* &amp;lt;error&amp;gt;Tariff was not found&amp;lt;/error&amp;gt; - Tariff id is not correct. There is no such Tariff.&lt;br /&gt;
* &amp;lt;error&amp;gt;LCR was not found&amp;lt;/error&amp;gt; - LCR ID is not correct. There is no such LCR.&lt;br /&gt;
* &amp;lt;error&amp;gt;Location was not found&amp;lt;/error&amp;gt; - Location ID is not correct. There is no such Location.&lt;br /&gt;
* &amp;lt;error&amp;gt;Currency was not found&amp;lt;/error&amp;gt; - Currency ID is not correct. There is no such Currency.&lt;br /&gt;
* &amp;lt;error&amp;gt;Invalid Price with TAX&amp;lt;/error&amp;gt; - price is not correct, can not be negative.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;page&amp;gt;&lt;br /&gt;
   &amp;lt;status&amp;gt;&lt;br /&gt;
     &amp;lt;error&amp;gt;Invalid solo pinless parameter, should be: 0 or 1&amp;lt;/error&amp;gt;&lt;br /&gt;
   &amp;lt;/status&amp;gt;&lt;br /&gt;
 &amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[MOR API]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Calling_Card_Groups&amp;diff=22696</id>
		<title>Calling Card Groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Calling_Card_Groups&amp;diff=22696"/>
		<updated>2017-09-05T08:05:51Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
A Card Group is a set (array) of [[Calling Card management|Calling Cards]].&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
Card Groups, like many other entities in MOR, can be created/edited/deleted/viewed.&lt;br /&gt;
&lt;br /&gt;
If a Calling Card module is enabled, you can find it in: '''ADDONS –&amp;gt; Card Groups'''.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:card_group_path.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Here you can review your active Calling Card Groups:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Caling_cards.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:icon_details.png]] (..) - shows the Cards window, where you can manage the Group's Cards.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:icon_details.png]] - all the details of the Calling Card Group.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:icon_excel.png]] - exports Cards into CSV format.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:icon_edit.png]] - edits the Group's details.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:icon_delete.png]] - deletes the Group with all Cards, used Cards will be hidden. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Properties =&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Card_group_properties.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Card Image''' – just for informational purposes and eye pleasure to view on the GUI. Can be (and should be) the same as the real printed card for consistency. But that's not the rule.&lt;br /&gt;
* '''Description''' – a short memo for admin to view some more info for the cards. It is useful when there are a lot of Card Groups and the Card Group name is not enough.&lt;br /&gt;
* '''Price with TAX''' – the price which all Cards in this Group will have before first use. TAX is not included into Card balance. It's in the default currency.&lt;br /&gt;
* '''Setup Fee''' – the fee which will be charged when a call is connected the FIRST time when the card is used. &lt;br /&gt;
* '''Ghost minute percent''' – a value to trick the user into thinking he has more minutes when he really has less. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
A user has enough balance in his card to call for 50 minutes. Ghost minute percent = 120. So when the user enters his number/PIN, the  system tells: &amp;quot;You have 60 minutes remaining&amp;quot; (50/100 * 120). Note: this is not an increase in percent; it is the value by which the actual minutes should be multiplied to tell them to the user.&lt;br /&gt;
** Custom [[Ghost Minute Percent per Destination for Calling Card Group]] (''This option is available starting from [[MOR_9_documentation | MOR9]]'').&lt;br /&gt;
* '''Ghost balance percent''' - same as Ghost Minute Percent, but this value only applies to the Balance which is told to the user (''This option is available starting from [[MOR_9_documentation | MOR9]]'').&lt;br /&gt;
* '''Daily Charge''' – the amount which will be deducted EACH day from the card starting from the date when the card is used for the first time. This means, if the user makes his first call on Monday and his second call on Friday, his card will be deducted for 5 days using this value (Mo, Tu, We, Th, Fr). Daily Charge is applied for all cards in group: for those cards which were activated before Daily Charge was set, and for cards which will be activated in future.&lt;br /&gt;
* '''Currency''' - Currency used for all cards (''Before [[MOR_X10 | MOR X10]] Default Currency is used'').&lt;br /&gt;
* '''Tell cents''' - enable or disable telling cents when announcing card balance (''This option is available starting from [[MOR_10_documentation | MOR 10]]'').&lt;br /&gt;
* '''Tell balance in currency''' - choose in which currency to tell balance when announcing it. (''This option is available starting from [[MOR_10_documentation | MOR10]]'').&lt;br /&gt;
* '''TAX percent''' – the actual value which will be used when presenting the Card's price to the User, i.e. when telling the user his remaining balance on the Card or showing the same information on the screen.&lt;br /&gt;
* '''Least Cost Routing (LCR)''' – which LCR will be used for all Cards in this Card Group.&lt;br /&gt;
* '''Tariff''' – the price list which will be used for this Card Group.&lt;br /&gt;
* '''Location''' – this is useful when Cards will be sold in a region with specific dialing rules. Rules for location can vary for different Calling Card Groups.&lt;br /&gt;
* '''Number Length''' – the length of the Card's number. You can select any value here. It is recommended to select different values for different Card Groups to minimize the risk of anyone guessing another card's number and using it unauthorized. Card numbers are generated in sequence order.&lt;br /&gt;
* '''PIN Length''' – the number of the Card's PIN. The same recommendation applies as for the Card's Number. PINs are generated randomly.&lt;br /&gt;
* '''Valid from''' - from which date Cards are valid.&lt;br /&gt;
* '''Valid till''' - till which date Cards are valid.&lt;br /&gt;
* '''Valid after first use''' - how many days a Card is valid after first use. Default 0 means that card is valid forever.&lt;br /&gt;
* '''[[Allow loss calls]]''' - enable this feature on calling card group if you want to let card users to make calls when there might be loss.&lt;br /&gt;
* '''Deny to double-use a Card with Pinless dialing, when Card is assigned to some CallerID'''&lt;br /&gt;
* '''Disable credit transfers from Cards with a CallerID assigned ''' - this option disallows a Card Top Up and other kinds if Credit transfers from Cards which already have a CallerID assigned to them. &lt;br /&gt;
* '''Disable Voucher with same Number as Card if Card is used?''' - this option allows you to print cards which can be used both for vouchers and for Calling Cards. If one is used - the other one is deactivated.&lt;br /&gt;
* '''Leave CallerID assigned to Card when balance is empty:''' - to leave or not to leave a card with CallerID when its balance equals 0. Note: Card balance is checked before call to destination, right after card is recognized.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= VIDEO: How to create Calling Cards Group  =&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
 &amp;lt;iframe width=&amp;quot;640&amp;quot; height=&amp;quot;360&amp;quot; src=&amp;quot;http://www.youtube.com/embed/lxzhAdvOW2Q&amp;quot; frameborder=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt; &lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[Calling Cards Addon]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Card_group_properties.png&amp;diff=22695</id>
		<title>File:Card group properties.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Card_group_properties.png&amp;diff=22695"/>
		<updated>2017-09-05T08:03:39Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: uploaded a new version of &amp;quot;File:Card group properties.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=CDR_Export_Templates&amp;diff=22687</id>
		<title>CDR Export Templates</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=CDR_Export_Templates&amp;diff=22687"/>
		<updated>2017-09-05T07:41:53Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Available columns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Funcionality can be used '''only''' by system Administrator.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
CDR Export Templates allow to create templates with specific columns for CSV files. These templates can be used to export CDRs from Last Calls.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==How to download CDR by template==&lt;br /&gt;
&lt;br /&gt;
Go to '''SETTINGS -&amp;gt; Billing -&amp;gt; CDR -&amp;gt; Export -&amp;gt; Templates''' and create new template with columns that you want to export.&lt;br /&gt;
&lt;br /&gt;
[[File:Cdr_export_templates.png]]&lt;br /&gt;
&lt;br /&gt;
Now if you go to Last Calls, you should be able to see '''Export to Template''' button:&lt;br /&gt;
&lt;br /&gt;
[[File:Last calls cdr export template.png]]&lt;br /&gt;
&lt;br /&gt;
By pressing '''Export''', all CDRs by specified filters will be exported to CSV file and only columns from CDR Template will be included.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''CDR CSV archive will be sent via email to System administrator. Make sure that emails are configured correctly!'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE:''' archive size is limited to 10MB! If CDR archive is larger, then archive will not be sent back.&lt;br /&gt;
&lt;br /&gt;
===Available columns===&lt;br /&gt;
&lt;br /&gt;
* '''Accountcode''' - ID of Originator (Device ID);&lt;br /&gt;
* '''Billsec''' - billable duration (from answer to hangup) excluding minimal time and increment;&lt;br /&gt;
* '''Call ID''' - call id in MOR system;&lt;br /&gt;
* '''Called From''' - Originator's number (CallerID), for example &amp;quot;John Smith&amp;quot; &amp;lt;123456789&amp;gt;;&lt;br /&gt;
* '''Called To''' - localized destination number;&lt;br /&gt;
* '''Card ID''' - Card ID;&lt;br /&gt;
* '''DID Billsec''' - DID billable duration;&lt;br /&gt;
* '''DID Device ID''' - ID of Device which received call;&lt;br /&gt;
* '''DID Incoming Price''' - DID price which is paid by the user who is dialing to that DID;&lt;br /&gt;
* '''DID Number''' - DID Number;&lt;br /&gt;
* '''DID Price''' - DID price which is paid by the user who owns dialed DID;&lt;br /&gt;
* '''DID Provider ID''' - DID Provider ID;&lt;br /&gt;
* '''DID Provider Price''' - DID Provider Price;&lt;br /&gt;
* '''DID User ID''' - ID of User who received DID call;&lt;br /&gt;
* '''Date''' - date and time when call was started (first INVITE packet);&lt;br /&gt;
* '''Destination''' - Direction and Destination name of dialed destination;&lt;br /&gt;
* '''Destination Name''' - only Destination name (without Direction name);&lt;br /&gt;
* '''Destination Number''' - original destination number (including technical prefixes);&lt;br /&gt;
* '''Direction Name''' - only Direction name (without Destination name);&lt;br /&gt;
* '''Disposition''' - call disposition (ANSWERED, BUSY, NO ANSWER or FAILED);&lt;br /&gt;
* '''Duration''' - call duration from first INVITE to BYE;&lt;br /&gt;
* '''Hangup Cause''' - reason why call ended (Disposition + Hangup Cause Code, for example ANSWERED(16));&lt;br /&gt;
* '''Hangup Cause Code''' - reason why call ended (only numeric value, for example 16);&lt;br /&gt;
* '''Originator Codec''' - Codec used by Originator;&lt;br /&gt;
* '''Originator IP''' - Originator's IP address;&lt;br /&gt;
* '''Partner Billsec''' - billable duration (from answer to hangup) including Partner's increment and minimal time;&lt;br /&gt;
* '''Partner ID''' - ID of Partner in MOR system;&lt;br /&gt;
* '''Partner Price''' - call price by Partner's Tariff;&lt;br /&gt;
* '''Partner Rate''' - call rate by Partner's Tariff;&lt;br /&gt;
* '''Prefix''' - prefix used to find rate;&lt;br /&gt;
* '''Profit''' - Admin's Profit;&lt;br /&gt;
* '''Provider''' - name of Provider;&lt;br /&gt;
* '''Provider Billsec''' - billable duration (from answer to hangup) including Provider's increment and minimal time;&lt;br /&gt;
* '''Provider ID''' - ID of Provider in MOR system;&lt;br /&gt;
* '''Provider Price''' - call price by Provider's Tariff;&lt;br /&gt;
* '''Provider Rate''' - call rate by Provider's Tariff;&lt;br /&gt;
* '''Real Billsec''' - same as Billsec but in decimal (more precise);&lt;br /&gt;
* '''Real Duration''' - same as Duration but in decimal (more precise);&lt;br /&gt;
* '''Reseller''' - name of Reseller;&lt;br /&gt;
* '''Reseller Billsec''' - ID of Reseller in MOR system;&lt;br /&gt;
* '''Reseller ID''' - billable duration (from answer to hangup) including Reseller's increment and minimal time;&lt;br /&gt;
* '''Reseller Price''' - call price by Reseller's Tariff;&lt;br /&gt;
* '''Reseller Rate''' - call rate by Reseller's Tariff;&lt;br /&gt;
* '''Server ID''' - ID of server which was used to make call;&lt;br /&gt;
* '''Source Number''' - Originator's number part of CalleID;&lt;br /&gt;
* '''Terminator Codec''' - Codec used by Terminator;&lt;br /&gt;
* '''Terminator IP''' - Terminator's IP address;&lt;br /&gt;
* '''Unique ID''' - uniqueid of call in MOR system;&lt;br /&gt;
* '''User''' - name of User;&lt;br /&gt;
* '''User Billsec''' - billable duration (from answer to hangup) including User's increment and minimal time;&lt;br /&gt;
* '''User ID''' - ID of User in MOR system;&lt;br /&gt;
* '''User Price''' - call price by User's Tariff;&lt;br /&gt;
* '''User Rate''' - call rate by User's Tariff.&lt;br /&gt;
&lt;br /&gt;
==Email Templates==&lt;br /&gt;
&lt;br /&gt;
If archive is sent successfully, System administrator should receive success email which can be customised in [[Emails]] settings. CDR archive will be attached.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= See also =&lt;br /&gt;
* [[How to export CDRs]]&lt;br /&gt;
* [[Automatic CDR Export]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=CDR_Export_Templates&amp;diff=22686</id>
		<title>CDR Export Templates</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=CDR_Export_Templates&amp;diff=22686"/>
		<updated>2017-09-05T07:40:24Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Available columns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Funcionality can be used '''only''' by system Administrator.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
CDR Export Templates allow to create templates with specific columns for CSV files. These templates can be used to export CDRs from Last Calls.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==How to download CDR by template==&lt;br /&gt;
&lt;br /&gt;
Go to '''SETTINGS -&amp;gt; Billing -&amp;gt; CDR -&amp;gt; Export -&amp;gt; Templates''' and create new template with columns that you want to export.&lt;br /&gt;
&lt;br /&gt;
[[File:Cdr_export_templates.png]]&lt;br /&gt;
&lt;br /&gt;
Now if you go to Last Calls, you should be able to see '''Export to Template''' button:&lt;br /&gt;
&lt;br /&gt;
[[File:Last calls cdr export template.png]]&lt;br /&gt;
&lt;br /&gt;
By pressing '''Export''', all CDRs by specified filters will be exported to CSV file and only columns from CDR Template will be included.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''CDR CSV archive will be sent via email to System administrator. Make sure that emails are configured correctly!'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE:''' archive size is limited to 10MB! If CDR archive is larger, then archive will not be sent back.&lt;br /&gt;
&lt;br /&gt;
===Available columns===&lt;br /&gt;
&lt;br /&gt;
* '''Accountcode''' - ID of Originator (Device ID);&lt;br /&gt;
* '''Billsec''' - billable duration (from answer to hangup) excluding minimal time and increment;&lt;br /&gt;
* '''Call ID''' - call id in MOR system;&lt;br /&gt;
* '''Called From''' - Originator's number (CallerID), for example &amp;quot;John Smith&amp;quot; &amp;lt;123456789&amp;gt;;&lt;br /&gt;
* '''Called To''' - localized destination number;&lt;br /&gt;
* '''Card ID''' - Card ID;&lt;br /&gt;
* '''DID Billsec''' - DID billable duration;&lt;br /&gt;
* '''DID Device ID''' - ID of Device which received call;&lt;br /&gt;
* '''DID Incoming Price''' - DID price which is paid by the user who is dialing to that DID;&lt;br /&gt;
* '''DID Number''' - DID Number;&lt;br /&gt;
* '''DID Price''' - DID price which is paid by the user who owns dialed DID;&lt;br /&gt;
* '''DID Provider ID''' - DID Provider ID;&lt;br /&gt;
* '''DID Provider Price''' - DID Provider Price;&lt;br /&gt;
* '''DID User ID''' - ID of User who received DID call;&lt;br /&gt;
* '''Date''' - date and time when call was started (first INVITE packet);&lt;br /&gt;
* '''Destination''' - Direction and Destination name of dialed destination;&lt;br /&gt;
* '''Destination Name''' - only Destination name (without Direction name);&lt;br /&gt;
* '''Destination Number''' - original destination number (including technical prefixes);&lt;br /&gt;
* '''Direction Name''' - only Direction name (without Destination name);&lt;br /&gt;
* '''Disposition''' - call disposition (ANSWERED, BUSY, NO ANSWER or FAILED);&lt;br /&gt;
* '''Duration''' - call duration from first INVITE to BYE;&lt;br /&gt;
* '''Hangup Cause''' - reason why call ended (Disposition + Hangup Cause Code, for example ANSWERED(16));&lt;br /&gt;
* '''Hangup Cause Code''' - reason why call ended (only numeric value, for example 16);&lt;br /&gt;
* '''Originator IP''' - Originator's IP address;&lt;br /&gt;
* '''Partner Billsec''' - billable duration (from answer to hangup) including Partner's increment and minimal time;&lt;br /&gt;
* '''Partner ID''' - ID of Partner in MOR system;&lt;br /&gt;
* '''Partner Price''' - call price by Partner's Tariff;&lt;br /&gt;
* '''Partner Rate''' - call rate by Partner's Tariff;&lt;br /&gt;
* '''Prefix''' - prefix used to find rate;&lt;br /&gt;
* '''Profit''' - Admin's Profit;&lt;br /&gt;
* '''Provider''' - name of Provider;&lt;br /&gt;
* '''Provider Billsec''' - billable duration (from answer to hangup) including Provider's increment and minimal time;&lt;br /&gt;
* '''Provider ID''' - ID of Provider in MOR system;&lt;br /&gt;
* '''Provider Price''' - call price by Provider's Tariff;&lt;br /&gt;
* '''Provider Rate''' - call rate by Provider's Tariff;&lt;br /&gt;
* '''Real Billsec''' - same as Billsec but in decimal (more precise);&lt;br /&gt;
* '''Real Duration''' - same as Duration but in decimal (more precise);&lt;br /&gt;
* '''Reseller''' - name of Reseller;&lt;br /&gt;
* '''Reseller Billsec''' - ID of Reseller in MOR system;&lt;br /&gt;
* '''Reseller ID''' - billable duration (from answer to hangup) including Reseller's increment and minimal time;&lt;br /&gt;
* '''Reseller Price''' - call price by Reseller's Tariff;&lt;br /&gt;
* '''Reseller Rate''' - call rate by Reseller's Tariff;&lt;br /&gt;
* '''Server ID''' - ID of server which was used to make call;&lt;br /&gt;
* '''Source Number''' - Originator's number part of CalleID;&lt;br /&gt;
* '''Terminator IP''' - Terminator's IP address;&lt;br /&gt;
* '''Unique ID''' - uniqueid of call in MOR system;&lt;br /&gt;
* '''User''' - name of User;&lt;br /&gt;
* '''User Billsec''' - billable duration (from answer to hangup) including User's increment and minimal time;&lt;br /&gt;
* '''User ID''' - ID of User in MOR system;&lt;br /&gt;
* '''User Price''' - call price by User's Tariff;&lt;br /&gt;
* '''User Rate''' - call rate by User's Tariff;&lt;br /&gt;
* '''Originator Codec''' - Codec used by Originator;&lt;br /&gt;
* '''Terminator Codec''' - Codec used by Terminator.&lt;br /&gt;
&lt;br /&gt;
==Email Templates==&lt;br /&gt;
&lt;br /&gt;
If archive is sent successfully, System administrator should receive success email which can be customised in [[Emails]] settings. CDR archive will be attached.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= See also =&lt;br /&gt;
* [[How to export CDRs]]&lt;br /&gt;
* [[Automatic CDR Export]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Call_info_details_4.png&amp;diff=22685</id>
		<title>File:Call info details 4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Call_info_details_4.png&amp;diff=22685"/>
		<updated>2017-09-05T07:38:36Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: uploaded a new version of &amp;quot;File:Call info details 4.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Multi_Server_support&amp;diff=22682</id>
		<title>Multi Server support</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Multi_Server_support&amp;diff=22682"/>
		<updated>2017-09-05T07:18:42Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Graphs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!---	''This functionality is available from MOR 0.7''. --&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;'''VERY IMPORTANT! IF YOU HAVE ONLY ONE ASTERISK SERVER OR DO NOT UNDERSTAND WHAT THESE SETTINGS ARE FOR - DO NOT CHANGE THEM AT ALL!'''&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''SETTINGS - Billing - Servers'''&lt;br /&gt;
=What is Multi Server support?=&lt;br /&gt;
&lt;br /&gt;
With this system, it is possible to manage several Asterisk servers from GUI.&lt;br /&gt;
&lt;br /&gt;
These servers are Asterisk servers which work with calls and BILL them. &lt;br /&gt;
&lt;br /&gt;
=How to add a new Asterisk server?=&lt;br /&gt;
Go to Asterisk Servers: '''Billing -&amp;gt; Servers'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Gateway''' - determines whether the server acts as a Gateway for SIP Proxy. This option is available only when you have [[SIP balancer]]. It means that the SIP Proxy will use this server to send calls through.&lt;br /&gt;
&lt;br /&gt;
* '''Active''' - determines whether the server is active, e.g. whether MOR should 'talk' to this server in order to update provider/device information. Disabling the server does not disable its use, only the updating of changes from GUI.&lt;br /&gt;
&lt;br /&gt;
* '''ID''' - a unique identifier of a server that should be same as the server_id in '''mor.conf'''.&lt;br /&gt;
&lt;br /&gt;
* '''Test''' - click to test the connection to the server over AMI.&lt;br /&gt;
&lt;br /&gt;
* '''Hostname for SIP''' most times is equal to '''Server IP for SIP''' and '''Server IP for AMI''' &lt;br /&gt;
&lt;br /&gt;
* '''URL''' - a special URL for some third-party software, or sometimes for server stats.&lt;br /&gt;
&lt;br /&gt;
* '''Type''' and '''Comment''' - just for informational purposes.&lt;br /&gt;
&lt;br /&gt;
* '''Max Call Limit''' - not used for now.&lt;br /&gt;
&lt;br /&gt;
* '''AMI Username/AMI Secret''' - settings to connect to a server over AMI. These are the most important settings in this window! They should match the values in the server'' /etc/asterisk/manager.conf&lt;br /&gt;
&lt;br /&gt;
* '''SIP Port''' - the port Asterisk uses to listen to SIP; used in [[SIP balancer]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fill in the required fields and press the marked icon:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:server_1.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE! If you want to connect another Asterisk server which will not bill calls, then configure it as Device/Trunk.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;'''VERY IMPORTANT! IF YOU HAVE ONLY ONE ASTERISK SERVER OR DO NOT UNDERSTAND WHAT THESE SETTINGS ARE FOR - DO NOT CHANGE THEM AT ALL!'''&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to make calls from devices on different Asterisk server ==&lt;br /&gt;
&lt;br /&gt;
1. Create 2 devices, device A and device B.&lt;br /&gt;
&lt;br /&gt;
2. Mark the correct Asterisk server in [[Device_settings | settings]] for those devices.&lt;br /&gt;
&lt;br /&gt;
3. Create 2 DID numbers (any number format you need/want) DID1 and DID2&lt;br /&gt;
&lt;br /&gt;
4. Forward DID to device (Assign DID to user and forward it to device) DID1 to device A, DID2 to device B&lt;br /&gt;
&lt;br /&gt;
5. Register devices to the Asterisk servers that they belong&lt;br /&gt;
&lt;br /&gt;
6. Call from Device A to DID2 to reach Device B, and vice versa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= [[Providers]] =&lt;br /&gt;
&lt;br /&gt;
==Where to find [[Providers | providers]] of a specific Asterisk server?==&lt;br /&gt;
&lt;br /&gt;
1. Go to Severs&lt;br /&gt;
&lt;br /&gt;
2. To get to [[Providers | providers]] list of a specific Asterisk server press the marked icon:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Asterisk_servers_providers_list_new.png]]&lt;br /&gt;
&lt;br /&gt;
This window shows which [[Providers]] are accessible from '''this Server'''.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Asterisk_servers_providers_list.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Call Flows=&lt;br /&gt;
&lt;br /&gt;
Lets say we have:&lt;br /&gt;
&lt;br /&gt;
Provider provA and Device devA configured on Asterisk server ast1;&lt;br /&gt;
&lt;br /&gt;
Provider provB and Device devB configured on Asterisk server ast2;&lt;br /&gt;
&lt;br /&gt;
Provider provC configured on both Asterisk servers (ast1 and ast2).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Possible call flows are:&lt;br /&gt;
&lt;br /&gt;
devA makes call through provA (user &amp;gt; ast1 &amp;gt; provA);&lt;br /&gt;
&lt;br /&gt;
devB makes call through provB (user &amp;gt; ast2 &amp;gt; provider);&lt;br /&gt;
&lt;br /&gt;
devA makes call through provB (user &amp;gt; ast1 &amp;gt; ast2 &amp;gt; provB);&lt;br /&gt;
&lt;br /&gt;
devB makes call through provA (user &amp;gt; ast2 &amp;gt; ast1 &amp;gt; provA);&lt;br /&gt;
&lt;br /&gt;
devA makes call through provC (user &amp;gt; ast1 &amp;gt; provC);&lt;br /&gt;
&lt;br /&gt;
devB makes call through provC (user &amp;gt; ast2 &amp;gt; provC).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Server Version/Uptime =&lt;br /&gt;
&lt;br /&gt;
Available from MOR 12 - These values are updated automatically by MOR. Not possible to change them manually.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Stats=&lt;br /&gt;
&lt;br /&gt;
Available from MOR x4:&lt;br /&gt;
&lt;br /&gt;
==Where to find server statistics==&lt;br /&gt;
&lt;br /&gt;
1. Go to Severs&lt;br /&gt;
&lt;br /&gt;
Column &amp;quot;Free space&amp;quot; indicates how much free space is left on server's hard drive.&lt;br /&gt;
&lt;br /&gt;
2. To get to stats of a specific server press the marked icon: &lt;br /&gt;
&lt;br /&gt;
[[File:server_3.png]]&lt;br /&gt;
&lt;br /&gt;
==Graphs==&lt;br /&gt;
&lt;br /&gt;
*HDD Utilization - shows current hard drive utilization.&lt;br /&gt;
&lt;br /&gt;
*CPU General Load - the general load of CPU.&lt;br /&gt;
&lt;br /&gt;
*CPU Loadstats - CPU load statistics.&lt;br /&gt;
&lt;br /&gt;
*Service Load - load caused by MySQL, Ruby and Asterisk.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:servers_stats_view.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Additional Notes=&lt;br /&gt;
&lt;br /&gt;
* Every Provider can belong to every Server.&lt;br /&gt;
&lt;br /&gt;
* It is important to map the correct Providers to the correct servers.&lt;br /&gt;
&lt;br /&gt;
* Database and GUI servers are not described here.&lt;br /&gt;
&lt;br /&gt;
* Free space value is not related with other stats values.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
* [[Intelligent Internal Routing]]&lt;br /&gt;
* [[Server is overloaded]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Servers_stats_view.png&amp;diff=22681</id>
		<title>File:Servers stats view.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Servers_stats_view.png&amp;diff=22681"/>
		<updated>2017-09-05T07:17:49Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: uploaded a new version of &amp;quot;File:Servers stats view.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22680</id>
		<title>Call Tracing</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22680"/>
		<updated>2017-09-05T07:07:12Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Device testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;mkmeta&amp;gt;How to trace MOR Call&amp;lt;/mkmeta&amp;gt;&lt;br /&gt;
= MOR Call Tracing Overview = &lt;br /&gt;
&lt;br /&gt;
This function is for checking the setup of MOR in order to be sure a User will be able to dial out. To set MOR up isn't simple, but we are trying to make it easier with this manual and with improvements to GUI. It often happens that Users miss some important detail while trying to make everything work. Call Tracing will save a lot of head-scratching, and we hope it will be helpful for beginners.&lt;br /&gt;
&lt;br /&gt;
This function can be found in '''SETTINGS –&amp;gt; Billing –&amp;gt; Function –&amp;gt; Call Tracing'''. It can be quickly accessed in the Users menu (SETTINGS –&amp;gt; Users) as well. Just click on the [[Image:icon_call_tracing.png]] icon for a User.&lt;br /&gt;
&lt;br /&gt;
In the first window, we have to select which User we want to check:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= User testing = &lt;br /&gt;
&lt;br /&gt;
The next window shows us whether we have configured everything properly for the selected User. Let's look at each section separately. &lt;br /&gt;
&lt;br /&gt;
The first section shows information special to the User:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we see three errors [[Image:icon_cross.png]] that prevent the User from operating. Let's say we want to allow a User to make Calls. We will go through each of the errors and fix them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. This error tells us that the User is Blocked and so unable to make Calls. We should go to [[User Details]] and unblock him.&lt;br /&gt;
&lt;br /&gt;
2. Balance and Credit for this User are empty, and the User type is Prepaid. That means he has no funds to cover the Call fees. There are several ways to go about fixing this:&lt;br /&gt;
&lt;br /&gt;
*  If the User is postpaid, he should use some Payment method to increase his Balance. [[PayPal]] and [[Payments | Manual Payment]], among others, are good ways to do this.&lt;br /&gt;
*  We can change the User type to Postpaid and then we should adjust his Credit. Maybe it is unlimited, maybe some limit exists. But this will allow the User to dial out.&lt;br /&gt;
&lt;br /&gt;
3. The User has no Devices. A Device is necessary in order to dial out. Just create one for this User.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' We also see that the User has an empty Tariff assigned. That is the reason why the User will not be able to dial out. In addition, the User can dial out only to those destinations which have Rates. Currently none of them has. You need to add some Rates to the existing Tariff or assign a non-empty Tariff to this User.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After solving all these issues, we should see:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Device testing = &lt;br /&gt;
&lt;br /&gt;
The following section lets us choose a Device, Source, Server, Destination and a Call Time we want to test. For example:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Calltracing3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
This data means that we are testing a virtual Call from an IP authenticated SIP Device to a number 37061111111 on 2017 September 5th 09:30.&lt;br /&gt;
&lt;br /&gt;
When we click '''Trace Call''', we will go to the next page and we will see something like:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:New_mor_call_tracing.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Call Tracing Log will show self explanatory warnings, errors (in red colored text), other messages, and an informative summary. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=From Accountant=&lt;br /&gt;
&lt;br /&gt;
Accountant must have '''Call tracing usage''' permission in [[Accountant_permissions | Accountant permissions group]] to use this functionality.&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22679</id>
		<title>Call Tracing</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22679"/>
		<updated>2017-09-05T07:04:11Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* User testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;mkmeta&amp;gt;How to trace MOR Call&amp;lt;/mkmeta&amp;gt;&lt;br /&gt;
= MOR Call Tracing Overview = &lt;br /&gt;
&lt;br /&gt;
This function is for checking the setup of MOR in order to be sure a User will be able to dial out. To set MOR up isn't simple, but we are trying to make it easier with this manual and with improvements to GUI. It often happens that Users miss some important detail while trying to make everything work. Call Tracing will save a lot of head-scratching, and we hope it will be helpful for beginners.&lt;br /&gt;
&lt;br /&gt;
This function can be found in '''SETTINGS –&amp;gt; Billing –&amp;gt; Function –&amp;gt; Call Tracing'''. It can be quickly accessed in the Users menu (SETTINGS –&amp;gt; Users) as well. Just click on the [[Image:icon_call_tracing.png]] icon for a User.&lt;br /&gt;
&lt;br /&gt;
In the first window, we have to select which User we want to check:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= User testing = &lt;br /&gt;
&lt;br /&gt;
The next window shows us whether we have configured everything properly for the selected User. Let's look at each section separately. &lt;br /&gt;
&lt;br /&gt;
The first section shows information special to the User:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we see three errors [[Image:icon_cross.png]] that prevent the User from operating. Let's say we want to allow a User to make Calls. We will go through each of the errors and fix them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. This error tells us that the User is Blocked and so unable to make Calls. We should go to [[User Details]] and unblock him.&lt;br /&gt;
&lt;br /&gt;
2. Balance and Credit for this User are empty, and the User type is Prepaid. That means he has no funds to cover the Call fees. There are several ways to go about fixing this:&lt;br /&gt;
&lt;br /&gt;
*  If the User is postpaid, he should use some Payment method to increase his Balance. [[PayPal]] and [[Payments | Manual Payment]], among others, are good ways to do this.&lt;br /&gt;
*  We can change the User type to Postpaid and then we should adjust his Credit. Maybe it is unlimited, maybe some limit exists. But this will allow the User to dial out.&lt;br /&gt;
&lt;br /&gt;
3. The User has no Devices. A Device is necessary in order to dial out. Just create one for this User.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' We also see that the User has an empty Tariff assigned. That is the reason why the User will not be able to dial out. In addition, the User can dial out only to those destinations which have Rates. Currently none of them has. You need to add some Rates to the existing Tariff or assign a non-empty Tariff to this User.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After solving all these issues, we should see:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Device testing = &lt;br /&gt;
&lt;br /&gt;
The following section lets us choose a Device, Source, Server, Destination and a Call Time we want to test. For example:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Calltracing3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
This data means that we are testing a virtual Call from an IP authenticated SIP Device to a number 37061111111 on 2017 September 5th 09:30.&lt;br /&gt;
&lt;br /&gt;
When we click '''Trace Call''', we will go to the next page and we will see something like:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:New_mor_call_tracing.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The '''Details''' section shows us just routine information. We already knew this information, so it is not important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Call Tracing Log will show self explanatory warnings, errors (in red colored text) and other messages. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=From Accountant=&lt;br /&gt;
&lt;br /&gt;
Accountant must have '''Call tracing usage''' permission in [[Accountant_permissions | Accountant permissions group]] to use this functionality.&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22678</id>
		<title>Call Tracing</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22678"/>
		<updated>2017-09-05T07:01:21Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Device testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;mkmeta&amp;gt;How to trace MOR Call&amp;lt;/mkmeta&amp;gt;&lt;br /&gt;
= MOR Call Tracing Overview = &lt;br /&gt;
&lt;br /&gt;
This function is for checking the setup of MOR in order to be sure a User will be able to dial out. To set MOR up isn't simple, but we are trying to make it easier with this manual and with improvements to GUI. It often happens that Users miss some important detail while trying to make everything work. Call Tracing will save a lot of head-scratching, and we hope it will be helpful for beginners.&lt;br /&gt;
&lt;br /&gt;
This function can be found in '''SETTINGS –&amp;gt; Billing –&amp;gt; Function –&amp;gt; Call Tracing'''. It can be quickly accessed in the Users menu (SETTINGS –&amp;gt; Users) as well. Just click on the [[Image:icon_call_tracing.png]] icon for a User.&lt;br /&gt;
&lt;br /&gt;
In the first window, we have to select which User we want to check:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= User testing = &lt;br /&gt;
&lt;br /&gt;
The next window shows us whether we have configured everything properly for the selected User. Let's look at each section separately. &lt;br /&gt;
&lt;br /&gt;
The first section shows information special to the User:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we see three errors [[Image:icon_cross.png]] that prevent the User from operating. Let's say we want to allow a User to make Calls. We will go through each of the errors and fix them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. This error tells us that the User is Blocked and so unable to make Calls. We should go to [[User Details]] and unblock him.&lt;br /&gt;
&lt;br /&gt;
2. Balance and Credit for this User are empty, and the User type is Prepaid. That means he has no funds to cover the Call fees. There are several ways to go about fixing this:&lt;br /&gt;
&lt;br /&gt;
*  If the User is postpaid, he should use some payment method to increase his balance. [[PayPal]] and [[Payments | Manual Payment]], among others, are good ways to do this.&lt;br /&gt;
*  We can change the User type to postpaid and then we should adjust his credit. Maybe it is unlimited, maybe some limit exists. But this will allow the User to dial out.&lt;br /&gt;
&lt;br /&gt;
3. The User has no Devices. A Device is necessary in order to dial out. Just create one for this User.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' We also see that the User has an empty Tariff assigned. That is the reason why the User will not be able to dial out. In addition, the User can dial out only to those destinations which have rates. Currently none of them has. You need to add some rates to the existing tariff or assign a non-empty tariff to this User.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After solving all these issues, we should see:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Device testing = &lt;br /&gt;
&lt;br /&gt;
The following section lets us choose a Device, Source, Server, Destination and a Call Time we want to test. For example:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Calltracing3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
This data means that we are testing a virtual Call from an IP authenticated SIP Device to a number 37061111111 on 2017 September 5th 09:30.&lt;br /&gt;
&lt;br /&gt;
When we click '''Trace Call''', we will go to the next page and we will see something like:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:New_mor_call_tracing.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The '''Details''' section shows us just routine information. We already knew this information, so it is not important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Call Tracing Log will show self explanatory warnings, errors (in red colored text) and other messages. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=From Accountant=&lt;br /&gt;
&lt;br /&gt;
Accountant must have '''Call tracing usage''' permission in [[Accountant_permissions | Accountant permissions group]] to use this functionality.&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22677</id>
		<title>Call Tracing</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22677"/>
		<updated>2017-09-05T07:00:18Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Device testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;mkmeta&amp;gt;How to trace MOR Call&amp;lt;/mkmeta&amp;gt;&lt;br /&gt;
= MOR Call Tracing Overview = &lt;br /&gt;
&lt;br /&gt;
This function is for checking the setup of MOR in order to be sure a User will be able to dial out. To set MOR up isn't simple, but we are trying to make it easier with this manual and with improvements to GUI. It often happens that Users miss some important detail while trying to make everything work. Call Tracing will save a lot of head-scratching, and we hope it will be helpful for beginners.&lt;br /&gt;
&lt;br /&gt;
This function can be found in '''SETTINGS –&amp;gt; Billing –&amp;gt; Function –&amp;gt; Call Tracing'''. It can be quickly accessed in the Users menu (SETTINGS –&amp;gt; Users) as well. Just click on the [[Image:icon_call_tracing.png]] icon for a User.&lt;br /&gt;
&lt;br /&gt;
In the first window, we have to select which User we want to check:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= User testing = &lt;br /&gt;
&lt;br /&gt;
The next window shows us whether we have configured everything properly for the selected User. Let's look at each section separately. &lt;br /&gt;
&lt;br /&gt;
The first section shows information special to the User:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we see three errors [[Image:icon_cross.png]] that prevent the User from operating. Let's say we want to allow a User to make Calls. We will go through each of the errors and fix them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. This error tells us that the User is Blocked and so unable to make Calls. We should go to [[User Details]] and unblock him.&lt;br /&gt;
&lt;br /&gt;
2. Balance and Credit for this User are empty, and the User type is Prepaid. That means he has no funds to cover the Call fees. There are several ways to go about fixing this:&lt;br /&gt;
&lt;br /&gt;
*  If the User is postpaid, he should use some payment method to increase his balance. [[PayPal]] and [[Payments | Manual Payment]], among others, are good ways to do this.&lt;br /&gt;
*  We can change the User type to postpaid and then we should adjust his credit. Maybe it is unlimited, maybe some limit exists. But this will allow the User to dial out.&lt;br /&gt;
&lt;br /&gt;
3. The User has no Devices. A Device is necessary in order to dial out. Just create one for this User.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' We also see that the User has an empty Tariff assigned. That is the reason why the User will not be able to dial out. In addition, the User can dial out only to those destinations which have rates. Currently none of them has. You need to add some rates to the existing tariff or assign a non-empty tariff to this User.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After solving all these issues, we should see:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Device testing = &lt;br /&gt;
&lt;br /&gt;
The following section lets us choose a Device, Source, Server, Destination and a Call Time we want to test. For example:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Calltracing3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
This data means that we are testing a virtual Call from an IP authenticated Device to a number 37061111111 on 2017 September 28th 12:59.&lt;br /&gt;
&lt;br /&gt;
When we click '''Trace Call''', we will go to the next page and we will see something like:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:New_mor_call_tracing.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The '''Details''' section shows us just routine information. We already knew this information, so it is not important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Call Tracing Log will show self explanatory warnings, errors (in red colored text) and other messages. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=From Accountant=&lt;br /&gt;
&lt;br /&gt;
Accountant must have '''Call tracing usage''' permission in [[Accountant_permissions | Accountant permissions group]] to use this functionality.&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22676</id>
		<title>Call Tracing</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22676"/>
		<updated>2017-09-05T06:59:03Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;mkmeta&amp;gt;How to trace MOR Call&amp;lt;/mkmeta&amp;gt;&lt;br /&gt;
= MOR Call Tracing Overview = &lt;br /&gt;
&lt;br /&gt;
This function is for checking the setup of MOR in order to be sure a User will be able to dial out. To set MOR up isn't simple, but we are trying to make it easier with this manual and with improvements to GUI. It often happens that Users miss some important detail while trying to make everything work. Call Tracing will save a lot of head-scratching, and we hope it will be helpful for beginners.&lt;br /&gt;
&lt;br /&gt;
This function can be found in '''SETTINGS –&amp;gt; Billing –&amp;gt; Function –&amp;gt; Call Tracing'''. It can be quickly accessed in the Users menu (SETTINGS –&amp;gt; Users) as well. Just click on the [[Image:icon_call_tracing.png]] icon for a User.&lt;br /&gt;
&lt;br /&gt;
In the first window, we have to select which User we want to check:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= User testing = &lt;br /&gt;
&lt;br /&gt;
The next window shows us whether we have configured everything properly for the selected User. Let's look at each section separately. &lt;br /&gt;
&lt;br /&gt;
The first section shows information special to the User:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we see three errors [[Image:icon_cross.png]] that prevent the User from operating. Let's say we want to allow a User to make Calls. We will go through each of the errors and fix them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. This error tells us that the User is Blocked and so unable to make Calls. We should go to [[User Details]] and unblock him.&lt;br /&gt;
&lt;br /&gt;
2. Balance and Credit for this User are empty, and the User type is Prepaid. That means he has no funds to cover the Call fees. There are several ways to go about fixing this:&lt;br /&gt;
&lt;br /&gt;
*  If the User is postpaid, he should use some payment method to increase his balance. [[PayPal]] and [[Payments | Manual Payment]], among others, are good ways to do this.&lt;br /&gt;
*  We can change the User type to postpaid and then we should adjust his credit. Maybe it is unlimited, maybe some limit exists. But this will allow the User to dial out.&lt;br /&gt;
&lt;br /&gt;
3. The User has no Devices. A Device is necessary in order to dial out. Just create one for this User.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' We also see that the User has an empty Tariff assigned. That is the reason why the User will not be able to dial out. In addition, the User can dial out only to those destinations which have rates. Currently none of them has. You need to add some rates to the existing tariff or assign a non-empty tariff to this User.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After solving all these issues, we should see:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Device testing = &lt;br /&gt;
&lt;br /&gt;
The following section lets us choose a Device, Source, Server, Destination and a Call Time we want to test. For example:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Device Call tracing.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
This data means that we are testing a virtual Call from an IP authenticated Device to a number 37061111111 on 2017 September 28th 12:59.&lt;br /&gt;
&lt;br /&gt;
When we click '''Trace Call''', we will go to the next page and we will see something like:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:New mor Call tracing.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The '''Details''' section shows us just routine information. We already knew this information, so it is not important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Call Tracing Log will show self explanatory warnings, errors (in red colored text) and other messages. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=From Accountant=&lt;br /&gt;
&lt;br /&gt;
Accountant must have '''Call tracing usage''' permission in [[Accountant_permissions | Accountant permissions group]] to use this functionality.&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22675</id>
		<title>Call Tracing</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22675"/>
		<updated>2017-09-05T06:56:54Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;mkmeta&amp;gt;How to trace MOR Call&amp;lt;/mkmeta&amp;gt;&lt;br /&gt;
= MOR Call Tracing Overview = &lt;br /&gt;
&lt;br /&gt;
This function is for checking the setup of MOR in order to be sure a User will be able to dial out. To set MOR up isn't simple, but we are trying to make it easier with this manual and with improvements to GUI. It often happens that Users miss some important detail while trying to make everything work. Call Tracing will save a lot of head-scratching, and we hope it will be helpful for beginners.&lt;br /&gt;
&lt;br /&gt;
This function can be found in '''SETTINGS –&amp;gt; Billing –&amp;gt; Function –&amp;gt; Call Tracing'''. It can be quickly accessed in the Users menu (SETTINGS –&amp;gt; Users) as well. Just click on the [[Image:icon_call_tracing.png]] icon for a User.&lt;br /&gt;
&lt;br /&gt;
In the first window, we have to select which User we want to check:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= User testing = &lt;br /&gt;
&lt;br /&gt;
The next window shows us whether we have configured everything properly for the selected User. Let's look at each section separately. &lt;br /&gt;
&lt;br /&gt;
The first section shows information special to the User:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we see three errors [[Image:icon_cross.png]] that prevent the User from operating. Let's say we want to allow a User to make calls. We will go through each of the errors and fix them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. This error tells us that the User is Blocked and so unable to make calls. We should go to [[User Details]] and unblock him.&lt;br /&gt;
&lt;br /&gt;
2. Balance and Credit for this User are empty, and the User type is Prepaid. That means he has no funds to cover the call fees. There are several ways to go about fixing this:&lt;br /&gt;
&lt;br /&gt;
*  If the User is postpaid, he should use some payment method to increase his balance. [[PayPal]] and [[Payments | Manual Payment]], among others, are good ways to do this.&lt;br /&gt;
*  We can change the User type to postpaid and then we should adjust his credit. Maybe it is unlimited, maybe some limit exists. But this will allow the User to dial out.&lt;br /&gt;
&lt;br /&gt;
3. The User has no devices. A Device is necessary in order to dial out. Just create one for this User.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' We also see that the User has an empty Tariff assigned. That is the reason why the User will not be able to dial out. In addition, the User can dial out only to those destinations which have rates. Currently none of them has. You need to add some rates to the existing tariff or assign a non-empty tariff to this User.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After solving all these issues, we should see:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Device testing = &lt;br /&gt;
&lt;br /&gt;
The following section lets us choose a Device, Source, Server, Destination and a Call Time we want to test. For example:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Device call tracing.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
This data means that we are testing a virtual call from device IAX1/101 to number 863042438 on 2016 September 28th 12:59.&lt;br /&gt;
&lt;br /&gt;
When we click '''Trace Call''', we will go to the next page and we will see something like:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:New mor call tracing.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The '''Details''' section shows us just routine information. We already knew this information, so it is not important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Call Tracing Log will show self explanatory warnings, errors (in red colored text) and other messages. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=From Accountant=&lt;br /&gt;
&lt;br /&gt;
Accountant must have '''Call tracing usage''' permission in [[Accountant_permissions | Accountant permissions group]] to use this functionality.&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22674</id>
		<title>Call Tracing</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22674"/>
		<updated>2017-09-05T06:52:52Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;mkmeta&amp;gt;How to trace MOR Call&amp;lt;/mkmeta&amp;gt;&lt;br /&gt;
= MOR Call Tracing Overview = &lt;br /&gt;
&lt;br /&gt;
This function is for checking the setup of MOR in order to be sure a user will be able to dial out. To set MOR up isn't simple, but we are trying to make it easier with this manual and with improvements to GUI. It often happens that users miss some important detail while trying to make everything work. Call Tracing will save a lot of head-scratching, and we hope it will be helpful for beginners.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This function can be found in '''SETTINGS –&amp;gt; Billing –&amp;gt; Function –&amp;gt; Call Tracing'''. It can be quickly accessed in the Users menu (SETTINGS –&amp;gt; Users) as well. Just click on the [[Image:icon_call_tracing.png]] icon for a user.&lt;br /&gt;
&lt;br /&gt;
In the first window, we have to select which user we want to check:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:calltracing1.png]]&lt;br /&gt;
&lt;br /&gt;
= User testing = &lt;br /&gt;
&lt;br /&gt;
The next window shows us whether we have configured everything properly for the selected user. Let's look at each section separately. &lt;br /&gt;
&lt;br /&gt;
The first section shows information special to the user:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we see three errors [[Image:icon_cross.png]] that prevent the user from operating. Let's say we want to allow a user to make calls. We will go through each of the errors and fix them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. This error tells us that the user is Blocked and so unable to make calls. We should go to [[User Details]] and unblock him.&lt;br /&gt;
&lt;br /&gt;
2. Balance and Credit for this user are empty, and the user type is Prepaid. That means he has no funds to cover the call fees. There are several ways to go about fixing this:&lt;br /&gt;
&lt;br /&gt;
*  If the user is postpaid, he should use some payment method to increase his balance. [[PayPal]] and [[Payments | Manual Payment]], among others, are good ways to do this.&lt;br /&gt;
*  We can change the user type to postpaid and then we should adjust his credit. Maybe it is unlimited, maybe some limit exists. But this will allow the user to dial out.&lt;br /&gt;
&lt;br /&gt;
3. The user has no devices. A Device is necessary in order to dial out. Just create one for this user.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' We also see that the user has an empty Tariff assigned. That is the reason why the user will not be able to dial out. In addition, the user can dial out only to those destinations which have rates. Currently none of them has. You need to add some rates to the existing tariff or assign a non-empty tariff to this user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After solving all these issues, we should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:calltracing3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Device testing = &lt;br /&gt;
&lt;br /&gt;
The following section lets us choose a Device, Source, Server, Destination and a Call Time we want to test. For example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Device call tracing.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This data means that we are testing a virtual call from device IAX1/101 to number 863042438 on 2016 September 28th 12:59.&lt;br /&gt;
&lt;br /&gt;
When we click '''Trace Call''', we will go to the next page and we will see something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:New mor call tracing.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''Details''' section shows us just routine information. We already knew this information, so it is not important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Call Tracing Log will show self explanatory warnings, errors (in red colored text) and other messages. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=From Accountant=&lt;br /&gt;
&lt;br /&gt;
Accountant must have '''Call tracing usage''' permission in [[Accountant_permissions | Accountant permissions group]] to use this functionality.&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22673</id>
		<title>Call Tracing</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22673"/>
		<updated>2017-09-05T06:52:01Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* User testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;mkmeta&amp;gt;How to trace MOR Call&amp;lt;/mkmeta&amp;gt;&lt;br /&gt;
= MOR Call Tracing Overview = &lt;br /&gt;
&lt;br /&gt;
This function is for checking the setup of MOR in order to be sure a user will be able to dial out. To set MOR up isn't simple, but we are trying to make it easier with this manual and with improvements to GUI. It often happens that users miss some important detail while trying to make everything work. Call Tracing will save a lot of head-scratching, and we hope it will be helpful for beginners.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This function can be found in '''SETTINGS –&amp;gt; Billing –&amp;gt; Function –&amp;gt; Call Tracing'''. It can be quickly accessed in the Users menu (SETTINGS –&amp;gt; Users) as well. Just click on the [[Image:icon_call_tracing.png]] icon for a user.&lt;br /&gt;
&lt;br /&gt;
In the first window, we have to select which user we want to check:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:calltracing1.png]]&lt;br /&gt;
&lt;br /&gt;
= User testing = &lt;br /&gt;
&lt;br /&gt;
The next window shows us whether we have configured everything properly for the selected user. Let's look at each section separately. &lt;br /&gt;
&lt;br /&gt;
The first section shows information special to the user:&lt;br /&gt;
&lt;br /&gt;
[[Image:calltracing2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here we see three errors [[Image:icon_cross.png]] that prevent the user from operating. Let's say we want to allow a user to make calls. We will go through each of the errors and fix them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. This error tells us that the user is Blocked and so unable to make calls. We should go to [[User Details]] and unblock him.&lt;br /&gt;
&lt;br /&gt;
2. Balance and Credit for this user are empty, and the user type is Prepaid. That means he has no funds to cover the call fees. There are several ways to go about fixing this:&lt;br /&gt;
&lt;br /&gt;
*  If the user is postpaid, he should use some payment method to increase his balance. [[PayPal]] and [[Payments | Manual Payment]], among others, are good ways to do this.&lt;br /&gt;
*  We can change the user type to postpaid and then we should adjust his credit. Maybe it is unlimited, maybe some limit exists. But this will allow the user to dial out.&lt;br /&gt;
&lt;br /&gt;
3. The user has no devices. A Device is necessary in order to dial out. Just create one for this user.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' We also see that the user has an empty Tariff assigned. That is the reason why the user will not be able to dial out. In addition, the user can dial out only to those destinations which have rates. Currently none of them has. You need to add some rates to the existing tariff or assign a non-empty tariff to this user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After solving all these issues, we should see:&lt;br /&gt;
&lt;br /&gt;
[[Image:calltracing3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Device testing = &lt;br /&gt;
&lt;br /&gt;
The following section lets us choose a Device, Source, Server, Destination and a Call Time we want to test. For example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Device call tracing.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This data means that we are testing a virtual call from device IAX1/101 to number 863042438 on 2016 September 28th 12:59.&lt;br /&gt;
&lt;br /&gt;
When we click '''Trace Call''', we will go to the next page and we will see something like:&lt;br /&gt;
&lt;br /&gt;
[[Image:New mor call tracing.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''Details''' section shows us just routine information. We already knew this information, so it is not important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Call Tracing Log will show self explanatory warnings, errors (in red colored text) and other messages. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=From Accountant=&lt;br /&gt;
&lt;br /&gt;
Accountant must have '''Call tracing usage''' permission in [[Accountant_permissions | Accountant permissions group]] to use this functionality.&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22672</id>
		<title>Call Tracing</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22672"/>
		<updated>2017-09-05T06:51:34Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* User testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;mkmeta&amp;gt;How to trace MOR Call&amp;lt;/mkmeta&amp;gt;&lt;br /&gt;
= MOR Call Tracing Overview = &lt;br /&gt;
&lt;br /&gt;
This function is for checking the setup of MOR in order to be sure a user will be able to dial out. To set MOR up isn't simple, but we are trying to make it easier with this manual and with improvements to GUI. It often happens that users miss some important detail while trying to make everything work. Call Tracing will save a lot of head-scratching, and we hope it will be helpful for beginners.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This function can be found in '''SETTINGS –&amp;gt; Billing –&amp;gt; Function –&amp;gt; Call Tracing'''. It can be quickly accessed in the Users menu (SETTINGS –&amp;gt; Users) as well. Just click on the [[Image:icon_call_tracing.png]] icon for a user.&lt;br /&gt;
&lt;br /&gt;
In the first window, we have to select which user we want to check:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:calltracing1.png]]&lt;br /&gt;
&lt;br /&gt;
= User testing = &lt;br /&gt;
&lt;br /&gt;
The next window shows us whether we have configured everything properly for the selected user. Let's look at each section separately. &lt;br /&gt;
&lt;br /&gt;
The first section shows information special to the user:&lt;br /&gt;
&lt;br /&gt;
[[Image:calltracing2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here we see three errors [[Image:icon_cross.png]] that prevent the user from operating. Let's say we want to allow a user to make calls. We will go through each of the errors and fix them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. This error tells us that the user is Blocked and so unable to make calls. We should go to [[User Details]] and unblock him.&lt;br /&gt;
&lt;br /&gt;
2. Balance and Credit for this user are empty, and the user type is Prepaid. That means he has no funds to cover the call fees. There are several ways to go about fixing this:&lt;br /&gt;
&lt;br /&gt;
*  If the user is postpaid, he should use some payment method to increase his balance. [[PayPal]] and [[Payments | Manual Payment]], among others, are good ways to do this.&lt;br /&gt;
*  We can change the user type to postpaid and then we should adjust his credit. Maybe it is unlimited, maybe some limit exists. But this will allow the user to dial out.&lt;br /&gt;
&lt;br /&gt;
3. The user has no devices. A Device is necessary in order to dial out. Just create one for this user.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' We also see that the user has an empty Tariff assigned. That is the reason why the user will not be able to dial out. In addition, the user can dial out only to those destinations which have rates. Currently none of them has. You need to add some rates to the existing tariff or assign a non-empty tariff to this user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After solving all these issues, we should see:&lt;br /&gt;
&lt;br /&gt;
[[Image:calltracing3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Device testing = &lt;br /&gt;
&lt;br /&gt;
The following section lets us choose a Device, Source, Server, Destination and a Call Time we want to test. For example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Device call tracing.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This data means that we are testing a virtual call from device IAX1/101 to number 863042438 on 2016 September 28th 12:59.&lt;br /&gt;
&lt;br /&gt;
When we click '''Trace Call''', we will go to the next page and we will see something like:&lt;br /&gt;
&lt;br /&gt;
[[Image:New mor call tracing.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''Details''' section shows us just routine information. We already knew this information, so it is not important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Call Tracing Log will show self explanatory warnings, errors (in red colored text) and other messages. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=From Accountant=&lt;br /&gt;
&lt;br /&gt;
Accountant must have '''Call tracing usage''' permission in [[Accountant_permissions | Accountant permissions group]] to use this functionality.&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22669</id>
		<title>Call Tracing</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Call_Tracing&amp;diff=22669"/>
		<updated>2017-09-05T06:43:48Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* User testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;mkmeta&amp;gt;How to trace MOR Call&amp;lt;/mkmeta&amp;gt;&lt;br /&gt;
= MOR Call Tracing Overview = &lt;br /&gt;
&lt;br /&gt;
This function is for checking the setup of MOR in order to be sure a user will be able to dial out. To set MOR up isn't simple, but we are trying to make it easier with this manual and with improvements to GUI. It often happens that users miss some important detail while trying to make everything work. Call Tracing will save a lot of head-scratching, and we hope it will be helpful for beginners.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This function can be found in '''SETTINGS –&amp;gt; Billing –&amp;gt; Function –&amp;gt; Call Tracing'''. It can be quickly accessed in the Users menu (SETTINGS –&amp;gt; Users) as well. Just click on the [[Image:icon_call_tracing.png]] icon for a user.&lt;br /&gt;
&lt;br /&gt;
In the first window, we have to select which user we want to check:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:calltracing1.png]]&lt;br /&gt;
&lt;br /&gt;
= User testing = &lt;br /&gt;
&lt;br /&gt;
The next window shows us whether we have configured everything properly for the selected user. Let's look at each section separately. &lt;br /&gt;
&lt;br /&gt;
The first section shows information special to the user:&lt;br /&gt;
&lt;br /&gt;
[[Image:calltracing2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here we see three errors [[Image:icon_cross.png]] that prevent the user from operating. Let's say we want to allow a user to make calls. We will go through each of the errors and fix them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. This error tells us that the user is Blocked and so unable to make calls. We should go to [[User Details]] and unblock him.&lt;br /&gt;
&lt;br /&gt;
2. Balance and Credit for this user are empty, and the user type is Prepaid. That means he has no funds to cover the call fees. There are several ways to go about fixing this:&lt;br /&gt;
&lt;br /&gt;
*  If the user is postpaid, he should use some payment method to increase his balance. [[PayPal]] and [[Payments | Manual Payment]], among others, are good ways to do this.&lt;br /&gt;
*  We can change the user type to postpaid and then we should adjust his credit. Maybe it is unlimited, maybe some limit exists. But this will allow the user to dial out.&lt;br /&gt;
&lt;br /&gt;
3. We see that the user has assigned a tariff and a type of tariff. The type of tariff is just for informational purposes. Here 'Explanation' tells us that Tariff is empty. That is the reason why the user is not able to dial out. In addition, the user can dial out only to those destinations which have rates. Currently none of them has. You need to add some rates to the existing tariff or assign a non-empty tariff to this user.&lt;br /&gt;
&lt;br /&gt;
4. The user has no devices. A Device is necessary in order to dial out. Just create one for this user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After solving all these issues, we should see:&lt;br /&gt;
&lt;br /&gt;
[[Image:calltracing3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Device testing = &lt;br /&gt;
&lt;br /&gt;
The following section lets us choose a Device, Source, Server, Destination and a Call Time we want to test. For example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Device call tracing.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This data means that we are testing a virtual call from device IAX1/101 to number 863042438 on 2016 September 28th 12:59.&lt;br /&gt;
&lt;br /&gt;
When we click '''Trace Call''', we will go to the next page and we will see something like:&lt;br /&gt;
&lt;br /&gt;
[[Image:New mor call tracing.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''Details''' section shows us just routine information. We already knew this information, so it is not important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Call Tracing Log will show self explanatory warnings, errors (in red colored text) and other messages. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=From Accountant=&lt;br /&gt;
&lt;br /&gt;
Accountant must have '''Call tracing usage''' permission in [[Accountant_permissions | Accountant permissions group]] to use this functionality.&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Calltracing2.png&amp;diff=22668</id>
		<title>File:Calltracing2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Calltracing2.png&amp;diff=22668"/>
		<updated>2017-09-05T06:41:44Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: uploaded a new version of &amp;quot;File:Calltracing2.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Calltracing3.png&amp;diff=22665</id>
		<title>File:Calltracing3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Calltracing3.png&amp;diff=22665"/>
		<updated>2017-09-05T06:34:37Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: uploaded a new version of &amp;quot;File:Calltracing3.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Calltracing1.png&amp;diff=22664</id>
		<title>File:Calltracing1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Calltracing1.png&amp;diff=22664"/>
		<updated>2017-09-05T06:33:00Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: uploaded a new version of &amp;quot;File:Calltracing1.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:New_mor_call_tracing.png&amp;diff=22663</id>
		<title>File:New mor call tracing.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:New_mor_call_tracing.png&amp;diff=22663"/>
		<updated>2017-09-05T06:27:57Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: uploaded a new version of &amp;quot;File:New mor call tracing.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=MOR_API_user_details_update&amp;diff=22659</id>
		<title>MOR API user details update</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=MOR_API_user_details_update&amp;diff=22659"/>
		<updated>2017-09-05T05:36:27Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
&amp;lt;!---This functionality is available from MOR 11---&amp;gt;&lt;br /&gt;
[[MOR API]] Update user from params. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If Admin has checked Allow Resellers to use Admin Tariffs in [[API Configuration]] then using this API Reseller can set for his Users Wholesale or Retail Tariffs which belongs to Admin.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Please note that it is not necessary to send ALL user parameters - you can send only those you need to update.'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
* From '''MOR X4''' call: '''/api/user_details_update'''&lt;br /&gt;
* For Backwards-compatibility old name 'user_update_api' is also usable. Call: '''/api/user_update_api'''&lt;br /&gt;
* Methods: POST, GET(if allowed, not recomended)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
Parameters which are '''included''' into hash (if it is used):&lt;br /&gt;
&lt;br /&gt;
* user_id - Users ID in MOR database, whose details we want to change. '''REQUIRED'''.&lt;br /&gt;
* u0 - vat number&lt;br /&gt;
* u1 - lcr id&lt;br /&gt;
* u2 - warning email hour&lt;br /&gt;
* u3 - hide destination end&lt;br /&gt;
* u4 - currency id&lt;br /&gt;
* u5 - tariff id&lt;br /&gt;
* u6 - warning email balance&lt;br /&gt;
* u7 - spy device id&lt;br /&gt;
* u8 - language&lt;br /&gt;
* u9 - username&lt;br /&gt;
* u10 - warning balance call&lt;br /&gt;
* u11 - acc group id&lt;br /&gt;
* u12 - generate invoice&lt;br /&gt;
* u13 - usertype&lt;br /&gt;
* u14 - taxation country ([[Directions_and_Destinations#Directions|Direction]] id)&lt;br /&gt;
* u15 - blocked&lt;br /&gt;
* u16 - quickforwards rule id&lt;br /&gt;
* u17 - last name&lt;br /&gt;
* u18 - call limit&lt;br /&gt;
* u19 - clientid&lt;br /&gt;
* u20 - recording hdd quota&lt;br /&gt;
* u21 - cyberplat active&lt;br /&gt;
* u22 - recordings email&lt;br /&gt;
* u23 - first name&lt;br /&gt;
* u24 - warning balance sound file id&lt;br /&gt;
* u25 - postpaid&lt;br /&gt;
* u26 - accounting number&lt;br /&gt;
* u27 - agreement number&lt;br /&gt;
* u28 - hidden&lt;br /&gt;
* u29 - pbx pool id&lt;br /&gt;
* u30 - hide non answered calls&lt;br /&gt;
* u31 - responsible accountant id&lt;br /&gt;
* ay - agr_date year&lt;br /&gt;
* am - agr_date month&lt;br /&gt;
* ad - agr_date day&lt;br /&gt;
* by - block at date year2011&lt;br /&gt;
* bm - block at date month&lt;br /&gt;
* bd - block at date day&lt;br /&gt;
* pswd - password&lt;br /&gt;
* user_warning_email_hour&lt;br /&gt;
* pgui - privacy gui [0-off, 1-on]&lt;br /&gt;
* pcsv - privacy csv [0-off, 1-on]&lt;br /&gt;
* ppdf - privacy pdf [0-off, 1-on]&lt;br /&gt;
* recording_forced_enabled - [0-off, 1-on]&lt;br /&gt;
* i4 - invoice detailed csv [0-off, 16-on]&lt;br /&gt;
* tax4_enabled - [0-off, 1-on]&lt;br /&gt;
* tax2_enabled - [0-off, 1-on]&lt;br /&gt;
* accountant_type_invalid &lt;br /&gt;
* block_at_conditional - 15&lt;br /&gt;
* tax3_enabled - [0-off, 1-on]&lt;br /&gt;
* accountant_type &lt;br /&gt;
* tax1_value - float&lt;br /&gt;
* show_zero_calls - [0-off, 1-on]&lt;br /&gt;
* warning_email_active - [0-off, 1-on]&lt;br /&gt;
* compound_tax - [0-off, 1-on]&lt;br /&gt;
* tax4_name - &lt;br /&gt;
* allow_loss_calls - [0-off, 1-on]&lt;br /&gt;
* tax3_name - &lt;br /&gt;
* tax2_name - &lt;br /&gt;
* credit - float&lt;br /&gt;
* tax1_name - &lt;br /&gt;
* total_tax_name - &lt;br /&gt;
* tax2_value - float&lt;br /&gt;
* tax4_value - float&lt;br /&gt;
* ignore_global_monitorings - [0-off, 1-on]&lt;br /&gt;
* i1 - invoice pdf [0-off, 2-on]&lt;br /&gt;
* tax3_value - float&lt;br /&gt;
* cyberplat_active - [0-off, 1-on]&lt;br /&gt;
* i2 - invoice csv [0-off, 4-on]&lt;br /&gt;
* i3 - invoice detailed pdf [0-off, 8-on]&lt;br /&gt;
* recording_enabled - [0-off, 1-on]&lt;br /&gt;
* email_warning_sent_test - [0-off, 1-on]&lt;br /&gt;
* own_providers - [0-off, 1-on]&lt;br /&gt;
* a0 - address&lt;br /&gt;
* a1 - city&lt;br /&gt;
* a2 - postcode&lt;br /&gt;
* a3 - county&lt;br /&gt;
* a4 - mob_phone&lt;br /&gt;
* a5 - fax&lt;br /&gt;
* a6 - direction id ([[Directions_and_Destinations#Directions|Direction]] id)&lt;br /&gt;
* a7 - phone&lt;br /&gt;
* a8 - email&lt;br /&gt;
* a9 - state&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note that parameters are shown in the same order as they have to be when generating the hash. Last parameter in a row is API_Secret_Key'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters which are '''not included''' into hash:&lt;br /&gt;
&lt;br /&gt;
* [[MOR API hash construction | hash]] - SHA1 hash constructed using '''params''' and '''API_Secret_Key''' ([[MOR API hash construction | More described in Constructing hash]]). '''REQUIRED'''.&lt;br /&gt;
* u - username of user which can modify details (admin, reseller or accountant). '''REQUIRED'''.&lt;br /&gt;
* time_zone - time zone (all available references are listed on Time Zone list at the time zone name column. See more:  http://wiki.kolmisoft.com/index.php/Time_Zone_list)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Additional feature''' &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If API setting '''Allow Resellers to use Admin Quick Forward Rules''' is enabled:&amp;lt;br&amp;gt;Reseller is able to set Quick Forward Rules inherited from Admin. '''u16''' should be used as a parameter for Quick Forward Rules.&amp;lt;br&amp;gt;&lt;br /&gt;
If API setting '''Allow Resellers to use Admin Tariffs''' is enabled:&amp;lt;br&amp;gt;Reseller is able to set Tariff inherited from Admin. '''u5''' should be used as a parameter for Tariff.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reguest===&lt;br /&gt;
&lt;br /&gt;
We have user_id = 123, API Secret Key = 456789, u15=1 (we want to block user)&lt;br /&gt;
&lt;br /&gt;
We send:&lt;br /&gt;
 HTML POST: http://&amp;lt;server_ip&amp;gt;/billing/api/user_details_update?u=username&amp;amp;user_id=123&amp;amp;u15=1&amp;amp;hash=0ab3ede4e93a55c38855a2cc9b9e169d35442c48&lt;br /&gt;
&lt;br /&gt;
'''* Note that username and password are not included in hash'''&lt;br /&gt;
&lt;br /&gt;
Other examples:&lt;br /&gt;
&lt;br /&gt;
 HTML POST: http://&amp;lt;server_ip&amp;gt;/billing/api/user_update_api?u15=1&amp;amp;user_id=789&amp;amp;u=admin&amp;amp;u15=1&amp;amp;hash=0in2w8n01rwnodv4t0y5zzfp1h5hdp1fyk7z&lt;br /&gt;
&lt;br /&gt;
This request blocks (u15=1) user with ID 789 (user_id=789). User belongs to admin (u=admin).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 HTML POST: http://&amp;lt;server_ip&amp;gt;/billing/api/user_update_api?u16=3&amp;amp;user_id=789&amp;amp;u=admin&amp;amp;u15=1&amp;amp;hash=0in2w8n01rwnodv4t0y5zzfp1h5hdp1fyk7z&lt;br /&gt;
&lt;br /&gt;
This request changes user quickforwards rule to rule with ID 3 (u16=3) user with ID 789 (user_id=789). User belongs to admin (u=admin).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
&lt;br /&gt;
'''Success'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;page&amp;gt;&lt;br /&gt;
   &amp;lt;status&amp;gt;User was updated&amp;lt;/status&amp;gt;&lt;br /&gt;
  &amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
'''Errors'''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;error&amp;gt;User was not found&amp;lt;/error&amp;gt; - User was not found using user_id. Use correct user id.&lt;br /&gt;
* &amp;lt;error&amp;gt;Incorrect hash&amp;lt;/error&amp;gt; - Hash was not correct. Check API_Secret_Key and order or params while concatenating hash_string.&lt;br /&gt;
* &amp;lt;error&amp;gt;Access Denied&amp;lt;/error&amp;gt; - Check params and permissions. &lt;br /&gt;
* &amp;lt;error&amp;gt;You have no editing permission&amp;lt;/error&amp;gt; - Accountant dont have permission.&lt;br /&gt;
* &amp;lt;error&amp;gt;Tariff not found&amp;lt;/error&amp;gt; - Tariff was not found using param u5.&lt;br /&gt;
* &amp;lt;error&amp;gt;User was not updated&amp;lt;/error&amp;gt;&lt;br /&gt;
* &amp;lt;error&amp;gt;Responsible accountant is not valid&amp;lt;/error&amp;gt; Responsible accountant id was not correct using param u31.&lt;br /&gt;
* &amp;lt;message&amp;gt;problem message&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[MOR API]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=MOR_API_user_details_update&amp;diff=22653</id>
		<title>MOR API user details update</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=MOR_API_user_details_update&amp;diff=22653"/>
		<updated>2017-08-31T12:34:49Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Parametres */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
&amp;lt;!---This functionality is available from MOR 11---&amp;gt;&lt;br /&gt;
[[MOR API]] Update user from params. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If Admin has checked Allow Resellers to use Admin Tariffs in [[API Configuration]] then using this API Reseller can set for his Users Wholesale or Retail Tariffs which belongs to Admin.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Please note that it is not necessary to send ALL user parameters - you can send only those you need to update.'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
* From '''MOR X4''' call: '''/api/user_details_update'''&lt;br /&gt;
* For Backwards-compatibility old name 'user_update_api' is also usable. Call: '''/api/user_update_api'''&lt;br /&gt;
* Methods: POST, GET(if allowed, not recomended)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
Parameters which are '''included''' into hash (if it is used):&lt;br /&gt;
&lt;br /&gt;
* user_id - Users ID in MOR database, whose details we want to change. '''REQUIRED'''.&lt;br /&gt;
* u0 - vat number&lt;br /&gt;
* u1 - lcr id&lt;br /&gt;
* u2 - warning email hour&lt;br /&gt;
* u3 - hide destination end&lt;br /&gt;
* u4 - currency id&lt;br /&gt;
* u5 - tariff id&lt;br /&gt;
* u6 - warning email balance&lt;br /&gt;
* u7 - spy device id&lt;br /&gt;
* u8 - language&lt;br /&gt;
* u9 - username&lt;br /&gt;
* u10 - warning balance call&lt;br /&gt;
* u11 - acc group id&lt;br /&gt;
* u12 - generate invoice&lt;br /&gt;
* u13 - usertype&lt;br /&gt;
* u14 - taxation country ([[Directions_and_Destinations#Directions|Direction]] id)&lt;br /&gt;
* u15 - blocked&lt;br /&gt;
* u16 - quickforwards rule id&lt;br /&gt;
* u17 - last name&lt;br /&gt;
* u18 - call limit&lt;br /&gt;
* u19 - clientid&lt;br /&gt;
* u20 - recording hdd quota&lt;br /&gt;
* u21 - cyberplat active&lt;br /&gt;
* u22 - recordings email&lt;br /&gt;
* u23 - first name&lt;br /&gt;
* u24 - warning balance sound file id&lt;br /&gt;
* u25 - postpaid&lt;br /&gt;
* u26 - accounting number&lt;br /&gt;
* u27 - agreement number&lt;br /&gt;
* u28 - hidden&lt;br /&gt;
* u29 - pbx pool id&lt;br /&gt;
* u30 - hide non answered calls&lt;br /&gt;
* u31 - responsible accountant id&lt;br /&gt;
* ay - agr_date year&lt;br /&gt;
* am - agr_date month&lt;br /&gt;
* ad - agr_date day&lt;br /&gt;
* by - block at date year2011&lt;br /&gt;
* bm - block at date month&lt;br /&gt;
* bd - block at date day&lt;br /&gt;
* pswd - password&lt;br /&gt;
* user_warning_email_hour&lt;br /&gt;
* pgui - privacy gui [0-off, 1-on]&lt;br /&gt;
* pcsv - privacy csv [0-off, 1-on]&lt;br /&gt;
* ppdf - privacy pdf [0-off, 1-on]&lt;br /&gt;
* recording_forced_enabled - [0-off, 1-on]&lt;br /&gt;
* i4 - invoice detailed csv [0-off, 16-on]&lt;br /&gt;
* tax4_enabled - [0-off, 1-on]&lt;br /&gt;
* tax2_enabled - [0-off, 1-on]&lt;br /&gt;
* accountant_type_invalid &lt;br /&gt;
* block_at_conditional - 15&lt;br /&gt;
* tax3_enabled - [0-off, 1-on]&lt;br /&gt;
* accountant_type &lt;br /&gt;
* tax1_value - float&lt;br /&gt;
* show_zero_calls - [0-off, 1-on]&lt;br /&gt;
* warning_email_active - [0-off, 1-on]&lt;br /&gt;
* compound_tax - [0-off, 1-on]&lt;br /&gt;
* tax4_name - &lt;br /&gt;
* allow_loss_calls - [0-off, 1-on]&lt;br /&gt;
* tax3_name - &lt;br /&gt;
* tax2_name - &lt;br /&gt;
* credit - float&lt;br /&gt;
* tax1_name - &lt;br /&gt;
* total_tax_name - &lt;br /&gt;
* tax2_value - float&lt;br /&gt;
* tax4_value - float&lt;br /&gt;
* ignore_global_monitorings - [0-off, 1-on]&lt;br /&gt;
* i1 - invoice pdf [0-off, 2-on]&lt;br /&gt;
* tax3_value - float&lt;br /&gt;
* cyberplat_active - [0-off, 1-on]&lt;br /&gt;
* i2 - invoice csv [0-off, 4-on]&lt;br /&gt;
* i3 - invoice detailed pdf [0-off, 8-on]&lt;br /&gt;
* recording_enabled - [0-off, 1-on]&lt;br /&gt;
* email_warning_sent_test - [0-off, 1-on]&lt;br /&gt;
* own_providers - [0-off, 1-on]&lt;br /&gt;
* a0 - address&lt;br /&gt;
* a1 - city&lt;br /&gt;
* a2 - postcode&lt;br /&gt;
* a3 - county&lt;br /&gt;
* a4 - mob_phone&lt;br /&gt;
* a5 - fax&lt;br /&gt;
* a6 - direction id&lt;br /&gt;
* a7 - phone&lt;br /&gt;
* a8 - email&lt;br /&gt;
* a9 - state&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note that parameters are shown in the same order as they have to be when generating the hash. Last parameter in a row is API_Secret_Key'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters which are '''not included''' into hash:&lt;br /&gt;
&lt;br /&gt;
* [[MOR API hash construction | hash]] - SHA1 hash constructed using '''params''' and '''API_Secret_Key''' ([[MOR API hash construction | More described in Constructing hash]]). '''REQUIRED'''.&lt;br /&gt;
* u - username of user which can modify details (admin, reseller or accountant). '''REQUIRED'''.&lt;br /&gt;
* time_zone - time zone (all available references are listed on Time Zone list at the time zone name column. See more:  http://wiki.kolmisoft.com/index.php/Time_Zone_list)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Additional feature''' &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If API setting '''Allow Resellers to use Admin Quick Forward Rules''' is enabled:&amp;lt;br&amp;gt;Reseller is able to set Quick Forward Rules inherited from Admin. '''u16''' should be used as a parameter for Quick Forward Rules.&amp;lt;br&amp;gt;&lt;br /&gt;
If API setting '''Allow Resellers to use Admin Tariffs''' is enabled:&amp;lt;br&amp;gt;Reseller is able to set Tariff inherited from Admin. '''u5''' should be used as a parameter for Tariff.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reguest===&lt;br /&gt;
&lt;br /&gt;
We have user_id = 123, API Secret Key = 456789, u15=1 (we want to block user)&lt;br /&gt;
&lt;br /&gt;
We send:&lt;br /&gt;
 HTML POST: http://&amp;lt;server_ip&amp;gt;/billing/api/user_details_update?u=username&amp;amp;user_id=123&amp;amp;u15=1&amp;amp;hash=0ab3ede4e93a55c38855a2cc9b9e169d35442c48&lt;br /&gt;
&lt;br /&gt;
'''* Note that username and password are not included in hash'''&lt;br /&gt;
&lt;br /&gt;
Other examples:&lt;br /&gt;
&lt;br /&gt;
 HTML POST: http://&amp;lt;server_ip&amp;gt;/billing/api/user_update_api?u15=1&amp;amp;user_id=789&amp;amp;u=admin&amp;amp;u15=1&amp;amp;hash=0in2w8n01rwnodv4t0y5zzfp1h5hdp1fyk7z&lt;br /&gt;
&lt;br /&gt;
This request blocks (u15=1) user with ID 789 (user_id=789). User belongs to admin (u=admin).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 HTML POST: http://&amp;lt;server_ip&amp;gt;/billing/api/user_update_api?u16=3&amp;amp;user_id=789&amp;amp;u=admin&amp;amp;u15=1&amp;amp;hash=0in2w8n01rwnodv4t0y5zzfp1h5hdp1fyk7z&lt;br /&gt;
&lt;br /&gt;
This request changes user quickforwards rule to rule with ID 3 (u16=3) user with ID 789 (user_id=789). User belongs to admin (u=admin).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
&lt;br /&gt;
'''Success'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;page&amp;gt;&lt;br /&gt;
   &amp;lt;status&amp;gt;User was updated&amp;lt;/status&amp;gt;&lt;br /&gt;
  &amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
'''Errors'''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;error&amp;gt;User was not found&amp;lt;/error&amp;gt; - User was not found using user_id. Use correct user id.&lt;br /&gt;
* &amp;lt;error&amp;gt;Incorrect hash&amp;lt;/error&amp;gt; - Hash was not correct. Check API_Secret_Key and order or params while concatenating hash_string.&lt;br /&gt;
* &amp;lt;error&amp;gt;Access Denied&amp;lt;/error&amp;gt; - Check params and permissions. &lt;br /&gt;
* &amp;lt;error&amp;gt;You have no editing permission&amp;lt;/error&amp;gt; - Accountant dont have permission.&lt;br /&gt;
* &amp;lt;error&amp;gt;Tariff not found&amp;lt;/error&amp;gt; - Tariff was not found using param u5.&lt;br /&gt;
* &amp;lt;error&amp;gt;User was not updated&amp;lt;/error&amp;gt;&lt;br /&gt;
* &amp;lt;error&amp;gt;Responsible accountant is not valid&amp;lt;/error&amp;gt; Responsible accountant id was not correct using param u31.&lt;br /&gt;
* &amp;lt;message&amp;gt;problem message&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[MOR API]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=MOR_API_user_details_update&amp;diff=22652</id>
		<title>MOR API user details update</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=MOR_API_user_details_update&amp;diff=22652"/>
		<updated>2017-08-31T12:34:41Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Parametres */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
&amp;lt;!---This functionality is available from MOR 11---&amp;gt;&lt;br /&gt;
[[MOR API]] Update user from params. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If Admin has checked Allow Resellers to use Admin Tariffs in [[API Configuration]] then using this API Reseller can set for his Users Wholesale or Retail Tariffs which belongs to Admin.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Please note that it is not necessary to send ALL user parameters - you can send only those you need to update.'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
* From '''MOR X4''' call: '''/api/user_details_update'''&lt;br /&gt;
* For Backwards-compatibility old name 'user_update_api' is also usable. Call: '''/api/user_update_api'''&lt;br /&gt;
* Methods: POST, GET(if allowed, not recomended)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Parametres===&lt;br /&gt;
&lt;br /&gt;
Parameters which are '''included''' into hash (if it is used):&lt;br /&gt;
&lt;br /&gt;
* user_id - Users ID in MOR database, whose details we want to change. '''REQUIRED'''.&lt;br /&gt;
* u0 - vat number&lt;br /&gt;
* u1 - lcr id&lt;br /&gt;
* u2 - warning email hour&lt;br /&gt;
* u3 - hide destination end&lt;br /&gt;
* u4 - currency id&lt;br /&gt;
* u5 - tariff id&lt;br /&gt;
* u6 - warning email balance&lt;br /&gt;
* u7 - spy device id&lt;br /&gt;
* u8 - language&lt;br /&gt;
* u9 - username&lt;br /&gt;
* u10 - warning balance call&lt;br /&gt;
* u11 - acc group id&lt;br /&gt;
* u12 - generate invoice&lt;br /&gt;
* u13 - usertype&lt;br /&gt;
* u14 - taxation country ([[Directions_and_Destinations#Directions|Direction]] id)&lt;br /&gt;
* u15 - blocked&lt;br /&gt;
* u16 - quickforwards rule id&lt;br /&gt;
* u17 - last name&lt;br /&gt;
* u18 - call limit&lt;br /&gt;
* u19 - clientid&lt;br /&gt;
* u20 - recording hdd quota&lt;br /&gt;
* u21 - cyberplat active&lt;br /&gt;
* u22 - recordings email&lt;br /&gt;
* u23 - first name&lt;br /&gt;
* u24 - warning balance sound file id&lt;br /&gt;
* u25 - postpaid&lt;br /&gt;
* u26 - accounting number&lt;br /&gt;
* u27 - agreement number&lt;br /&gt;
* u28 - hidden&lt;br /&gt;
* u29 - pbx pool id&lt;br /&gt;
* u30 - hide non answered calls&lt;br /&gt;
* u31 - responsible accountant id&lt;br /&gt;
* ay - agr_date year&lt;br /&gt;
* am - agr_date month&lt;br /&gt;
* ad - agr_date day&lt;br /&gt;
* by - block at date year2011&lt;br /&gt;
* bm - block at date month&lt;br /&gt;
* bd - block at date day&lt;br /&gt;
* pswd - password&lt;br /&gt;
* user_warning_email_hour&lt;br /&gt;
* pgui - privacy gui [0-off, 1-on]&lt;br /&gt;
* pcsv - privacy csv [0-off, 1-on]&lt;br /&gt;
* ppdf - privacy pdf [0-off, 1-on]&lt;br /&gt;
* recording_forced_enabled - [0-off, 1-on]&lt;br /&gt;
* i4 - invoice detailed csv [0-off, 16-on]&lt;br /&gt;
* tax4_enabled - [0-off, 1-on]&lt;br /&gt;
* tax2_enabled - [0-off, 1-on]&lt;br /&gt;
* accountant_type_invalid &lt;br /&gt;
* block_at_conditional - 15&lt;br /&gt;
* tax3_enabled - [0-off, 1-on]&lt;br /&gt;
* accountant_type &lt;br /&gt;
* tax1_value - float&lt;br /&gt;
* show_zero_calls - [0-off, 1-on]&lt;br /&gt;
* warning_email_active - [0-off, 1-on]&lt;br /&gt;
* compound_tax - [0-off, 1-on]&lt;br /&gt;
* tax4_name - &lt;br /&gt;
* allow_loss_calls - [0-off, 1-on]&lt;br /&gt;
* tax3_name - &lt;br /&gt;
* tax2_name - &lt;br /&gt;
* credit - float&lt;br /&gt;
* tax1_name - &lt;br /&gt;
* total_tax_name - &lt;br /&gt;
* tax2_value - float&lt;br /&gt;
* tax4_value - float&lt;br /&gt;
* ignore_global_monitorings - [0-off, 1-on]&lt;br /&gt;
* i1 - invoice pdf [0-off, 2-on]&lt;br /&gt;
* tax3_value - float&lt;br /&gt;
* cyberplat_active - [0-off, 1-on]&lt;br /&gt;
* i2 - invoice csv [0-off, 4-on]&lt;br /&gt;
* i3 - invoice detailed pdf [0-off, 8-on]&lt;br /&gt;
* recording_enabled - [0-off, 1-on]&lt;br /&gt;
* email_warning_sent_test - [0-off, 1-on]&lt;br /&gt;
* own_providers - [0-off, 1-on]&lt;br /&gt;
* a0 - address&lt;br /&gt;
* a1 - city&lt;br /&gt;
* a2 - postcode&lt;br /&gt;
* a3 - county&lt;br /&gt;
* a4 - mob_phone&lt;br /&gt;
* a5 - fax&lt;br /&gt;
* a6 - direction id&lt;br /&gt;
* a7 - phone&lt;br /&gt;
* a8 - email&lt;br /&gt;
* a9 - state&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note that parameters are shown in the same order as they have to be when generating the hash. Last parameter in a row is API_Secret_Key'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters which are '''not included''' into hash:&lt;br /&gt;
&lt;br /&gt;
* [[MOR API hash construction | hash]] - SHA1 hash constructed using '''params''' and '''API_Secret_Key''' ([[MOR API hash construction | More described in Constructing hash]]). '''REQUIRED'''.&lt;br /&gt;
* u - username of user which can modify details (admin, reseller or accountant). '''REQUIRED'''.&lt;br /&gt;
* time_zone - time zone (all available references are listed on Time Zone list at the time zone name column. See more:  http://wiki.kolmisoft.com/index.php/Time_Zone_list)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Additional feature''' &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If API setting '''Allow Resellers to use Admin Quick Forward Rules''' is enabled:&amp;lt;br&amp;gt;Reseller is able to set Quick Forward Rules inherited from Admin. '''u16''' should be used as a parameter for Quick Forward Rules.&amp;lt;br&amp;gt;&lt;br /&gt;
If API setting '''Allow Resellers to use Admin Tariffs''' is enabled:&amp;lt;br&amp;gt;Reseller is able to set Tariff inherited from Admin. '''u5''' should be used as a parameter for Tariff.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reguest===&lt;br /&gt;
&lt;br /&gt;
We have user_id = 123, API Secret Key = 456789, u15=1 (we want to block user)&lt;br /&gt;
&lt;br /&gt;
We send:&lt;br /&gt;
 HTML POST: http://&amp;lt;server_ip&amp;gt;/billing/api/user_details_update?u=username&amp;amp;user_id=123&amp;amp;u15=1&amp;amp;hash=0ab3ede4e93a55c38855a2cc9b9e169d35442c48&lt;br /&gt;
&lt;br /&gt;
'''* Note that username and password are not included in hash'''&lt;br /&gt;
&lt;br /&gt;
Other examples:&lt;br /&gt;
&lt;br /&gt;
 HTML POST: http://&amp;lt;server_ip&amp;gt;/billing/api/user_update_api?u15=1&amp;amp;user_id=789&amp;amp;u=admin&amp;amp;u15=1&amp;amp;hash=0in2w8n01rwnodv4t0y5zzfp1h5hdp1fyk7z&lt;br /&gt;
&lt;br /&gt;
This request blocks (u15=1) user with ID 789 (user_id=789). User belongs to admin (u=admin).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 HTML POST: http://&amp;lt;server_ip&amp;gt;/billing/api/user_update_api?u16=3&amp;amp;user_id=789&amp;amp;u=admin&amp;amp;u15=1&amp;amp;hash=0in2w8n01rwnodv4t0y5zzfp1h5hdp1fyk7z&lt;br /&gt;
&lt;br /&gt;
This request changes user quickforwards rule to rule with ID 3 (u16=3) user with ID 789 (user_id=789). User belongs to admin (u=admin).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
&lt;br /&gt;
'''Success'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;page&amp;gt;&lt;br /&gt;
   &amp;lt;status&amp;gt;User was updated&amp;lt;/status&amp;gt;&lt;br /&gt;
  &amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
'''Errors'''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;error&amp;gt;User was not found&amp;lt;/error&amp;gt; - User was not found using user_id. Use correct user id.&lt;br /&gt;
* &amp;lt;error&amp;gt;Incorrect hash&amp;lt;/error&amp;gt; - Hash was not correct. Check API_Secret_Key and order or params while concatenating hash_string.&lt;br /&gt;
* &amp;lt;error&amp;gt;Access Denied&amp;lt;/error&amp;gt; - Check params and permissions. &lt;br /&gt;
* &amp;lt;error&amp;gt;You have no editing permission&amp;lt;/error&amp;gt; - Accountant dont have permission.&lt;br /&gt;
* &amp;lt;error&amp;gt;Tariff not found&amp;lt;/error&amp;gt; - Tariff was not found using param u5.&lt;br /&gt;
* &amp;lt;error&amp;gt;User was not updated&amp;lt;/error&amp;gt;&lt;br /&gt;
* &amp;lt;error&amp;gt;Responsible accountant is not valid&amp;lt;/error&amp;gt; Responsible accountant id was not correct using param u31.&lt;br /&gt;
* &amp;lt;message&amp;gt;problem message&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[MOR API]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=MOR_API_card_group_get&amp;diff=22651</id>
		<title>MOR API card group get</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=MOR_API_card_group_get&amp;diff=22651"/>
		<updated>2017-08-31T10:23:13Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
&amp;lt;!---This functionality is available from MOR 12---&amp;gt;&lt;br /&gt;
[[MOR API]] Show Calling Card Group&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
* From '''MOR X4''' call: '''/api/card_group_get '''&lt;br /&gt;
* For Backwards-compatibility old name 'show_calling_card_group' is also usable. Call: '''/api/show_calling_card_group'''&lt;br /&gt;
* Methods: POST, GET(if allowed, not recomended)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
Parameters which are '''included''' into hash:&lt;br /&gt;
&lt;br /&gt;
* id - Calling Card Group ID in MOR database. '''Required'''.&lt;br /&gt;
&lt;br /&gt;
'''Note that parameters are shown in the same order as they have to be when generating the hash. Last parameter in a row is API_Secret_Key'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters which are '''not included''' into hash:&lt;br /&gt;
&lt;br /&gt;
* [[MOR API hash construction | hash]] - SHA1 hash constructed using parameters above and API_Secret_Key ([[MOR API hash construction | More described in Constructing hash]]). '''Required'''.&lt;br /&gt;
* u - username for authentication. '''Required'''.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Request===&lt;br /&gt;
&lt;br /&gt;
We have id = 6, API Secret Key = 456789&lt;br /&gt;
&lt;br /&gt;
We send:&lt;br /&gt;
&lt;br /&gt;
 HTML POST: http://&amp;lt;SERVER_IP&amp;gt;/billing/api/card_group_get?u=username&amp;amp;id=6&amp;amp;hash=67df827dec80a7241fb3fc4de22a90e62c5e8d93&lt;br /&gt;
&lt;br /&gt;
'''NOTE that username is not included in hash'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Returns===&lt;br /&gt;
&lt;br /&gt;
'''Success'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;page&amp;gt;&lt;br /&gt;
  &amp;lt;cardgroup&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;....&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;iamge_link&amp;gt;/billing/cards/example.jpg&amp;lt;/iamge_link&amp;gt;&lt;br /&gt;
    &amp;lt;description&amp;gt;...&amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;price&amp;gt;...&amp;lt;/price&amp;gt;&lt;br /&gt;
    &amp;lt;price_with_tax&amp;gt;...&amp;lt;/price_with_tax&amp;gt;&lt;br /&gt;
    &amp;lt;currency&amp;gt;...&amp;lt;/currency&amp;gt;&lt;br /&gt;
    &amp;lt;free_cards_size&amp;gt;...&amp;lt;/free_cards_size&amp;gt;&lt;br /&gt;
    &amp;lt;pin_length&amp;gt;....&amp;lt;/pin_length&amp;gt;&lt;br /&gt;
    &amp;lt;number_length&amp;gt;....&amp;lt;/number_length&amp;gt;&lt;br /&gt;
  &amp;lt;/cardgroup&amp;gt;&lt;br /&gt;
 &amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Errors'''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;error&amp;gt;Bad login&amp;lt;/error&amp;gt; - User supplied bad login.&lt;br /&gt;
* &amp;lt;error&amp;gt;Incorrect hash&amp;lt;/error&amp;gt; - Hash was not correct. Check API_Secret_Key and order or params while concatenating hash_string.&lt;br /&gt;
* &amp;lt;error&amp;gt;Cardgroup was not found&amp;lt;/error&amp;gt; - Use correct Calling Card Group ID .&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[MOR API]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Auto-Dialer_Addon&amp;diff=22626</id>
		<title>Auto-Dialer Addon</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Auto-Dialer_Addon&amp;diff=22626"/>
		<updated>2017-08-14T12:32:59Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Numbers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
&lt;br /&gt;
Auto-Dialer addon lets you call an array of [[Auto-Dialer_Addon#Numbers | numbers]] automatically. When call is answered, receiver hears  the audio message or he is in standby mode, it depends on what is set in Auto Dialer [[Auto-Dialer_Addon#Actions | actions]] (PLAY / IVR / WAIT).&lt;br /&gt;
This functionality can be used in telemarketing.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
When Auto-Dialer (AD) is installed, every user can use it and '''only users can create Campaigns. Admin cannot create Campaings.'''&lt;br /&gt;
&lt;br /&gt;
==From User==&lt;br /&gt;
&lt;br /&gt;
The user can find the AD menu under '''PERSONAL MENU -&amp;gt; Various -&amp;gt; Auto Dialer'''.&lt;br /&gt;
&lt;br /&gt;
The main window shows the user's campaigns:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:ad1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The user can Activate or Stop the Campaign by clicking the [[Image:icon_play.png]] or [[Image:icon_stop.png]] button near the Campaign's status.&lt;br /&gt;
&lt;br /&gt;
A Campaign can only be '''Activated''' if it has free (not-called) numbers AND some Actions. &lt;br /&gt;
&lt;br /&gt;
So please, before activating a Campaign, import some Numbers and create Actions.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' Auto Dialer starts in 5 minutes, so when you are starting this add-on, you need to wait 5 minutes before it starts.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Campaigns===&lt;br /&gt;
&lt;br /&gt;
Auto-Dialer can be found under '''PERSONAL MENU -&amp;gt; Various -&amp;gt; Auto Dialer'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:icon_add.png]] '''Add new campaign''' allows you to add a new campaign:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The important fields here are:&lt;br /&gt;
&lt;br /&gt;
* '''Start/Stop Times''' – when calls will be made.&lt;br /&gt;
* '''Max Retries''' – how many times to retry an unsuccessful call.&lt;br /&gt;
* '''Retry Time''' – how many seconds the system should wait to retry the call.&lt;br /&gt;
* '''Wait Time''' – how long to wait till the call is answered. This field by default is 10 and cannot be made less. This is done in order to &lt;br /&gt;
prevent annoying multiple calls from Auto Dialer to the end user if for example &amp;quot;Wait Time&amp;quot; is configured as 5 seconds.&lt;br /&gt;
* '''Device''' – each Campaign should be assigned to a Device in order for MOR to bill the call.&lt;br /&gt;
* '''CallerID''' - what CallerID to put on calls.&lt;br /&gt;
* '''Allow duplicate numbers''' - when checked allows duplicate number import into the Auto-Dialer Campaign.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Numbers  ===&lt;br /&gt;
&lt;br /&gt;
Click on [[Image:icon_list.png]] in the '''Numbers''' column to check numbers which will be dialed on campaign:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The user can import phone numbers from a TXT file. Numbers should be in correct dialing format.&lt;br /&gt;
&lt;br /&gt;
Example of numbers file:&lt;br /&gt;
&lt;br /&gt;
 442012345678&lt;br /&gt;
 442087654321&lt;br /&gt;
 442054987123&lt;br /&gt;
&lt;br /&gt;
In a new Campaign there are no numbers, so click on [[Image:icon_csv.png]] '''Import numbers from file''' and select the file to upload:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After uploading the file, you will see status of imported numbers:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer4.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
You can delete all numbers by clicking [[Image:icon_cross.png]] '''Delete all numbers'''. Also you can export details by clicking [[Image:excel.png]] '''Export IVR/poll results to CSV'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If a number is Completed, it is possible to reactivate it (tell the system to call it again) by clicking the [[Image:icon_reactivate.png]] icon near the number.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Actions ===&lt;br /&gt;
&lt;br /&gt;
Click [[Image:icon_actions.png]] in the Actions column to access the Campaign's actions:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer5.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In this window, the user programs the Actions for the Campaign:&lt;br /&gt;
&lt;br /&gt;
Types of Actions:&lt;br /&gt;
&lt;br /&gt;
* '''WAIT''' – how many seconds to wait.&lt;br /&gt;
* '''PLAY''' – play a file.&lt;br /&gt;
* '''IVR''' - send call to IVR. It can be used to connect to a real person and give the callee a greater choice. For example, it is possible to play an advertisement and tell the user to press '1' to talk with a real person about this advertisement or similar.&lt;br /&gt;
** NOTE: admin or [[Reseller_Pro_Addon|Reseller PRO]] must check option &amp;quot;All users can use it&amp;quot; on IVR to allow users to set that IVR on AD campaign.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Redial all failed Calls===&lt;br /&gt;
&amp;lt;!---This functionality is available from MOR 9---&amp;gt;&lt;br /&gt;
You can redial all failed calls:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_redial_all_failed_calls.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Autodialer Campaign statistics===&lt;br /&gt;
To view the Autodialer Campaign statistics, click on the bar chart icon in the '''Stats''' column.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_Stats_icon.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
On the newly opened page you will be able to see the desired Autodialer Campaign statistics with a search filter and a visual representation of data.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_Stats_User.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==From Admin==&lt;br /&gt;
&lt;br /&gt;
When Auto-Dialer (AD) is installed, Admin can find it under the  '''ADDONS –&amp;gt; Auto Dialer''' menu. Here he can get a view of all users' campaigns:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer6.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The important information for each Campaign is:&lt;br /&gt;
&lt;br /&gt;
* Status – is the Campaign Active or Stopped?&lt;br /&gt;
* Run time – tells when calls will be made.&lt;br /&gt;
&lt;br /&gt;
All other fields are self-explanatory.&lt;br /&gt;
&lt;br /&gt;
It is possible for admin to see the Actions for users' Campaigns. Just click on the [[Image:icon_actions.png]] '''Actions''' button. However he cannot make any changes to the user's campaign. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Workflow=&lt;br /&gt;
&lt;br /&gt;
Each 5 minutes, &amp;quot;cron job&amp;quot; is activated to check whether any campaigns are activated.&lt;br /&gt;
&lt;br /&gt;
If there are some active campaigns, the script creates call files for the future. &lt;br /&gt;
&lt;br /&gt;
It puts calls in Time Period in equal time periods, to balance the workload for Asterisk.&lt;br /&gt;
&lt;br /&gt;
For example, if you have 10 calls to make, the script will execute them in 6s intervals to start all calls in 1 min time.&lt;br /&gt;
&lt;br /&gt;
Variables in '''/etc/mor/system.conf''':&lt;br /&gt;
&lt;br /&gt;
'''calls_one_time''' - how many calls to distribute per one minute. (PLEASE NOTE, this value is not for simultaneous calls! It has a very different meaning, which is explained below).&lt;br /&gt;
&lt;br /&gt;
'''cron_interval''' - the interval of time (in minutes) in which we should 'put' calls. Do not set value higher than &amp;quot;4&amp;quot; as it would cause overlapping of Autodialer sessions.&lt;br /&gt;
&lt;br /&gt;
Example #1:&lt;br /&gt;
&lt;br /&gt;
 calls_one_time = 10&lt;br /&gt;
 cron_interval = 1&lt;br /&gt;
&lt;br /&gt;
That means that in 1 minute the script will put 10 calls. So each call will be executed at a 6s interval:&lt;br /&gt;
&lt;br /&gt;
 1st call: 0s&lt;br /&gt;
 2nd call: 6s&lt;br /&gt;
 3rd call: 12s&lt;br /&gt;
 ....&lt;br /&gt;
 9th call: 54s&lt;br /&gt;
 10th call: 60s&lt;br /&gt;
&lt;br /&gt;
Example #2:&lt;br /&gt;
&lt;br /&gt;
 calls_one_time = 5&lt;br /&gt;
 cron_interval = 2&lt;br /&gt;
&lt;br /&gt;
That means that in 1 minute the script will put 5 calls and it will do so for 2 minutes. So each call will be executed at a 12s interval:&lt;br /&gt;
&lt;br /&gt;
 1st call: 0s&lt;br /&gt;
 2nd call: 12s&lt;br /&gt;
 3rd call: 24s&lt;br /&gt;
 4rd call: 36s&lt;br /&gt;
 5th call: 48s&lt;br /&gt;
 6th call: 60s&lt;br /&gt;
 7th call: 72s&lt;br /&gt;
 8th call: 84s&lt;br /&gt;
 9th call: 96s&lt;br /&gt;
 10th call: 108s&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Limitations=&lt;br /&gt;
&lt;br /&gt;
Currently MOR does not support such functionality as to issue the Auto Dialer campaign only in that Asterisk &lt;br /&gt;
&lt;br /&gt;
server to which the device belongs (if you have multiple Asterisk servers). Now MOR just issues the campaign on both servers, if you want it to &lt;br /&gt;
&lt;br /&gt;
run only on one server you need to just disable the cron job on one of the servers. &lt;br /&gt;
Cron can be found in &lt;br /&gt;
 /etc/cron.d/mor_ad&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Logs=&lt;br /&gt;
&lt;br /&gt;
Autodialer log can be found here:&lt;br /&gt;
 /var/log/mor/mor_ad_cron.log&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Problems =&lt;br /&gt;
&lt;br /&gt;
* [[MOR Server Speedup]] (to get more calls by AD)&lt;br /&gt;
* [[I have a problem with Auto Dialer]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[Autodialer poll example]]&lt;br /&gt;
* [[Convert WAV file to Asterisk playable format]]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Sound files]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=Auto-Dialer_Addon&amp;diff=22625</id>
		<title>Auto-Dialer Addon</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=Auto-Dialer_Addon&amp;diff=22625"/>
		<updated>2017-08-14T12:32:30Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Campaigns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
&lt;br /&gt;
Auto-Dialer addon lets you call an array of [[Auto-Dialer_Addon#Numbers | numbers]] automatically. When call is answered, receiver hears  the audio message or he is in standby mode, it depends on what is set in Auto Dialer [[Auto-Dialer_Addon#Actions | actions]] (PLAY / IVR / WAIT).&lt;br /&gt;
This functionality can be used in telemarketing.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
When Auto-Dialer (AD) is installed, every user can use it and '''only users can create Campaigns. Admin cannot create Campaings.'''&lt;br /&gt;
&lt;br /&gt;
==From User==&lt;br /&gt;
&lt;br /&gt;
The user can find the AD menu under '''PERSONAL MENU -&amp;gt; Various -&amp;gt; Auto Dialer'''.&lt;br /&gt;
&lt;br /&gt;
The main window shows the user's campaigns:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:ad1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The user can Activate or Stop the Campaign by clicking the [[Image:icon_play.png]] or [[Image:icon_stop.png]] button near the Campaign's status.&lt;br /&gt;
&lt;br /&gt;
A Campaign can only be '''Activated''' if it has free (not-called) numbers AND some Actions. &lt;br /&gt;
&lt;br /&gt;
So please, before activating a Campaign, import some Numbers and create Actions.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' Auto Dialer starts in 5 minutes, so when you are starting this add-on, you need to wait 5 minutes before it starts.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===Campaigns===&lt;br /&gt;
&lt;br /&gt;
Auto-Dialer can be found under '''PERSONAL MENU -&amp;gt; Various -&amp;gt; Auto Dialer'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:icon_add.png]] '''Add new campaign''' allows you to add a new campaign:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer1.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The important fields here are:&lt;br /&gt;
&lt;br /&gt;
* '''Start/Stop Times''' – when calls will be made.&lt;br /&gt;
* '''Max Retries''' – how many times to retry an unsuccessful call.&lt;br /&gt;
* '''Retry Time''' – how many seconds the system should wait to retry the call.&lt;br /&gt;
* '''Wait Time''' – how long to wait till the call is answered. This field by default is 10 and cannot be made less. This is done in order to &lt;br /&gt;
prevent annoying multiple calls from Auto Dialer to the end user if for example &amp;quot;Wait Time&amp;quot; is configured as 5 seconds.&lt;br /&gt;
* '''Device''' – each Campaign should be assigned to a Device in order for MOR to bill the call.&lt;br /&gt;
* '''CallerID''' - what CallerID to put on calls.&lt;br /&gt;
* '''Allow duplicate numbers''' - when checked allows duplicate number import into the Auto-Dialer Campaign.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Numbers  ===&lt;br /&gt;
&lt;br /&gt;
Click on [[Image:icon_list.png]] in the '''Numbers''' column to check numbers which will be dialed on campaign:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The user can import phone numbers from a TXT file. Numbers should be in correct dialing format and not duplicated.&lt;br /&gt;
&lt;br /&gt;
Example of numbers file:&lt;br /&gt;
&lt;br /&gt;
 442012345678&lt;br /&gt;
 442087654321&lt;br /&gt;
 442054987123&lt;br /&gt;
&lt;br /&gt;
In a new Campaign there are no numbers, so click on [[Image:icon_csv.png]] '''Import numbers from file''' and select the file to upload:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer3.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After uploading the file, you will see status of imported numbers:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer4.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
You can delete all numbers by clicking [[Image:icon_cross.png]] '''Delete all numbers'''. Also you can export details by clicking [[Image:excel.png]] '''Export IVR/poll results to CSV'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If a number is Completed, it is possible to reactivate it (tell the system to call it again) by clicking the [[Image:icon_reactivate.png]] icon near the number.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Actions ===&lt;br /&gt;
&lt;br /&gt;
Click [[Image:icon_actions.png]] in the Actions column to access the Campaign's actions:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer5.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In this window, the user programs the Actions for the Campaign:&lt;br /&gt;
&lt;br /&gt;
Types of Actions:&lt;br /&gt;
&lt;br /&gt;
* '''WAIT''' – how many seconds to wait.&lt;br /&gt;
* '''PLAY''' – play a file.&lt;br /&gt;
* '''IVR''' - send call to IVR. It can be used to connect to a real person and give the callee a greater choice. For example, it is possible to play an advertisement and tell the user to press '1' to talk with a real person about this advertisement or similar.&lt;br /&gt;
** NOTE: admin or [[Reseller_Pro_Addon|Reseller PRO]] must check option &amp;quot;All users can use it&amp;quot; on IVR to allow users to set that IVR on AD campaign.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Redial all failed Calls===&lt;br /&gt;
&amp;lt;!---This functionality is available from MOR 9---&amp;gt;&lt;br /&gt;
You can redial all failed calls:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_redial_all_failed_calls.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Autodialer Campaign statistics===&lt;br /&gt;
To view the Autodialer Campaign statistics, click on the bar chart icon in the '''Stats''' column.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_Stats_icon.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
On the newly opened page you will be able to see the desired Autodialer Campaign statistics with a search filter and a visual representation of data.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Autodialer_Stats_User.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==From Admin==&lt;br /&gt;
&lt;br /&gt;
When Auto-Dialer (AD) is installed, Admin can find it under the  '''ADDONS –&amp;gt; Auto Dialer''' menu. Here he can get a view of all users' campaigns:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:autodialer6.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The important information for each Campaign is:&lt;br /&gt;
&lt;br /&gt;
* Status – is the Campaign Active or Stopped?&lt;br /&gt;
* Run time – tells when calls will be made.&lt;br /&gt;
&lt;br /&gt;
All other fields are self-explanatory.&lt;br /&gt;
&lt;br /&gt;
It is possible for admin to see the Actions for users' Campaigns. Just click on the [[Image:icon_actions.png]] '''Actions''' button. However he cannot make any changes to the user's campaign. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Workflow=&lt;br /&gt;
&lt;br /&gt;
Each 5 minutes, &amp;quot;cron job&amp;quot; is activated to check whether any campaigns are activated.&lt;br /&gt;
&lt;br /&gt;
If there are some active campaigns, the script creates call files for the future. &lt;br /&gt;
&lt;br /&gt;
It puts calls in Time Period in equal time periods, to balance the workload for Asterisk.&lt;br /&gt;
&lt;br /&gt;
For example, if you have 10 calls to make, the script will execute them in 6s intervals to start all calls in 1 min time.&lt;br /&gt;
&lt;br /&gt;
Variables in '''/etc/mor/system.conf''':&lt;br /&gt;
&lt;br /&gt;
'''calls_one_time''' - how many calls to distribute per one minute. (PLEASE NOTE, this value is not for simultaneous calls! It has a very different meaning, which is explained below).&lt;br /&gt;
&lt;br /&gt;
'''cron_interval''' - the interval of time (in minutes) in which we should 'put' calls. Do not set value higher than &amp;quot;4&amp;quot; as it would cause overlapping of Autodialer sessions.&lt;br /&gt;
&lt;br /&gt;
Example #1:&lt;br /&gt;
&lt;br /&gt;
 calls_one_time = 10&lt;br /&gt;
 cron_interval = 1&lt;br /&gt;
&lt;br /&gt;
That means that in 1 minute the script will put 10 calls. So each call will be executed at a 6s interval:&lt;br /&gt;
&lt;br /&gt;
 1st call: 0s&lt;br /&gt;
 2nd call: 6s&lt;br /&gt;
 3rd call: 12s&lt;br /&gt;
 ....&lt;br /&gt;
 9th call: 54s&lt;br /&gt;
 10th call: 60s&lt;br /&gt;
&lt;br /&gt;
Example #2:&lt;br /&gt;
&lt;br /&gt;
 calls_one_time = 5&lt;br /&gt;
 cron_interval = 2&lt;br /&gt;
&lt;br /&gt;
That means that in 1 minute the script will put 5 calls and it will do so for 2 minutes. So each call will be executed at a 12s interval:&lt;br /&gt;
&lt;br /&gt;
 1st call: 0s&lt;br /&gt;
 2nd call: 12s&lt;br /&gt;
 3rd call: 24s&lt;br /&gt;
 4rd call: 36s&lt;br /&gt;
 5th call: 48s&lt;br /&gt;
 6th call: 60s&lt;br /&gt;
 7th call: 72s&lt;br /&gt;
 8th call: 84s&lt;br /&gt;
 9th call: 96s&lt;br /&gt;
 10th call: 108s&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Limitations=&lt;br /&gt;
&lt;br /&gt;
Currently MOR does not support such functionality as to issue the Auto Dialer campaign only in that Asterisk &lt;br /&gt;
&lt;br /&gt;
server to which the device belongs (if you have multiple Asterisk servers). Now MOR just issues the campaign on both servers, if you want it to &lt;br /&gt;
&lt;br /&gt;
run only on one server you need to just disable the cron job on one of the servers. &lt;br /&gt;
Cron can be found in &lt;br /&gt;
 /etc/cron.d/mor_ad&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Logs=&lt;br /&gt;
&lt;br /&gt;
Autodialer log can be found here:&lt;br /&gt;
 /var/log/mor/mor_ad_cron.log&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
= Problems =&lt;br /&gt;
&lt;br /&gt;
* [[MOR Server Speedup]] (to get more calls by AD)&lt;br /&gt;
* [[I have a problem with Auto Dialer]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=See also=&lt;br /&gt;
&lt;br /&gt;
* [[Autodialer poll example]]&lt;br /&gt;
* [[Convert WAV file to Asterisk playable format]]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Sound files]]&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:Autodialer1.png&amp;diff=22624</id>
		<title>File:Autodialer1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:Autodialer1.png&amp;diff=22624"/>
		<updated>2017-08-14T12:30:23Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: uploaded a new version of &amp;quot;File:Autodialer1.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=File:M2_call_info.png&amp;diff=22623</id>
		<title>File:M2 call info.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmisoft.com/index.php?title=File:M2_call_info.png&amp;diff=22623"/>
		<updated>2017-08-10T13:20:23Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: uploaded a new version of &amp;quot;File:M2 call info.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zilvinas</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmisoft.com/index.php?title=M4_Termination_Points&amp;diff=22621</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=22621"/>
		<updated>2017-08-10T08:50:15Z</updated>

		<summary type="html">&lt;p&gt;Zilvinas: /* Advanced */&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;
=Termination Point Settings=&lt;br /&gt;
&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;
* '''Tariff''' - Tariff used for Termination Point accounting.&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?&amp;lt;br&amp;gt;&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;
&amp;lt;br&amp;gt;&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]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Advanced ==&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 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.&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 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;
* '''Forward RPID''' - by default M2 forwards RPID header from Originator to Terminator. This can be disabled by setting this option to &amp;quot;no&amp;quot;.&lt;br /&gt;
* '''Forward PAI''' - by default M2 forwards PAI header from Originator to Terminator. This can be disabled by setting this option to &amp;quot;no&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;
* '''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;
* '''Use PAI if CallerID is anonymous''' - if enabled, when CallerID is '''anonymous''' PAI header number is used as CallerID.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&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.&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;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&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>Zilvinas</name></author>
	</entry>
</feed>