https://wiki.kolmisoft.com/api.php?action=feedcontributions&user=Nerijuss&feedformat=atomKolmisoft Wiki - User contributions [en]2024-03-19T08:52:18ZUser contributionsMediaWiki 1.37.1https://wiki.kolmisoft.com/index.php?title=MOR_API_active_calls_get&diff=29486MOR API active calls get2024-03-14T07:32:03Z<p>Nerijuss: /* Returns */</p>
<hr />
<div><!---This functionality is available from MOR x14---><br />
=Description=<br />
Retrieves list of active calls for specified User.<br><br><br />
<br />
'''Admin''' - can get any user calls<br />
<br />
'''Reseller''' - can get his and his users calls.<br />
<br />
'''User''' - can get his own calls.<br />
<br><br />
=Usage=<br />
<br />
* From '''MOR X14''' call: '''/api/active_calls_get'''<br />
* Methods: POST, GET(if allowed, not recommended)<br />
<br><br><br />
===Parameters=== <br />
<br />
Parameters which are '''included''' into hash:<br />
<br />
* u - username for authentication. '''Required'''. <br />
<br />
Parameters which are '''not included''' into hash:<br />
<br />
* s_did - did prefix. If pattern is needed, for example, %370, then you should write down %25370 (% - %25utf encoding)<br />
* s_provider - provider_id<br />
* s_user_id - source user id<br />
* s_device - device id(source). Does not work without '''s_user_id'''<br />
* s_dst_user_id - destination user id<br />
* s_dst_device - destination device id. Does not work without '''dst_user_id'''<br />
* s_destination - destination prefix. If pattern is needed, for example, %370, then you should write down %25370 (% - %25utf encoding)<br />
* s_destination_group - destination group id<br />
* s_source - destination prefix. If pattern is needed, for example, %370, then you should write down %25370 (% - %25utf encoding)<br />
* s_status - text (ringing or answered)<br />
* s_server - server_id<br />
* s_country - direction name<br />
<br />
===Request===<br />
<br />
If you want find ringing active calls for user=username, through server id 2, and your API Secret Key = 456789<br />
<br />
You send:<br />
<br />
HTML POST: http://<SERVER_IP>/billing/api/active_calls_get?u=username&s_server=2&s_status=ringing&hash=df2983700ffecb52e6649f0cb3981b66537083a4 <br />
<br />
<br><br><br />
===Returns===<br />
<br />
'''Success:''' Everything is ok. You get the list of active calls if there is any:<br />
<br />
<active_call><br />
<id>3</id><br />
<uniqueid>1249298495.111727</uniqueid><br />
<status>Ringing</status><br />
<answer_time/><br />
<duration/><br />
<src>306984327345</src><br />
<user_id>2</user_id><br />
<user>Test User #1</user><br />
<src_device_id>2</src_device_id><br />
<device_type>IAX2</device_type><br />
<device_extension>101</device_extension><br />
<device_name>101</device_name><br />
<device_istrunk>0</device_istrunk><br />
<device_ani>0</device_ani><br />
<localized_dst>63727007886</localized_dst><br />
<direction_code>PHL</direction_code><br />
<direction_name>Philippines</direction_name><br />
<destination_name>Philippines proper</destination_name><br />
<provider_id/><provider_name/><br />
<channel>SIP/10.219.62.200-c40daf10</channel><br />
</active_call><br />
<br />
Inbound calls have the following additional output:<br />
<dst_user_id></dst_user_id><br />
<dst_user>The Name</dst_user><br />
<dst_device_id></dst_device_id><br />
<dst_device_type>SIP</dst_device_type><br />
<dst_device_extension>1010</dst_device_extension><br />
<dst_device_name>0123456789</dst_device_name><br />
<dst_device_istrunk>0</dst_device_istrunk><br />
<dst_device_ani>0</dst_device_ani><br />
<br />
'''Errors:'''<br />
<br />
* Server was not found - bad value or user access denied.<br />
* Direction was not found - s_country value is entered incorrectly.<br />
* Originating User was not found - s_user_id value is entered incorrectly or access denied.<br />
* Originating Device was not found - s_device value is entered incorrectly or access denied.<br />
* Terminating User was not found - s_dst_user_id value is entered incorrectly or access denied.<br />
* Terminating Device was not found - s_dst_device value is entered incorrectly or access denied.<br />
* Destination Group was not found -s_destination_group value is entered incorrectly.<br />
* Status value must be Ringing or Answered - s_status value is entered incorrectly.<br />
* Provider was not found - s_provider value is entered incorrectly or access denied.<br />
* Did was not found - s_did value is entered incorrectly or access denied.<br />
<br />
Example:<br />
If DID was not found:<br />
<page><br />
<status><br />
<error> Did was not Found </error><br />
</status><br />
</page><br />
<br />
If no data found:<br />
<page><br />
<status><br />
<message> No data found... </message><br />
</status><br />
</page><br />
<br />
=See also=<br />
<br />
* [[MOR API]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Flat-Rates&diff=29373Flat-Rates2024-02-14T07:53:28Z<p>Nerijuss: /* Acknowledgments */</p>
<hr />
<div>=Description=<br />
<br />
Flat-Rates means a service plan under which a Client can dial a number of minutes to certain Destinations for a fixed amount (and optional additional connection fee not included in a fixed amount). After the user has used all his flat-rate minutes, all additional minutes are charged at the normal rate.<br />
<br />
For example, $5.00/mo with 200 minutes to USA/Canada.<br />
<br><br><br />
= Configuration =<br />
<br />
Go to '''SETTINGS –> Accounting –> Services''':<br />
<br><br><br />
[[Image:services-menu.png]]<br />
<br><br><br />
== Create ==<br />
<br />
In Services list page click [[Image:icon_add.png]]'''New service'''<br />
Select Service type: '''Flat-Rate'''.<br />
<br><br><br />
[[Image:flat-rate_service_create.png]]<br />
<br><br><br />
* '''Name''' - name of Flat Service (name will be shown in invoice),<br />
* '''Memo''' - informational message about Flat-Rate (can be left empty)<br />
* '''Sell Price''' - amount which User will be charged for service subscription (excluding connection fees if any),<br />
* '''Self-Cost''' - self cost for service (for informational purposes only),<br />
* '''Connection Fee''' - optional connection fee. If fee is higher than 0, it will be applied to every call and user will charged '''in addition''' to service fee.<br />
* '''Minutes/month''' - how many minutes user can call using this service,<br />
* '''Round by''' - how to round call duration (default by 1 second).<br />
* '''Limit Max rate for Provider''' - Calls with a higher Provider Rate will be dropped.<br />
<br />
<br />
Create the Service by clicking ''Create'' button.<br><br />
<br />
By default freshly created service does not have any destination. To check and/or add/remove destinations, click the [[Image:destinations_icon.png]] icon.<br />
<br><br><br />
[[Image:services_list.png]]<br />
<br><br><br />
<br />
== Add destinations ==<br />
<br />
Clicking on the [[Image:destinations_icon.png]] icon will open Destinations window where you will be able to include/exclude destinations.<br />
<br />
<br><br><br />
[[Image:flat_rate_include_destinations.png]]<br />
<br><br><br />
<br />
You have the following options to include/exclude destinations:<br />
* '''Prefix''' - enter valid prefix. Prefix '''and all sub-prefixes''' will be included. For example, if you enter prefix 370, this flat-rate service will include 370 '''and all other prefixes''' starting with 370.<br />
* '''Country/Prefix'''- this allows to choose specific country (direction) and specific prefix (destination) in that country. As in the previous example, prefix '''and all sub-prefixes''' will be included.<br />
* '''Prefixes from Destination Group''' - this allows to choose specific Destination Group. Once you choose particular group, amount of prefixes will be displayed. If you hover mouse on Prefixes word, new window will display all available prefixed in that Destination Group.<br />
<br />
<br><br><br />
== Included and Exluded Destinations ==<br />
Once you will add some destinations by any method mentioned above, you will see overview of available destinations.<br />
<br />
<br><br><br />
[[Image:Flat_rate_destinations_list.png]]<br />
<br><br><br />
<br />
You can see all active destinations for specific Country by clicking on '''Active Destinations Icon''' [[Image:Flat_rate_active_destinations_icon.png]].<br />
<br />
<br />
= Acknowledgments = <br />
<br />
* Flat-Rates are calculated by seconds.<br />
* Every month, the minutes available under Flat-Rates plans are reset to the initial value, which allows the client to use the same amount of minutes each new month. The clients' unused minutes for the previous month are lost. <br />
<!--from X4--><br />
* When option '''No Expiration at the end of a Month''' is checked, Flat-Rates plans become one time Subscriptions and in the end of month minutes of Subscription will not be reset to the initial value. User can continue using his initially assigned minutes until all minutes will be finished. Note that subscription still becomes inactive after 'Activation end' date.<br />
* A Service is applicable for a whole month - that is, the service cannot start/end in the middle of the month.<br />
* User can have more than one Flat-Rate in this case will be used not expired Flat-Rate.<br />
* Billsec show time billed without Flat-Rate. Real Billsec show time billed together with Flat-Rate.<br />
* In XLSX invoices Flat Rate service will be shown as used/total time, for example, 00:08:54/00:10:00.<br />
* Flat-Rate cannot be applied on Resellers traffic. Flat-Rate can be applied to the end Users that belong to Admin or Reseller.<br />
<br><br><br />
<br />
= Subscriptions priority =<br />
If there are two subscriptions covering the same prefix, then the following algorithm is used:<br />
<br />
when the first call covered by subscription is made at the beginning of the month, the subscription with the highest amount of minutes is selected, and then this subscription is used until its minutes end;<br />
<br />
after that, the next subscription with the highest amount of minutes is selected.<br />
<br />
Therefore if a subscription with a higher amount of minutes is added in the middle of the month, the subscription that was selected at the beginning of the will still be used until no more minutes are left, and only then minutes from a newly added subscription will be used.<br />
<br />
<br />
=See also=<br />
<br />
* [[Services]]<br />
* [[Dynamic Flat-Rates]]<br />
* [[Subscriptions]]<br />
* [[Accounting]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=CDR_Rerating&diff=29349CDR Rerating2024-02-08T11:34:51Z<p>Nerijuss: /* Other notes */</p>
<hr />
<div>= Description = <br />
<br />
This function is used when you change Tariff/Rate for some customer and you want to recalculate price for his Calls in the past. You need to select User, Period and system recalculates all prices for all Calls in selected period for selected User. It affects balance of User and statistics will show information with new prices.<br />
<br><br><br />
=Usage=<br />
<br />
Go to '''SETTINGS –> Billing –> CDR –> Rerating''':<br />
<br />
[[File:Mor_rerating_filters.png]]<br />
<br />
Select date interval and User (or multiple Users) whose Calls you want to rerate. You can select All Users and include calls of Reseller Users.<br />
<br />
Also you are able to set '''Ghost Time''' percent, this value will increase user_billsec and/or reseller_billsec and price which depends on changed user_billsec and/or reseller_billsec. Ghost Time will be calculated just from initial billsec, and if you will rerate two times with same percentage value, on second time nothing will change. 0 leaves or returns initial user_billsec and/or reseller price. By default Ghost Time is applied '''before''' Tariff rounding. If you need to apply Ghost Time on top of Tariff rounding, add additional setting in /etc/mor/system.conf:<br />
<br />
rerating_apply_ghost_time_after_rounding = 1<br />
<br />
<br><br />
Table below will show which data of Calls will be affected according each selection scenario.<br />
<br><br />
{| class="wikitable" border="1" style="border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #C0C0C0; padding: 0"<br />
|-<br />
! <br />
! One of Admin Users<br />
! One of Admin Resellers<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;All Users&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
! One of particular Reseller Users<br />
! All Users (Reseller Users Included)<br />
|-<br />
| user_billsec, <br />
user_rate, <br />
user_price<br />
| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+<br />
| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br />
| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ <br />
&nbsp;&nbsp;&nbsp;(just for Admin Users Calls)<br />
| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+<br />
| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+<br />
|-<br />
| reseller_billsec, <br />
reseller_rate, <br />
reseller_price<br />
| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br />
| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ <br />
&nbsp;(for Calls of All Reseller Users)<br />
| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+<br />
| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br />
| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ <br />
|}<br />
'''NOTE''' If in Call of Reseller User will be used one of [[Common Use Providers]] Tariff to rerate Reseller Price will be taken form ADDONS -> Resellers -> Common use Providers. If in Call of Reseller User will be used one of Provider which belongs just to Reseller, Provider Price will be rerated by that Provider tariff.<br />
<br> <br><!---Nuo x6 lieka tik FAST rerating ir test mode---> <br />
<br />
== Rerate all users == <br />
<!---This functionality is available from MOR 11---><br />
<br />
Select 'All Users' from User selection to rerate all Users at once in selected period.<br />
<br><br><br />
== Tariff from Localization ==<br />
<br />
If call's prefix is in Localization Rule which has some Tariff, this Tariff is used to count call's price instead of User's Tariff.<br />
<br />
<br><br><br />
<br />
=Other notes=<br />
<br />
* Re-rate does not take into account Flat Rates and User will be charged for such Calls. Do not do rerating for such User.<br />
<br />
* Re-rate does not work when call's DID, LCR or Owner Device is changed by Localization rules.<br />
<br />
* Re-rate will take Active Rate when Rates with [[Rate Effective From | Effective From]] are re-rated.<br />
<br />
* Min duration, Increment and Connection Fee are also changed during Re-rating. Admin still see original duration. Rounded duration is visible under User account.<br />
<br />
* Provider Billing details will be rerated.</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Voicemail&diff=29348Voicemail2024-02-07T13:38:05Z<p>Nerijuss: </p>
<hr />
<div>= Description = <br />
<br />
Voicemail (or voice mail, voice-mail, vmail or VMS, sometimes called messagebank) is a centralized system of managing telephone messages for a large group of people. The term is also used more broadly, to denote any system of conveying voice messages, including the answering machine. (http://en.wikipedia.org/wiki/Voicemail)<br />
<br />
<br />
Voicemail is automatically sent to a user's email if the email address is specified in the device details.<br />
<br />
An audio recording in WAV format is attached to the email.<br />
<br />
One minute of audio takes approx. 100 Kb.<br />
<br />
<br><br><br />
<br />
= Configuration =<br />
<br />
This section can be found in '''ADDONS –> PBX Functions –> External DIDs –> VoiceMail''':<br />
<br><br><br />
[[File:Voicemails_path.png]]<br />
<br><br><br />
[[File:Voicemails.png]]<br />
<br><br><br />
* '''VoiceMail Extension (local)''' - describes which local extensions a local user can dial to retrieve his voicemail (the system will ask him to enter his voicemail password, which can be set in the device's details).<br />
<br />
If you want to setup VoiceMail (VM) on a different server, then the following settings are important:<br />
<br />
* '''VoiceMail Server active''' - turns VM server on/off. When on, all VM requests will go to distant VM server; when off, VM will be handled locally on Asterisk.<br />
* '''VoiceMail Server connection/device''' - describes connection to VM server.<br />
* '''VoiceMail Retrieve Extension (local)''' - which extension to dial on a distant VM server to retrieve voicemail for an extension.<br />
<br />
Example:<br />
<br />
* Let's say we have our server on IP 23.45.67.89 connected with SIP to our Asterisk. <br />
* We create a separate user/device ('''vm_device''') to describe this connection. Device's type is SIP, IP = 23.45.67.89; set other settings also (codecs/etc).<br />
* '''VoiceMail Retrieve Extension (local)''' = 999.<br />
<br />
<br />
<br />
<br><br><br />
===First action is when VM is recorded===<br />
<br />
So now when the VM server is ON and the user with device 201 gets a VM, the call is redirected like this:<br />
<br />
Dial(SIP/vm_device/201)<br />
<br />
This means that the server on 23.45.67.89 will receive a call to extension 201. The server SHOULD BE configured so that it will process VM correctly when it receives such a call.<br />
<br />
<br><br><br />
===Second action - retrieving VM===<br />
<br />
When user wants to retrieve his VM on a distant machine he dials '''VoiceMail Extension (local)'''.<br />
<br />
He is redirected like this:<br />
<br />
Dial(SIP/vm_device/999#201)<br />
<br />
Again, the distant server should know how to process such a request.<br />
<br />
Let's say we have a distant VM server based on Asterisk.<br />
<br />
So in our example its configuration in '''/etc/asterisk/extensions.conf''' should look like this:<br />
<br />
[incoming]<br />
# to retrieve VM<br />
exten => _999#.,1,VoiceMailMain(${EXTEN:4})<br />
exten => _999#.,2,Hangup<br><br />
# to record VM<br />
exten => _X.,1,VoiceMail(${EXTEN})<br />
exten => _X.,2,Hangup<br />
<br />
= Retrieve VoiceMail from outside over DID =<br />
<br />
* In PBX functions create new function with type: check_voicemail.<br />
* Assign this PBX Function to a DID by editing the DID number.<br />
<br />
<br />
<br><br><br />
<br />
= FROM string =<br />
<br />
To change the Voicemail email sending FROM field, edit the /etc/asterisk/voicemail.conf file line:<br />
<br />
;fromstring=The Asterisk PBX<br />
<br />
to:<br />
<br />
fromstring=SOME OTHER LINE<br />
<br />
... and reload Asterisk.<br />
<br />
<br><br><br />
<br />
= Email sending when VM is received =<br />
<br />
* Go to [[Device_settings | Device settings]]<br />
* Locate the Voicemail field<br />
* Fill in Email – where to send received Voicemail.<br />
* Fill in Password – the digital password the user enters when he calls the Voicemail number to hear his messages.<br />
<br />
End User can change email field if User have '''VoiceMail email edit''' and '''Devices''' [[User_Permissions|permissions]] enabled. <br />
<br />
<br><br><br />
<br />
= serveremail =<br />
<br />
This setting can be used to identify the source of a voicemail notification message. <br />
<br />
;serveremail=asterisk<br />
<br />
to:<br />
<br />
serveremail=SOME OTHER LINE<br />
<br />
OR:<br />
<br />
;serveremail=asterisk@linux-support.net<br />
<br />
to<br />
<br />
serveremail=YOUR COMPANY@YOUR COMPANY.net<br />
<br />
... and reload Asterisk.<br />
<br />
Leave only one of those settings, not both.<br />
<br><br><br />
<br />
= Change Email template =<br />
<br />
Email subject line and body text can be configured only globally in Asterisk configuration file /etc/asterisk/voicemail.conf directly.<br />
Open this file with your favorite editor, and find the following lines:<br />
;emailsubject=[PBX]: New message ${VM_MSGNUM} in mailbox ${VM_MAILBOX}<br />
; The following definition is very close to the default, but the default shows<br />
; just the CIDNAME, if it is not null, otherwise just the CIDNUM, or "an unknown<br />
; caller", if they are both null.<br />
;emailbody=Dear ${VM_NAME}:\n\n\tjust wanted to let you know you were just left a ${VM_DUR} long message (number ${VM_MSGNUM})\nin mailbox ${VM_MAILBOX} from ${VM_CALLERID}, on ${VM_DATE},<br />
so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n<br />
<br />
Here you change template of Email subject line and Email body. Just uncomment (delete ; in the beginning of line) option name and change option content to your liking. After this is done reload voicemail settings with the following command:<br />
asterisk -rx 'voicemail reload'<br />
<br />
Asterisk variables related to Voicemail:<br />
${VM_CATEGORY} - Sets voicemail category<br />
${VM_NAME} * - Full name in voicemail<br />
${VM_DUR} * - Voicemail duration<br />
${VM_MSGNUM} * - Number of voicemail message in mailbox<br />
${VM_CALLERID} * - Voicemail Caller ID (Person leaving vm)<br />
${VM_CIDNAME} * - Voicemail Caller ID Name<br />
${VM_CIDNUM} * - Voicemail Caller ID Number<br />
${VM_DATE} * - Voicemail Date<br />
${VM_MESSAGEFILE} * - Path to message left by caller<br />
<br />
<br />
<br><br><br />
<br />
= Voicemail timezone =<br />
<br />
To configure specific timezone for Voicemail box, set '''label''' in the Timezone field (max 10 characters):<br />
<br />
[[File:Voicemail tz.png]]<br />
<br />
Then configure this label in /etc/asterisk/voicemail.conf under [zonemessages]:<br />
<br />
[zonemessages]<br />
central=America/Chicago|'vm-received' Q 'digits/at' IMp<br />
eastern=America/New_York|'vm-received' Q 'digits/at' IMp<br />
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'<br />
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'<br />
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM<br />
<br />
Here '''central, eastern, central24, military, european''' are default labels. Set your custom label below and configure by these rules:<br />
<br />
'filename' filename of a soundfile (single ticks around the filename required)<br />
A or a Day of week (Saturday, Sunday, ...) <br />
B or b or h Month name (January, February, ...) <br />
d or e numeric day of month (first, second, ..., thirty-first) <br />
Y Year <br />
I or l Hour, 12 hour clock <br />
H Hour, 24 hour clock (single digit hours preceded by "oh")<br />
k Hour, 24 hour clock (single digit hours NOT preceded by "oh")<br />
M Minute, with 00 pronounced as "o'clock" <br />
N Minute, with 00 pronounced as "hundred" (US military time) <br />
P or p AM or PM <br />
Q "today", "yesterday" or ABdY <br />
q "" (for today), "yesterday", weekday, or ABdY <br />
R 24 hour time, including minute<br />
<br />
After changes, restart Asterisk or execute command '''asterisk -rx 'voicemail reload''''<br />
<br />
Default timezone for all Voicemail boxes is central.<br />
<br />
More info on Asterisk Voicemails: https://www.voip-info.org/asterisk-config-voicemailconf<br />
<br />
<br><br><br />
<br />
= Change UNAVAILABLE message = <br />
<br />
Dial Voicemail access number (default *97) and press 01; then, after the signal, dictate your UNAVAILABLE message. UNAVAILABLE message is played when call to your device is forwarded to Voicemail by "Failed" or "No Answer" Call states in [[Call Flow]].<br />
<br />
UNAVAILABLE message can be only set by using method mentioned above.<br />
<br />
If default UNAVAILABLE message is changed, it is recommended to turn off intro message (http://wiki.kolmisoft.com/index.php/Call_Flow#Voicemail)<br />
<br><br><br />
<br />
= Change BUSY message = <br />
<br />
Dial Voicemail access number (default *97) and press 02; then, after the signal, dictate your BUSY message. BUSY message is played when call to your device is forwarded to Voicemail by "Busy" Call state in [[Call Flow]].<br />
<br />
BUSY message can be only set by using method mentioned above.<br />
<br />
If default BUSY message is changed, it is recommended to turn off intro message (http://wiki.kolmisoft.com/index.php/Call_Flow#Voicemail) <br />
<br><br><br />
<br />
= MWI - Message Waiting Indication =<br />
''This option is available starting from [[MOR_9_documentation | MOR 9]]''<br />
<br />
<br />
In telephony, a Message Waiting Indicator (MWI) is a telephone calling feature that illuminates a LED on selected telephones to notify a user of waiting voicemail messages. It works on most telephone networks and PBXs. ([http://en.wikipedia.org/wiki/Message-waiting_indicator Wikipedia])<br />
<br />
MWI is supported automatically starting from [[MOR 9 documentation | MOR 9]].<br />
<br />
Most phones support this feature. <br />
<br />
<br><br><br />
<br />
<br />
<br />
<br />
= Change encoding on voicemail emails =<br />
<br />
If you use, for e.g. Greek language in Voicemail text or in Users details in MOR you need to enable the UTF-8 Encoding.<br />
<br />
To do so, first of all enable it on Ast.Voicemail side. Edit '''/etc/asterisk/voicemail.conf''', uncomment '''charset''' and make it UTF-8 :<br />
<br />
charset=UTF-8<br />
<br />
To apply changes reload the Voicemail in Asterisk CLI:<br />
<br />
VM*CLI> voicemail reload<br />
<br />
This will lead to send Voicemail emails in UTF-8 Encoding. However, if you have User with details which are in, for e.g. Greek language, Asterisk should read the data from DB using UTF-8 Encoding.<br />
<br />
For this, edit the '''/etc/asterisk/res_config_mysql.conf''', uncomment '''dbcharset''' and set it to UTF-8:<br />
<br />
dbcharset = utf8<br />
<br />
Once changes are applied, reload Asterisk:<br />
<br />
VM*CLI> reload<br />
<br />
Now, Asterisk will correctly send text in UTF-8 Encoding even if, for e.g., Greek text is used in Voicemail email text or in DB.<br />
<br />
<br><br><br />
= Change Voicemail language = <br />
<br />
Set language in Device Edit window.<br />
<br />
<br><br><br />
<br />
= Delete Voicemail in mass = <br />
You can delete unwanted voicemails directly from the server.<br />
<br />
The main directory where voicemails are saved is:<br />
/var/spool/asterisk/voicemail<br />
<br />
<br><br><br />
<br />
= Maximum length of a voicemail message = <br />
Uncomment variable maxsecs in /etc/asterisk/voicemail.conf<br />
This defines the maximum amount of time in seconds of an incoming message.<br />
<br />
For example, this will set max duration to 5 minutes<br />
maxsecs = 300<br />
<br />
For changes to take effect, reload voicemail configuration<br />
asterisk -rx 'voicemail reload'<br />
<br />
<br><br><br />
<br />
= Custom email server for Voicemail emails =<br />
<br />
By default, a local email relay is used. If some other email server needs to be used, then:<br />
<br />
Install additional packages:<br />
yum install cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain<br />
<br />
Add these lines to the bottom of /etc/postfix/main.cf<br />
#smtp_tls_security_level = may #comment out this line on Rocky9<br />
relayhost = smtp.yourmailserver.com:587<br />
smtp_use_tls = yes<br />
smtp_sasl_auth_enable = yes<br />
smtp_sasl_security_options = noanonymous<br />
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd<br />
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt<br />
smtp_generic_maps = hash:/etc/postfix/generic<br />
smtp_tls_security_level = secure<br />
smtp_tls_mandatory_protocols = TLSv1<br />
#smtp_tls_mandatory_protocols = !SSLv2,!SSLv3 #on Rocky9 use this instead<br />
smtp_tls_mandatory_ciphers = high<br />
smtp_tls_secure_cert_match = nexthop<br />
<br />
Create /etc/postfix/sasl_passwd with content<br />
smtp.yourmailserver.com user@yourmailserver.com:passwordofuser<br />
<br />
run<br />
postmap /etc/postfix/sasl_passwd<br />
<br />
secure file<br />
chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db<br />
chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db<br />
<br />
Add this line to the bottom of /etc/postfix/generic<br />
root@CentOS-68-64-minimal.localdomain sender@yourmailserver.com<br />
replace "CentOS-68-64-minimal.localdomai" with your servers hostname; replace sender@yourmailserver.com with suitable sender address.<br />
<br />
Run<br />
postmap /etc/postfix/generic<br />
service postfix restart<br />
<br><br><br />
<br />
= Testing Voicemail emails =<br />
This command sends email same way as Asterisk does:<br />
mail -s "Test Subject" yourmailbox@domain.com < /dev/null<br />
<br />
on Centos7 it may fail with<br />
send-mail: Cannot open mail:25<br />
in such case add this line to bottom of /etc/ssmtp/ssmtp.conf<br />
mailhub=localhost:25<br />
<br />
<br />
<br><br><br />
<br />
= Upload prerecorded Voicemail messages =<br />
<br />
The location of the WAV file: /var/spool/asterisk/voicemail/default/1234/<br />
<br />
where 1234 is an extension number.<br />
<br />
2 files can be replaced: busy.wav and unavail.wav (names must be the same)<br />
<br />
Should be changed on all asterisk servers if there are several of them.<br />
<br />
Make sure to: [[Convert WAV file to Asterisk playable format]] before uploading.<br />
<br />
<br><br><br />
<br />
= See also = <br />
<br />
* [[Device_settings#Voicemail | Device Voicemail]]<br />
* [[No sound on Voicemail or Playback]]<br />
* [[Voicemail does not work]]<br />
* [[Voicemail is sent with wrong time]]<br />
* [[Voicemail sound files]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_CDR_Export_Templates&diff=29335M4 CDR Export Templates2024-01-31T09:16:13Z<p>Nerijuss: /* Available columns */</p>
<hr />
<div>CDR Export Templates allow to the creation of templates with specific columns for CSV files. These templates can be used to export CDRs from Last Calls.<br />
<br />
==How to download CDR by template==<br />
<br />
Go to '''Billing -> CDR -> Export -> Templates''' and create a new template with columns that you want to export.<br />
<br />
[[File:M4_cdr_export_templates.png]]<br />
<br />
Now if you go to Calls List, you should be able to see '''Export to Template''' button:<br><br />
<br />
[[File:M4_cdr_export_templates2.png]]<br />
<br />
<br>By pressing '''Export''', all CDRs by specified filters will be exported to a CSV file and only columns from CDR Template will be included.<br><br><br />
<span style="color:red;">'''CDR CSV archive will be sent via email to System administrator'''.</span><br><br><br />
'''NOTE:''' archive size is limited to 10MB! If the CDR archive is larger, then the archive will not be sent back.<br />
<br />
===Available columns===<br />
<br />
* '''Answer Time''' - date and time when the call was answered (empty if the call was not answered);<br />
* '''Billsec''' - billable duration (from the answer to hangup) excluding minimal time and increment;<br />
* '''Call ID''' - call id in the system;<br />
* '''Called From''' - Originator's number (CallerID), for example, "John Smith" <123456789>;<br />
* '''Called To''' - localized destination number;<br />
* '''Date''' - date and time when the call was started (first INVITE packet);<br />
* '''Destination''' - Direction and Destination name of dialed destination;<br />
* '''Destination Name''' - only Destination name (without Direction name);<br />
* '''Destination Number''' - original destination number (including technical prefixes);<br />
* '''Direction Name''' - only Direction name (without Destination name);<br />
* '''Disposition''' - call disposition (ANSWERED, BUSY, NO ANSWER or FAILED);<br />
* '''Duration''' - call duration from first INVITE to BYE;<br />
* '''End Time''' - date and time when call ended;<br />
* '''Hangup Cause''' - reason why call ended (Disposition + Hangup Cause Code, for example ANSWERED(16));<br />
* '''Hangup Cause Code''' - the reason why call ended (only numeric value, for example, 16);<br />
* '''Originator''' - name of Originator User (Client);<br />
* '''Originator Billsec''' - billable duration (from the answer to hangup) including Originator's increment and minimal time;<br />
* '''Originator ID''' - ID of Originator in the system;<br />
* '''Originator IP''' - Originator's IP address;<br />
* '''Originator Price''' - call price by Originator's Tariff;<br />
* '''Originator Rate''' - call rate by Originator's Tariff;<br />
* '''Originator User ID''' - ID of Originator's User in the system (Client ID);<br />
* '''PDD''' - PDD in seconds;<br />
* '''Prefix''' - prefix used to find rate;<br />
* '''Real Billsec''' - same as Billsec but in decimal (more precise);<br />
* '''Real Duration''' - same as Duration but in decimal (more precise);<br />
* '''Server ID''' - ID of server which was used to make calls;<br />
* '''Source Number''' - Originator's number part of CalleID;<br />
* '''Terminated by''' - shows who hangup the call (unknown, system, originator, terminator);<br />
* '''Terminator''' - name of Terminator User (Supplier);<br />
* '''Terminator Billsec''' - billable duration (from the answer to hangup) including Terminator's increment and minimal time;<br />
* '''Terminator ID''' - ID of Terminator in the system;<br />
* '''Terminator IP''' - Terminator's IP address;<br />
* '''Terminator Price''' - call price by Terminator's Tariff;<br />
* '''Terminator Rate''' - call rate by Terminator's Tariff;<br />
* '''Terminator Signaling IP''' - IP of the Termination Point;<br />
* '''Terminator Source''' - CallerID sent to the Terminator;<br />
* '''Terminator User ID''' - ID of Terminator's User in the system (Supplier ID);<br />
* '''Unique ID''' - uniqueid of call in the system;<br />
* '''User First Name/Company Name''' - the value is taken from User settings, section Details;<br />
* '''User Last Name''' - the value is taken from User settings, section Details;<br />
* '''User Company/Personal ID''' - the value is taken from User settings, section Details;<br />
* '''User Agreement Number''' - the value is taken from User settings, section Details;<br />
* '''User Accounting Number''' - the value is taken from User settings, section Details.<br />
<br />
Note: depending on the database structure some columns may not be displayed (this includes ''terminated by, pdd, originator id, answer time, end time'')<br />
<br />
<br><br><br />
<br />
==Email Templates==<br />
<br />
If the archive is sent successfully, the System administrator should receive a success email which can be customized in [[Emails]] settings. CDR archive will be attached.<br />
<br />
<br><br><br />
=See also=<br />
<br />
* [[M2_Automatic_CDR_Export | Automatic CDR Export]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=CDR_Export_Templates&diff=29334CDR Export Templates2024-01-31T09:14:41Z<p>Nerijuss: </p>
<hr />
<div>Funcionality can be used '''only''' by system Administrator.<br />
<br><br><br />
CDR Export Templates allow to create templates with specific columns for CSV files. These templates can be used to export CDRs from Last Calls.<br />
<br />
<br><br><br />
==How to download CDR by template==<br />
<br />
Go to '''SETTINGS -> Billing -> CDR -> Export -> Templates''' and create new template with columns that you want to export.<br />
<br />
[[File:Cdr_export_templates.png]]<br />
<br />
Now if you go to Last Calls, you should be able to see '''Export to Template''' button:<br />
<br />
[[File:Last calls cdr export template.png]]<br />
<br />
If the Export button is greyed out, it means that Email sending is not enabled or not configured correctly. In such a case, please [[Configuration_from_GUI#Emails|configure email]].<br />
<br />
By pressing '''Export''', you will be able to specify who should receive CDR CSV archive:<br />
<br><br><br />
[[File:Export to template email.png]]<br />
<br><br><br />
You may choose to send CDR to Admin (yourself) and/or specific User (CDR will be sent to User's email) and/or specific email/emails (additional emails can be added by separating them with ; for example john@email.com; smith@email.com). After specifying Emails, all CDRs by specified filters will be exported to CSV file and only columns from CDR Template will be included.<br><br><br />
<br />
'''NOTE:''' archive size is limited to 10MB! If CDR archive is larger, then archive will not be sent back.<br />
<br />
===Available columns===<br />
<br />
* '''Accountcode''' - ID of Originator (Device ID);<br />
* '''Anwser Time''' - answer time of the call;<br />
* '''Billsec''' - billable duration (from answer to hangup) excluding minimal time and increment;<br />
* '''Call ID''' - call id in MOR system;<br />
* '''Called From''' - Originator's number (CallerID), for example "John Smith" <123456789>;<br />
* '''Called To''' - localized destination number;<br />
* '''Card ID''' - Card ID;<br />
* '''DID Billsec''' - DID billable duration;<br />
* '''DID Device ID''' - ID of Device which received call;<br />
* '''DID Incoming Billsec''' - DID Billsec rounded by DID Incoming Tariff increment;<br />
* '''DID Incoming Price''' - DID price which is paid by the user who is dialing to that DID;<br />
* '''DID Number''' - DID Number;<br />
* '''DID Owner Billsec''' - DID Billsec rounded by DID Owner Rate increment;<br />
* '''DID Price''' - DID price which is paid by the user who owns dialed DID;<br />
* '''DID Provider ID''' - DID Provider ID;<br />
* '''DID Provider Billsec''' - DID Billsec rounded by DID Provider's Rate increment;<br />
* '''DID Provider Price''' - DID Provider Price;<br />
* '''DID User ID''' - ID of User who received DID call;<br />
* '''Date''' - date and time when call was started (first INVITE packet);<br />
* '''Destination''' - Direction and Destination name of dialed destination;<br />
* '''Destination Name''' - only Destination name (without Direction name);<br />
* '''Destination Number''' - original destination number (including technical prefixes);<br />
* '''Direction Name''' - only Direction name (without Destination name);<br />
* '''Disposition''' - call disposition (ANSWERED, BUSY, NO ANSWER or FAILED);<br />
* '''Duration''' - call duration from first INVITE to BYE;<br />
* '''End Time''' - end time of the call<br />
* '''Forwarded Call DID Number''' - if call has been forwarded, this field will show DID number (Leg A of call) which was dialed before call was forwarded.<br />
* '''Hangup Cause''' - reason why call ended (Disposition + Hangup Cause Code, for example ANSWERED(16));<br />
* '''Hangup Cause Code''' - reason why call ended (only numeric value, for example 16);<br />
* '''Originator Codec''' - Codec used by Originator;<br />
* '''Originator IP''' - Originator's IP address;<br />
* '''PAI Number''' - P-Asserted-Identity header's number part. This column available only if pai column exist in calls table;<br />
* '''Partner Billsec''' - billable duration (from answer to hangup) including Partner's increment and minimal time;<br />
* '''Partner ID''' - ID of Partner in MOR system;<br />
* '''Partner Price''' - call price by Partner's Tariff;<br />
* '''Partner Rate''' - call rate by Partner's Tariff;<br />
* '''Prefix''' - prefix used to find rate;<br />
* '''Profit''' - Admin's Profit;<br />
* '''Provider''' - name of Provider;<br />
* '''Provider Billsec''' - billable duration (from answer to hangup) including Provider's increment and minimal time;<br />
* '''Provider ID''' - ID of Provider in MOR system;<br />
* '''Provider Price''' - call price by Provider's Tariff;<br />
* '''Provider Rate''' - call rate by Provider's Tariff;<br />
* '''Real Billsec''' - same as Billsec but in decimal (more precise);<br />
* '''Real Duration''' - same as Duration but in decimal (more precise);<br />
* '''Reseller''' - name of Reseller;<br />
* '''Reseller Billsec''' - ID of Reseller in MOR system;<br />
* '''Reseller ID''' - billable duration (from answer to hangup) including Reseller's increment and minimal time;<br />
* '''Reseller Price''' - call price by Reseller's Tariff;<br />
* '''Reseller Rate''' - call rate by Reseller's Tariff;<br />
* '''Server ID''' - ID of server which was used to make call;<br />
* '''Source Number''' - Originator's number part of CalleID;<br />
* '''Start Time''' - start time of the call;<br />
* '''Terminator Codec''' - Codec used by Terminator;<br />
* '''Terminator IP''' - Terminator's IP address;<br />
* '''Unique ID''' - uniqueid of call in MOR system;<br />
* '''User''' - name of User;<br />
* '''User Billsec''' - billable duration (from answer to hangup) including User's increment and minimal time;<br />
* '''User ID''' - ID of User in MOR system;<br />
* '''User Price''' - call price by User's Tariff;<br />
* '''User Rate''' - call rate by User's Tariff.<br />
* '''DID Reseller ID''' - ID of a reseller.<br />
* '''DID Reseller'''- name of a reseller.<br />
* '''User First Name/Company Name''' - the value is taken from User settings, section Details.<br />
* '''User Last Name''' - the value is taken from User settings, section Details.<br />
* '''User Company/Personal ID''' - the value is taken from User settings, section Details.<br />
* '''User Agreement Number''' - the value is taken from User settings, section Details.<br />
* '''User Accounting Number''' - the value is taken from User settings, section Details.<br />
<br />
==Email Templates==<br />
<br />
If archive is sent successfully, System administrator should receive success email which can be customised in [[Emails]] settings. CDR archive will be attached.<br />
<br />
<br><br><br />
= See also =<br />
* [[How to export CDRs]]<br />
* [[Automatic CDR Export]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Dynamic_Flat-Rates&diff=29333Dynamic Flat-Rates2024-01-31T08:48:08Z<p>Nerijuss: </p>
<hr />
<div>=Description=<br />
<!--- Avilable from MOR X6---><br />
Dynamic Flat-Rates same as simple [[Flat-Rates]] means a Service plan under which a Client can dial a certain amount of minutes to certain Destinations. After the User has used all his Flat-Rate minutes, all additional minutes are charged at the normal Rate. <br />
<br />
Difference between Dynamic Flat-Rates and simple [[Flat-Rates]] that Dynamic Flat-Rates Service allows you to choose a specific day of the month to start Subscription and simple [[Flat-Rates]] can start just at the first day of the month.<br />
<br />
For example, $5.00/mo with 200 minutes to USA/Canada.<br />
<br><br><br />
<br />
= Configuration =<br />
<br />
Go to '''SETTINGS –> Accounting –> Services''':<br />
<br><br><br />
[[Image:services-menu.png]]<br />
<br><br><br />
== Create ==<br />
<br />
In Services list page click [[Image:icon_add.png]]'''New service'''<br />
Select Service type: '''Dynamic Flat-Rate'''.<br />
<br><br><br />
[[Image:dynamic_flat-rate_service_create.png]]<br />
<br><br><br />
* '''Name''' - name of Flat Service (name will be shown in invoice),<br />
* '''Memo''' - informational message about Flat-Rate (can be left empty)<br />
* '''Sell Price''' - amount which User will be charged for service subscription (excluding connection fees if any),<br />
* '''Self-Cost''' - self cost for service (for informational purposes only),<br />
* '''Minutes/month''' - how many minutes user can call using this service,<br />
* '''Round by''' - how to round call duration (default by 1 second).<br />
* '''Limit Max rate for Provider''' - Calls with a higher Provider Rate will be dropped.<br />
<br><br><br />
Set a Price and Self-Cost for this Service, set how many minutes the User can chat for at this Price and how should be rounded Call Duration.<br><br />
Create the Service by clicking ''Create''.<br><br />
In the Services window near the just-created service, click the [[Image:destinations_icon.png]] icon.<br />
<br><br><br />
[[Image:services_list_with_dynamic_flat-rates.png]]<br />
<br><br><br />
Add the Destinations to which this Service should be applied. Use Include/Exclude to create an exact list of the prefixes you want to use with this Service.<br />
Add [[Subscriptions |Subscription]] to a user to use this Service.<br />
<br><br><br />
=== Included Destinations ===<br />
<br />
If you add Destination with some prefix, it will include ALL Destinations with this prefix.<br />
<br />
Example: if you add prefix 370, ALL numbers which start with 370 will be included (370*).<br />
<br />
To see all Destinations which are included, please click the following icon:<br />
<br><br><br />
[[Image:active_destinations_icon.png]]<br />
<br><br><br />
<br />
= Acknowledgments = <br />
<br />
* Flat-Rates are calculated by seconds.<br />
* Every month at specified day, the minutes available under Flat-Rates plans are reset to the initial value, which allows the client to use the same amount of minutes each new month. The clients' unused minutes for the previous month are lost. <br />
* A Service is applicable for a whole month - that is, the service should end after a month. For example: if it starts on 2022-03-05, the Activation end date can be 2022-04-04, 2022-05-04, etc. The period is one month.<br />
* When option '''No Expiration at the end of a Month''' is checked, Flat-Rates plans become one time Subscriptions and in the end of month minutes of Subscription will not be reset to the initial value. User can continue using his initially assigned minutes until all minutes will be finished. Note that subscription still becomes inactive after 'Activation end' date.<br />
* User can have more than one Flat-Rate in this case will be used not expired Flat-Rate.<br />
* Billsec show time billed without Flat-Rate. Real Billsec show time billed together with Flat-Rate.<br />
* '''IMPORTANT: If a user is PREPAID, limit his Calls to 1, because otherwise a loss is possible. (Explanation: Calls will not be cut when Flat-Minutes will run out and small loss is possible till all Flat-Rate based Calls will finish. After that no more Calls will be possible)'''<br />
<br><br><br />
<br />
= Subscriptions priority =<br />
<br />
If there are two subscriptions covering the same prefix, then the one with the highest amount of minutes left is used.<br />
<br><br><br />
<br />
=See also=<br />
<br />
* [[Services]]<br />
* [[Flat-Rates]]<br />
* [[Subscriptions]]<br />
* [[Accounting]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Flat-Rates&diff=29332Flat-Rates2024-01-31T08:15:00Z<p>Nerijuss: </p>
<hr />
<div>=Description=<br />
<br />
Flat-Rates means a service plan under which a Client can dial a number of minutes to certain Destinations for a fixed amount (and optional additional connection fee not included in a fixed amount). After the user has used all his flat-rate minutes, all additional minutes are charged at the normal rate.<br />
<br />
For example, $5.00/mo with 200 minutes to USA/Canada.<br />
<br><br><br />
= Configuration =<br />
<br />
Go to '''SETTINGS –> Accounting –> Services''':<br />
<br><br><br />
[[Image:services-menu.png]]<br />
<br><br><br />
== Create ==<br />
<br />
In Services list page click [[Image:icon_add.png]]'''New service'''<br />
Select Service type: '''Flat-Rate'''.<br />
<br><br><br />
[[Image:flat-rate_service_create.png]]<br />
<br><br><br />
* '''Name''' - name of Flat Service (name will be shown in invoice),<br />
* '''Memo''' - informational message about Flat-Rate (can be left empty)<br />
* '''Sell Price''' - amount which User will be charged for service subscription (excluding connection fees if any),<br />
* '''Self-Cost''' - self cost for service (for informational purposes only),<br />
* '''Connection Fee''' - optional connection fee. If fee is higher than 0, it will be applied to every call and user will charged '''in addition''' to service fee.<br />
* '''Minutes/month''' - how many minutes user can call using this service,<br />
* '''Round by''' - how to round call duration (default by 1 second).<br />
* '''Limit Max rate for Provider''' - Calls with a higher Provider Rate will be dropped.<br />
<br />
<br />
Create the Service by clicking ''Create'' button.<br><br />
<br />
By default freshly created service does not have any destination. To check and/or add/remove destinations, click the [[Image:destinations_icon.png]] icon.<br />
<br><br><br />
[[Image:services_list.png]]<br />
<br><br><br />
<br />
== Add destinations ==<br />
<br />
Clicking on the [[Image:destinations_icon.png]] icon will open Destinations window where you will be able to include/exclude destinations.<br />
<br />
<br><br><br />
[[Image:flat_rate_include_destinations.png]]<br />
<br><br><br />
<br />
You have the following options to include/exclude destinations:<br />
* '''Prefix''' - enter valid prefix. Prefix '''and all sub-prefixes''' will be included. For example, if you enter prefix 370, this flat-rate service will include 370 '''and all other prefixes''' starting with 370.<br />
* '''Country/Prefix'''- this allows to choose specific country (direction) and specific prefix (destination) in that country. As in the previous example, prefix '''and all sub-prefixes''' will be included.<br />
* '''Prefixes from Destination Group''' - this allows to choose specific Destination Group. Once you choose particular group, amount of prefixes will be displayed. If you hover mouse on Prefixes word, new window will display all available prefixed in that Destination Group.<br />
<br />
<br><br><br />
== Included and Exluded Destinations ==<br />
Once you will add some destinations by any method mentioned above, you will see overview of available destinations.<br />
<br />
<br><br><br />
[[Image:Flat_rate_destinations_list.png]]<br />
<br><br><br />
<br />
You can see all active destinations for specific Country by clicking on '''Active Destinations Icon''' [[Image:Flat_rate_active_destinations_icon.png]].<br />
<br />
<br />
= Acknowledgments = <br />
<br />
* Flat-Rates are calculated by seconds.<br />
* Every month, the minutes available under Flat-Rates plans are reset to the initial value, which allows the client to use the same amount of minutes each new month. The clients' unused minutes for the previous month are lost. <br />
<!--from X4--><br />
* When option '''No Expiration at the end of a Month''' is checked, Flat-Rates plans become one time Subscriptions and in the end of month minutes of Subscription will not be reset to the initial value. User can continue using his initially assigned minutes until all minutes will be finished. Note that subscription still becomes inactive after 'Activation end' date.<br />
* A Service is applicable for a whole month - that is, the service cannot start/end in the middle of the month.<br />
* User can have more than one Flat-Rate in this case will be used not expired Flat-Rate.<br />
* Billsec show time billed without Flat-Rate. Real Billsec show time billed together with Flat-Rate.<br />
* In XLSX invoices Flat Rate service will be shown as used/total time, for example, 00:08:54/00:10:00.<br />
<br><br><br />
<br />
= Subscriptions priority =<br />
If there are two subscriptions covering the same prefix, then the following algorithm is used:<br />
<br />
when the first call covered by subscription is made at the beginning of the month, the subscription with the highest amount of minutes is selected, and then this subscription is used until its minutes end;<br />
<br />
after that, the next subscription with the highest amount of minutes is selected.<br />
<br />
Therefore if a subscription with a higher amount of minutes is added in the middle of the month, the subscription that was selected at the beginning of the will still be used until no more minutes are left, and only then minutes from a newly added subscription will be used.<br />
<br />
<br />
=See also=<br />
<br />
* [[Services]]<br />
* [[Dynamic Flat-Rates]]<br />
* [[Subscriptions]]<br />
* [[Accounting]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_interconnection_form&diff=29276M4 interconnection form2024-01-19T09:12:21Z<p>Nerijuss: </p>
<hr />
<div>Gateway Type: Softswitch<br />
<br />
Software: M4 Switch<br />
<br />
Gatekeeper/SSW Type: M4 Switch<br />
<br />
Model: M4 Switch<br />
<br />
Software: M4 Switch<br />
<br />
Signaling: SIP<br />
<br />
SIP Options Supported?: Yes<br />
<br />
SIP Option Ping interval: 60sec<br />
<br />
SIP Session Timer Supported: Yes<br />
<br />
SIP Session Keepalive: No<br />
<br />
SIP trunk direction (2WAY / IN / OUT): 2WAY<br />
<br />
Signaling IPs:port (s)/Direction: WIND → Carrier: KSR server IP, Port 5060<br />
<br />
Signaling IPs:port(s)/Direction: Carrier → WIND: KSR server IP, Port 5060<br />
<br />
Capacity / Total # of Ports/ CCs (Inbound and Outbound): depends on M4 license<br />
<br />
Media IP’s/Direction: WIND → Carrier: KSR server IP<br />
<br />
Media IP’s/Direction: Carrier → WIND: KSR server IP<br />
<br />
Codec: [[M4_Supported_Codecs]] depends on what will be selected on TP/OP<br />
<br />
Voice: Yes<br />
<br />
DTMF: passthrough<br />
<br />
Fax: passthrough<br />
<br />
Packet Size: 1492b max<br />
<br />
Transcoding supported: Yes</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_interconnection_form&diff=29275M4 interconnection form2024-01-19T09:11:03Z<p>Nerijuss: Created page with "Gateway Type: Softswitch Software: M4 Switch Gatekeeper/SSW Type: M4 Switch Model: M4 Switch Software: M4 Switch Signaling: SIP SIP Options Supported?: Yes SIP Option Ping interval: 60sec SIP Session Timer Supported: Yes SIP Session Keepalive: No SIP trunk direction (2WAY / IN / OUT): 2WAY Signaling IPs:port (s)/Direction: WIND → Carrier: KSR server IP, Port 5060 Signaling IPs:port(s)/Direction: Carrier → WIND: KSR server IP, Port 5060 Capacity / Total # of Ports/..."</p>
<hr />
<div>Gateway Type: Softswitch<br />
Software: M4 Switch<br />
Gatekeeper/SSW Type: M4 Switch<br />
Model: M4 Switch<br />
Software: M4 Switch<br />
Signaling: SIP<br />
SIP Options Supported?: Yes<br />
SIP Option Ping interval: 60sec<br />
SIP Session Timer Supported: Yes<br />
SIP Session Keepalive: No<br />
SIP trunk direction (2WAY / IN / OUT): 2WAY<br />
Signaling IPs:port (s)/Direction: WIND → Carrier: KSR server IP, Port 5060<br />
Signaling IPs:port(s)/Direction: Carrier → WIND: KSR server IP, Port 5060<br />
Capacity / Total # of Ports/ CCs (Inbound and Outbound): depends on M4 license<br />
Media IP’s/Direction: WIND → Carrier: KSR server IP<br />
Media IP’s/Direction: Carrier → WIND: KSR server IP<br />
Codec: [[M4_Supported_Codecs]]<br />
Voice: Yes<br />
DTMF: passthrough<br />
Fax: passthrough<br />
Packet Size: 1492b max<br />
Transcoding supported: Yes</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Restrict_Access_To_GUI&diff=29271Restrict Access To GUI2024-01-16T14:56:39Z<p>Nerijuss: </p>
<hr />
<div>== Restrict access to GUI using Apache configuration ==<br />
Edit file:<br />
<br />
/etc/httpd/conf/httpd.conf<br />
<br />
Add these lines to the bottom of the file:<br />
<br />
<Location /><br />
Order deny,allow<br />
Deny from all<br />
Allow from 192.168.0.192<br />
Allow from 192.168.0.69<br />
Allow from 10.0.0.0/24<br />
Allow from 127.0.0.1<br />
</Location><br />
<br />
<Location /.well-known><br />
Order deny,allow<br />
Allow from all<br />
</Location><br />
<br />
<br />
Access to GUI will be forbidden for all hosts except 192.168.0.192 and 192.168.0.69.<br />
<br />
'''IMPORTANT:''' '''ALL''' system IPs must be inserted to be allowed in this file.</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Recommended_hardware&diff=29240Recommended hardware2024-01-03T08:41:51Z<p>Nerijuss: /* Specifications */</p>
<hr />
<div>== Specifications ==<br />
<br />
Main principle - as powerful as possible. <br />
<br />
It is required to have a clean server without any additional packets installed. <br />
<br />
Default Centos kernel is required for all functionality to work correctly.<br />
<br />
For single server solution we recommend:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" <br />
| '''Component''' || '''Minimum requirement (for testing)''' || '''Recommended (for production)''' || '''Comment'''<br />
|-<br />
| CPU || 4c/8t (four core, eight thread) Xeon || any higher CPU, at least 8 cores || <br />
|-<br />
| RAM || 16 GB || 32 GB || 32/64 GB ||<br />
|-<br />
| HDD || 100 Gb SSD (Solid State Drives) all space must be assigned to / partition; 500+ GB for M4 || 500+ Gb, SSD (Solid State Drives)/NVM Express (NVMe), [http://en.wikipedia.org/wiki/RAID#RAID_1 RAID Type 1] all space must be assigned to / partition; || separated /boot partition is fine since it is small; do not create separated partitions for /home, /var and similar ||<br />
|-<br />
| OS || [[Centos7_installation |Centos 7 x86_64]] or [https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.3-x86_64-minimal.iso Rocky 9 x86_64] || [[Centos7_installation |Centos 7 x86_64]] or [https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.3-x86_64-minimal.iso Rocky 9 x86_64] || OS timezone must be set to UTC or at least to Timezone which does not have daylight saving <br />
|-<br />
| NIC|| Any || '''M4''': Intel I210, I350, X550T (if you need over 700 concurrent calls) || Realtek RTL8111/8168/8411, Intel 82574L are weak NICs, not recommended <br />
|-<br />
| Brand|| Any || Intel, DELL, HP, Fujitsu ||<br />
|}<br />
<br />
<br><br><br />
<br />
== Requirements for specific elements in a multi-server deployment ==<br />
<br />
'''Asterisk/Core server:''' same requirements as above, except SSD would not increase performance so it is not needed and 4 GB of RAM is sufficient. CPU is most important component here. If Proxy solution is in use, Asterisks cannot be under NAT, it must have Public IP for SIP and RTP traffic. Must be located as close as possible to Database server to avoid problems caused by latency.<br />
<br />
'''Database server:''' same requirements as above and SSD is highly recommended here. SSD is must if system has more than one Asterisk server. There should be 100GB or more space as database grows fast on high traffic. It is recommended to start with at least 400GB on M2 systems. Fast data storage device and CPU are most important here. If more than one Database server is in use, UPS (Uninterruptible Power Supply) devices must be used for these servers, otherwise power outage would cause broken replication. 8Gb RAM minimum. Must be located as close as possible to Asterisk server to avoid problems caused by latency.<br />
<br />
'''GUI server:''' same requirements as above, except SSD would not increase performance a lot. HDD with more space is recommended here.<br />
<br />
'''Proxy server:''' same requirements as above, except 4 GB of RAM and 40 GB on HDD will be enough here. SSD would not increase performance. Proxy server cannot be under NAT, it must have Public IP for SIP traffic.<br />
<br><br><br />
== Requirements for redundant deployment ==<br />
Requirements for network to which servers are connected:<br />
* Both servers should be within same subnet.<br />
* Both servers should be able to ''broadcast'' packets to UDP 694 port.<br />
* Both servers should be able to receive packets broadcasted by other server.<br />
* There should be Virtual IP reserved in Subnet.<br />
* Both servers should be able to work with that Virtual IP (only one server at same time).<br />
<br />
If any of requirements above are not met, in some cases it is possible to adapt different network configurations or services (like "IP Failover").<br />
<br />
In this case, you need to develop and manage special scripts or third-party software to achieve this (Kolmisoft does not provide this service).<br />
<br />
<br><br><br />
<br />
== Virtualization ==<br />
<br />
MOR system was tested and working on the following Virtualization technologies:<br />
* VMware<br />
* VirtualBox<br />
* XEN<br />
* AWS<br />
* Azure<br />
<br />
In general, we do not recommend using Virtual machines for multi-server solutions when those Virtual machines are running on the same host. <br />
<br />
Best multi-server system performance is achieved when running on Dedicated servers or on Virtual machines running on dedicated servers. <br />
<br />
<br><br><br />
<br />
== FAQ ==<br />
<br />
* '''Do you have the provision of STUN and TURN servers on your end?'''<br />
<br />
No, we do not provide STUN servers. MOR should receive Public IPs on SIP headers. NAT traversal should be done on the customer's side.<br />
<br />
* '''Can I have redundancy between two data centers?'''<br />
<br />
There's always a risk that the data center in which you keep your servers can be down for various reasons.<br />
<br />
To reduce such risk, you can consider redundancy between two data centers located in different countries or continents.<br />
<br />
Such implementation can work only if both data centers meet the requirements described [[Recommended_hardware#Requirements_for_redundant_deployment | here]].<br />
<br />
However, we do not recommend this because of the following reasons:<br />
<br />
1. Different data centers cannot ensure the same subnet for servers, so you must use VPN which is difficult to manage or DNS.<br />
<br />
2. MySQL replication requires a stable connection. If replication fails, you will have a "split-brain" scenario and it will not be possible to fix this without losing calls and billing information.<br />
<br />
<br><br><br />
<br />
= See also =<br />
<br />
* [[How fast MOR can perform]]<br />
* [[Check server compatibility]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=How_to_set_up_SSL_certificate_with_Let%27s_Encrypt&diff=29235How to set up SSL certificate with Let's Encrypt2023-12-27T12:20:22Z<p>Nerijuss: /* Method 1 (using yum packages) */</p>
<hr />
<div>== About Let's Encrypt ==<br />
[https://letsencrypt.org/ Let's Encrypt] provides free valid SSL certificates<br />
<br />
<br><br />
== Before proceeding ==<br />
To proceed the following is needed:<br />
* Domain name pointed to switch IP (it is not possible to create a Let's Encrypt SSL certificate for IP address)<br />
* Email address to get notifications from Let's Encrypt<br />
* SSH access to the server with root privileges<br />
<br><br><br />
Make sure that firewalls are not blocking the following domains used for the creation and update of certificates:<br />
<br />
acme-v01.api.letsencrypt.org<br />
<br />
acme-staging.api.letsencrypt.org<br />
<br />
acme-v02.api.letsencrypt.org<br />
<br />
acme-staging-v02.api.letsencrypt.org<br />
<br><br><br />
<br />
== Installation ==<br />
In the example below let's assume that the domain name is example.com<br />
<br />
Before installation, it is a good idea to backup /etc/httpd folder<br />
<br />
cp -a /etc/httpd/ /usr/local/mor/backups/<br />
<br />
<br><br><br />
=== Method 1 (using yum packages) ===<br />
Based on this [https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-centos-7 guide]<br />
<br />
Centos 7:<br />
yum install certbot python2-certbot-apache mod_ssl<br />
<br />
Rocky 9:<br />
yum install certbot python3-certbot-apache mod_ssl<br />
<br />
if installation is completed without errors, run certbot command (prepare to answer yes/no questions and enter the domain name(s) and email)<br />
<br />
certbot --apache <br />
<br />
<br />
If the command is completed successfully, going to <nowiki>https://example.com/billing</nowiki> should show a secure connection<br />
<br />
if everything is OK, test certificate renewal and install renewal cron<br />
certbot renew --dry-run<br />
<br />
If successful it should show at the end<br />
<br />
Congratulations, all simulated renewals succeeded: <br />
Congratulations, all simulated renewals succeeded: <br />
/etc/letsencrypt/live/example.com/fullchain.pem (success)<br />
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br />
<br />
Create a cron to renew certificates automatically <br />
<br />
#if US is blocked<br />
echo "20 0,12 * * * root /usr/sbin/iptables -D MOR-BLOCKED-COUNTRIES -m set --match-set mor_us_ips src -j DROP && /usr/bin/certbot renew" > /etc/cron.d/certbot_renewal_cron<br />
#if US is not blocked<br />
echo "20 0,12 * * * root /usr/bin/certbot renew" > /etc/cron.d/certbot_renewal_cron<br />
chmod 644 /etc/cron.d/certbot_renewal_cron<br />
service crond restart<br />
<br />
This will try to renew the certificate two times every day. Certbot will try to actually renew certificates once the expiration day will be less than 30 days<br />
<br />
<br />
If you get an error:<br />
<br />
Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.<br />
<br />
That means there is a problem with <VirtualHost *:80> configuration in /etc/httpd/httpd.conf<br />
<br />
Check with:<br />
<br />
apachectl -t -D DUMP_VHOSTS<br />
<br />
<br />
NOTE: this procedure overwrites /usr/lib/systemd/system/httpd.service<br />
<br />
Check with:<br />
<br />
grep -i private /usr/lib/systemd/system/httpd.service<br />
<br />
If you see PrivateTmp=true and need false, do:<br />
<br />
sed -i "s|PrivateTmp=true\+|PrivateTmp=false|g" /usr/lib/systemd/system/httpd.service<br />
systemctl daemon-reload && systemctl restart httpd.service<br />
<br />
If you get an error:<br />
Deploying certificate<br />
Could not install certificate<br />
NEXT STEPS:<br />
- The certificate was saved, but could not be installed (installer: apache). After fixing the error shown below, try installing it again by running:<br />
certbot install --cert-name sswitch.key2pbx.ca<br />
Could not reverse map the HTTPS VirtualHost to the original<br />
<br />
Then create a file /etc/httpd/conf.d/mor-le-ssl.conf:<br />
<IfModule mod_ssl.c><br />
<VirtualHost *:443><br />
DocumentRoot /var/www/html<br />
<Directory /var/www/html><br />
Allow from all<br />
</Directory><br />
RailsBaseURI /billing<br />
<Directory /var/www/html/billing><br />
Options -MultiViews<br />
</Directory><br />
RackEnv production<br />
PassengerDefaultUser apache<br />
PassengerDefaultGroup apache<br />
ServerName '''change to your domain'''<br />
SSLCertificateFile /etc/letsencrypt/live/'''change to your domain'''/cert.pem<br />
SSLCertificateKeyFile /etc/letsencrypt/live/'''change to your domain'''/privkey.pem<br />
Include /etc/letsencrypt/options-ssl-apache.conf<br />
SSLCertificateChainFile /etc/letsencrypt/live/'''change to your domain'''/chain.pem<br />
</VirtualHost><br />
</IfModule><br />
<br />
Run certificate renewal again to make sure there are no errors.<br />
<br />
<br />
<br />
<br />
<br><br><br />
<br />
=== Method 2 (using snap management system) ===<br />
To streamline the install process across different Linux Distributions, the Let's Encrypt official guide use snapd management system<br />
<br />
If you want to use snaps, please use this guide:<br />
<br />
https://certbot.eff.org/lets-encrypt/centosrhel7-apache.html<br />
<br />
Using this installation method, automatic renewal will be configured automatically (it will be systemd timer, not a simple cron)<br />
systemctl list-timers <br />
NEXT LEFT LAST PASSED UNIT ACTIVATES<br />
Tr 2021-10-06 12:42:00 CEST 41min left Tr 2021-10-06 05:11:01 CEST 6h ago snap.certbot.renew.timer snap.certbot.renew.service<br />
<br />
<br><br><br />
== Logs ==<br />
Let's encrypt log<br />
/var/log/letsencrypt/letsencrypt.log<br />
<br />
<br><br><br />
== Accessing switch without /billing suffix ==<br />
Follow the guide [[I see Apache test on Start page| here]]<br />
<br />
Use https instead of http and domain names instead of 127.0.0.1</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Recommended_hardware&diff=29218Recommended hardware2023-12-14T08:48:18Z<p>Nerijuss: /* Specifications */</p>
<hr />
<div>== Specifications ==<br />
<br />
Main principle - as powerful as possible. <br />
<br />
It is required to have a clean server without any additional packets installed. <br />
<br />
Default Centos kernel is required for all functionality to work correctly.<br />
<br />
For single server solution we recommend:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" <br />
| '''Component''' || '''Minimum requirement (for testing)''' || '''Recommended (for production)''' || '''Comment'''<br />
|-<br />
| CPU || 4c/8t (four core, eight thread) Xeon || any higher CPU, at least 8 cores || <br />
|-<br />
| RAM || 8 GB || 32 GB || 32/64 GB ||<br />
|-<br />
| HDD || 100 Gb SSD (Solid State Drives) all space must be assigned to / partition; 500+ GB for M4 || 500+ Gb, SSD (Solid State Drives)/NVM Express (NVMe), [http://en.wikipedia.org/wiki/RAID#RAID_1 RAID Type 1] all space must be assigned to / partition; || separated /boot partition is fine since it is small; do not create separated partitions for /home, /var and similar ||<br />
|-<br />
| OS || [[Centos7_installation |Centos 7 x86_64]] || [[Centos7_installation |Centos 7 x86_64]] || OS timezone must be set to UTC or at least to Timezone which does not have daylight saving <br />
|-<br />
| NIC|| Any || '''M4''': Intel I210, I350, X550T (if you need over 700 concurrent calls) || Realtek RTL8111/8168/8411, Intel 82574L are weak NICs, not recommended <br />
|-<br />
| Brand|| Any || Intel, DELL, HP, Fujitsu ||<br />
|}<br />
<br />
<br><br><br />
<br />
== Requirements for specific elements in a multi-server deployment ==<br />
<br />
'''Asterisk/Core server:''' same requirements as above, except SSD would not increase performance so it is not needed and 4 GB of RAM is sufficient. CPU is most important component here. If Proxy solution is in use, Asterisks cannot be under NAT, it must have Public IP for SIP and RTP traffic. Must be located as close as possible to Database server to avoid problems caused by latency.<br />
<br />
'''Database server:''' same requirements as above and SSD is highly recommended here. SSD is must if system has more than one Asterisk server. There should be 100GB or more space as database grows fast on high traffic. It is recommended to start with at least 400GB on M2 systems. Fast data storage device and CPU are most important here. If more than one Database server is in use, UPS (Uninterruptible Power Supply) devices must be used for these servers, otherwise power outage would cause broken replication. 8Gb RAM minimum. Must be located as close as possible to Asterisk server to avoid problems caused by latency.<br />
<br />
'''GUI server:''' same requirements as above, except SSD would not increase performance a lot. HDD with more space is recommended here.<br />
<br />
'''Proxy server:''' same requirements as above, except 4 GB of RAM and 40 GB on HDD will be enough here. SSD would not increase performance. Proxy server cannot be under NAT, it must have Public IP for SIP traffic.<br />
<br><br><br />
== Requirements for redundant deployment ==<br />
Requirements for network to which servers are connected:<br />
* Both servers should be within same subnet.<br />
* Both servers should be able to ''broadcast'' packets to UDP 694 port.<br />
* Both servers should be able to receive packets broadcasted by other server.<br />
* There should be Virtual IP reserved in Subnet.<br />
* Both servers should be able to work with that Virtual IP (only one server at same time).<br />
<br />
If any of requirements above are not met, in some cases it is possible to adapt different network configurations or services (like "IP Failover").<br />
<br />
In this case, you need to develop and manage special scripts or third-party software to achieve this (Kolmisoft does not provide this service).<br />
<br />
<br><br><br />
<br />
== Virtualization ==<br />
<br />
MOR system was tested and working on the following Virtualization technologies:<br />
* VMware<br />
* VirtualBox<br />
* XEN<br />
* AWS<br />
* Azure<br />
<br />
In general, we do not recommend using Virtual machines for multi-server solutions when those Virtual machines are running on the same host. <br />
<br />
Best multi-server system performance is achieved when running on Dedicated servers or on Virtual machines running on dedicated servers. <br />
<br />
<br><br><br />
<br />
== FAQ ==<br />
<br />
* '''Do you have the provision of STUN and TURN servers on your end?'''<br />
<br />
No, we do not provide STUN servers. MOR should receive Public IPs on SIP headers. NAT traversal should be done on the customer's side.<br />
<br />
* '''Can I have redundancy between two data centers?'''<br />
<br />
There's always a risk that the data center in which you keep your servers can be down for various reasons.<br />
<br />
To reduce such risk, you can consider redundancy between two data centers located in different countries or continents.<br />
<br />
Such implementation can work only if both data centers meet the requirements described [[Recommended_hardware#Requirements_for_redundant_deployment | here]].<br />
<br />
However, we do not recommend this because of the following reasons:<br />
<br />
1. Different data centers cannot ensure the same subnet for servers, so you must use VPN which is difficult to manage or DNS.<br />
<br />
2. MySQL replication requires a stable connection. If replication fails, you will have a "split-brain" scenario and it will not be possible to fix this without losing calls and billing information.<br />
<br />
<br><br><br />
<br />
= See also =<br />
<br />
* [[How fast MOR can perform]]<br />
* [[Check server compatibility]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Voicemail&diff=29217Voicemail2023-12-12T06:44:32Z<p>Nerijuss: /* Testing Voicemail emails */</p>
<hr />
<div>= Description = <br />
<br />
Voicemail (or voice mail, voice-mail, vmail or VMS, sometimes called messagebank) is a centralized system of managing telephone messages for a large group of people. The term is also used more broadly, to denote any system of conveying voice messages, including the answering machine. (http://en.wikipedia.org/wiki/Voicemail)<br />
<br />
<br />
Voicemail is automatically sent to a user's email if the email address is specified in the device details.<br />
<br />
An audio recording in WAV format is attached to the email.<br />
<br />
One minute of audio takes approx. 100 Kb.<br />
<br />
<br><br><br />
<br />
= Configuration =<br />
<br />
This section can be found in '''ADDONS –> PBX Functions –> External DIDs –> VoiceMail''':<br />
<br><br><br />
[[File:Voicemails_path.png]]<br />
<br><br><br />
[[File:Voicemails.png]]<br />
<br><br><br />
* '''VoiceMail Extension (local)''' - describes which local extensions a local user can dial to retrieve his voicemail (the system will ask him to enter his voicemail password, which can be set in the device's details).<br />
<br />
If you want to setup VoiceMail (VM) on a different server, then the following settings are important:<br />
<br />
* '''VoiceMail Server active''' - turns VM server on/off. When on, all VM requests will go to distant VM server; when off, VM will be handled locally on Asterisk.<br />
* '''VoiceMail Server connection/device''' - describes connection to VM server.<br />
* '''VoiceMail Retrieve Extension (local)''' - which extension to dial on a distant VM server to retrieve voicemail for an extension.<br />
<br />
Example:<br />
<br />
* Let's say we have our server on IP 23.45.67.89 connected with SIP to our Asterisk. <br />
* We create a separate user/device ('''vm_device''') to describe this connection. Device's type is SIP, IP = 23.45.67.89; set other settings also (codecs/etc).<br />
* '''VoiceMail Retrieve Extension (local)''' = 999.<br />
<br />
<br />
<br />
<br><br><br />
===First action is when VM is recorded===<br />
<br />
So now when the VM server is ON and the user with device 201 gets a VM, the call is redirected like this:<br />
<br />
Dial(SIP/vm_device/201)<br />
<br />
This means that the server on 23.45.67.89 will receive a call to extension 201. The server SHOULD BE configured so that it will process VM correctly when it receives such a call.<br />
<br />
<br><br><br />
===Second action - retrieving VM===<br />
<br />
When user wants to retrieve his VM on a distant machine he dials '''VoiceMail Extension (local)'''.<br />
<br />
He is redirected like this:<br />
<br />
Dial(SIP/vm_device/999#201)<br />
<br />
Again, the distant server should know how to process such a request.<br />
<br />
Let's say we have a distant VM server based on Asterisk.<br />
<br />
So in our example its configuration in '''/etc/asterisk/extensions.conf''' should look like this:<br />
<br />
[incoming]<br />
# to retrieve VM<br />
exten => _999#.,1,VoiceMailMain(${EXTEN:4})<br />
exten => _999#.,2,Hangup<br><br />
# to record VM<br />
exten => _X.,1,VoiceMail(${EXTEN})<br />
exten => _X.,2,Hangup<br />
<br />
= Retrieve VoiceMail from outside over DID =<br />
<br />
* In PBX functions create new function with type: check_voicemail.<br />
* Assign this PBX Function to a DID by editing the DID number.<br />
<br />
<br />
<br><br><br />
<br />
= FROM string =<br />
<br />
To change the Voicemail email sending FROM field, edit the /etc/asterisk/voicemail.conf file line:<br />
<br />
;fromstring=The Asterisk PBX<br />
<br />
to:<br />
<br />
fromstring=SOME OTHER LINE<br />
<br />
... and reload Asterisk.<br />
<br />
<br><br><br />
<br />
= Email sending when VM is received =<br />
<br />
* Go to [[Device_settings | Device settings]]<br />
* Locate the Voicemail field<br />
* Fill in Email – where to send received Voicemail.<br />
* Fill in Password – the digital password the user enters when he calls the Voicemail number to hear his messages.<br />
<br />
End User can change email field if User have '''VoiceMail email edit''' and '''Devices''' [[User_Permissions|permissions]] enabled. <br />
<br />
<br><br><br />
<br />
= serveremail =<br />
<br />
This setting can be used to identify the source of a voicemail notification message. <br />
<br />
;serveremail=asterisk<br />
<br />
to:<br />
<br />
serveremail=SOME OTHER LINE<br />
<br />
OR:<br />
<br />
;serveremail=asterisk@linux-support.net<br />
<br />
to<br />
<br />
serveremail=YOUR COMPANY@YOUR COMPANY.net<br />
<br />
... and reload Asterisk.<br />
<br />
Leave only one of those settings, not both.<br />
<br><br><br />
<br />
= Change Email template =<br />
<br />
Email subject line and body text can be configured only globally in Asterisk configuration file /etc/asterisk/voicemail.conf directly.<br />
Open this file with your favorite editor, and find the following lines:<br />
;emailsubject=[PBX]: New message ${VM_MSGNUM} in mailbox ${VM_MAILBOX}<br />
; The following definition is very close to the default, but the default shows<br />
; just the CIDNAME, if it is not null, otherwise just the CIDNUM, or "an unknown<br />
; caller", if they are both null.<br />
;emailbody=Dear ${VM_NAME}:\n\n\tjust wanted to let you know you were just left a ${VM_DUR} long message (number ${VM_MSGNUM})\nin mailbox ${VM_MAILBOX} from ${VM_CALLERID}, on ${VM_DATE},<br />
so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n<br />
<br />
Here you change template of Email subject line and Email body. Just uncomment (delete ; in the beginning of line) option name and change option content to your liking. After this is done reload voicemail settings with the following command:<br />
asterisk -rx 'voicemail reload'<br />
<br />
Asterisk variables related to Voicemail:<br />
${VM_CATEGORY} - Sets voicemail category<br />
${VM_NAME} * - Full name in voicemail<br />
${VM_DUR} * - Voicemail duration<br />
${VM_MSGNUM} * - Number of voicemail message in mailbox<br />
${VM_CALLERID} * - Voicemail Caller ID (Person leaving vm)<br />
${VM_CIDNAME} * - Voicemail Caller ID Name<br />
${VM_CIDNUM} * - Voicemail Caller ID Number<br />
${VM_DATE} * - Voicemail Date<br />
${VM_MESSAGEFILE} * - Path to message left by caller<br />
<br />
<br />
<br><br><br />
<br />
= Voicemail timezone =<br />
<br />
To configure specific timezone for Voicemail box, set '''label''' in the Timezone field (max 10 characters):<br />
<br />
[[File:Voicemail tz.png]]<br />
<br />
Then configure this label in /etc/asterisk/voicemail.conf under [zonemessages]:<br />
<br />
[zonemessages]<br />
central=America/Chicago|'vm-received' Q 'digits/at' IMp<br />
eastern=America/New_York|'vm-received' Q 'digits/at' IMp<br />
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'<br />
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'<br />
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM<br />
<br />
Here '''central, eastern, central24, military, european''' are default labels. Set your custom label below and configure by these rules:<br />
<br />
'filename' filename of a soundfile (single ticks around the filename required)<br />
A or a Day of week (Saturday, Sunday, ...) <br />
B or b or h Month name (January, February, ...) <br />
d or e numeric day of month (first, second, ..., thirty-first) <br />
Y Year <br />
I or l Hour, 12 hour clock <br />
H Hour, 24 hour clock (single digit hours preceded by "oh")<br />
k Hour, 24 hour clock (single digit hours NOT preceded by "oh")<br />
M Minute, with 00 pronounced as "o'clock" <br />
N Minute, with 00 pronounced as "hundred" (US military time) <br />
P or p AM or PM <br />
Q "today", "yesterday" or ABdY <br />
q "" (for today), "yesterday", weekday, or ABdY <br />
R 24 hour time, including minute<br />
<br />
After changes, restart Asterisk or execute command '''asterisk -rx 'voicemail reload''''<br />
<br />
Default timezone for all Voicemail boxes is central.<br />
<br />
More info on Asterisk Voicemails: https://www.voip-info.org/asterisk-config-voicemailconf<br />
<br />
<br><br><br />
<br />
= Change UNAVAILABLE message = <br />
<br />
Dial Voicemail access number (default *97) and press 01; then, after the signal, dictate your UNAVAILABLE message. UNAVAILABLE message is played when call to your device is forwarded to Voicemail by "Failed" or "No Answer" Call states in [[Call Flow]].<br />
<br />
UNAVAILABLE message can be only set by using method mentioned above.<br />
<br />
If default UNAVAILABLE message is changed, it is recommended to turn off intro message (http://wiki.kolmisoft.com/index.php/Call_Flow#Voicemail)<br />
<br><br><br />
<br />
= Change BUSY message = <br />
<br />
Dial Voicemail access number (default *97) and press 02; then, after the signal, dictate your BUSY message. BUSY message is played when call to your device is forwarded to Voicemail by "Busy" Call state in [[Call Flow]].<br />
<br />
BUSY message can be only set by using method mentioned above.<br />
<br />
If default BUSY message is changed, it is recommended to turn off intro message (http://wiki.kolmisoft.com/index.php/Call_Flow#Voicemail) <br />
<br><br><br />
<br />
= MWI - Message Waiting Indication =<br />
''This option is available starting from [[MOR_9_documentation | MOR 9]]''<br />
<br />
<br />
In telephony, a Message Waiting Indicator (MWI) is a telephone calling feature that illuminates a LED on selected telephones to notify a user of waiting voicemail messages. It works on most telephone networks and PBXs. ([http://en.wikipedia.org/wiki/Message-waiting_indicator Wikipedia])<br />
<br />
MWI is supported automatically starting from [[MOR 9 documentation | MOR 9]].<br />
<br />
Most phones support this feature. <br />
<br />
<br><br><br />
<br />
<br />
<br />
<br />
= Change encoding on voicemail emails =<br />
<br />
If you use, for e.g. Greek language in Voicemail text or in Users details in MOR you need to enable the UTF-8 Encoding.<br />
<br />
To do so, first of all enable it on Ast.Voicemail side. Edit '''/etc/asterisk/voicemail.conf''', uncomment '''charset''' and make it UTF-8 :<br />
<br />
charset=UTF-8<br />
<br />
To apply changes reload the Voicemail in Asterisk CLI:<br />
<br />
VM*CLI> voicemail reload<br />
<br />
This will lead to send Voicemail emails in UTF-8 Encoding. However, if you have User with details which are in, for e.g. Greek language, Asterisk should read the data from DB using UTF-8 Encoding.<br />
<br />
For this, edit the '''/etc/asterisk/res_config_mysql.conf''', uncomment '''dbcharset''' and set it to UTF-8:<br />
<br />
dbcharset = utf8<br />
<br />
Once changes are applied, reload Asterisk:<br />
<br />
VM*CLI> reload<br />
<br />
Now, Asterisk will correctly send text in UTF-8 Encoding even if, for e.g., Greek text is used in Voicemail email text or in DB.<br />
<br />
<br><br><br />
= Change Voicemail language = <br />
<br />
Set language in Device Edit window.<br />
<br />
<br><br><br />
<br />
= Delete Voicemail in mass = <br />
You can delete unwanted voicemails directly from the server.<br />
<br />
The main directory where voicemails are saved is:<br />
/var/spool/asterisk/voicemail<br />
<br />
<br><br><br />
<br />
= Maximum length of a voicemail message = <br />
Uncomment variable maxsecs in /etc/asterisk/voicemail.conf<br />
This defines the maximum amount of time in seconds of an incoming message.<br />
<br />
For example, this will set max duration to 5 minutes<br />
maxsecs = 300<br />
<br />
For changes to take effect, reload voicemail configuration<br />
asterisk -rx 'voicemail reload'<br />
<br />
<br><br><br />
<br />
= Custom email server for Voicemail emails =<br />
<br />
By default, a local email relay is used. If some other email server needs to be used, then:<br />
<br />
Install additional packages:<br />
yum install cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain<br />
<br />
Add these lines to the bottom of /etc/postfix/main.cf<br />
relayhost = smtp.yourmailserver.com:587<br />
smtp_use_tls = yes<br />
smtp_sasl_auth_enable = yes<br />
smtp_sasl_security_options = noanonymous<br />
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd<br />
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt<br />
smtp_generic_maps = hash:/etc/postfix/generic<br />
smtp_tls_security_level = secure<br />
smtp_tls_mandatory_protocols = TLSv1<br />
smtp_tls_mandatory_ciphers = high<br />
smtp_tls_secure_cert_match = nexthop<br />
<br />
Create /etc/postfix/sasl_passwd with content<br />
smtp.yourmailserver.com user@yourmailserver.com:passwordofuser<br />
<br />
run<br />
postmap /etc/postfix/sasl_passwd<br />
<br />
secure file<br />
chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db<br />
chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db<br />
<br />
Add this line to the bottom of /etc/postfix/generic<br />
root@CentOS-68-64-minimal.localdomain sender@yourmailserver.com<br />
replace "CentOS-68-64-minimal.localdomai" with your servers hostname; replace sender@yourmailserver.com with suitable sender address.<br />
<br />
Run<br />
postmap /etc/postfix/generic<br />
service postfix restart<br />
<br><br><br />
<br />
= Testing Voicemail emails =<br />
This command sends email same way as Asterisk does:<br />
mail -s "Test Subject" yourmailbox@domain.com < /dev/null<br />
<br />
on Centos7 it may fail with<br />
send-mail: Cannot open mail:25<br />
in such case add this line to bottom of /etc/ssmtp/ssmtp.conf<br />
mailhub=localhost:25<br />
<br />
<br />
<br><br><br />
<br />
= Upload prerecorded Voicemail messages =<br />
<br />
The location of the WAV file: /var/spool/asterisk/voicemail/default/1234/<br />
<br />
where 1234 is an extension number.<br />
<br />
2 files can be replaced: busy.wav and unavail.wav (names must be the same)<br />
<br />
Should be changed on all asterisk servers if there are several of them.<br />
<br />
Make sure to: [[Convert WAV file to Asterisk playable format]] before uploading.<br />
<br />
<br><br><br />
<br />
= See also = <br />
<br />
* [[Device_settings#Voicemail | Device Voicemail]]<br />
* [[No sound on Voicemail or Playback]]<br />
* [[Voicemail does not work]]<br />
* [[Voicemail is sent with wrong time]]<br />
* [[Voicemail sound files]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=How_to_set_up_SSL_certificate_with_Let%27s_Encrypt&diff=29197How to set up SSL certificate with Let's Encrypt2023-11-29T12:27:41Z<p>Nerijuss: /* Method 1 (using yum packages) */</p>
<hr />
<div>== About Let's Encrypt ==<br />
[https://letsencrypt.org/ Let's Encrypt] provides free valid SSL certificates<br />
<br />
<br><br />
== Before proceeding ==<br />
To proceed the following is needed:<br />
* Domain name pointed to switch IP (it is not possible to create a Let's Encrypt SSL certificate for IP address)<br />
* Email address to get notifications from Let's Encrypt<br />
* SSH access to the server with root privileges<br />
<br><br><br />
Make sure that firewalls are not blocking the following domains used for the creation and update of certificates:<br />
<br />
acme-v01.api.letsencrypt.org<br />
<br />
acme-staging.api.letsencrypt.org<br />
<br />
acme-v02.api.letsencrypt.org<br />
<br />
acme-staging-v02.api.letsencrypt.org<br />
<br><br><br />
<br />
== Installation ==<br />
In the example below let's assume that the domain name is example.com<br />
<br />
Before installation, it is a good idea to backup /etc/httpd folder<br />
<br />
cp -a /etc/httpd/ /usr/local/mor/backups/<br />
<br />
<br><br><br />
=== Method 1 (using yum packages) ===<br />
Based on this [https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-centos-7 guide]<br />
<br />
yum install certbot python2-certbot-apache mod_ssl<br />
<br />
if installation is completed without errors, run certbot command (prepare to answer yes/no questions and enter the domain name(s) and email)<br />
<br />
certbot --apache <br />
<br />
<br />
If the command is completed successfully, going to <nowiki>https://example.com/billing</nowiki> should show a secure connection<br />
<br />
if everything is OK, test certificate renewal and install renewal cron<br />
certbot renew --dry-run<br />
<br />
If successful it should show at the end<br />
<br />
Congratulations, all simulated renewals succeeded: <br />
Congratulations, all simulated renewals succeeded: <br />
/etc/letsencrypt/live/example.com/fullchain.pem (success)<br />
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br />
<br />
Create a cron to renew certificates automatically <br />
<br />
echo "20 0,12 * * * root /usr/sbin/iptables -D MOR-BLOCKED-COUNTRIES -m set --match-set mor_us_ips src -j DROP && /usr/bin/certbot renew" > /etc/cron.d/certbot_renewal_cron<br />
chmod 644 /etc/cron.d/certbot_renewal_cron<br />
service crond restart<br />
<br />
This will try to renew the certificate two times every day. Certbot will try to actually renew certificates once the expiration day will be less than 30 days<br />
<br />
<br />
If you get an error:<br />
<br />
Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.<br />
<br />
That means there is a problem with <VirtualHost *:80> configuration in /etc/httpd/httpd.conf<br />
<br />
Check with:<br />
<br />
apachectl -t -D DUMP_VHOSTS<br />
<br />
<br />
NOTE: this procedure overwrites /usr/lib/systemd/system/httpd.service<br />
<br />
Check with:<br />
<br />
grep -i private /usr/lib/systemd/system/httpd.service<br />
<br />
If you see PrivateTmp=true and need false, do:<br />
<br />
sed -i "s|PrivateTmp=true\+|PrivateTmp=false|g" /usr/lib/systemd/system/httpd.service<br />
systemctl daemon-reload && systemctl restart httpd.service<br />
<br />
<br />
<br />
<br />
<br><br><br />
<br />
=== Method 2 (using snap management system) ===<br />
To streamline the install process across different Linux Distributions, the Let's Encrypt official guide use snapd management system<br />
<br />
If you want to use snaps, please use this guide:<br />
<br />
https://certbot.eff.org/lets-encrypt/centosrhel7-apache.html<br />
<br />
Using this installation method, automatic renewal will be configured automatically (it will be systemd timer, not a simple cron)<br />
systemctl list-timers <br />
NEXT LEFT LAST PASSED UNIT ACTIVATES<br />
Tr 2021-10-06 12:42:00 CEST 41min left Tr 2021-10-06 05:11:01 CEST 6h ago snap.certbot.renew.timer snap.certbot.renew.service<br />
<br />
<br><br><br />
== Logs ==<br />
Let's encrypt log<br />
/var/log/letsencrypt/letsencrypt.log<br />
<br />
<br><br><br />
== Accessing switch without /billing suffix ==<br />
Follow the guide [[I see Apache test on Start page| here]]<br />
<br />
Use https instead of http and domain names instead of 127.0.0.1</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Voicemail&diff=29165Voicemail2023-10-26T12:20:37Z<p>Nerijuss: /* Change Email template */</p>
<hr />
<div>= Description = <br />
<br />
Voicemail (or voice mail, voice-mail, vmail or VMS, sometimes called messagebank) is a centralized system of managing telephone messages for a large group of people. The term is also used more broadly, to denote any system of conveying voice messages, including the answering machine. (http://en.wikipedia.org/wiki/Voicemail)<br />
<br />
<br />
Voicemail is automatically sent to a user's email if the email address is specified in the device details.<br />
<br />
An audio recording in WAV format is attached to the email.<br />
<br />
One minute of audio takes approx. 100 Kb.<br />
<br />
<br><br><br />
<br />
= Configuration =<br />
<br />
This section can be found in '''ADDONS –> PBX Functions –> External DIDs –> VoiceMail''':<br />
<br><br><br />
[[File:Voicemails_path.png]]<br />
<br><br><br />
[[File:Voicemails.png]]<br />
<br><br><br />
* '''VoiceMail Extension (local)''' - describes which local extensions a local user can dial to retrieve his voicemail (the system will ask him to enter his voicemail password, which can be set in the device's details).<br />
<br />
If you want to setup VoiceMail (VM) on a different server, then the following settings are important:<br />
<br />
* '''VoiceMail Server active''' - turns VM server on/off. When on, all VM requests will go to distant VM server; when off, VM will be handled locally on Asterisk.<br />
* '''VoiceMail Server connection/device''' - describes connection to VM server.<br />
* '''VoiceMail Retrieve Extension (local)''' - which extension to dial on a distant VM server to retrieve voicemail for an extension.<br />
<br />
Example:<br />
<br />
* Let's say we have our server on IP 23.45.67.89 connected with SIP to our Asterisk. <br />
* We create a separate user/device ('''vm_device''') to describe this connection. Device's type is SIP, IP = 23.45.67.89; set other settings also (codecs/etc).<br />
* '''VoiceMail Retrieve Extension (local)''' = 999.<br />
<br />
<br />
<br />
<br><br><br />
===First action is when VM is recorded===<br />
<br />
So now when the VM server is ON and the user with device 201 gets a VM, the call is redirected like this:<br />
<br />
Dial(SIP/vm_device/201)<br />
<br />
This means that the server on 23.45.67.89 will receive a call to extension 201. The server SHOULD BE configured so that it will process VM correctly when it receives such a call.<br />
<br />
<br><br><br />
===Second action - retrieving VM===<br />
<br />
When user wants to retrieve his VM on a distant machine he dials '''VoiceMail Extension (local)'''.<br />
<br />
He is redirected like this:<br />
<br />
Dial(SIP/vm_device/999#201)<br />
<br />
Again, the distant server should know how to process such a request.<br />
<br />
Let's say we have a distant VM server based on Asterisk.<br />
<br />
So in our example its configuration in '''/etc/asterisk/extensions.conf''' should look like this:<br />
<br />
[incoming]<br />
# to retrieve VM<br />
exten => _999#.,1,VoiceMailMain(${EXTEN:4})<br />
exten => _999#.,2,Hangup<br><br />
# to record VM<br />
exten => _X.,1,VoiceMail(${EXTEN})<br />
exten => _X.,2,Hangup<br />
<br />
= Retrieve VoiceMail from outside over DID =<br />
<br />
* In PBX functions create new function with type: check_voicemail.<br />
* Assign this PBX Function to a DID by editing the DID number.<br />
<br />
<br />
<br><br><br />
<br />
= FROM string =<br />
<br />
To change the Voicemail email sending FROM field, edit the /etc/asterisk/voicemail.conf file line:<br />
<br />
;fromstring=The Asterisk PBX<br />
<br />
to:<br />
<br />
fromstring=SOME OTHER LINE<br />
<br />
... and reload Asterisk.<br />
<br />
<br><br><br />
<br />
= Email sending when VM is received =<br />
<br />
* Go to [[Device_settings | Device settings]]<br />
* Locate the Voicemail field<br />
* Fill in Email – where to send received Voicemail.<br />
* Fill in Password – the digital password the user enters when he calls the Voicemail number to hear his messages.<br />
<br />
End User can change email field if User have '''VoiceMail email edit''' and '''Devices''' [[User_Permissions|permissions]] enabled. <br />
<br />
<br><br><br />
<br />
= serveremail =<br />
<br />
This setting can be used to identify the source of a voicemail notification message. <br />
<br />
;serveremail=asterisk<br />
<br />
to:<br />
<br />
serveremail=SOME OTHER LINE<br />
<br />
OR:<br />
<br />
;serveremail=asterisk@linux-support.net<br />
<br />
to<br />
<br />
serveremail=YOUR COMPANY@YOUR COMPANY.net<br />
<br />
... and reload Asterisk.<br />
<br />
Leave only one of those settings, not both.<br />
<br><br><br />
<br />
= Change Email template =<br />
<br />
Email subject line and body text can be configured only globally in Asterisk configuration file /etc/asterisk/voicemail.conf directly.<br />
Open this file with your favorite editor, and find the following lines:<br />
;emailsubject=[PBX]: New message ${VM_MSGNUM} in mailbox ${VM_MAILBOX}<br />
; The following definition is very close to the default, but the default shows<br />
; just the CIDNAME, if it is not null, otherwise just the CIDNUM, or "an unknown<br />
; caller", if they are both null.<br />
;emailbody=Dear ${VM_NAME}:\n\n\tjust wanted to let you know you were just left a ${VM_DUR} long message (number ${VM_MSGNUM})\nin mailbox ${VM_MAILBOX} from ${VM_CALLERID}, on ${VM_DATE},<br />
so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n<br />
<br />
Here you change template of Email subject line and Email body. Just uncomment (delete ; in the beginning of line) option name and change option content to your liking. After this is done reload voicemail settings with the following command:<br />
asterisk -rx 'voicemail reload'<br />
<br />
Asterisk variables related to Voicemail:<br />
${VM_CATEGORY} - Sets voicemail category<br />
${VM_NAME} * - Full name in voicemail<br />
${VM_DUR} * - Voicemail duration<br />
${VM_MSGNUM} * - Number of voicemail message in mailbox<br />
${VM_CALLERID} * - Voicemail Caller ID (Person leaving vm)<br />
${VM_CIDNAME} * - Voicemail Caller ID Name<br />
${VM_CIDNUM} * - Voicemail Caller ID Number<br />
${VM_DATE} * - Voicemail Date<br />
${VM_MESSAGEFILE} * - Path to message left by caller<br />
<br />
<br />
<br><br><br />
<br />
= Voicemail timezone =<br />
<br />
To configure specific timezone for Voicemail box, set '''label''' in the Timezone field (max 10 characters):<br />
<br />
[[File:Voicemail tz.png]]<br />
<br />
Then configure this label in /etc/asterisk/voicemail.conf under [zonemessages]:<br />
<br />
[zonemessages]<br />
central=America/Chicago|'vm-received' Q 'digits/at' IMp<br />
eastern=America/New_York|'vm-received' Q 'digits/at' IMp<br />
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'<br />
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'<br />
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM<br />
<br />
Here '''central, eastern, central24, military, european''' are default labels. Set your custom label below and configure by these rules:<br />
<br />
'filename' filename of a soundfile (single ticks around the filename required)<br />
A or a Day of week (Saturday, Sunday, ...) <br />
B or b or h Month name (January, February, ...) <br />
d or e numeric day of month (first, second, ..., thirty-first) <br />
Y Year <br />
I or l Hour, 12 hour clock <br />
H Hour, 24 hour clock (single digit hours preceded by "oh")<br />
k Hour, 24 hour clock (single digit hours NOT preceded by "oh")<br />
M Minute, with 00 pronounced as "o'clock" <br />
N Minute, with 00 pronounced as "hundred" (US military time) <br />
P or p AM or PM <br />
Q "today", "yesterday" or ABdY <br />
q "" (for today), "yesterday", weekday, or ABdY <br />
R 24 hour time, including minute<br />
<br />
After changes, restart Asterisk or execute command '''asterisk -rx 'voicemail reload''''<br />
<br />
Default timezone for all Voicemail boxes is central.<br />
<br />
More info on Asterisk Voicemails: https://www.voip-info.org/asterisk-config-voicemailconf<br />
<br />
<br><br><br />
<br />
= Change UNAVAILABLE message = <br />
<br />
Dial Voicemail access number (default *97) and press 01; then, after the signal, dictate your UNAVAILABLE message. UNAVAILABLE message is played when call to your device is forwarded to Voicemail by "Failed" or "No Answer" Call states in [[Call Flow]].<br />
<br />
UNAVAILABLE message can be only set by using method mentioned above.<br />
<br />
If default UNAVAILABLE message is changed, it is recommended to turn off intro message (http://wiki.kolmisoft.com/index.php/Call_Flow#Voicemail)<br />
<br><br><br />
<br />
= Change BUSY message = <br />
<br />
Dial Voicemail access number (default *97) and press 02; then, after the signal, dictate your BUSY message. BUSY message is played when call to your device is forwarded to Voicemail by "Busy" Call state in [[Call Flow]].<br />
<br />
BUSY message can be only set by using method mentioned above.<br />
<br />
If default BUSY message is changed, it is recommended to turn off intro message (http://wiki.kolmisoft.com/index.php/Call_Flow#Voicemail) <br />
<br><br><br />
<br />
= MWI - Message Waiting Indication =<br />
''This option is available starting from [[MOR_9_documentation | MOR 9]]''<br />
<br />
<br />
In telephony, a Message Waiting Indicator (MWI) is a telephone calling feature that illuminates a LED on selected telephones to notify a user of waiting voicemail messages. It works on most telephone networks and PBXs. ([http://en.wikipedia.org/wiki/Message-waiting_indicator Wikipedia])<br />
<br />
MWI is supported automatically starting from [[MOR 9 documentation | MOR 9]].<br />
<br />
Most phones support this feature. <br />
<br />
<br><br><br />
<br />
<br />
<br />
<br />
= Change encoding on voicemail emails =<br />
<br />
If you use, for e.g. Greek language in Voicemail text or in Users details in MOR you need to enable the UTF-8 Encoding.<br />
<br />
To do so, first of all enable it on Ast.Voicemail side. Edit '''/etc/asterisk/voicemail.conf''', uncomment '''charset''' and make it UTF-8 :<br />
<br />
charset=UTF-8<br />
<br />
To apply changes reload the Voicemail in Asterisk CLI:<br />
<br />
VM*CLI> voicemail reload<br />
<br />
This will lead to send Voicemail emails in UTF-8 Encoding. However, if you have User with details which are in, for e.g. Greek language, Asterisk should read the data from DB using UTF-8 Encoding.<br />
<br />
For this, edit the '''/etc/asterisk/res_config_mysql.conf''', uncomment '''dbcharset''' and set it to UTF-8:<br />
<br />
dbcharset = utf8<br />
<br />
Once changes are applied, reload Asterisk:<br />
<br />
VM*CLI> reload<br />
<br />
Now, Asterisk will correctly send text in UTF-8 Encoding even if, for e.g., Greek text is used in Voicemail email text or in DB.<br />
<br />
<br><br><br />
= Change Voicemail language = <br />
<br />
Set language in Device Edit window.<br />
<br />
<br><br><br />
<br />
= Delete Voicemail in mass = <br />
You can delete unwanted voicemails directly from the server.<br />
<br />
The main directory where voicemails are saved is:<br />
/var/spool/asterisk/voicemail<br />
<br />
<br><br><br />
<br />
= Maximum length of a voicemail message = <br />
Uncomment variable maxsecs in /etc/asterisk/voicemail.conf<br />
This defines the maximum amount of time in seconds of an incoming message.<br />
<br />
For example, this will set max duration to 5 minutes<br />
maxsecs = 300<br />
<br />
For changes to take effect, reload voicemail configuration<br />
asterisk -rx 'voicemail reload'<br />
<br />
<br><br><br />
<br />
= Custom email server for Voicemail emails =<br />
<br />
By default, a local email relay is used. If some other email server needs to be used, then:<br />
<br />
Install additional packages:<br />
yum install cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain<br />
<br />
Add these lines to the bottom of /etc/postfix/main.cf<br />
relayhost = smtp.yourmailserver.com:587<br />
smtp_use_tls = yes<br />
smtp_sasl_auth_enable = yes<br />
smtp_sasl_security_options = noanonymous<br />
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd<br />
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt<br />
smtp_generic_maps = hash:/etc/postfix/generic<br />
smtp_tls_security_level = secure<br />
smtp_tls_mandatory_protocols = TLSv1<br />
smtp_tls_mandatory_ciphers = high<br />
smtp_tls_secure_cert_match = nexthop<br />
<br />
Create /etc/postfix/sasl_passwd with content<br />
smtp.yourmailserver.com user@yourmailserver.com:passwordofuser<br />
<br />
run<br />
postmap /etc/postfix/sasl_passwd<br />
<br />
secure file<br />
chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db<br />
chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db<br />
<br />
Add this line to the bottom of /etc/postfix/generic<br />
root@CentOS-68-64-minimal.localdomain sender@yourmailserver.com<br />
replace "CentOS-68-64-minimal.localdomai" with your servers hostname; replace sender@yourmailserver.com with suitable sender address.<br />
<br />
Run<br />
postmap /etc/postfix/generic<br />
service postfix restart<br />
<br><br><br />
<br />
= Testing Voicemail emails =<br />
This command sends email same way as Asterisk does:<br />
mail -s "Test Subject" yourmailbox@domain.com < /dev/null<br />
<br />
<br><br><br />
= Upload prerecorded Voicemail messages =<br />
<br />
The location of the WAV file: /var/spool/asterisk/voicemail/default/1234/<br />
<br />
where 1234 is an extension number.<br />
<br />
2 files can be replaced: busy.wav and unavail.wav (names must be the same)<br />
<br />
Should be changed on all asterisk servers if there are several of them.<br />
<br />
Make sure to: [[Convert WAV file to Asterisk playable format]] before uploading.<br />
<br />
<br><br><br />
<br />
= See also = <br />
<br />
* [[Device_settings#Voicemail | Device Voicemail]]<br />
* [[No sound on Voicemail or Playback]]<br />
* [[Voicemail does not work]]<br />
* [[Voicemail is sent with wrong time]]<br />
* [[Voicemail sound files]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Voicemail&diff=29164Voicemail2023-10-26T12:18:21Z<p>Nerijuss: /* Change Email template */</p>
<hr />
<div>= Description = <br />
<br />
Voicemail (or voice mail, voice-mail, vmail or VMS, sometimes called messagebank) is a centralized system of managing telephone messages for a large group of people. The term is also used more broadly, to denote any system of conveying voice messages, including the answering machine. (http://en.wikipedia.org/wiki/Voicemail)<br />
<br />
<br />
Voicemail is automatically sent to a user's email if the email address is specified in the device details.<br />
<br />
An audio recording in WAV format is attached to the email.<br />
<br />
One minute of audio takes approx. 100 Kb.<br />
<br />
<br><br><br />
<br />
= Configuration =<br />
<br />
This section can be found in '''ADDONS –> PBX Functions –> External DIDs –> VoiceMail''':<br />
<br><br><br />
[[File:Voicemails_path.png]]<br />
<br><br><br />
[[File:Voicemails.png]]<br />
<br><br><br />
* '''VoiceMail Extension (local)''' - describes which local extensions a local user can dial to retrieve his voicemail (the system will ask him to enter his voicemail password, which can be set in the device's details).<br />
<br />
If you want to setup VoiceMail (VM) on a different server, then the following settings are important:<br />
<br />
* '''VoiceMail Server active''' - turns VM server on/off. When on, all VM requests will go to distant VM server; when off, VM will be handled locally on Asterisk.<br />
* '''VoiceMail Server connection/device''' - describes connection to VM server.<br />
* '''VoiceMail Retrieve Extension (local)''' - which extension to dial on a distant VM server to retrieve voicemail for an extension.<br />
<br />
Example:<br />
<br />
* Let's say we have our server on IP 23.45.67.89 connected with SIP to our Asterisk. <br />
* We create a separate user/device ('''vm_device''') to describe this connection. Device's type is SIP, IP = 23.45.67.89; set other settings also (codecs/etc).<br />
* '''VoiceMail Retrieve Extension (local)''' = 999.<br />
<br />
<br />
<br />
<br><br><br />
===First action is when VM is recorded===<br />
<br />
So now when the VM server is ON and the user with device 201 gets a VM, the call is redirected like this:<br />
<br />
Dial(SIP/vm_device/201)<br />
<br />
This means that the server on 23.45.67.89 will receive a call to extension 201. The server SHOULD BE configured so that it will process VM correctly when it receives such a call.<br />
<br />
<br><br><br />
===Second action - retrieving VM===<br />
<br />
When user wants to retrieve his VM on a distant machine he dials '''VoiceMail Extension (local)'''.<br />
<br />
He is redirected like this:<br />
<br />
Dial(SIP/vm_device/999#201)<br />
<br />
Again, the distant server should know how to process such a request.<br />
<br />
Let's say we have a distant VM server based on Asterisk.<br />
<br />
So in our example its configuration in '''/etc/asterisk/extensions.conf''' should look like this:<br />
<br />
[incoming]<br />
# to retrieve VM<br />
exten => _999#.,1,VoiceMailMain(${EXTEN:4})<br />
exten => _999#.,2,Hangup<br><br />
# to record VM<br />
exten => _X.,1,VoiceMail(${EXTEN})<br />
exten => _X.,2,Hangup<br />
<br />
= Retrieve VoiceMail from outside over DID =<br />
<br />
* In PBX functions create new function with type: check_voicemail.<br />
* Assign this PBX Function to a DID by editing the DID number.<br />
<br />
<br />
<br><br><br />
<br />
= FROM string =<br />
<br />
To change the Voicemail email sending FROM field, edit the /etc/asterisk/voicemail.conf file line:<br />
<br />
;fromstring=The Asterisk PBX<br />
<br />
to:<br />
<br />
fromstring=SOME OTHER LINE<br />
<br />
... and reload Asterisk.<br />
<br />
<br><br><br />
<br />
= Email sending when VM is received =<br />
<br />
* Go to [[Device_settings | Device settings]]<br />
* Locate the Voicemail field<br />
* Fill in Email – where to send received Voicemail.<br />
* Fill in Password – the digital password the user enters when he calls the Voicemail number to hear his messages.<br />
<br />
End User can change email field if User have '''VoiceMail email edit''' and '''Devices''' [[User_Permissions|permissions]] enabled. <br />
<br />
<br><br><br />
<br />
= serveremail =<br />
<br />
This setting can be used to identify the source of a voicemail notification message. <br />
<br />
;serveremail=asterisk<br />
<br />
to:<br />
<br />
serveremail=SOME OTHER LINE<br />
<br />
OR:<br />
<br />
;serveremail=asterisk@linux-support.net<br />
<br />
to<br />
<br />
serveremail=YOUR COMPANY@YOUR COMPANY.net<br />
<br />
... and reload Asterisk.<br />
<br />
Leave only one of those settings, not both.<br />
<br><br><br />
<br />
= Change Email template =<br />
<br />
Email subject line and body text can be configured only globally in Asterisk configuration file /etc/asterisk/voicemail.conf directly.<br />
Open this file with your favorite editor, and find the following lines:<br />
;emailsubject=[PBX]: New message ${VM_MSGNUM} in mailbox ${VM_MAILBOX}<br />
; The following definition is very close to the default, but the default shows<br />
; just the CIDNAME, if it is not null, otherwise just the CIDNUM, or "an unknown<br />
; caller", if they are both null.<br />
;emailbody=Dear ${VM_NAME}:\n\n\tjust wanted to let you know you were just left a ${VM_DUR} long message (number ${VM_MSGNUM})\nin mailbox ${VM_MAILBOX} from ${VM_CALLERID}, on ${VM_DATE},<br />
so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n<br />
<br />
Here you change template of Email subject line and Email body. Just uncomment (delete ; in the beginning of line) option name and change option content to your liking. After this is done reload voicemail settings with the following command:<br />
asterisk -rx 'voicemail reload'<br />
<br />
Asterisk variables related to Voicemail are explained here:<br />
https://docs.asterisk.org/Configuration/Dialplan/Variables/Channel-Variables/Asterisk-Standard-Channel-Variables/VoiceMail-Channel-Variables<br />
<br />
<br><br><br />
<br />
= Voicemail timezone =<br />
<br />
To configure specific timezone for Voicemail box, set '''label''' in the Timezone field (max 10 characters):<br />
<br />
[[File:Voicemail tz.png]]<br />
<br />
Then configure this label in /etc/asterisk/voicemail.conf under [zonemessages]:<br />
<br />
[zonemessages]<br />
central=America/Chicago|'vm-received' Q 'digits/at' IMp<br />
eastern=America/New_York|'vm-received' Q 'digits/at' IMp<br />
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'<br />
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'<br />
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM<br />
<br />
Here '''central, eastern, central24, military, european''' are default labels. Set your custom label below and configure by these rules:<br />
<br />
'filename' filename of a soundfile (single ticks around the filename required)<br />
A or a Day of week (Saturday, Sunday, ...) <br />
B or b or h Month name (January, February, ...) <br />
d or e numeric day of month (first, second, ..., thirty-first) <br />
Y Year <br />
I or l Hour, 12 hour clock <br />
H Hour, 24 hour clock (single digit hours preceded by "oh")<br />
k Hour, 24 hour clock (single digit hours NOT preceded by "oh")<br />
M Minute, with 00 pronounced as "o'clock" <br />
N Minute, with 00 pronounced as "hundred" (US military time) <br />
P or p AM or PM <br />
Q "today", "yesterday" or ABdY <br />
q "" (for today), "yesterday", weekday, or ABdY <br />
R 24 hour time, including minute<br />
<br />
After changes, restart Asterisk or execute command '''asterisk -rx 'voicemail reload''''<br />
<br />
Default timezone for all Voicemail boxes is central.<br />
<br />
More info on Asterisk Voicemails: https://www.voip-info.org/asterisk-config-voicemailconf<br />
<br />
<br><br><br />
<br />
= Change UNAVAILABLE message = <br />
<br />
Dial Voicemail access number (default *97) and press 01; then, after the signal, dictate your UNAVAILABLE message. UNAVAILABLE message is played when call to your device is forwarded to Voicemail by "Failed" or "No Answer" Call states in [[Call Flow]].<br />
<br />
UNAVAILABLE message can be only set by using method mentioned above.<br />
<br />
If default UNAVAILABLE message is changed, it is recommended to turn off intro message (http://wiki.kolmisoft.com/index.php/Call_Flow#Voicemail)<br />
<br><br><br />
<br />
= Change BUSY message = <br />
<br />
Dial Voicemail access number (default *97) and press 02; then, after the signal, dictate your BUSY message. BUSY message is played when call to your device is forwarded to Voicemail by "Busy" Call state in [[Call Flow]].<br />
<br />
BUSY message can be only set by using method mentioned above.<br />
<br />
If default BUSY message is changed, it is recommended to turn off intro message (http://wiki.kolmisoft.com/index.php/Call_Flow#Voicemail) <br />
<br><br><br />
<br />
= MWI - Message Waiting Indication =<br />
''This option is available starting from [[MOR_9_documentation | MOR 9]]''<br />
<br />
<br />
In telephony, a Message Waiting Indicator (MWI) is a telephone calling feature that illuminates a LED on selected telephones to notify a user of waiting voicemail messages. It works on most telephone networks and PBXs. ([http://en.wikipedia.org/wiki/Message-waiting_indicator Wikipedia])<br />
<br />
MWI is supported automatically starting from [[MOR 9 documentation | MOR 9]].<br />
<br />
Most phones support this feature. <br />
<br />
<br><br><br />
<br />
<br />
<br />
<br />
= Change encoding on voicemail emails =<br />
<br />
If you use, for e.g. Greek language in Voicemail text or in Users details in MOR you need to enable the UTF-8 Encoding.<br />
<br />
To do so, first of all enable it on Ast.Voicemail side. Edit '''/etc/asterisk/voicemail.conf''', uncomment '''charset''' and make it UTF-8 :<br />
<br />
charset=UTF-8<br />
<br />
To apply changes reload the Voicemail in Asterisk CLI:<br />
<br />
VM*CLI> voicemail reload<br />
<br />
This will lead to send Voicemail emails in UTF-8 Encoding. However, if you have User with details which are in, for e.g. Greek language, Asterisk should read the data from DB using UTF-8 Encoding.<br />
<br />
For this, edit the '''/etc/asterisk/res_config_mysql.conf''', uncomment '''dbcharset''' and set it to UTF-8:<br />
<br />
dbcharset = utf8<br />
<br />
Once changes are applied, reload Asterisk:<br />
<br />
VM*CLI> reload<br />
<br />
Now, Asterisk will correctly send text in UTF-8 Encoding even if, for e.g., Greek text is used in Voicemail email text or in DB.<br />
<br />
<br><br><br />
= Change Voicemail language = <br />
<br />
Set language in Device Edit window.<br />
<br />
<br><br><br />
<br />
= Delete Voicemail in mass = <br />
You can delete unwanted voicemails directly from the server.<br />
<br />
The main directory where voicemails are saved is:<br />
/var/spool/asterisk/voicemail<br />
<br />
<br><br><br />
<br />
= Maximum length of a voicemail message = <br />
Uncomment variable maxsecs in /etc/asterisk/voicemail.conf<br />
This defines the maximum amount of time in seconds of an incoming message.<br />
<br />
For example, this will set max duration to 5 minutes<br />
maxsecs = 300<br />
<br />
For changes to take effect, reload voicemail configuration<br />
asterisk -rx 'voicemail reload'<br />
<br />
<br><br><br />
<br />
= Custom email server for Voicemail emails =<br />
<br />
By default, a local email relay is used. If some other email server needs to be used, then:<br />
<br />
Install additional packages:<br />
yum install cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain<br />
<br />
Add these lines to the bottom of /etc/postfix/main.cf<br />
relayhost = smtp.yourmailserver.com:587<br />
smtp_use_tls = yes<br />
smtp_sasl_auth_enable = yes<br />
smtp_sasl_security_options = noanonymous<br />
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd<br />
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt<br />
smtp_generic_maps = hash:/etc/postfix/generic<br />
smtp_tls_security_level = secure<br />
smtp_tls_mandatory_protocols = TLSv1<br />
smtp_tls_mandatory_ciphers = high<br />
smtp_tls_secure_cert_match = nexthop<br />
<br />
Create /etc/postfix/sasl_passwd with content<br />
smtp.yourmailserver.com user@yourmailserver.com:passwordofuser<br />
<br />
run<br />
postmap /etc/postfix/sasl_passwd<br />
<br />
secure file<br />
chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db<br />
chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db<br />
<br />
Add this line to the bottom of /etc/postfix/generic<br />
root@CentOS-68-64-minimal.localdomain sender@yourmailserver.com<br />
replace "CentOS-68-64-minimal.localdomai" with your servers hostname; replace sender@yourmailserver.com with suitable sender address.<br />
<br />
Run<br />
postmap /etc/postfix/generic<br />
service postfix restart<br />
<br><br><br />
<br />
= Testing Voicemail emails =<br />
This command sends email same way as Asterisk does:<br />
mail -s "Test Subject" yourmailbox@domain.com < /dev/null<br />
<br />
<br><br><br />
= Upload prerecorded Voicemail messages =<br />
<br />
The location of the WAV file: /var/spool/asterisk/voicemail/default/1234/<br />
<br />
where 1234 is an extension number.<br />
<br />
2 files can be replaced: busy.wav and unavail.wav (names must be the same)<br />
<br />
Should be changed on all asterisk servers if there are several of them.<br />
<br />
Make sure to: [[Convert WAV file to Asterisk playable format]] before uploading.<br />
<br />
<br><br><br />
<br />
= See also = <br />
<br />
* [[Device_settings#Voicemail | Device Voicemail]]<br />
* [[No sound on Voicemail or Playback]]<br />
* [[Voicemail does not work]]<br />
* [[Voicemail is sent with wrong time]]<br />
* [[Voicemail sound files]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_NPA-NXX&diff=29156M4 NPA-NXX2023-10-17T08:06:33Z<p>Nerijuss: </p>
<hr />
<div>M4 does not support NPA-NXX format rate sheet.<br />
<br />
An alternative is to use [[M4 Local Number Portability]].</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_NPA-NXX&diff=29155M4 NPA-NXX2023-10-17T08:06:22Z<p>Nerijuss: </p>
<hr />
<div>M4 does not support NPA-NXX format rate sheet.<br />
An alternative is to use [[M4 Local Number Portability]].</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_NPA-NXX&diff=29154M4 NPA-NXX2023-10-17T07:22:25Z<p>Nerijuss: Created page with "M4 does not support NPA-NXX format rate sheet."</p>
<hr />
<div>M4 does not support NPA-NXX format rate sheet.</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_Tariffs&diff=29153M4 Tariffs2023-10-17T07:22:12Z<p>Nerijuss: </p>
<hr />
<div><br><br><br><br />
<html><br />
<div align="center"><br />
<iframe width="640" height="360" src="https://www.youtube.com/embed/PitrJFrkTZY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br />
</div><br />
</html><br />
<br />
=Description=<br />
<br />
Tariffs are sets of Rates (prices) to different Destinations. There is supported just one type off Tariffs and it is '''Wholesale'''. In Wholesale Tariffs, Rates can be set to every Destination possible.<br />
<br><br><br />
=Usage=<br />
<br />
Go to '''Billing > Tariffs''' and here you will see all tariffs list grouped by Buy and Sell Tariffs.<br />
<br><br><br />
[[File:Tariffs list.jpg]]<br />
<br><br><br />
In this list you can find such information as Tariff name, its Currency, how many Rates does Tariff has. Also you can check usage, how many [[M2 Termination Points | Termination Points]]/[[M2_Origination_Points|Origination Points]] are using particular Tariff.<br><br />
You can make a lot actions like manage [[M2 Rates | Rates]], make new Tariff from current Tariff, export PDF/CSV files. Also there is ability to create new Tariff without Rates or Generate new Tariff from old ones already with Rates, change Tariff for Users and Export Destinations to CSV.<br />
<br><br><br />
==Tariff Edit==<br />
<br />
Here you are able to change the Tariff name, Currency, and DID Rate.<br />
<br />
[[File:M4_tariff_edit.png]]<br />
<br><br><br />
==Tariff Generator==<br />
<br />
Tariff Generator is used to generate new Tariff by combining existing ones. <br />
<br />
Just go to '''BILLING > Tariffs''' find button '''Generate Tariff''' and press it.<br />
<br><br><br />
[[File:tariff_generator.png]]<br />
<br><br><br />
Here you can enter name of new Tariff, its Currency, Profit Margin percent and select from which Tariffs new one should be generated. Tariffs you can choose by Tariff names and by [[M2 Dial Peers|Dial Peers]] (all [[M2 Termination Points|Termination Point]] tariffs will be used)<br />
<br />
All selected Tariffs will be merged into one new Tariff. If two or more Tariffs have Rates for the same Destination, then selected n-th cheapest Rate (valued by system Currency) for that Destination will be chosen. If Profit Margin on selected cheapest n-th Rate is lower than Profit Margin on the cheapest Rate (for the same prefix in all selected Tariffs) then cheapest Rate with Profit Margin will be used instead on n-th cheapest Rate. All Rates will be converted to the selected Currency. Prefixes for the generated Tariff options allow you to choose which prefixes will be used.<br />
<br><br><br />
===Exampe===<br />
<br />
Current Rates of selected Tariffs:<br />
<br><br />
{| class="wikitable" border="1" style="border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #C0C0C0; padding: 0"<br />
|-<br />
! Destination (Prefix)<br />
! Tariff A<br />
! Tariff B<br />
|-<br />
| 370<br />
| 0.1<br />
| 0.05<br />
|-<br />
| 3705<br />
| 0.1<br />
| -<br />
|-<br />
| 3706<br />
| 0.2<br />
| 0.3<br />
|-<br />
| 888<br />
| -<br />
|0.8<br />
|}<br />
<br><br><br />
If in selected Tariffs there will be Destinations without Rates, Rates from Destinations with shorter Prefix will be taken. If there is no Destination with shorter Prefix, it will stay without Rate.<br />
<br><br />
{| class="wikitable" border="1" style="border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #C0C0C0; padding: 0"<br />
|-<br />
! Destination (Prefix)<br />
! Tariff A<br />
! Tariff B<br />
|-<br />
| 370<br />
| 0.1<br />
| 0.05<br />
|-<br />
| 3705<br />
| 0.1<br />
| '''0.05'''<br />
|-<br />
| 3706<br />
| 0.2<br />
| 0.3<br />
|-<br />
| 888<br />
| -<br />
|0.8<br />
|}<br />
'''NOTE''' Rate 0.05 will be treated as Rate of Prefix 3705 in Tariff B, because Prefix 370 has this Rate. Prefix 888 in Tariff A will be treated as without Rate, because there are no Prefixes in that Tariff which starts with 8.<br />
<br><br><br />
If Profit Margin is 10% on 1st cheapest Rate new Tariff will have Rates as Tariff C:<br />
<br><br />
{| class="wikitable" border="1" style="border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #C0C0C0; padding: 0"<br />
|-<br />
! Destination (Prefix)<br />
! Tariff A<br />
! Tariff B<br />
! Tariff C<br />
|-<br />
| 370<br />
| 0.1<br />
| 0.05<br />
| 0.055<br />
|-<br />
| 3705<br />
| 0.1<br />
| 0.05<br />
| 0.055<br />
|-<br />
| 3706<br />
| 0.2<br />
| 0.3<br />
| 0.22<br />
|-<br />
| 888<br />
| -<br />
|0.8<br />
|0.88<br />
|}<br />
<br />
<br><br />
If two or more rates have different minimal time, increment or connection fee value, '''max''' value will be chosen for newly created rates.<br />
<br />
<br><br><br />
<br />
= Create new tariff from highest Rate, not lowest =<br />
<br />
If you have 3 tariffs from which you want to create a new tariff, then select to add something to the 3rd cheapest tariff, that would be the same as adding something to the highest rate.<br />
<br />
Example:<br />
<br />
You have 3 tariffs: A with price 3, B with price 5, C with price 1<br />
<br />
Let's add 100% to the 3rd "CHEAPEST" rate, which would be tariff B with price 5 (ordered in increasing order: 1 3 5)<br />
<br />
Result would be 5 + 100% = 10<br />
<br />
This is the same as creating a new tariff from the highest rate.<br />
<br />
<br><br><br />
<br />
= Compare Tariffs =<br />
This functionality is dedicated to comparing two Tariffs.<br />
<br />
Just go to '''BILLING > Tariffs''' find button '''Compare Tariffs''' and press it.<br />
<br><br><br />
[[File:M2 Compare tariffs.png]]<br />
<br><br><br />
<br />
Here you can choose two Tariffs, currency and email (by default current User email).<br><br />
The result of comparison will be sent to your email. <br><br />
You will receive result in XLSX format file, like this:<br />
<br><br><br />
[[File:M2 Tariffs compare result.png]]<br />
<br><br><br />
<br />
= See also =<br />
* [[Automatic Tariff Import]]<br />
* [[M4 NPA-NXX]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_Regexp_Examples&diff=29114M4 Regexp Examples2023-09-13T08:50:27Z<p>Nerijuss: /* Examples */</p>
<hr />
<div>Basic Regexp operators and building blocks are explained [https://en.wikipedia.org/wiki/Regular_expression#POSIX_basic_and_extended here].<br />
<br />
= Regexp for matching =<br />
<br />
Regexp matching is used in:<br />
<br />
* [[M4 Origination Points | Origination Points]]<br />
** CLI/ANI Allow (Whitelist)<br />
** CLI/ANI Deny (Blacklist)<br />
** CLD/DNIS Allow (Whitelist)<br />
** CLD/DNIS Deny (Blacklist)<br />
* [[M4 Termination Points | Termination Points]]<br />
** Source (CallerID) Allow<br />
** Source (CallerID) Deny<br />
* [[M4 Dial Peers | Dial Peers]]<br />
** Source regexp<br />
** Source deny regexp<br />
** Destination Regexp<br />
** Destination deny regexp<br />
<br />
==== Validate regex ====<br />
<br />
The regex can be validated using https://regexr.com/ (or any other online regex editor).<br />
<br />
==== Examples ====<br />
<br />
{| border="1" cellpadding="2" cellspacing="0" <br />
| '''Regexp''' || '''Explanation''' <br />
|- <br />
| .* || everything<br />
|- <br />
| ^[0-9]+$ || only digits<br />
|-<br />
| ^[0-9]{9,}$ || only digits, number more than 8 digits (9, 10, 11...)<br />
|-<br />
| ^[0-9]{0,9}$ || only digits, number less than 9 digits (1, 2, 3, 4, 5, 6, 7, 8)<br />
|-<br />
| ^\\+?[0-9]+$ || optional + sign and only digits<br />
|- <br />
| ^370[0-9]+$ || only digits starting with 370<br />
|-<br />
| ^370.*$ || anything starting with 370<br />
|-<br />
| ^(37[0-1]&#124;44)[0-9]*$|| only digits starting with 370 or 371 or 44<br />
|-<br />
| ^380(67&#124;97&#124;68&#124;98)[0-9]*$&#124;^998[0-9]+$ || only digits starting with 380(67,97,68,98) or 998(0-9), where 380(67,97,68,98) = 38067,38097,38068,38098 and 998(0-9) = 9980,...,9988,9989.<br />
|-<br />
| ^380(67&#124;97&#124;68&#124;98)[0-9]{5,9}$&#124;^998[0-9]{5,9}$ || only digits starting with 380(67,97,68,98) or 998, but number of digits after each prefix should be between 5 and 9. So, for example, 3809712345 will match, but 380971234 or 380971234567890 will NOT match.<br />
|-<br />
| ^370[138][0-9]+$|| only digits starting with 3701, 3703, 3708<br />
|-<br />
|}<br />
<br />
= Regexp for transformation =<br />
<br />
Regexp transformation is used in:<br />
<br />
* [[M4 Origination Points | Origination Points]]<br />
** CLI/ANI Regexp Transformation Rule<br />
** CLD/DNIS Regexp Transformation Rule<br />
** [https://wiki.kolmisoft.com/index.php/M4_Kamailio_Transformations PAI Transformation]<br />
** [https://wiki.kolmisoft.com/index.php/M4_Kamailio_Transformations RPID Transformation]<br />
* [[M4 Termination Points | Termination Points]]<br />
** [https://wiki.kolmisoft.com/index.php/M4_Kamailio_Transformations RPID from OP Transformation]<br />
** [https://wiki.kolmisoft.com/index.php/M4_Kamailio_Transformations PAI from OP Transformation]<br />
** Destination Transformation (Regexp)<br />
<br />
==== Format ====<br />
<br />
Regexp transformation format is:<br />
<br />
'''/match_expression/replacement_expression/flags'''<br />
<br />
* match_expression - POSIX regular expression<br />
* replacement_expression - replacement expression with back references (explained [https://wiki.kolmisoft.com/index.php/M4_Kamailio_Transformations#Replacement_Expression here]) to matched tokes: \1, \2, …, \9<br />
* flags (optional):<br />
** i - match ignore case<br />
** g - replace all matches<br />
<br />
Before putting Transformations into production, it is advisable to test them on various values.<br />
<br />
==== Test in Linux console ====<br />
<br />
Execute '''sed''' command (add s before transformation '''s'''/regex/replacement/flags):<br />
<br />
echo '00370123456789' | sed -E 's/^00//'<br />
<br />
==== Test in online sed live editor ====<br />
<br />
If you do not have access to the Linux console, use https://sed.js.org/ (or any other online sed editor).<br />
<br />
==== Examples ====<br />
<br />
{| style="font-family: monospace; font-size: 13px" border="1" cellpadding="5" cellspacing="0" <br />
| '''Transformation''' || '''Original number''' || '''Modified number''' || '''Comment'''<br />
|-<br />
| /^00// || 003701234567 || 003701234567 || Cut prefix 00<br />
|-<br />
| /^370/8/ || 370123456789 || 8123456789 || Replace 370 with 8<br />
|-<br />
| /\+// || +370123456789 || 370123456789 || Cut + (here + is escaped by \ since it is special regex symbol)<br />
|-<br />
| /\+370/86/ || +370123456789 || 86123456789 || Cut prefix +370, add prefix 86<br />
|-<br />
| /\+?(.*)/+\1/ || 370123456789 || +370123456789 || Add + if it is not present already<br />
|-<br />
| /(.*)/999\1/ || 370123456789 || 999370123456789 || Add 999 in front of any number<br />
|-<br />
| /(.*)/999$CIP\1/ || 370123456789 || 999888370123456789 || $CIP is a variable that contains Code from MNP database (if MNP is used and if number is matched). This variable only works on Destination Transformation Regexp. The example assumes that there is a record in the MNP database with Code 888 for number 370123456789.<br />
|-<br />
|}<br />
<br />
<br><br><br />
<br />
= See also =<br />
* [[M4 Kamailio Transformations]]<br />
* [[M4 Source Transformation]]<br />
* [[M4 Destination Transformation]]<br />
* Standard: http://en.wikipedia.org/wiki/Regular_expression#POSIX_basic_and_extended<br />
* Check your regexp: http://regex101.com/</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_Regexp_Examples&diff=29113M4 Regexp Examples2023-09-13T08:46:22Z<p>Nerijuss: /* Examples */</p>
<hr />
<div>Basic Regexp operators and building blocks are explained [https://en.wikipedia.org/wiki/Regular_expression#POSIX_basic_and_extended here].<br />
<br />
= Regexp for matching =<br />
<br />
Regexp matching is used in:<br />
<br />
* [[M4 Origination Points | Origination Points]]<br />
** CLI/ANI Allow (Whitelist)<br />
** CLI/ANI Deny (Blacklist)<br />
** CLD/DNIS Allow (Whitelist)<br />
** CLD/DNIS Deny (Blacklist)<br />
* [[M4 Termination Points | Termination Points]]<br />
** Source (CallerID) Allow<br />
** Source (CallerID) Deny<br />
* [[M4 Dial Peers | Dial Peers]]<br />
** Source regexp<br />
** Source deny regexp<br />
** Destination Regexp<br />
** Destination deny regexp<br />
<br />
==== Validate regex ====<br />
<br />
The regex can be validated using https://regexr.com/ (or any other online regex editor).<br />
<br />
==== Examples ====<br />
<br />
{| border="1" cellpadding="2" cellspacing="0" <br />
| '''Regexp''' || '''Explanation''' <br />
|- <br />
| .* || everything<br />
|- <br />
| ^[0-9]+$ || only digits<br />
|-<br />
| ^[0-9]{9,}$ || only digits, number more than 8 digits (9, 10, 11...)<br />
|-<br />
| ^[0-9]{0,9}$ || only digits, number less than 9 digits (1, 2, 3, 4, 5, 6, 7, 8)<br />
|-<br />
| ^\\+?[0-9]+$ || optional + sign and only digits<br />
|- <br />
| ^370[0-9]+$ || only digits starting with 370<br />
|-<br />
| ^370.*$ || anything starting with 370<br />
|-<br />
| ^(37[0-1]&#124;44)[0-9]*$|| only digits starting with 370 or 371 or 44<br />
|-<br />
| ^380(67&#124;97&#124;68&#124;98)[0-9]*$&#124;^998[0-9]+$ || only digits starting with 380(67,97,68,98) or 998(0-9), where 380(67,97,68,98) = 38067,38097,38068,38098 and 998(0-9) = 9980,...,9988,9989.<br />
|-<br />
| ^380(67&#124;97&#124;68&#124;98)[0-9]{5,9}$&#124;^998[0-9]{5,9}$ || only digits starting with 380(67,97,68,98) or 998, but number of digits after each prefix should be between 5 and 9. So, for example, 3809712345 will match, but 380971234 or 380971234567890 will NOT match.<br />
|-<br />
| ^370[138][0-9]+$|| only digits starting with 3701, 3703, 3708<br />
|-<br />
|}<br />
<br />
= Regexp for transformation =<br />
<br />
Regexp transformation is used in:<br />
<br />
* [[M4 Origination Points | Origination Points]]<br />
** CLI/ANI Regexp Transformation Rule<br />
** CLD/DNIS Regexp Transformation Rule<br />
** [https://wiki.kolmisoft.com/index.php/M4_Kamailio_Transformations PAI Transformation]<br />
** [https://wiki.kolmisoft.com/index.php/M4_Kamailio_Transformations RPID Transformation]<br />
* [[M4 Termination Points | Termination Points]]<br />
** [https://wiki.kolmisoft.com/index.php/M4_Kamailio_Transformations RPID from OP Transformation]<br />
** [https://wiki.kolmisoft.com/index.php/M4_Kamailio_Transformations PAI from OP Transformation]<br />
** Destination Transformation (Regexp)<br />
<br />
==== Format ====<br />
<br />
Regexp transformation format is:<br />
<br />
'''/match_expression/replacement_expression/flags'''<br />
<br />
* match_expression - POSIX regular expression<br />
* replacement_expression - replacement expression with back references (explained [https://wiki.kolmisoft.com/index.php/M4_Kamailio_Transformations#Replacement_Expression here]) to matched tokes: \1, \2, …, \9<br />
* flags (optional):<br />
** i - match ignore case<br />
** g - replace all matches<br />
<br />
Before putting Transformations into production, it is advisable to test them on various values.<br />
<br />
==== Test in Linux console ====<br />
<br />
Execute '''sed''' command (add s before transformation '''s'''/regex/replacement/flags):<br />
<br />
echo '00370123456789' | sed -E 's/^00//'<br />
<br />
==== Test in online sed live editor ====<br />
<br />
If you do not have access to the Linux console, use https://sed.js.org/ (or any other online sed editor).<br />
<br />
==== Examples ====<br />
<br />
{| style="font-family: monospace; font-size: 13px" border="1" cellpadding="5" cellspacing="0" <br />
| '''Transformation''' || '''Original number''' || '''Modified number''' || '''Comment'''<br />
|-<br />
| /^00// || 003701234567 || 003701234567 || Cut prefix 00<br />
|-<br />
| /^370/8/ || 370123456789 || 8123456789 || Replace 370 with 8<br />
|-<br />
| /\+// || +370123456789 || 370123456789 || Cut + (here + is escaped by \ since it is special regex symbol)<br />
|-<br />
| /\+370/86/ || +370123456789 || 86123456789 || Cut prefix +370, add prefix 86<br />
|-<br />
| /\+?(.*)/+\1/ || 370123456789 || +370123456789 || Add + if it is not present already<br />
|-<br />
| /(.*)/999\1/ || 370123456789 || 999370123456789 || Add 999 in front of any number<br />
|-<br />
| /(.*)/999$CIP\1/ || 370123456789 || 999888370123456789 || $CIP is a variable that contains Code from MNP database (if MNP is used and if number is matched). The example assumes that there is a record in the MNP database with Code 888 for number 370123456789.<br />
|-<br />
|}<br />
<br />
<br><br><br />
<br />
= See also =<br />
* [[M4 Kamailio Transformations]]<br />
* [[M4 Source Transformation]]<br />
* [[M4 Destination Transformation]]<br />
* Standard: http://en.wikipedia.org/wiki/Regular_expression#POSIX_basic_and_extended<br />
* Check your regexp: http://regex101.com/</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_Termination_Points&diff=29112M4 Termination Points2023-09-13T08:38:04Z<p>Nerijuss: /* Termination Point */</p>
<hr />
<div>=Description=<br />
<br />
The Termination Point is a connection to some final entity (device/line/trunk/provider/supplier/etc) where the call will be terminated.<br />
<br />
The call comes from [[M4 Origination Points | Origination Points]] and goes to Termination Point.<br />
<br />
Termination Points are assigned to [[M4 Dial Peers | Dial Peers]].<br><br />
<br />
<br><br><br />
==Timeouts==<br />
<br />
* '''Progress Timeout''' – allows limiting the maximum time we will wait before we get media (whether it's early media, ringing, or answer). Leave 0 for unlimited.<br />
* '''Ringing Timeout''' – allows limiting the ringing duration in seconds. Leave 0 for unlimited. The minimal value is 10 seconds.<br />
* '''Call Timeout''' – allows to limit answered call duration. Leave 0 for unlimited.<br />
<br />
<br><br><br />
==Termination Point==<br />
[[File:TerminationPoint.png]]<br />
* '''Act as Termination Point''' - turns on/turns of Termination Point. If selected No and saved, all settings of Termination Point will be erased.<br><br />
* '''Active''' - activates/deactivates Termination Point.<br><br />
* '''Source Transformation''' - special [[M4 Source Transformation | Source Transformation]] rules used to modify Source number.<br><br />
* '''Destination Transformation''' - special [[M4 Destination Transformation | Destination Transformation]] rules used to modify outgoing number. "[[M4 Regexp Examples |Regexp]]" option allows to transform RURI and TO headers separately, while "[[M4 Destination Transformation |Old format]]" can only transform both headers using the same rule.<br><br />
* '''Capacity''' - limits the number of concurrent calls to this termination point.<br><br />
* '''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).<br><br />
* '''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).<br><br />
* '''Register''' - should we register the provider? This option is not available on M4 yet<br><br />
* '''From Domain''' - field is active only whent Register is enabled<br><br />
* '''[[M4 Mobile Number Portability|MNP]] Carrier Group''' - name of [[M4 MNP Carrier Groups | MNP Carrier Group]]<br><br />
* '''Authentication - Enabled/Disabled''' - When Enabled, login and username data can be entered.<br />
* '''Login/Username''' - username if your provider asks for it.<br><br />
* '''Password''' - password used for authentication by your provider.<br><br />
* '''USA Jurisdictional Routing''' - Jurisdictional routing is telephone call routing logic based upon the locations of the calling and called the number and regulatory considerations. '''Can be enabled by Kolmisoft only. Please contact support to enable.''' More information can be found here [https://transnexus.com/whitepapers/jurisdictional-routing Here]<br />
* Intra Tariff- Tariff for Intrastate routing. Calls between two points within the same state<br />
* Inter Tariff - Tariff for Interstate routing. Calls made from one state to another<br />
* Indeter Tariff - Tariff for Invalid ANI, or indeterminate routing. Calls where the calling number is any value other than a valid telephone number — are usually rated at the intrastate rate<br />
<br />
<br><br><br />
<br />
==Termination Point Tariffs==<br />
[[File:TerminationPoint_Tariffs.png]]<br />
* '''Tariff''' - Tariff used for Termination Point accounting.<br><br />
* '''Use Tariffs by CLIs''' – disabled by default.<br><br />
<br />
<br><br><br />
==Codecs==<br />
<br />
Define which Codecs will be offered when dialing Terminator (in the order they are listed).<br />
<br />
* '''Enforce leg A Codecs to leg B''' - if this option is enabled in Terminator settings, M4 will ignore selected Terminator Codecs and will offer the same Codecs (in the same order) from leg A to leg B. <br />
<br />
<br><br><br />
== CallerID ==<br />
<br />
* '''Name''' - set name part for CallerID.<br><br />
* '''Number''' - set number part for CallerID.<br><br />
* '''Random Number from Number Pool''' - set random number from Number Pool. Only the number part for CallerID is set.<br />
** '''Random''' - Send random CallerID from Number Pool.<br />
** '''Pseudorandom with Deviation''' - Range can vary from 0 to 9999999. If 0 is chosen, then all numbers will be chosen the same amount of times. If 9999999 is set, then numbers will be completely random.<br />
<br />
<br><br><br />
== Advanced Settings ==<br />
<br />
* '''Grace Time''' - Grace time in seconds. <br />
* '''Custom SIP Header''' - adds custom header to SIP request. The format is the header: value (for example x-My-Custom-Header: my value). Do not omit space after the colon character.<br />
* '''Limit up to X Calls, during Y seconds''' - allows controlling Calls per Second (CPS).<br><br />
* '''Disable Q.850 Reason''' - by default M4 returns the Q.850 Reason header in SIP responses to Originator. This can be disabled by setting this option to "yes".<br />
* '''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 M4, but the media is point-to-point.<br />
<br />
<br><br><br />
== Advanced Termination Point Settings ==<br />
<br />
* '''Interpret NO ANSWER as FAILED''' - makes NO ANSWER calls interpreted as FAILED (tries to use next Provider in the Routing Table) <br><br />
* '''Interpret BUSY as FAILED''' - makes BUSY calls interpreted as FAILED (tries to use next Provider in the Routing Table) <br><br />
* '''Periodic check''' - if enabled, periodic SIP OPTIONS requests will be sent to Termination Point to check if it is reachable. If Periodic Check is enabled and Termination Point does not respond to OPTIONS request then Termination Point will be marked as unreachable and will be skipped with '''HGC 324 - Unreachable Terminator skipped (Periodic Check is enabled)''' when making calls. Once Termination Point starts to respond to OPTIONS requests it will be marked as reachable and calls will be routed through this Termination Point. Termination Points are checked every 5 minutes. If the Periodic check is enabled, and Termination Point IP is reachable, in [[M4_Connection_Points|Connection Points]] window IP will be in green color. If Termination Point IP is NOT reachable, its IP will be in red color, also the UNCREACHABLE icon near IP will appear in the Termination Point edit window.<br><br />
* '''Sticky Contact''' – if this option is enabled, M4 uses only the first SIP Contact header received from Termination Point. Sometimes Terminators change the Contact header in the middle of a SIP dialog and in some cases, this may lead to unpredicted behavior (for example Terminator changes the Contact header to the 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.<br />
* '''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.<br />
<br />
<br><br><br />
== Termination Point Signaling Settings ==<br />
* '''Remote-Party-ID to TP''' - same options as for ''' P-Asserted-Identity to TP''' below. These options are identical both for Remote-Party-ID and for P-Asserted-Identity and so only P-Asserted-Identity will be described below<br />
* ''' P-Asserted-Identity to TP''' - allow manipulation P-Asserted-Identity headers before sending them to TP. Available options are: <br><br>[[File:Pai_to_tp.png]]<br><br><br />
** '''Drop''' - drop (do not send) header to TP.<br />
** '''Forward''' - Forward header from OP to TP.<br />
*** '''PAI from OP Transformation:''' - Optional regex to transform header before forwarding. [[M4 Transformations | More info]].<br />
** '''Generate if missing''' - Generate header if it is missing. <br />
*** '''PAI from OP Transformation:''' - Optional regex to transform header before forwarding if header is '''not''' missing. [[M4 Transformations | More info]].<br />
*** '''PAI Generation:''' - PAI header value to generate if header '''is''' missing. [[M4 PAI And RPID Header Generation| More info]].<br />
** '''Overwrite''' - Overwrite the header value with a new one.<br />
*** '''PAI Generation:''' - PAI header value to generate which will overwrite existing PAI. [[M4 PAI And RPID Header Generation| More info]].<br />
* '''Send PAI Number as CallerID (From:) to TP:''' - available options are: Never, Always, If FROM is Anonymous, If FROM is not Anonymous, By OP (uses Origination Point setting).<br />
<br />
This setting depends on the same setting from the OP. The logic is described below:<br />
<br />
[[File:Send pai table.png]]<br />
<br />
* '''Ignore SIP 183 without SDP''' - by default disabled. Select '''Yes''' to enable the option.<br />
* '''Ignore SIP 180 after 183''' - by default disabled. Select '''Yes''' to enable the option.<br />
* '''Disconnect Codes Group:''' - Disconnect Codes Group to use. More information is available [[M4 Disconnect Codes|here]].<br />
<br />
<br><br><br />
== Subnetting ==<br />
<br />
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 a call is routed through Termination Point which uses a subnet, '''random''' IP address from that subnet will be chosen for the outgoing call.<br />
<br />
M4 subnet value range is 4-30.<br />
<br><br><br />
You can use an online subnet [http://www.aboutmyip.com/AboutMyXApp/SubnetCalculator.jsp? calculator] to check the first and last usable IP address from a given subnet.<br />
<br />
<br><br><br />
== IP range ==<br />
<br />
If you need to set multiple IP addresses for a single Termination Point and Subnetting does not meet your needs, then you can set IP ranges. Ranges are written in the following format:<br />
<br />
xxx.xxx.xxx.xxx-yyy<br />
<br />
Note that you can set the range only for the last octet in the IP address.<br><br />
<br />
When a call is routed through Termination Point which uses the IP range, '''random''' IP address from that range will be chosen for the outgoing call. For example, if we have an IP range 192.168.0.100-150, then a random IP address from the range 192.168.0.100 - 192.168.0.150 will be generated.<br><br />
<br />
<br><br><br />
== Hostname ==<br />
<br />
If the Connection point is set to work '''ONLY as Termination point''', it is allowed to put a hostname in the IP Address field, for example, sip.voipservice.org<br />
<br />
<br><br><br />
=See also=<br />
<br />
* [[M4 Disconnect Code Changes|Disconnect Code Changes]]<br />
* [[NO_ANSWER/BUSY_interpretation_for_providers]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_Termination_Points&diff=29110M4 Termination Points2023-09-13T06:38:44Z<p>Nerijuss: /* Termination Point */</p>
<hr />
<div>=Description=<br />
<br />
The Termination Point is a connection to some final entity (device/line/trunk/provider/supplier/etc) where the call will be terminated.<br />
<br />
The call comes from [[M4 Origination Points | Origination Points]] and goes to Termination Point.<br />
<br />
Termination Points are assigned to [[M4 Dial Peers | Dial Peers]].<br><br />
<br />
<br><br><br />
==Timeouts==<br />
<br />
* '''Progress Timeout''' – allows limiting the maximum time we will wait before we get media (whether it's early media, ringing, or answer). Leave 0 for unlimited.<br />
* '''Ringing Timeout''' – allows limiting the ringing duration in seconds. Leave 0 for unlimited. The minimal value is 10 seconds.<br />
* '''Call Timeout''' – allows to limit answered call duration. Leave 0 for unlimited.<br />
<br />
<br><br><br />
==Termination Point==<br />
[[File:TerminationPoint.png]]<br />
* '''Act as Termination Point''' - turns on/turns of Termination Point. If selected No and saved, all settings of Termination Point will be erased.<br><br />
* '''Active''' - activates/deactivates Termination Point.<br><br />
* '''Source Transformation''' - special [[M4 Source Transformation | Source Transformation]] rules used to modify Source number.<br><br />
* '''Destination Transformation''' - special [[M4 Destination Transformation | Destination Transformation]] rules used to modify outgoing number. "Regexp" option allows to transform RURI and TO headers separately, while "Old format" can only transform both headers using the same rule.<br><br />
* '''Capacity''' - limits the number of concurrent calls to this termination point.<br><br />
* '''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).<br><br />
* '''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).<br><br />
* '''Register''' - should we register the provider? This option is not available on M4 yet<br><br />
* '''From Domain''' - field is active only whent Register is enabled<br><br />
* '''[[M4 Mobile Number Portability|MNP]] Carrier Group''' - name of [[M4 MNP Carrier Groups | MNP Carrier Group]]<br><br />
* '''Authentication - Enabled/Disabled''' - When Enabled, login and username data can be entered.<br />
* '''Login/Username''' - username if your provider asks for it.<br><br />
* '''Password''' - password used for authentication by your provider.<br><br />
* '''USA Jurisdictional Routing''' - Jurisdictional routing is telephone call routing logic based upon the locations of the calling and called the number and regulatory considerations. '''Can be enabled by Kolmisoft only. Please contact support to enable.''' More information can be found here [https://transnexus.com/whitepapers/jurisdictional-routing Here]<br />
* Intra Tariff- Tariff for Intrastate routing. Calls between two points within the same state<br />
* Inter Tariff - Tariff for Interstate routing. Calls made from one state to another<br />
* Indeter Tariff - Tariff for Invalid ANI, or indeterminate routing. Calls where the calling number is any value other than a valid telephone number — are usually rated at the intrastate rate<br />
<br />
<br><br><br />
<br />
==Termination Point Tariffs==<br />
[[File:TerminationPoint_Tariffs.png]]<br />
* '''Tariff''' - Tariff used for Termination Point accounting.<br><br />
* '''Use Tariffs by CLIs''' – disabled by default.<br><br />
<br />
<br><br><br />
==Codecs==<br />
<br />
Define which Codecs will be offered when dialing Terminator (in the order they are listed).<br />
<br />
* '''Enforce leg A Codecs to leg B''' - if this option is enabled in Terminator settings, M4 will ignore selected Terminator Codecs and will offer the same Codecs (in the same order) from leg A to leg B. <br />
<br />
<br><br><br />
== CallerID ==<br />
<br />
* '''Name''' - set name part for CallerID.<br><br />
* '''Number''' - set number part for CallerID.<br><br />
* '''Random Number from Number Pool''' - set random number from Number Pool. Only the number part for CallerID is set.<br />
** '''Random''' - Send random CallerID from Number Pool.<br />
** '''Pseudorandom with Deviation''' - Range can vary from 0 to 9999999. If 0 is chosen, then all numbers will be chosen the same amount of times. If 9999999 is set, then numbers will be completely random.<br />
<br />
<br><br><br />
== Advanced Settings ==<br />
<br />
* '''Grace Time''' - Grace time in seconds. <br />
* '''Custom SIP Header''' - adds custom header to SIP request. The format is the header: value (for example x-My-Custom-Header: my value). Do not omit space after the colon character.<br />
* '''Limit up to X Calls, during Y seconds''' - allows controlling Calls per Second (CPS).<br><br />
* '''Disable Q.850 Reason''' - by default M4 returns the Q.850 Reason header in SIP responses to Originator. This can be disabled by setting this option to "yes".<br />
* '''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 M4, but the media is point-to-point.<br />
<br />
<br><br><br />
== Advanced Termination Point Settings ==<br />
<br />
* '''Interpret NO ANSWER as FAILED''' - makes NO ANSWER calls interpreted as FAILED (tries to use next Provider in the Routing Table) <br><br />
* '''Interpret BUSY as FAILED''' - makes BUSY calls interpreted as FAILED (tries to use next Provider in the Routing Table) <br><br />
* '''Periodic check''' - if enabled, periodic SIP OPTIONS requests will be sent to Termination Point to check if it is reachable. If Periodic Check is enabled and Termination Point does not respond to OPTIONS request then Termination Point will be marked as unreachable and will be skipped with '''HGC 324 - Unreachable Terminator skipped (Periodic Check is enabled)''' when making calls. Once Termination Point starts to respond to OPTIONS requests it will be marked as reachable and calls will be routed through this Termination Point. Termination Points are checked every 5 minutes. If the Periodic check is enabled, and Termination Point IP is reachable, in [[M4_Connection_Points|Connection Points]] window IP will be in green color. If Termination Point IP is NOT reachable, its IP will be in red color, also the UNCREACHABLE icon near IP will appear in the Termination Point edit window.<br><br />
* '''Sticky Contact''' – if this option is enabled, M4 uses only the first SIP Contact header received from Termination Point. Sometimes Terminators change the Contact header in the middle of a SIP dialog and in some cases, this may lead to unpredicted behavior (for example Terminator changes the Contact header to the 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.<br />
* '''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.<br />
<br />
<br><br><br />
== Termination Point Signaling Settings ==<br />
* '''Remote-Party-ID to TP''' - same options as for ''' P-Asserted-Identity to TP''' below. These options are identical both for Remote-Party-ID and for P-Asserted-Identity and so only P-Asserted-Identity will be described below<br />
* ''' P-Asserted-Identity to TP''' - allow manipulation P-Asserted-Identity headers before sending them to TP. Available options are: <br><br>[[File:Pai_to_tp.png]]<br><br><br />
** '''Drop''' - drop (do not send) header to TP.<br />
** '''Forward''' - Forward header from OP to TP.<br />
*** '''PAI from OP Transformation:''' - Optional regex to transform header before forwarding. [[M4 Transformations | More info]].<br />
** '''Generate if missing''' - Generate header if it is missing. <br />
*** '''PAI from OP Transformation:''' - Optional regex to transform header before forwarding if header is '''not''' missing. [[M4 Transformations | More info]].<br />
*** '''PAI Generation:''' - PAI header value to generate if header '''is''' missing. [[M4 PAI And RPID Header Generation| More info]].<br />
** '''Overwrite''' - Overwrite the header value with a new one.<br />
*** '''PAI Generation:''' - PAI header value to generate which will overwrite existing PAI. [[M4 PAI And RPID Header Generation| More info]].<br />
* '''Send PAI Number as CallerID (From:) to TP:''' - available options are: Never, Always, If FROM is Anonymous, If FROM is not Anonymous, By OP (uses Origination Point setting).<br />
<br />
This setting depends on the same setting from the OP. The logic is described below:<br />
<br />
[[File:Send pai table.png]]<br />
<br />
* '''Ignore SIP 183 without SDP''' - by default disabled. Select '''Yes''' to enable the option.<br />
* '''Ignore SIP 180 after 183''' - by default disabled. Select '''Yes''' to enable the option.<br />
* '''Disconnect Codes Group:''' - Disconnect Codes Group to use. More information is available [[M4 Disconnect Codes|here]].<br />
<br />
<br><br><br />
== Subnetting ==<br />
<br />
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 a call is routed through Termination Point which uses a subnet, '''random''' IP address from that subnet will be chosen for the outgoing call.<br />
<br />
M4 subnet value range is 4-30.<br />
<br><br><br />
You can use an online subnet [http://www.aboutmyip.com/AboutMyXApp/SubnetCalculator.jsp? calculator] to check the first and last usable IP address from a given subnet.<br />
<br />
<br><br><br />
== IP range ==<br />
<br />
If you need to set multiple IP addresses for a single Termination Point and Subnetting does not meet your needs, then you can set IP ranges. Ranges are written in the following format:<br />
<br />
xxx.xxx.xxx.xxx-yyy<br />
<br />
Note that you can set the range only for the last octet in the IP address.<br><br />
<br />
When a call is routed through Termination Point which uses the IP range, '''random''' IP address from that range will be chosen for the outgoing call. For example, if we have an IP range 192.168.0.100-150, then a random IP address from the range 192.168.0.100 - 192.168.0.150 will be generated.<br><br />
<br />
<br><br><br />
== Hostname ==<br />
<br />
If the Connection point is set to work '''ONLY as Termination point''', it is allowed to put a hostname in the IP Address field, for example, sip.voipservice.org<br />
<br />
<br><br><br />
=See also=<br />
<br />
* [[M4 Disconnect Code Changes|Disconnect Code Changes]]<br />
* [[NO_ANSWER/BUSY_interpretation_for_providers]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=File:TerminationPoint.png&diff=29109File:TerminationPoint.png2023-09-13T06:34:28Z<p>Nerijuss: Nerijuss uploaded a new version of File:TerminationPoint.png</p>
<hr />
<div></div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Configuration_from_GUI&diff=29108Configuration from GUI2023-09-12T11:04:46Z<p>Nerijuss: /* Functionality */</p>
<hr />
<div>=Where I can find this settings menu?=<br />
<br />
You can find this menu in '''SETTINGS –> Setup –> Settings'''<br />
<br />
[[File:Settings_path.png]]<br />
<br><br><br />
== Global ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> [[Global_Settings | Global]]'''<br />
<br />
* '''Company''' – name of the company.<br />
* '''Company email''' – email address of the company.<br />
* '''Version''' – version number.<br />
* '''Copyright Title''' – copyright title supports html text format.<br />
* '''Browser Title''' – browser title for MOR GUI.<br />
* '''Front Page Text''' – some text to place on front page.<br />
* '''Login Page Text''' – some text to place on login page<br />
<br><br><br />
<br />
== Registration == <br />
<br />
'''SETTINGS –> Setup –> Settings –> Registration'''<br />
<br />
* '''Enabled?''' – do we want to let users [[Online registration | register online]] automatically?<br />
* '''Hide registration link in Login page?''' – tick this option if you do not want users to be able to register online.<br />
* '''Default country'''<br />
* '''Asterisk server IP''' – what IP should user connect his softphone/server to?<br />
* '''Send Email to User after registration''' – just yes or no.<br />
* '''Send Email to Admin after registration''' – just yes or no.<br />
* '''Send Email To User after User was created''' – just yes or no.<br />
* '''Send Email To Admin after User was created''' – just yes or no.<br />
* '''[[ReCAPTCHA]] configuration'''<br />
* '''[[User_Agreement|Terms and conditions]]'''<br />
* '''Allow to create user and device with matching username and password''' – just yes or no. If this setting is not enabled - username and password from MOR GUI will have to be different than device's username and password.<br />
* '''Enable VAT checking for EU companies''' – you can choose whether to check '''TAX Registration Number:''' during the [[Online registration]] or not. Done over [http://ec.europa.eu/taxation_customs/vies/?locale=lt EU page].<br />
* '''Allow blank VAT for EU companies''' – allows to leave blank '''TAX Registration Number:''' field during the [[Online registration]]<br />
<br><br><br />
===See also===<br />
<br />
* [[Default user]]<br />
<br><br><br />
<br />
== Invoices ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Invoices'''<br />
<br />
Invoice configuration is divided into '''Prepaid''' and '''Postpaid'''. <br />
<br><br><br />
=== Settings ===<br />
<br />
* '''Number start''' – how the invoice number should start.<br />
* '''Number length''' – the length in digits AFTER Number Start – e.g. Number Start is not counted into this length. This value is active only for first number type.<br />
* '''Number type''' – select more appropriate number format.<br />
* '''Invoice period start''' – when invoices are issued, default is first day of the month.<br />
* '''Show calls in detailed invoice''' – yes or no.<br />
* '''[[Outstanding balance(Debt) | Show balance line]]''' – shows balance line in Invoice PDF files when Invoice is generated from first day of month till last one. <br />
* '''Round finals to 2 decimals''' – round or not total in Invoices to 2 decimals.<br />
* '''Use short file name'''<br />
* '''Group Subscriptions''' - User's subscriptions will be grouped by service (only applies to PDF and XLSX invoice).<br />
* '''Show Quantity''' - Show quantity of each service (only applies to PDF invoice).<br />
* '''Invoice Page Limit:''' – invoice will be generated till this page limit. Additional page is added with an explanation that page limit was reached. <br />
* ''' Rename 'DID owner cost' label in detailed PDF invoice:''' – text which will be used instead of '''DID owner cost''' in detailed PDF invoice.<br />
* ''' Hide 'DID owner cost' line in detailed PDF invoice:''' – checkbox, which control whether or not DID owner cost should be shown in detailed PDF invoice.<br />
* ''' Show Destination with Prefix in Detailed Invoice:''' - checkbox, if enabled, destination will be shown as '''Destination Name (prefix)'''.<br />
* ''' Rename red 'INVOICE' label in Simplified PDF Invoice:''' <br />
* ''' Rename red 'INVOICE' label in Detailed PDF Invoice:'''<br />
* ''' Rename red 'INVOICE' label in PDF Invoice by CallerID:'''<br />
<br><br><br />
<br />
=== Details ===<br />
<br />
* '''Address format''' – changes field positioning in the invoice for the address. You must select it in order to show address in the invoice. <br />
* '''Address line 1-4''' – address info.<br />
* '''Bank details line 1-5''' – bank details info.<br />
* '''Invoice balance line''' – line for balance (e.g. "Your current balance is")<br />
* '''Invoice to pay Line'''<br />
* '''End title''' – a title for the end of your invoice.<br />
<!---This functionality is available from MOR 12---><br />
* '''Add Average rate in detailed invoice''' – adds average rate in detailed invoice.<br />
* '''Show Time in Minute''' – shows time in mm:ss instead of hh:mm:ss, for example, not 02:13:42 but 133:42.<br />
<br><br><br />
<br />
=== Additional ===<br />
<br />
* '''Show additional details on separate page''' – enables additional custom page at the end of the invoice.<br />
* '''Additional details''' – the information to be displayed in a custom page at the end of the invoice.<br />
<br><br><br />
=== Functionality ===<br />
<br />
* '''Invoice allow recalculate after send''' – allows recalculating invoices after being sent. This setting also allows to delete sent invoices.<br />
* '''Do not generate Invoices for blocked Users''' - if enabled Invoices will not be generated for blocked Users.<br />
* '''Rename "Calls" label''' - changes 'Calls' name for Simplified Invoices and new Invoice XLSX. If you want to apply new 'Calls' name for old XLSX, you should go to Settings > Invoices > XLSX and mark 'New XLSX template apply for old Invoices'<br />
* '''Start value for Invoice numbers''' - defines number from which Invoices numeration should start.<br />
* '''Duration Format:''' - time format in invoice. This setting applies for XLSX type invoices (and PDF invoices generated from XLSX invoice) and Invoice Details page. Available options - 'H:M:S', 'H:M', 'M'. When option 'M' is used, sub option Decimal places appear, where you can select precision.<br />
* '''Invoice Group By: Prefix / Destination'''<br />
* '''Show Rates:No / Yes'''<br />
* '''Show Calls in CID Invoice (CSV)''' - if enabled, then CSV Invoice by CallerID will show a list of calls.<br />
<br />
<br><br><br />
<br />
=== XLSX ===<br />
* '''XLSX Template''' - choose XLSX Template for Invoices.<br />
* '''Send XLSX Invoices converted to PDF''' – If enabled XLSX invoices will be converted to PDF before sending over [[Invoices#Send_invoices_by_email_.28manual.29|Email]] or [[Cron_actions#Generate_Invoices_and_send_by_Email|using cron action]]<br />
* '''Group regular Calls by Destination''' - Groups regular Calls be destination<br />
<br><br><br />
<br />
===See also===<br />
<br />
* [[Invoices]]<br />
* [[Invoice configuration]]<br />
<br><br><br />
<br />
== Emails ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Emails'''<br />
<br />
* ''' Sending globally enabled''' – if this is checked, you will be able to use Mass Mailing and the system will send emails upon user registration.<br />
* ''' Add recipient first name and last name''' – if this is checked, it will show the user's first name and last name if they are entered in the User Settings.<br />
* '''SMTP server''' – hostname of the server.<br />
* '''Port''' – port of SMTP server.<br />
* '''Login''' – username to your SMTP server.<br />
* '''Password''' – password to your SMTP server.<br />
* '''Batch size''' – value for Mass Mailing, or how many emails to send at once.<br />
* '''From''' – email address to put into From: field in email. Acceptable formats are: '''example@email.com''' or '''John Smith <example@email.com>'''.<br />
* '''Test email sending''' – save settings and press this to test email sending. Do not forget to save settings first!<br />
<br />
'''P.S. Remember to set admin's e-mail in admin's personal settings. Without this test email sending will not work!'''<br />
<br />
<br><br><br />
===See also===<br />
<br />
* [[Emails|Mass Emails]]<br />
* [[Email variables]]<br />
<br><br><br />
<br />
== Various ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Various'''<br />
<br />
* '''Days for DID to close''' – how long to keep DID closed before making it free.<br />
* '''Agreement number length''' – number length in digits.<br />
* '''Change dahdi''' – Sometimes this is used to change "Zap" to something else in GUI, e.g. to "PSTN", mainly because not everybody knows what Zap stands for. PSTN is more common.<br />
* '''Device PIN length''' – length for automatically generated PIN codes for devices.<br />
* '''Device range MIN''' – from which extension automatic extension assigning starts.<br />
* '''Device range MAX''' – till which extension automatic extension assigning goes.<br />
** For example, from this interval: [Device range MIN, Device range MAX] MOR will select extensions for newly created Devices.<br />
* '''Random Device Extension''' – when creating device, random number from '''Device Range''' will be taken.<br />
* '''Enable "Allowed addresses" option for Devices:''' – allows [[Device_settings#Allowed_Addresses | Allowed Addresses]] functionality in Devices settings.<br />
* '''Enable "Allowed addresses" option for Providers:''' – allows Allowed Addresses functionality in Providers settings.<br />
* '''User wholesale tariff enabled''' – enables user wholesale tariffs.<br />
* '''Play IVR for unauthenticated call'''<br />
* '''Banned CLIs default IVR''' – default IVR to route banned numbers.<br />
* '''Do not allow duplicate device user names'''<br />
* '''Do not allow users to change their email addresses'''<br />
* '''Logout link''' – a user will be redirected to this link after pressing "Logout"<br />
* '''Change ANSWER to FAILED if HGC not equal to 16 for Users''' – changes the Hangupcause for users in call reports from Answered to Failed if Hangupcause is not 16.<br />
* '''Inform when Devices are created or updated''' – check to get an email about every newly created or updated Device. <br />
* '''Show Usernames on PDF/CSV Export Files in Last Calls''' – if checked, when a particular User in the Last Calls page search is selected, the Last Calls PDF/CSV file name will be composed also of the Name of selected User. If you are looking for All Users, no User Name will be used. (Name of the User will be shown in Name of the CSV/PDF file).<br />
* '''Do not allow PREPAID User balance drop below zero (block them instead)'''<br />
* '''Do not block POSTPAID User when balance goes bellow zero on subscription count'''<br />
* '''Allow identical email addresses to different Users''' – allows creating Users or registering users with identical email addresses. After checking this setting you will be not able to check <br />
* '''Show forgot password''', because this functionality requires a unique email in the system. The setting can be unchecked if all emails are unique in the system. <br />
* '''Allow same IP and Port combinations in multiple Devices''' – allows creating Devices with the same IP and Port combination.<br />
* '''Low Disk Space Alert''' – indicator when system should inform admin about low [[Multi_Server_support|Server]] space. By default 20%. Notice will appear in [[Integrity Check]] and every hour will send an email "Low Disk Space Alert". Which template can be found and edited on [[Emails]] page. Information about the Server and the remaining free space will be provided.<br />
* '''Limit PDF size in Last Calls''' - limits how many pages can be exported from Last Calls to PDF. It takes a lot of system resources to generate PDF files therefore this limit should be low enough to prevent high load on system.<br />
* '''Google Maps API key''' - the setting is necessary for using the Google Maps functionality. For more on how to configure this key please check [[Get Google Maps key]].<br />
* '''Allow login by email''' - allow users to log in by email instead of a username.<br />
* '''Call Forwarding CallerID''' - allows to manage CallerID when [http://wiki.kolmisoft.com/index.php/Call_Flow#Change_Forward_action_by_Call forwarding is set by call].<br />
** '''From Device''' - puts CallerID for the Device that is forwarding the call. If Device CallerID is empty, then the originator's CallerID will be used.<br />
** '''Same as comes - unchanged''' - leaves the CallerID as it comes from the originator.<br />
** '''Same as comes - with Diversion''' - leaves the CallerID as it comes from the original caller and additionally adds SIP header Diversion with CallerID from the Device that is forwarding the call (header will not be added if Device does not have CallerID set).<br />
* '''DID for Unassigned DID''' - this feature is used for calls coming from providers to system DIDs. Allows redirecting call to specific DID if client dials nonexistent DID. If empty, then this feature is disabled and a call will be terminated with [http://wiki.kolmisoft.com/index.php/207_Not_clear_who_should_receive_call 207 Not clear who should receive call] hangup code.<br />
* '''Default Music On Hold''' - allows to select Default Music On Hold.<br />
* '''Use Extension in CallerID for Local Calls''' - overwrites original CallerID with Device Extension when making local calls. Outside calls are not affected by this setting.<br />
*'''Send Recordings space warning Email''' - sends Email to Admin once a day if recordings exceed space limit.<br />
*'''Hide Provider Payments from User Payment List''' - default off.<br />
<br />
== Tax ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Tax'''<br />
<br />
Settings are explained here: [[Multi-Tax system]]<br />
<br><br><br />
== Backups ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Backups'''<br />
<br />
Configuration is explained here: [[Backup system]]<br />
<br><br><br />
== API ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> API'''<br />
<br />
* '''Allow API''' – enable/disable API.<br />
* '''Allow GET API''' – enable/disable GET in API - use only for testing!<br />
* '''API Secret Key''' – secret key for API. This will be used as a password for signing queries to MOR API, check [[MOR_API | MOR API documentation]] for more information<br />
* '''XML API Extension''' – .NET does not follow standards (surprise!); enable this setting if you are using it to get XML starting with HTTP tags.<br />
* '''Allow API Login Redirect''' – enable/disable<br />
* '''API allow registration''' – enable/disable registration through API<br />
* '''API allow Payments''' – enable/disable payments through API<br />
* '''API Payment confirmation''' – enable/disable payments confirmation through API<br />
* '''[[Balance_in_phone|Allow devices to check balance over HTTP]]''' – enable/disable device balance checking<br />
* '''[[MOR_API_rate_get|Allow devices to check rate over HTTP]]''' – enable/disable device rate checking<br />
* '''Disable hash checking''' – lets you skip hash parameter using API<br />
* '''Uniquehash''' – shows your uniquehash <br />
* '''Send Email To Admin after API/Manual Payment''' - sends Email to Admin after API/Manual payment. Email Template name: manual_payment_email <br />
* '''Send Email to User after API/Manual Payment''' - sends Email to User after API/Manual payment. Email Template name: manual_payment_email_for_user <br />
* '''Send Email To Admin after API/Balance Update''' - sends Email to Admin after API/Balance Update. Email Template name: balance_update_email <br />
<br><br><br />
===See also===<br />
<br />
[[MOR API]]<br />
<br><br><br />
<br />
== Functionality ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Functionality'''<br />
<br><br><br />
===FAX===<br />
<br />
* '''Fax device enabled''' – enable/disable Fax device in MOR. When admin enables FAX, Functionality tab appears in Reseller's GUI configuration. He can then enable or disabled fax for his own users himself. <br />
* '''Fax2Email From Sender''' – there is a field "From:" in an email form. When MOR sends Fax to Email, "Fax2Email From Sender" value is displayed in "From:" field.<br />
* '''Allow Users to change FAX email''' - allow simple Users to add/remove/edit FAX emails in FAX Devices.<br />
* '''Fax2Email Email Template''' - [[Emails|email template]] to be used for Fax2Email emails. "None" means the default Asterisk template.<br />
<br><br><br />
<br />
===CSV===<br />
<br />
* '''CSV Column Separator''' – how columns are separated in imported/exported CSV files.<br />
* '''CSV Decimal Separator''' – how decimal parts in numbers are separated in imported/exported CSV files.<br />
* ''' Archive CSV file when size reaches''' – if CSV file reaches a certain size, the system will archive it to save time to download it (0 means to archive always)<br />
<br><br><br />
===Active Calls===<br />
<br />
* '''How many maximum [[Active_Calls|Active Calls]] to show in GUI''' – how many [[Active_Calls| Active Calls]] to show in GUI<br />
* '''[[Active_Calls| Active Calls]] refresh interval''' – [[Active_Calls|Active Calls]] refresh interval in seconds<br />
* '''Show [[Active_Calls|Active Calls]] for Users''' – tick if you want to allow users to see [[Active_Calls|Active Calls]]<br />
* '''Show Servers in [[Active_Calls|Active Calls]]'''<br />
* '''Show DIDs in [[Active_Calls|Active Calls]]'''<br />
* '''Show localized Source in [[Active_Calls|Active Calls]]''' - if set, [[Active_Calls|Active Calls]] will show callerid number after localisations (if any) have been applied.<br />
<br><br><br />
<br />
===Tariffs/Rates===<br />
<br />
* '''Show rates for users''' – allows users to see rates<br />
* '''Show rates without Tax''' – shows rates without TAX<br />
* '''Show [[Advanced_Rates|Advanced Rates]] for users''' – allows users to see [[Advanced_Rates|Advanced Rates]]<br />
* '''Show zero rates in LCR tariff export:''' – shows zero rates in LCR tariff exported file.<br />
* '''Show Ghost percent column in Tariffs:''' – if enabled, the Ghost percent column will be shown in the tariff. Default disabled.<br />
NOTE: if [[Custom Rates]] and/or Tariff Rates are set for the user, only the custom rates will be shown in the details of destination rates. <br />
<br><br><br />
<br />
===Statement of Account===<br />
* ''' PDF Settings ''' - allows to put Address lines of PDF file for Statement of Account.<br />
*Address line 1: Street Address<br />
*Address line 2: City, Country<br />
*Address line 3: Phone, fax<br />
*Address line 4: Web, email<br />
*Bank details line 1<br />
*Bank details line 2<br />
*Bank details line 3<br />
*Bank details line 4<br />
*Bank details line 5<br />
*Bank details line 6<br />
*Bank details line 7<br />
*Bank details line 8<br />
<br><br />
<br />
==Privacy==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Privacy'''<br />
<br />
* '''[[Privacy_to_hide_Destination_ends|Privacy to hide Destination ends]]'''<br />
* '''[[GDPR]] Activated''' – hides User data with notification "Data hidden due GDPR. Press to show data (action will be logged)". Valid for Admin, Accountant, Reseller and Partner.<br />
<br />
== Visual ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Visual'''<br />
<br />
* '''Items per page''' – the number of items to display per one page<br />
* '''[[Global_date_format| Default date format]]''' – System default date format<br />
* '''Default Time Format''' – System default time format<br />
* '''Number digits''' – how many digits to display after a comma<br />
* '''Hide Quick Stats in Start page''' – hide Quick stats from start page<br />
* '''Hide device passwords for users''' – do not display device passwords for users<br />
* '''Hide "Information about this page" link''' – hide HELP banner in GUI<br />
* '''Hide "I want to" help links'''<br />
* '''[[Remove_Manual_link_from_admin_GUI|Hide "Manual" link]]''' – hides "Manual" link<br />
* '''Show logo on first page''' - untick to hide logo on the start page<br />
* '''Show Full Source (CallerID Name and Number)'''<br />
* '''Use <> brackets in CDR export''' - changes brackets in CDR export<br />
* '''Hide payment options for postpaid users''' - will hide the payment option for all postpaid users (including Resellers if they are postpaid).<br />
* '''Hide non-completed payments for user''' – hides non-completed payments (the ones which are started in MOR, but are not completed in a payment gateway website)<br />
* '''Show only main page''' – this is a very advanced feature for those who want to hide default MOR menu tree on the left so that they could build their own menu using advanced techniques without modifying MOR GUI sources.<br />
* '''Show forgot password''' – turns on '''[[MOR_forgot_user_password | Forgot password]]''' functionality.<br />
* '''Hide Recordings for all users''' – hides recordings for all system users from menu and device settings.<br />
* '''Show recordings with zero billsec''' – shows recordings with zero billsec<br />
* '''Default Number Decimal''' – with this option you can set default number decimal for all GUI<br />
* '''Show user_billsec for Users instead of billsec''' – shows user_billsec instead of billsec in Users invoices and last calls. Notice that Billsec shows real Call duration, user_billsec shows Call duration after minimal time or increment applied. For example, if user tariff has 60 sec minimal time and user made a Call for 20 sec, then billsec will show 20 sec and user_billsec will show 60 sec (minimal time is applied).<br />
<!--- from X5---><br />
* '''Show Calls statistics to User for last''' – number of Calls statistics to show in days. For example, if you enter 5 days, users will only see 5 days old calls, they will not be able to check older calls. <br />
* '''Show Device and it's CallerID in Last Calls''' – shows additional column in [[Last Calls]] page with Device and its CallerID information. Click to reach that Device settings page..<br />
* '''Allow User to assign DID to Device''' – lets User to assign DID to Device.<br />
* '''Allow User to assign DID to Trunk''' – lets User to Assign DID to Trunk.<br />
* '''Show DID User instead of Device User in Last Calls''' - if enabled, always shows DID User name in Last Calls.<br />
* '''New Menu Active''' - if enabled, changes main menu to the new structure.<br />
* '''Show Replication Broken warning only for Admin''' - if enabled, shows Replication Broken warning message only for Admin account.<br />
* '''Dropdown field in User's subscriptions''' - enables old style Service selection in Subscription form.<br />
* '''Show detailed Quick Stats''' - shows modified quick stats of first page.<br />
* '''Show Terminated by in Last Calls''' - show Terminated By column in [[Last Calls]], calls CSV/PDF export, and adds the possibility to select this column in [[CDR Export Templates]].<br />
* '''Show entered Destination only for Users''' - show the Destination numbers for Users that were entered by them and not Destination numbers after Localization.<br />
<br><br><br />
<br />
== Server load ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Server load'''<br />
<br><br><br />
Settings for GUI Server and Database Server<br />
<br />
* '''HDD utilisation higher than''' – Percentage of CPU time during which I/O requests were issued to the device (bandwidth utilization for the device).<br />
* '''CPU General Load higher than''' – CPU General load higher than – Percentage of the CPU for user processes.<br />
* '''CPU Load Stats 1 higher than''' – average load per one minute on the system<br />
* '''CPU MySQL process higher than''' – Percentage of the CPU for MySQL process<br />
* '''CPU Ruby process higher than''' – Percentage of the CPU for Ruby process<br />
* '''CPU Asterisk process (if present) higher than''' – Percentage of the CPU for Asterisk process<br />
* '''Delete Server Load Stats older than''' – deletes internal servers load statistics older than defined number of days.<br />
<br><br />
<br />
== Calls ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Calls'''<br />
* '''Retrieve PCAP files from the Proxy Server''' – default off. Works only when CCL module is activated.<br />
<br><br><br />
[[Archived calls]]<br />
<br><br />
<br />
== FTP ==<br />
Please fill up FTP server details if you want to store Archived calls or/and Backups to FTP server.<br />
<br />
* '''IP''' - Enter FTP server IP.<br />
* '''Port''' - Enter FTP server Port.<br />
* '''Username''' - Enter FTP server Username.<br />
* '''Password''' - Enter FTP server Password.<br />
* '''Path for Archived Calls''' - Enter Path for Archived Calls.<br />
* '''Path for Backups''' - Enter path for Backups.<br />
* '''Path for CDR Export''' - Enter path where to export CDRs.<br />
<br><br />
<br />
== Security ==<br />
* '''Allow short passwords in devices'''<br />
* '''Use strong passwords for users'''<br />
* '''Admin login with approved IP only''' - security measure which allows to approve IP's that try to [[MOR_Login_with_approved_IP%27s|login with Admin Account]].<br />
* '''Enable IP report warning on login failure''' - show [[MOR_Login_Failure_Report|warning]] on unsuccessful login attempts.<br />
* '''Logout after password change''' - terminates all sessions of the User whose password is changed.<br />
* '''Logout after closing browser window''' - terminates all sessions of the User after closing browser window.<br />
* '''Do not logout on session IP change''' - do not logout from MOR GUI if IP is changed.<br />
* '''2FA Enabled''' - Enables two factors authentication. Two factors authentication requires to enter emailed code during login to user account. '''2FA Enabled must be also enable on individual [[User_Details|User settings]] to make it work for that User.'''<br />
** '''Email Template''' - [[Emails|email template]] used to send the code.<br />
** '''Code length (digits)''' - code length.<br />
** '''Code Enter Attempts Allowed''' - number of attempts to enter the code correctly. Code expires after this number of failed attempts.<br />
** '''Code Enter Time Allowed''' - code is valid for this amount of time.<br />
** '''Send Notification Email to Admin on Login''' - allows admin to get email notification on login.<br />
*** '''Email Template''' - [[Emails|email template]] used to notify admin.<br />
*** '''On Admin Login''' - get notification on login to Admin's account.<br />
*** '''On User Login''' - get notification on login to User's accounts.<br />
** '''Send Notification Email on Login''' - allows this mailbox to get email notification on login.<br />
*** '''Email Template''' - [[Emails|email template]] used to notify.<br />
*** '''On Admin Login''' - get notification on login to Admin's account.<br />
*** '''On User Login''' - get notification on login to User's accounts.<br />
<br><br><br />
<br />
=See also=<br />
<br />
* [[Server is overloaded]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Configuration_from_GUI&diff=29107Configuration from GUI2023-09-12T11:04:34Z<p>Nerijuss: /* Functionality */</p>
<hr />
<div>=Where I can find this settings menu?=<br />
<br />
You can find this menu in '''SETTINGS –> Setup –> Settings'''<br />
<br />
[[File:Settings_path.png]]<br />
<br><br><br />
== Global ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> [[Global_Settings | Global]]'''<br />
<br />
* '''Company''' – name of the company.<br />
* '''Company email''' – email address of the company.<br />
* '''Version''' – version number.<br />
* '''Copyright Title''' – copyright title supports html text format.<br />
* '''Browser Title''' – browser title for MOR GUI.<br />
* '''Front Page Text''' – some text to place on front page.<br />
* '''Login Page Text''' – some text to place on login page<br />
<br><br><br />
<br />
== Registration == <br />
<br />
'''SETTINGS –> Setup –> Settings –> Registration'''<br />
<br />
* '''Enabled?''' – do we want to let users [[Online registration | register online]] automatically?<br />
* '''Hide registration link in Login page?''' – tick this option if you do not want users to be able to register online.<br />
* '''Default country'''<br />
* '''Asterisk server IP''' – what IP should user connect his softphone/server to?<br />
* '''Send Email to User after registration''' – just yes or no.<br />
* '''Send Email to Admin after registration''' – just yes or no.<br />
* '''Send Email To User after User was created''' – just yes or no.<br />
* '''Send Email To Admin after User was created''' – just yes or no.<br />
* '''[[ReCAPTCHA]] configuration'''<br />
* '''[[User_Agreement|Terms and conditions]]'''<br />
* '''Allow to create user and device with matching username and password''' – just yes or no. If this setting is not enabled - username and password from MOR GUI will have to be different than device's username and password.<br />
* '''Enable VAT checking for EU companies''' – you can choose whether to check '''TAX Registration Number:''' during the [[Online registration]] or not. Done over [http://ec.europa.eu/taxation_customs/vies/?locale=lt EU page].<br />
* '''Allow blank VAT for EU companies''' – allows to leave blank '''TAX Registration Number:''' field during the [[Online registration]]<br />
<br><br><br />
===See also===<br />
<br />
* [[Default user]]<br />
<br><br><br />
<br />
== Invoices ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Invoices'''<br />
<br />
Invoice configuration is divided into '''Prepaid''' and '''Postpaid'''. <br />
<br><br><br />
=== Settings ===<br />
<br />
* '''Number start''' – how the invoice number should start.<br />
* '''Number length''' – the length in digits AFTER Number Start – e.g. Number Start is not counted into this length. This value is active only for first number type.<br />
* '''Number type''' – select more appropriate number format.<br />
* '''Invoice period start''' – when invoices are issued, default is first day of the month.<br />
* '''Show calls in detailed invoice''' – yes or no.<br />
* '''[[Outstanding balance(Debt) | Show balance line]]''' – shows balance line in Invoice PDF files when Invoice is generated from first day of month till last one. <br />
* '''Round finals to 2 decimals''' – round or not total in Invoices to 2 decimals.<br />
* '''Use short file name'''<br />
* '''Group Subscriptions''' - User's subscriptions will be grouped by service (only applies to PDF and XLSX invoice).<br />
* '''Show Quantity''' - Show quantity of each service (only applies to PDF invoice).<br />
* '''Invoice Page Limit:''' – invoice will be generated till this page limit. Additional page is added with an explanation that page limit was reached. <br />
* ''' Rename 'DID owner cost' label in detailed PDF invoice:''' – text which will be used instead of '''DID owner cost''' in detailed PDF invoice.<br />
* ''' Hide 'DID owner cost' line in detailed PDF invoice:''' – checkbox, which control whether or not DID owner cost should be shown in detailed PDF invoice.<br />
* ''' Show Destination with Prefix in Detailed Invoice:''' - checkbox, if enabled, destination will be shown as '''Destination Name (prefix)'''.<br />
* ''' Rename red 'INVOICE' label in Simplified PDF Invoice:''' <br />
* ''' Rename red 'INVOICE' label in Detailed PDF Invoice:'''<br />
* ''' Rename red 'INVOICE' label in PDF Invoice by CallerID:'''<br />
<br><br><br />
<br />
=== Details ===<br />
<br />
* '''Address format''' – changes field positioning in the invoice for the address. You must select it in order to show address in the invoice. <br />
* '''Address line 1-4''' – address info.<br />
* '''Bank details line 1-5''' – bank details info.<br />
* '''Invoice balance line''' – line for balance (e.g. "Your current balance is")<br />
* '''Invoice to pay Line'''<br />
* '''End title''' – a title for the end of your invoice.<br />
<!---This functionality is available from MOR 12---><br />
* '''Add Average rate in detailed invoice''' – adds average rate in detailed invoice.<br />
* '''Show Time in Minute''' – shows time in mm:ss instead of hh:mm:ss, for example, not 02:13:42 but 133:42.<br />
<br><br><br />
<br />
=== Additional ===<br />
<br />
* '''Show additional details on separate page''' – enables additional custom page at the end of the invoice.<br />
* '''Additional details''' – the information to be displayed in a custom page at the end of the invoice.<br />
<br><br><br />
=== Functionality ===<br />
<br />
* '''Invoice allow recalculate after send''' – allows recalculating invoices after being sent. This setting also allows to delete sent invoices.<br />
* '''Do not generate Invoices for blocked Users''' - if enabled Invoices will not be generated for blocked Users.<br />
* '''Rename "Calls" label''' - changes 'Calls' name for Simplified Invoices and new Invoice XLSX. If you want to apply new 'Calls' name for old XLSX, you should go to Settings > Invoices > XLSX and mark 'New XLSX template apply for old Invoices'<br />
* '''Start value for Invoice numbers''' - defines number from which Invoices numeration should start.<br />
* '''Duration Format:''' - time format in invoice. This setting applies for XLSX type invoices (and PDF invoices generated from XLSX invoice) and Invoice Details page. Available options - 'H:M:S', 'H:M', 'M'. When option 'M' is used, sub option Decimal places appear, where you can select precision.<br />
* '''Invoice Group By: Prefix / Destination'''<br />
* '''Show Rates:No / Yes'''<br />
* '''Show Calls in CID Invoice (CSV)" - if enabled, then CSV Invoice by CallerID will show a list of calls.<br />
<br />
<br><br><br />
<br />
=== XLSX ===<br />
* '''XLSX Template''' - choose XLSX Template for Invoices.<br />
* '''Send XLSX Invoices converted to PDF''' – If enabled XLSX invoices will be converted to PDF before sending over [[Invoices#Send_invoices_by_email_.28manual.29|Email]] or [[Cron_actions#Generate_Invoices_and_send_by_Email|using cron action]]<br />
* '''Group regular Calls by Destination''' - Groups regular Calls be destination<br />
<br><br><br />
<br />
===See also===<br />
<br />
* [[Invoices]]<br />
* [[Invoice configuration]]<br />
<br><br><br />
<br />
== Emails ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Emails'''<br />
<br />
* ''' Sending globally enabled''' – if this is checked, you will be able to use Mass Mailing and the system will send emails upon user registration.<br />
* ''' Add recipient first name and last name''' – if this is checked, it will show the user's first name and last name if they are entered in the User Settings.<br />
* '''SMTP server''' – hostname of the server.<br />
* '''Port''' – port of SMTP server.<br />
* '''Login''' – username to your SMTP server.<br />
* '''Password''' – password to your SMTP server.<br />
* '''Batch size''' – value for Mass Mailing, or how many emails to send at once.<br />
* '''From''' – email address to put into From: field in email. Acceptable formats are: '''example@email.com''' or '''John Smith <example@email.com>'''.<br />
* '''Test email sending''' – save settings and press this to test email sending. Do not forget to save settings first!<br />
<br />
'''P.S. Remember to set admin's e-mail in admin's personal settings. Without this test email sending will not work!'''<br />
<br />
<br><br><br />
===See also===<br />
<br />
* [[Emails|Mass Emails]]<br />
* [[Email variables]]<br />
<br><br><br />
<br />
== Various ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Various'''<br />
<br />
* '''Days for DID to close''' – how long to keep DID closed before making it free.<br />
* '''Agreement number length''' – number length in digits.<br />
* '''Change dahdi''' – Sometimes this is used to change "Zap" to something else in GUI, e.g. to "PSTN", mainly because not everybody knows what Zap stands for. PSTN is more common.<br />
* '''Device PIN length''' – length for automatically generated PIN codes for devices.<br />
* '''Device range MIN''' – from which extension automatic extension assigning starts.<br />
* '''Device range MAX''' – till which extension automatic extension assigning goes.<br />
** For example, from this interval: [Device range MIN, Device range MAX] MOR will select extensions for newly created Devices.<br />
* '''Random Device Extension''' – when creating device, random number from '''Device Range''' will be taken.<br />
* '''Enable "Allowed addresses" option for Devices:''' – allows [[Device_settings#Allowed_Addresses | Allowed Addresses]] functionality in Devices settings.<br />
* '''Enable "Allowed addresses" option for Providers:''' – allows Allowed Addresses functionality in Providers settings.<br />
* '''User wholesale tariff enabled''' – enables user wholesale tariffs.<br />
* '''Play IVR for unauthenticated call'''<br />
* '''Banned CLIs default IVR''' – default IVR to route banned numbers.<br />
* '''Do not allow duplicate device user names'''<br />
* '''Do not allow users to change their email addresses'''<br />
* '''Logout link''' – a user will be redirected to this link after pressing "Logout"<br />
* '''Change ANSWER to FAILED if HGC not equal to 16 for Users''' – changes the Hangupcause for users in call reports from Answered to Failed if Hangupcause is not 16.<br />
* '''Inform when Devices are created or updated''' – check to get an email about every newly created or updated Device. <br />
* '''Show Usernames on PDF/CSV Export Files in Last Calls''' – if checked, when a particular User in the Last Calls page search is selected, the Last Calls PDF/CSV file name will be composed also of the Name of selected User. If you are looking for All Users, no User Name will be used. (Name of the User will be shown in Name of the CSV/PDF file).<br />
* '''Do not allow PREPAID User balance drop below zero (block them instead)'''<br />
* '''Do not block POSTPAID User when balance goes bellow zero on subscription count'''<br />
* '''Allow identical email addresses to different Users''' – allows creating Users or registering users with identical email addresses. After checking this setting you will be not able to check <br />
* '''Show forgot password''', because this functionality requires a unique email in the system. The setting can be unchecked if all emails are unique in the system. <br />
* '''Allow same IP and Port combinations in multiple Devices''' – allows creating Devices with the same IP and Port combination.<br />
* '''Low Disk Space Alert''' – indicator when system should inform admin about low [[Multi_Server_support|Server]] space. By default 20%. Notice will appear in [[Integrity Check]] and every hour will send an email "Low Disk Space Alert". Which template can be found and edited on [[Emails]] page. Information about the Server and the remaining free space will be provided.<br />
* '''Limit PDF size in Last Calls''' - limits how many pages can be exported from Last Calls to PDF. It takes a lot of system resources to generate PDF files therefore this limit should be low enough to prevent high load on system.<br />
* '''Google Maps API key''' - the setting is necessary for using the Google Maps functionality. For more on how to configure this key please check [[Get Google Maps key]].<br />
* '''Allow login by email''' - allow users to log in by email instead of a username.<br />
* '''Call Forwarding CallerID''' - allows to manage CallerID when [http://wiki.kolmisoft.com/index.php/Call_Flow#Change_Forward_action_by_Call forwarding is set by call].<br />
** '''From Device''' - puts CallerID for the Device that is forwarding the call. If Device CallerID is empty, then the originator's CallerID will be used.<br />
** '''Same as comes - unchanged''' - leaves the CallerID as it comes from the originator.<br />
** '''Same as comes - with Diversion''' - leaves the CallerID as it comes from the original caller and additionally adds SIP header Diversion with CallerID from the Device that is forwarding the call (header will not be added if Device does not have CallerID set).<br />
* '''DID for Unassigned DID''' - this feature is used for calls coming from providers to system DIDs. Allows redirecting call to specific DID if client dials nonexistent DID. If empty, then this feature is disabled and a call will be terminated with [http://wiki.kolmisoft.com/index.php/207_Not_clear_who_should_receive_call 207 Not clear who should receive call] hangup code.<br />
* '''Default Music On Hold''' - allows to select Default Music On Hold.<br />
* '''Use Extension in CallerID for Local Calls''' - overwrites original CallerID with Device Extension when making local calls. Outside calls are not affected by this setting.<br />
*'''Send Recordings space warning Email''' - sends Email to Admin once a day if recordings exceed space limit.<br />
*'''Hide Provider Payments from User Payment List''' - default off.<br />
<br />
== Tax ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Tax'''<br />
<br />
Settings are explained here: [[Multi-Tax system]]<br />
<br><br><br />
== Backups ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Backups'''<br />
<br />
Configuration is explained here: [[Backup system]]<br />
<br><br><br />
== API ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> API'''<br />
<br />
* '''Allow API''' – enable/disable API.<br />
* '''Allow GET API''' – enable/disable GET in API - use only for testing!<br />
* '''API Secret Key''' – secret key for API. This will be used as a password for signing queries to MOR API, check [[MOR_API | MOR API documentation]] for more information<br />
* '''XML API Extension''' – .NET does not follow standards (surprise!); enable this setting if you are using it to get XML starting with HTTP tags.<br />
* '''Allow API Login Redirect''' – enable/disable<br />
* '''API allow registration''' – enable/disable registration through API<br />
* '''API allow Payments''' – enable/disable payments through API<br />
* '''API Payment confirmation''' – enable/disable payments confirmation through API<br />
* '''[[Balance_in_phone|Allow devices to check balance over HTTP]]''' – enable/disable device balance checking<br />
* '''[[MOR_API_rate_get|Allow devices to check rate over HTTP]]''' – enable/disable device rate checking<br />
* '''Disable hash checking''' – lets you skip hash parameter using API<br />
* '''Uniquehash''' – shows your uniquehash <br />
* '''Send Email To Admin after API/Manual Payment''' - sends Email to Admin after API/Manual payment. Email Template name: manual_payment_email <br />
* '''Send Email to User after API/Manual Payment''' - sends Email to User after API/Manual payment. Email Template name: manual_payment_email_for_user <br />
* '''Send Email To Admin after API/Balance Update''' - sends Email to Admin after API/Balance Update. Email Template name: balance_update_email <br />
<br><br><br />
===See also===<br />
<br />
[[MOR API]]<br />
<br><br><br />
<br />
== Functionality ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Functionality'''<br />
<br><br><br />
===FAX===<br />
<br />
* '''Fax device enabled''' – enable/disable Fax device in MOR. When admin enables FAX, Functionality tab appears in Reseller's GUI configuration. He can then enable or disabled fax for his own users himself. <br />
* '''Fax2Email From Sender''' – there is a field "From:" in an email form. When MOR sends Fax to Email, "Fax2Email From Sender" value is displayed in "From:" field.<br />
* '''Allow Users to change FAX email''' - allow simple Users to add/remove/edit FAX emails in FAX Devices.<br />
* '''Fax2Email Email Template''' - [[Emails|email template]] to be used for Fax2Email emails. "None" means the default Asterisk template.<br />
<br><br><br />
<br />
===CSV===<br />
<br />
* '''CSV Column Separator''' – how columns are separated in imported/exported CSV files.<br />
* '''CSV Decimal Separator''' – how decimal parts in numbers are separated in imported/exported CSV files.<br />
* ''' Archive CSV file when size reaches''' – if CSV file reaches a certain size, the system will archive it to save time to download it (0 means to archive always)<br />
<br><br><br />
===Active Calls===<br />
<br />
* '''How many maximum [[Active_Calls|Active Calls]] to show in GUI''' – how many [[Active_Calls| Active Calls]] to show in GUI<br />
* '''[[Active_Calls| Active Calls]] refresh interval''' – [[Active_Calls|Active Calls]] refresh interval in seconds<br />
* '''Show [[Active_Calls|Active Calls]] for Users''' – tick if you want to allow users to see [[Active_Calls|Active Calls]]<br />
* '''Show Servers in [[Active_Calls|Active Calls]]'''<br />
* '''Show DIDs in [[Active_Calls|Active Calls]]'''<br />
* '''Show localized Source in [[Active_Calls|Active Calls]]''' - if set, [[Active_Calls|Active Calls]] will show callerid number after localisations (if any) have been applied.<br />
<br><br><br />
<br />
===Tariffs/Rates===<br />
<br />
* '''Show rates for users''' – allows users to see rates<br />
* '''Show rates without Tax''' – shows rates without TAX<br />
* '''Show [[Advanced_Rates|Advanced Rates]] for users''' – allows users to see [[Advanced_Rates|Advanced Rates]]<br />
* '''Show zero rates in LCR tariff export:''' – shows zero rates in LCR tariff exported file.<br />
* '''Show Ghost percent column in Tariffs:''' – if enabled, the Ghost percent column will be shown in the tariff. Default disabled.<br />
NOTE: if [[Custom Rates]] and/or Tariff Rates are set for the user, only the custom rates will be shown in the details of destination rates. <br />
<br><br><br />
<br />
===Statement of Account===<br />
* ''' PDF Settings ''' - allows to put Address lines of PDF file for Statement of Account.<br />
*Address line 1: Street Address<br />
*Address line 2: City, Country<br />
*Address line 3: Phone, fax<br />
*Address line 4: Web, email<br />
*Bank details line 1<br />
*Bank details line 2<br />
*Bank details line 3<br />
*Bank details line 4<br />
*Bank details line 5<br />
*Bank details line 6<br />
*Bank details line 7<br />
*Bank details line 8<br />
<br><br />
<br />
==Privacy==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Privacy'''<br />
<br />
* '''[[Privacy_to_hide_Destination_ends|Privacy to hide Destination ends]]'''<br />
* '''[[GDPR]] Activated''' – hides User data with notification "Data hidden due GDPR. Press to show data (action will be logged)". Valid for Admin, Accountant, Reseller and Partner.<br />
<br />
== Visual ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Visual'''<br />
<br />
* '''Items per page''' – the number of items to display per one page<br />
* '''[[Global_date_format| Default date format]]''' – System default date format<br />
* '''Default Time Format''' – System default time format<br />
* '''Number digits''' – how many digits to display after a comma<br />
* '''Hide Quick Stats in Start page''' – hide Quick stats from start page<br />
* '''Hide device passwords for users''' – do not display device passwords for users<br />
* '''Hide "Information about this page" link''' – hide HELP banner in GUI<br />
* '''Hide "I want to" help links'''<br />
* '''[[Remove_Manual_link_from_admin_GUI|Hide "Manual" link]]''' – hides "Manual" link<br />
* '''Show logo on first page''' - untick to hide logo on the start page<br />
* '''Show Full Source (CallerID Name and Number)'''<br />
* '''Use <> brackets in CDR export''' - changes brackets in CDR export<br />
* '''Hide payment options for postpaid users''' - will hide the payment option for all postpaid users (including Resellers if they are postpaid).<br />
* '''Hide non-completed payments for user''' – hides non-completed payments (the ones which are started in MOR, but are not completed in a payment gateway website)<br />
* '''Show only main page''' – this is a very advanced feature for those who want to hide default MOR menu tree on the left so that they could build their own menu using advanced techniques without modifying MOR GUI sources.<br />
* '''Show forgot password''' – turns on '''[[MOR_forgot_user_password | Forgot password]]''' functionality.<br />
* '''Hide Recordings for all users''' – hides recordings for all system users from menu and device settings.<br />
* '''Show recordings with zero billsec''' – shows recordings with zero billsec<br />
* '''Default Number Decimal''' – with this option you can set default number decimal for all GUI<br />
* '''Show user_billsec for Users instead of billsec''' – shows user_billsec instead of billsec in Users invoices and last calls. Notice that Billsec shows real Call duration, user_billsec shows Call duration after minimal time or increment applied. For example, if user tariff has 60 sec minimal time and user made a Call for 20 sec, then billsec will show 20 sec and user_billsec will show 60 sec (minimal time is applied).<br />
<!--- from X5---><br />
* '''Show Calls statistics to User for last''' – number of Calls statistics to show in days. For example, if you enter 5 days, users will only see 5 days old calls, they will not be able to check older calls. <br />
* '''Show Device and it's CallerID in Last Calls''' – shows additional column in [[Last Calls]] page with Device and its CallerID information. Click to reach that Device settings page..<br />
* '''Allow User to assign DID to Device''' – lets User to assign DID to Device.<br />
* '''Allow User to assign DID to Trunk''' – lets User to Assign DID to Trunk.<br />
* '''Show DID User instead of Device User in Last Calls''' - if enabled, always shows DID User name in Last Calls.<br />
* '''New Menu Active''' - if enabled, changes main menu to the new structure.<br />
* '''Show Replication Broken warning only for Admin''' - if enabled, shows Replication Broken warning message only for Admin account.<br />
* '''Dropdown field in User's subscriptions''' - enables old style Service selection in Subscription form.<br />
* '''Show detailed Quick Stats''' - shows modified quick stats of first page.<br />
* '''Show Terminated by in Last Calls''' - show Terminated By column in [[Last Calls]], calls CSV/PDF export, and adds the possibility to select this column in [[CDR Export Templates]].<br />
* '''Show entered Destination only for Users''' - show the Destination numbers for Users that were entered by them and not Destination numbers after Localization.<br />
<br><br><br />
<br />
== Server load ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Server load'''<br />
<br><br><br />
Settings for GUI Server and Database Server<br />
<br />
* '''HDD utilisation higher than''' – Percentage of CPU time during which I/O requests were issued to the device (bandwidth utilization for the device).<br />
* '''CPU General Load higher than''' – CPU General load higher than – Percentage of the CPU for user processes.<br />
* '''CPU Load Stats 1 higher than''' – average load per one minute on the system<br />
* '''CPU MySQL process higher than''' – Percentage of the CPU for MySQL process<br />
* '''CPU Ruby process higher than''' – Percentage of the CPU for Ruby process<br />
* '''CPU Asterisk process (if present) higher than''' – Percentage of the CPU for Asterisk process<br />
* '''Delete Server Load Stats older than''' – deletes internal servers load statistics older than defined number of days.<br />
<br><br />
<br />
== Calls ==<br />
<br />
'''SETTINGS –> Setup –> Settings –> Calls'''<br />
* '''Retrieve PCAP files from the Proxy Server''' – default off. Works only when CCL module is activated.<br />
<br><br><br />
[[Archived calls]]<br />
<br><br />
<br />
== FTP ==<br />
Please fill up FTP server details if you want to store Archived calls or/and Backups to FTP server.<br />
<br />
* '''IP''' - Enter FTP server IP.<br />
* '''Port''' - Enter FTP server Port.<br />
* '''Username''' - Enter FTP server Username.<br />
* '''Password''' - Enter FTP server Password.<br />
* '''Path for Archived Calls''' - Enter Path for Archived Calls.<br />
* '''Path for Backups''' - Enter path for Backups.<br />
* '''Path for CDR Export''' - Enter path where to export CDRs.<br />
<br><br />
<br />
== Security ==<br />
* '''Allow short passwords in devices'''<br />
* '''Use strong passwords for users'''<br />
* '''Admin login with approved IP only''' - security measure which allows to approve IP's that try to [[MOR_Login_with_approved_IP%27s|login with Admin Account]].<br />
* '''Enable IP report warning on login failure''' - show [[MOR_Login_Failure_Report|warning]] on unsuccessful login attempts.<br />
* '''Logout after password change''' - terminates all sessions of the User whose password is changed.<br />
* '''Logout after closing browser window''' - terminates all sessions of the User after closing browser window.<br />
* '''Do not logout on session IP change''' - do not logout from MOR GUI if IP is changed.<br />
* '''2FA Enabled''' - Enables two factors authentication. Two factors authentication requires to enter emailed code during login to user account. '''2FA Enabled must be also enable on individual [[User_Details|User settings]] to make it work for that User.'''<br />
** '''Email Template''' - [[Emails|email template]] used to send the code.<br />
** '''Code length (digits)''' - code length.<br />
** '''Code Enter Attempts Allowed''' - number of attempts to enter the code correctly. Code expires after this number of failed attempts.<br />
** '''Code Enter Time Allowed''' - code is valid for this amount of time.<br />
** '''Send Notification Email to Admin on Login''' - allows admin to get email notification on login.<br />
*** '''Email Template''' - [[Emails|email template]] used to notify admin.<br />
*** '''On Admin Login''' - get notification on login to Admin's account.<br />
*** '''On User Login''' - get notification on login to User's accounts.<br />
** '''Send Notification Email on Login''' - allows this mailbox to get email notification on login.<br />
*** '''Email Template''' - [[Emails|email template]] used to notify.<br />
*** '''On Admin Login''' - get notification on login to Admin's account.<br />
*** '''On User Login''' - get notification on login to User's accounts.<br />
<br><br><br />
<br />
=See also=<br />
<br />
* [[Server is overloaded]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Restrict_Access_To_GUI&diff=29048Restrict Access To GUI2023-08-24T14:33:15Z<p>Nerijuss: </p>
<hr />
<div>== Restrict access to GUI using Apache configuration ==<br />
Edit file:<br />
<br />
/etc/httpd/conf/httpd.conf<br />
<br />
Add these lines to the bottom of the file:<br />
<br />
<Location /><br />
Order deny,allow<br />
Deny from all<br />
Allow from 192.168.0.192<br />
Allow from 192.168.0.69<br />
Allow from 10.0.0.0/24<br />
Allow from 127.0.0.1<br />
</Location><br />
<br />
Access to GUI will be forbidden for all hosts except 192.168.0.192 and 192.168.0.69.<br />
<br />
'''IMPORTANT:''' '''ALL''' system IPs must be inserted to be allowed in this file.</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_API_users_get&diff=29047M4 API users get2023-08-23T12:33:35Z<p>Nerijuss: /* Usage */</p>
<hr />
<div>=Description=<br />
<br />
[[M4 API]] for getting list of users<br />
<br />
*'''Admin or Manager with permissions''' can get all users list<br />
<br />
<br><br><br />
=Usage=<br />
<br />
* Methods: POST, GET(if allowed, not recomended)<br />
<br><br><br />
===Parameters=== <br />
<br />
Parameters which are included into hash<br />
<br />
* u - username to login. '''Required'''.<br />
* user_id - specify "all" to list all users or specify the ID of the user to list only that user. '''Required'''.<br />
<br />
*[[MOR API hash construction | hash]] – SHA1 hash constructed using '''API Secret Key''' ([[MOR API hash construction | More described in Constructing hash]]). '''Required'''.<br />
<br />
<br><br><br />
<br />
===Request===<br />
<br />
If API Secret Key = secret<br />
<br />
You send:<br />
<br />
HTML POST: http://<SERVER_IP>/billing/api/users_get?u=admin&user_id=all&hash=c420ef706a02e6449994b7575b25ef5f74cc722b<br />
<br />
<br><br><br />
<br />
===Returns===<br />
<br />
<?xml version="1.0" encoding="UTF-8"?><br />
<page><br />
<status><br />
<users><br />
<user><br />
<id> ... </id><br />
<username> ... </username><br />
<first_name> ... </first_nam><br />
<last_name> ... </last_name><br />
<balance> ... </balance><br />
<blocked> ... </blocked><br />
<tariff_id> ... </tariff_id><br />
<owner_id> ... </owner_id><br />
<usertype> ... </usertype><br />
</user><br />
</users><br />
</status><br />
</page><br />
<br />
'''Errors:'''<br />
<br />
* <error>API Requests are disabled</error> – '''Allow API globally''' setting is unchecked<br />
* <error>GET Requests are disabled</error> – '''Allow GET API''' setting is unchecked<br />
* <error>Access Denied</error> – User is not allowed to to get users list or username and password are not correct.<br />
* <error>Incorrect hash</error> – Hash was not correct. Check API_Secret_Key and order of parameters while concatenating the hash_string<br />
* <error>You are not authorized to view this page</error> – User is not authorized to get users list.<br />
<br />
<br />
Example:<br />
<br />
<status><br />
<error>API Requests are disabled</error><br />
</status><br />
<br><br><br />
<br />
=See also=<br />
<br />
* [[M4 API]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_API_users_get&diff=29046M4 API users get2023-08-23T11:04:19Z<p>Nerijuss: </p>
<hr />
<div>=Description=<br />
<br />
[[M4 API]] for getting list of users<br />
<br />
*'''Admin or Manager with permissions''' can get all users list<br />
<br />
<br><br><br />
=Usage=<br />
<br />
* Methods: POST, GET(if allowed, not recomended)<br />
<br><br><br />
===Parameters=== <br />
<br />
Parameters which are included into hash<br />
<br />
* u - username to login. '''Required'''.<br />
<br />
*[[MOR API hash construction | hash]] – SHA1 hash constructed using '''API Secret Key''' ([[MOR API hash construction | More described in Constructing hash]]). '''Required'''.<br />
<br />
<br><br><br />
<br />
===Request===<br />
<br />
If API Secret Key = secret<br />
<br />
You send:<br />
<br />
HTML POST: http://<SERVER_IP>/billing/api/users_get?u=admin&hash=c420ef706a02e6449994b7575b25ef5f74cc722b<br />
<br />
<br><br><br />
<br />
===Returns===<br />
<br />
<?xml version="1.0" encoding="UTF-8"?><br />
<page><br />
<status><br />
<users><br />
<user><br />
<id> ... </id><br />
<username> ... </username><br />
<first_name> ... </first_nam><br />
<last_name> ... </last_name><br />
<balance> ... </balance><br />
<blocked> ... </blocked><br />
<tariff_id> ... </tariff_id><br />
<owner_id> ... </owner_id><br />
<usertype> ... </usertype><br />
</user><br />
</users><br />
</status><br />
</page><br />
<br />
'''Errors:'''<br />
<br />
* <error>API Requests are disabled</error> – '''Allow API globally''' setting is unchecked<br />
* <error>GET Requests are disabled</error> – '''Allow GET API''' setting is unchecked<br />
* <error>Access Denied</error> – User is not allowed to to get users list or username and password are not correct.<br />
* <error>Incorrect hash</error> – Hash was not correct. Check API_Secret_Key and order of parameters while concatenating the hash_string<br />
* <error>You are not authorized to view this page</error> – User is not authorized to get users list.<br />
<br />
<br />
Example:<br />
<br />
<status><br />
<error>API Requests are disabled</error><br />
</status><br />
<br><br><br />
<br />
=See also=<br />
<br />
* [[M4 API]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_API_users_get&diff=29045M4 API users get2023-08-23T11:03:21Z<p>Nerijuss: /* Parameters */</p>
<hr />
<div>=Description=<br />
<br />
[[M4 API]] for getting list of users<br />
<br />
*'''Admin or Manager with permissions''' can get all users list<br />
<br />
<br><br><br />
=Usage=<br />
<br />
* Methods: POST, GET(if allowed, not recomended)<br />
<br><br><br />
===Parameters=== <br />
<br />
Parameters which are included into hash<br />
<br />
* u - username to login. '''Required'''.<br />
<br />
*[[MOR API hash construction | hash]] – SHA1 hash constructed using '''API Secret Key''' ([[MOR API hash construction | More described in Constructing hash]]). '''Required'''.<br />
<br />
<br><br><br />
<br />
===Request===<br />
<br />
If API Secret Key = secret<br />
<br />
You send:<br />
<br />
HTML POST: http://<SERVER_IP>/billing/api/users_get?u=admin&p=admin1&test=1&hash=c420ef706a02e6449994b7575b25ef5f74cc722b<br />
<br />
<br><br><br />
<br />
===Returns===<br />
<br />
<?xml version="1.0" encoding="UTF-8"?><br />
<page><br />
<status><br />
<users><br />
<user><br />
<id> ... </id><br />
<username> ... </username><br />
<first_name> ... </first_nam><br />
<last_name> ... </last_name><br />
<balance> ... </balance><br />
<blocked> ... </blocked><br />
<tariff_id> ... </tariff_id><br />
<owner_id> ... </owner_id><br />
<usertype> ... </usertype><br />
</user><br />
</users><br />
</status><br />
</page><br />
<br />
'''Errors:'''<br />
<br />
* <error>API Requests are disabled</error> – '''Allow API globally''' setting is unchecked<br />
* <error>GET Requests are disabled</error> – '''Allow GET API''' setting is unchecked<br />
* <error>Access Denied</error> – User is not allowed to to get users list or username and password are not correct.<br />
* <error>Incorrect hash</error> – Hash was not correct. Check API_Secret_Key and order of parameters while concatenating the hash_string<br />
* <error>You are not authorized to view this page</error> – User is not authorized to get users list.<br />
<br />
<br />
Example:<br />
<br />
<status><br />
<error>API Requests are disabled</error><br />
</status><br />
<br><br><br />
<br />
=See also=<br />
<br />
* [[M4 API]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_API_users_get&diff=29044M4 API users get2023-08-23T08:19:42Z<p>Nerijuss: Created page with "=Description= M4 API for getting list of users *'''Admin or Manager with permissions''' can get all users list <br><br> =Usage= * Methods: POST, GET(if allowed, not recomended) <br><br> ===Parameters=== Parameters which are included into hash * u - username to login. '''Required'''. * p - password to login. '''Required'''. * hash – SHA1 hash constructed using '''API Secret Key''' (MOR API hash construction | More described..."</p>
<hr />
<div>=Description=<br />
<br />
[[M4 API]] for getting list of users<br />
<br />
*'''Admin or Manager with permissions''' can get all users list<br />
<br />
<br><br><br />
=Usage=<br />
<br />
* Methods: POST, GET(if allowed, not recomended)<br />
<br><br><br />
===Parameters=== <br />
<br />
Parameters which are included into hash<br />
<br />
* u - username to login. '''Required'''.<br />
* p - password to login. '''Required'''.<br />
<br />
*[[MOR API hash construction | hash]] – SHA1 hash constructed using '''API Secret Key''' ([[MOR API hash construction | More described in Constructing hash]]). '''Required'''.<br />
<br />
<br><br><br />
<br />
===Request===<br />
<br />
If API Secret Key = secret<br />
<br />
You send:<br />
<br />
HTML POST: http://<SERVER_IP>/billing/api/users_get?u=admin&p=admin1&test=1&hash=c420ef706a02e6449994b7575b25ef5f74cc722b<br />
<br />
<br><br><br />
<br />
===Returns===<br />
<br />
<?xml version="1.0" encoding="UTF-8"?><br />
<page><br />
<status><br />
<users><br />
<user><br />
<id> ... </id><br />
<username> ... </username><br />
<first_name> ... </first_nam><br />
<last_name> ... </last_name><br />
<balance> ... </balance><br />
<blocked> ... </blocked><br />
<tariff_id> ... </tariff_id><br />
<owner_id> ... </owner_id><br />
<usertype> ... </usertype><br />
</user><br />
</users><br />
</status><br />
</page><br />
<br />
'''Errors:'''<br />
<br />
* <error>API Requests are disabled</error> – '''Allow API globally''' setting is unchecked<br />
* <error>GET Requests are disabled</error> – '''Allow GET API''' setting is unchecked<br />
* <error>Access Denied</error> – User is not allowed to to get users list or username and password are not correct.<br />
* <error>Incorrect hash</error> – Hash was not correct. Check API_Secret_Key and order of parameters while concatenating the hash_string<br />
* <error>You are not authorized to view this page</error> – User is not authorized to get users list.<br />
<br />
<br />
Example:<br />
<br />
<status><br />
<error>API Requests are disabled</error><br />
</status><br />
<br><br><br />
<br />
=See also=<br />
<br />
* [[M4 API]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_API&diff=29043M4 API2023-08-23T08:15:19Z<p>Nerijuss: /* User */</p>
<hr />
<div>[[File:api.png|right|alt="api"|link=]]<br />
<mkmeta>Application Program Interface for M4 Class 4 Softswitch</mkmeta><br />
<br />
<br><br><br />
=About=<br />
M4 API lets other software interact with M4 without knowing the internal structure of the database (DB) and other logic.<br />
<br />
M4 accepts requests by HTML POST and returns results in XML.<br />
<br />
<br><br><br />
<br />
=M4 users that are allowed to use M4 API=<br />
* Admin<br />
* Manager - only by using Admin Hash and Secret key<br />
* Simple User<br />
<br />
<br><br><br />
<br />
=Functions=<br />
<br />
== API Related ==<br />
* [[M4 API Configuration]] – configuration options for API.<br />
* [[M4 API hash construction|Hash construction]] – how to construct hash to authenticate data over API.<br />
<br />
<br><br />
<br />
==Balance==<br />
* [[M4 API user balance update | user_balance_update]] (change_user_balance) – changes User's Balance<br />
Various methods to retrieve User balance<br />
* [[M4 API user_balance_get|user_balance_get]] (balance) – retrieves the User's Balance.<br />
* [[M4 Balance in phone | user_simple_balance_get]] (simple_balance) – retrieves the User's Balance in plain text (without any tags).<br />
<br />
<br><br />
<br />
==Calls==<br />
* [[M4 user calls get|user_calls_get]] (user_calls) – retrieves a list of calls in a selected time period for a user/device.<br />
<br />
<br><br />
<br />
==Currencies==<br />
* [[M4_API_Exchange_rate_update|exchange_rate_update]] - Currency Exchange rate update.<br />
<br />
<br><br />
<br />
==Device / Connection Point ==<br />
* [[M4 API devices get | devices_get]] (device_list) – users device list<br />
* [[M4 API device details get | device_details_get]] – shows all information about specified device.<br />
* [[M4_API_cp_create | cp_create]] - creates a connection point<br />
* [[M4_API_cp_update | cp_update]] - updates a connection point<br />
* [[M4_API_cp_delete | cp_delete]] - deletes a connection point<br />
<br />
<br><br />
<br />
==Number Pools==<br />
* [[M4 API number_pools_get| number_pools_get]] – get Number Pools list<br />
* [[M4 API number_pool_create| number_pool_create]] – create Number Pools<br />
* [[M4 API number pool update| number_pool_update]] – update Number Pool<br />
* [[M4 API number pool delete| number_pool_delete]] – delete Number Pool<br />
* [[M4 API number pool numbers create| number_pool_numbers_create]] – create numbers for Number Pool<br />
* [[M4 API number pool numbers delete| number_pool_numbers_delete]] – delete numbers from Number Pool<br />
<br />
<br><br />
<br />
==Login==<br />
* [[M4 API user_login|user_login]] (login) – logs user in to M4.<br />
* [[M4 API user_logout|user_logout]] (logout) – logs user out from M4.<br />
<br />
<br><br />
<br />
==Payments==<br />
* [[M4 API payment_create| payment_create]] (create_payment) – create payment.<br />
* [[M4 API payments_get| payments_get]] (payments_list) – payments list.<br />
<br />
<br><br />
<br />
==Rates==<br />
* [[M4 API tariff rates get| tariff_rates_get]] (get_tariff) – get all tariff's rates<br />
* [[M4 API tariff_wholesale_update | tariff_wholesale_update ]] (wholesale_tariff) – update or create wholesale tariff<br />
<br />
<br><br />
==Statistics==<br />
* [[M4 API quickstats_get | quickstats_get]] – gets today's [[Quick Stats]] and [[Active Calls]] count<br />
* [[M4_API_aggregate_get | aggregates_get]] - get aggregated statistics<br />
<br />
<br><br />
<br />
==User==<br />
* [[M4 API user_details_get | user_details_get]] (user_details) – gets user details.<br />
* [[M4 API user_delete | user_delete]] - deletes user.<br />
* [[M4 API users_get | users_get]] - get user list.<br />
<br />
<br><br />
<br />
=HTML POST=<br />
All requests are in a similar format:<br />
<br />
HTML POST: http://<SERVER_IP>/billing/api/<function>?u=username<br />
<br />
* username - the username and password of the user who is asking for the data. <br />
<br />
If the user has 'admin' rights, he will get more results and can perform more actions compared to a user who does not have such rights.<br />
<br><br><br />
=Useful to know=<br />
<br />
* All API methods return data straight from the database. It means that M4 GUI settings do not affect data, it will be returned as it is saved in the database. For example:<br />
** Value of money will be returned in Default System [[Currencies|Currency]].<br />
** Date will not be affected of [[Configuration_from_GUI#Visual| Default date format]] setting.<br />
** Value of money will not be affected of [[Configuration_from_GUI#Visual|Number digits]] setting.<br />
<br />
<br><br><br />
<br />
=See also =<br />
* [[M4 API Configuration]]<br />
* [[How to block access to some API functions]]<br />
* [[API specification to be implemented in the future]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Access_to_fetch_has_been_blocked_by_CORS_policy&diff=29036Access to fetch has been blocked by CORS policy2023-08-22T06:16:10Z<p>Nerijuss: Created page with "If you see such an error: Access to fetch at 'https://yourdomain.com/billing/api/user_calls_get?u=admin&hash=a1b2c3f4s5f6h7j8k9' from origin 'http://127.0.0.1:5500' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. add this line to /etc/httpd/conf.d/gui_ssl.conf ... ... <Directo..."</p>
<hr />
<div>If you see such an error:<br />
<br />
Access to fetch at 'https://yourdomain.com/billing/api/user_calls_get?u=admin&hash=a1b2c3f4s5f6h7j8k9' from origin 'http://127.0.0.1:5500' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.<br />
<br />
add this line to /etc/httpd/conf.d/gui_ssl.conf<br />
<br />
...<br />
...<br />
<Directory /var/www/html/billing><br />
Options -MultiViews<br />
'''Header set Access-Control-Allow-Origin http://127.0.0.1:5500'''<br />
</Directory><br />
...<br />
...<br />
<br />
Source:<br />
<br />
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSAllowOriginNotMatchingOrigin</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=I_have_a_problem_with_API&diff=29035I have a problem with API2023-08-22T06:09:39Z<p>Nerijuss: </p>
<hr />
<div>What problem do you have? <br />
<br />
* [[There is no such API]] <br />
* [[registration API returns "Registration over API is disabled"]]<br />
* [[balance API returns "Feature disabled"]]<br />
* [[I have to wait to login again after 3 unsuccesful tries]]<br />
* [[API returns results without checking hash]]<br />
* [[API Access Denied]]<br />
* [[API returns garbage]]<br />
* [[Access to fetch has been blocked by CORS policy]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Active_Calls_Graph&diff=29023Active Calls Graph2023-07-10T13:33:39Z<p>Nerijuss: </p>
<hr />
<div><!-- funkcionalumas nuo x5, veiki su x5_functionality_6 --><br />
= Description =<br />
In this page System Admin can check Graphs for [[Active Calls]]. This allows to see visually if there are unusual changes or compare amount of calls made during the last two days. The graph shows the amount of all calls including Ringing and Answered states.<br />
<br />
= Usage =<br />
<br />
Go to '''STATISTICS –> Calls –> Active Calls –> Graph''':<br />
<br><br><br />
[[Image:graph-page.png]]<br />
<br><br><br />
Here System Admin can see Active Calls Graphs for today and yesterday. <br />
<br><br><br />
[[File:Active-calls-graph.png]]<br />
<br><br><br />
<br />
= See also =<br />
[[Active Calls]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Providers&diff=29015Providers2023-07-07T05:48:01Z<p>Nerijuss: </p>
<hr />
<div>= Description =<br />
<br />
In the old PSTN world, Providers were called Trunks. Providers are your route out of your VoIP network to the outside world.<br />
<br />
Providers can be one of several types: ZAP, SIP, IAX2, and H323. The type determines which technology is used to connect to the Provider.<br />
<br />
At the very start, you need to create a Provider through which you will dial out to PSTN or other VoIP networks.<br />
<br />
Every Provider will charge you for calling a destination through his service (although the rate might be zero). The rate to every destination is different. Because of this, we need to have a Tariff (or Price List) for each Provider. This Tariff will tell our billing what price we will pay to a destination when using this Provider's services. In other words, this will be our Selfcost.<br />
<br><br><br />
=Usage=<br />
<br />
Go to '''SETTINGS –> Billing –> Providers'''.<br />
<br><br><br />
[[File:providers_path.png]]<br />
<br><br><br />
Here you can see a list of all Providers:<br />
<br><br><br />
[[File:providers_list.png]]<br />
<br><br><br />
* Click [[image:add.png]] '''New Provider''' to create new Provider, enter the Name for a new Provider, select its Technology, Tariff, Asterisk server which should be used for this provider and click Create.<br />
* Click [[image:icon_edit.png]] icon to change settings for old Provider.<br />
<!---This functionality is available from MOR X4---><br />
* Click [[Image:icon_check.png]] icon to disable Provider and it will not be used while it is cross in Active column. It affects only outgoing calls. Incoming calls from this provider will be accepted.<br />
* Click [[Image:icon_cross.png]] icon to enable Provider if you want to use it again. <br />
* Click [[Image:icon_vcard.png]] icon to access [[Provider Contact Info]].<br />
* Click [[Image:icon_list.png]] icon to access [[Provider assigned to LCRs list]].<br />
NOTE: <br />
* You can't create a new Provider if there are no Tariffs available for Providers.<br />
* A Provider is also able to send calls, not just receive them. More info [[Configure Provider which can make calls | here]]. In case you want to sell services to a provider you have to create such a provider.<br />
<br><br><br />
== Settings ==<br />
<br />
=== General ===<br />
<br><br />
[[File:Prov addon.png]]<br />
<br><br><br />
* '''Name''' – a name for the provider, for informational purposes.<br />
* '''Technology''' – out of SIP/IAX2/ZAP/H323, choose which technology your provider uses - that is, the way you connect to the provider.<br />
* '''DTMF Mode''' – the available options are inband, info, RFC2833, and auto. Choose the one used by your provider.<br />
* '''Location''' – which Localization rules are set to apply to INCOMING calls COMING FROM this provider.<br />
* '''Automatic Number Identification''' - used in a special case explained here: [[Provider with ANI]]<br />
* '''Ringing Timeout''' – this setting lets you set for how long this provider should be dialed before giving up. The default value is 60 seconds, and the minimum value is 30 seconds.<br />
* '''Call Timeout''' – this setting lets you set the duration of the whole call: ringing and the period after connection. <br />
* '''Device ID''' – informational data. <br />
* '''Call limit''' – explained here: [[Simultaneous call limitation]].<br />
* '''Hidden?''' – [[Hide_provider|hide/unhide provider]]<br />
<!---This functionality is available from MOR 12---><br />
* '''Balance''' – provider balance. Provider balance increases when calls are made via that provider. Currently it is not available to decrease provider's balance. You can read more about [[Provider Billing Addon|Provider Billing Addon here]].<br />
<!---This functionality is available from MOR x4---><br />
* '''Balance limit''' – this is the limit of balance that can be reached by the provider. After he reaches the specified balance, calls aren't sent through this provider anymore. Balance limit value of zero means that balance is unlimited.<br />
* '''Responsible Accountant''' – dropdown to choose Provider's responsible accountant.<br />
<br><br><br />
<br />
=== Tariffs ===<br />
<br><br />
[[File:Mor_prov_tariffs.png]]<br />
* '''Default Tariff''' – the list of rates the provider charges you.<br />
* '''Use Tariffs by CLIs''' – disabled by default.<br />
<br><br><br />
<br />
=== Authentication ===<br />
<br />
==== For ZAP providers ====<br />
<br />
* '''Channel''' – which channel (or channel group) to use on a PRI/BRI/PSTN card. Channels and groups should be configured in zapata.conf.<br />
<br><br><br />
==== For SIP/IAX2 providers ====<br />
<br />
* '''Login''' – username if your provider asks for it.<br />
* '''Password''' – password used for authentication by your provider (characters '''@ : /''' are not allowed when Register option is enabled)<br />
* '''Authenticate by IP''' – just check the checkbox (Login/Password can be left empty).<br />
** Make sure you put the correct Hostname/[[IP address]]!<br />
* '''Register''' – should we register the provider? (option is not visible when '''Dynamic''' is selected in '''Network related''' section)<br />
* '''Register extension''' – if the provider asks to use an extension for registration (usually they don't), enter it here.<br />
<br><br><br />
<br />
=== Provider CallerID ===<br />
<br />
'''CallerID''' – consists of two parts: Name and Number. The "Number" part is transferred by default on all technologies (GSM, PSTN, SIP etc), but the "Name" part only on some. The number you see on your mobile phone when someone is calling you is the "Number" part.<br />
<br><br><br />
[[File:provider_callerid.png]]<br />
<br><br><br />
* '''Name''' – the "Name" part of CallerID. Works only on incoming calls.<br />
* '''Number''' – the "Number" part of CallerID. Works only on incoming calls.<br />
* '''Random Number from Number Pool''' – the "Number" part of CallerID selected from [[Number Pool]]<br />
#Random - Send random CallerID.<br />
#Pseudorandom with Deviation. Range can vary from 0 to 9999999. If 0 is chosen, then all numbers will be chosen same amount of times. If 9999999 is set, then numbers will be completely random.<br />
* '''Set PAI from CallerID''' – creates PAI header from CallerID and sends to Provider. Example:<br />
P-Asserted-Identity: <sip:CallerID@host>;user=phone<br />
* '''Set RPID from CallerID''' – creates RPID header from CallerID and sends to Provider. Example:<br />
RPID-Privacy: full<br />
Remote-Party-ID: <sip:CallerID@host:5060>;privacy=off;screen=yes<br />
<br><br><br />
<br />
=== Network related ===<br />
<br />
* '''Hostname''' – hostname of the provider.<br />
* '''Server IP''' – the provider's IP. The value can be "dynamic", which means that provider can change its IP. To discover this value, do ping to the provider's hostname. Use command "''dig +short''". Example ''dig +short google.com''.<br />
* '''Port''' – port used to connect to the provider (default: 5060 for SIP, 4569 for IAX2, 1720 for H323).<br />
<br><br><br />
====H323 specific network settings====<br />
<br />
* '''Fast Start''' – an option specific to H323; it is either on or off.<br />
* '''h245 Tunneling''' – an option specific to H323; it is either on or of<br />
<br><br><br />
====SIP specific network settings====<br />
<br />
* '''Media control''' – canreinvite/transfer. Do you want your server to stay in the media path between your clients and your provider? Disable if you have a lot of 1-second answered calls.<br />
* '''NAT''' – the available options are: yes, no, never, and route. For a detailed explanation of these settings, refer to [http://www.voip-info.org/wiki-Asterisk+sip+nat here].<br />
<br><br><br />
====IAX2 specific network settings====<br />
<br />
* '''IAX2 Trunking Mode''' – enable/disable trunking mode, which allows multiple voice streams to share a single "trunk" to another server, reducing overhead created by IP packets. More details [http://wiki.kolmisoft.com/index.php/Trunks here]<br />
<br><br><br />
====SIP and IAX2 specific network settings====<br />
<br />
* '''Qualify''' – how often to "ask" the provider about availability. More details [http://www.voip-info.org/wiki/view/Asterisk+sip+qualify here] for SIP providers and [http://www.voip-info.org/wiki/view/Asterisk+iax+qualify here] for IAX2 providers.<br />
<br><br><br />
<br />
=== Blacklist/Whitelist ===<br />
<br><br />
[[File:MOR_provider_blacklist_whitelist.png]]<br />
<br><br><br />
Enable static Source - enables a static Blacklist or a Whitelist for source (CallerID).<br />
* '''No''' - use neither a Blacklist nor a Whitelist.<br />
* '''Blacklist''' - set a [[Number Pool]] which is used to block a Provider from receiving specific Source Numbers. When a Source Number (RPID and PAI headers included) is found within a selected [[Number Pool]] this Provider is skipped with a Hangupcause Code ''272''.<br />
* '''Whitelist''' - set a [[Number Pool]] which is used to allow a Provider to receive only specific Source numbers. When a Source Number (RPID and PAI headers included) is NOT found within a selected [[Number Pool]] this Provider is skipped with a Hangupcause Code ''273''.<br />
<br><br><br />
Enable static Destination - enables a static Blacklist or a Whitelist for Destination.<br />
* '''No''' - use neither a Blacklist nor a Whitelist.<br />
* '''Blacklist''' - set a [[Number Pool]] which is used to block a Provider from sending to specific Destination. When a Destination Number is found within a selected [[Number Pool]] this Provider is skipped with a Hangupcause Code ''281''.<br />
* '''Whitelist''' - set a [[Number Pool]] which is used to allow a Provider to send only specific Destination. When a Destination Number is NOT found within a selected [[Number Pool]] this Provider is skipped with a Hangupcause Code ''282''.<br />
<br><br><br />
<br />
=== Servers ===<br />
Allows to select on which Asterisk servers this provider should be used.<br />
<br><br><br />
=== Codecs ===<br />
<br />
Choose the codecs your provider uses.<br />
<br />
NOTE: When no fields are checked, all codecs are available. ([[Image:asterisk_icon.png]] For example, settings in sip.conf or iax.conf are effective).<br />
<br />
* '''Enforce same codec as on Leg A''' - this option takes effect only when Device/Provider is used as Terminator. When this option is enabled, system checks what codec is used on Leg A. Then if Leg A codec matches one of codec enabled on Codecs list, system enforces callee to use that codec, by offering only that single codec in SDP data.<br />
<br><br><br />
=== Advanced ===<br />
<br />
* '''Grace time''' – if call duration is less than <i>Grace Time</i>, it will not be accounted.<br />
* Progressinband:<br />
**yes – when "RING" event is requested, always send 180 Ringing (if it hasn't been sent yet) followed by 183 Session Progress and in-band audio.<br />
**no – send 180 Ringing if 183 has not yet been sent, establishing an audio path. If the audio path is established already (with 183), then send in-band ringing (this is the way Asterisk historically behaved because of buggy phones like Polycom's).<br />
**never – whenever ringing occurs, send "180 ringing" as long as "200 OK" has not yet been sent. This is the default behavior of Asterisk.<br />
* '''Video support''' – does your provider support Video over IP? More info [http://www.voip-info.org/wiki/view/Asterisk+video here].<br />
* '''[[Duplicate call prevention | Allow duplicate calls]]''' – the default setting is "no".<br />
* '''Interpret NO ANSWER as FAILED''' – default option is no (This will change the provider in LCR like it is failed, in last calls you will see<br />
the real hangupcause – no answer)<br />
* '''Interpret BUSY as FAILED''' – default option is no (This will change the provider in LCR like it is failed, in last calls you will see<br />
the real hangupcause – busy)<br />
* '''Fake Ring''' – should system generate Fake Ring or not? Use only if your Device/Provider has bad protocol implementation and does not send the RING signal properly.<br />
* '''Common Use''' – Provider can be used by Resellers which are able to create their own Providers. The reseller will be billed using this Provider. If the provider is marked as common use and is used in one of reseller's LCR or is in Terminators list - admin is not allowed to delete this provider or remove common use option.<br />
* '''Anti-resale (Auto-answer)''' – when the option is set to YES, MOR answers the call before sending it to the provider in order to generate FAS. Work only when the provider is the originator of the call. This option does not affect billing.<br />
* '''Transport''' – lets you choose protocol <nowiki>[tcp, udp]</nowiki> for data transfer. Appears only if Provider is SIP and when Asterisk 1.8 is enabled. Default value: ''udp''. If TCP is used, it has to be [[How_to_enable_TCP_for_Asterisk |enabled in Asterisk]].<br />
* '''Time limit per day''' - Total time available for provider per day. When limit is reached, call fails with HGC "238 - Provider used its daily call time limit" and another provider in LCR is used (total time is calculated after rounding rules and minimal time adjustment, so if your provider tariff has increment higher than 1 or minimal time set, then total provider time may be different than actual call time). Only available with Provider Billing addon.<br />
* '''Time limit per month''' - Total time available for provider per month in minutes. You can also set day of limit reset (default is 1st day of the month). When limit is reached, call fails with HGC "285 - Provider used its monthly call time limit" and another provider in LCR is used (total time is calculated after rounding rules and minimal time adjustment, so if your provider tariff has increment higher than 1 or minimal time set, then total provider time may be different than actual call time). Only available with Provider Billing addon.<br />
* '''Limit up to X, during Y seconds''' – you can set a limit how many calls (X) can be done in some interval of seconds (Y). [[Last Calls]] will show '''FAILED([[Hangupcause Codes |243]])'''.<br />
* '''Execute AGI script''' - Execute custom AGI script. More info [http://wiki.kolmisoft.com/index.php/Provider_AGI_script here].<br />
<br><br><br />
<br />
=== SIP Specific ===<br />
<br />
* '''Fromuser''' – [http://www.voip-info.org/wiki/index.php?page=Asterisk+sip+fromuser more details]<br />
* '''Fromdomain''' – [http://www.voip-info.org/wiki/index.php?page=Asterisk+sip+fromuser more details]<br />
* '''Trustrpid''' – This defines whether or not Remote-Party-ID is trusted. It's defined in http://tools.ietf.org/id/draft-ietf-sip-privacy-04.txt<br />
* '''Sendrpid''' – defines whether a Remote-Party-ID SIP header should be sent. It defaults to "No". This field is often used by wholesale VoIP providers to provide calling party identity regardless of the privacy settings (the From SIP header). <br />
* '''Insecure''' – [http://www.voip-info.org/wiki/index.php?page=Asterisk+sip+insecure more details]<br />
* '''T.38 Support''' – should we support T.38 pass-through?<br />
* '''SIP Session Timers''' - SIP Session Timers provide an end-to-end keep-alive mechanism for active SIP sessions (more info [http://doxygen.asterisk.org/trunk/sip_session_timers.html here]). Possible values are "accept", "originate", "refuse":<br />
** '''originate''' - request and run session-timers always.<br />
** '''accept''' - run session-timers only when requested by other UA.<br />
** '''refuse''' - do not run session timers in any case.<br />
* '''SIP Session Refresher''' - The session refresher (uac|uas). Defaults to 'uas'.<br />
** '''uac''' - default to the caller initially refreshing when possible.<br />
** '''uas''' - default to the callee initially refreshing when possible.<br />
* '''SIP Session Expires''' - maximum session refresh interval in seconds. Defaults to 1800 secs. <br />
* '''SIP Min Session''' - minimum session refresh interval in seconds. Defaults to 90 secs.<br />
* '''[[SIP 302 Reinvite Support]]''' – turns this SIP feature on or off. <br />
* '''P-Asserted-Identity usage''' – The P-Asserted-Identity header field can be used to convey the proven identity of the originator of a request within a trusted network. If pass_pai =0 in [http://wiki.kolmisoft.com/index.php/Mor.conf Mor.conf] and PAI usage in provider settings =1, then core will add PAI header.<br />
* '''Periodic check''' - if enabled, periodic SIP OPTIONS requests will be sent to Provider to check if it is reachable. If Periodic Check is enabled and Provider does not respond to OPTIONS request then Provider will be marked as unreachable and will be skipped when making Calls. Once Provider starts to respond to OPTIONS request it will be marked as reachable and Calls will be routed through this Provider. Providers are checked every 5 minutes. Options packets are sent from IP address defined in /etc/asterisk/sip.conf. Some Providers may not respond to OPTIONS even they are Online. If you are getting HGC 247 on attempts to call a Provider that is online, disable this option.<br />
* '''[http://wiki.kolmisoft.com/index.php/Mobile_Number_Portability_Addon#MNP_tags_in_SIP_INVITE Enable MNP tags]''' - adds MNP tags in SIP INVITE requests (if MNP is configured).<br />
* '''Localize PAI''' - applies [[Provider_Rules#CallerID_Rules|Provider rules Source]] on PAI header for calls that are terminated by this Provider.<br />
* '''Pass PAI''' - available options are 'Global', 'Yes', 'No'. Global (default value) means use value from pass_pai in [[mor.conf]] file. More information available in table [[P-Asserted-Identity#How_P-Asserted-Identity_.28PAI.29_is_handled_in_MOR_X11_and_later_versions|here]].<br />
* '''Usereqphone''' - Yes or No. The default setting is "No". Option adds ;user=phone in From, To, Invite and PAI headers.<br />
* '''Custom SIP Header''' - adds custom header to SIP request. Format is '''header: value''' (for example '''x-My-Custom-Header: my value''')<br />
* '''Custom Destination Header''' - allows to read Destination number from specific SIP header (for example x-DID: 123) instead of SIP URI.<br />
* '''Privacy CallerID''' - allows to change CallerID (From: <sip:'''xxxxxx'''@yyyyyyy>) when originator sends '''Privacy: id''' or '''Privacy: header'''. If originator does not send '''Privacy: id''' or '''Privacy: header''' or '''Privacy CallerID''' is empty, then SIP From header will not be modified. This option would only work on outbound calls terminated by this Provider.<br />
* '''Privacy From Domain''' - allows to change Domain (From: <sip:xxxxxx@'''yyyyyyy'''>) when originator sends '''Privacy: id''' or '''Privacy: header'''. If originator does not send '''Privacy: id''' or '''Privacy: header''' or '''Privacy From Domain''' is empty, then SIP From header will not be modified.<br />
* '''Playback before dial''' - allows to play selected sound file to originator before dialing to Provider. Select 'none' to disable this feature.<br />
* '''Playback before dial mode''' - controls how '''Playback before dial''' handles media.<br />
** '''Early media''' - uses '''183 Session Progress''' to send audio to originator. This is preferred way of sending media to originator since it does not require legA call to be answered. One drawback is that not all providers resend SIP 183 early media correctly. In those cases originator will hear silence.<br />
** '''Answer and play''' - if this mode is selected, then '''MOR will answer legA''' and play media to originator. This way originator should always hear media but there are various drawbacks since legA is already answered. One of drawbacks is that MOR will generate false answer if Provider rejects call. Use this mode only if you know what you are doing.<br />
<br><br><br />
<br />
== VIDEO: How to create Provider ==<br />
<br />
<html><br />
<iframe width="640" height="360" src="https://www.youtube.com/embed/S7DHLOOMBUs" frameborder="0"></iframe> <br />
</html><br />
<br />
<br />
<br><br><br />
<br />
=See also=<br />
<br />
* [[H323 Provider settings]]<br />
* [[Quick Providers changes]]<br />
* [[Providers Statistics]]<br />
* [[NO ANSWER/BUSY interpretation for providers]]<br />
* [[I have a problem with Provider]]<br />
<br><br></div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=How_to_set_up_SSL_certificate_with_Let%27s_Encrypt&diff=29010How to set up SSL certificate with Let's Encrypt2023-06-22T15:01:30Z<p>Nerijuss: /* Before proceeding */</p>
<hr />
<div>== About Let's Encrypt ==<br />
[https://letsencrypt.org/ Let's Encrypt] provides free valid SSL certificates<br />
<br />
<br><br />
== Before proceeding ==<br />
To proceed the following is needed:<br />
* Domain name pointed to switch IP (it is not possible to create a Let's Encrypt SSL certificate for IP address)<br />
* Email address to get notifications from Let's Encrypt<br />
* SSH access to the server with root privileges<br />
<br><br><br />
Make sure that firewalls are not blocking the following domains used for the creation and update of certificates:<br />
<br />
acme-v01.api.letsencrypt.org<br />
<br />
acme-staging.api.letsencrypt.org<br />
<br />
acme-v02.api.letsencrypt.org<br />
<br />
acme-staging-v02.api.letsencrypt.org<br />
<br><br><br />
<br />
== Installation ==<br />
In the example below let's assume that the domain name is example.com<br />
<br />
Before installation, it is a good idea to backup /etc/httpd folder<br />
<br />
cp -a /etc/httpd/ /usr/local/mor/backups/<br />
<br />
<br><br><br />
=== Method 1 (using yum packages) ===<br />
Based on this [https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-centos-7 guide]<br />
<br />
yum install certbot python2-certbot-apache mod_ssl<br />
<br />
if installation is completed without errors, run certbot command (prepare to answer yes/no questions and enter the domain name(s) and email)<br />
<br />
certbot --apache <br />
<br />
<br />
If the command is completed successfully, going to <nowiki>https://example.com/billing</nowiki> should show a secure connection<br />
<br />
if everything is OK, test certificate renewal and install renewal cron<br />
certbot renew --dry-run<br />
<br />
If successful it should show at the end<br />
<br />
Congratulations, all simulated renewals succeeded: <br />
Congratulations, all simulated renewals succeeded: <br />
/etc/letsencrypt/live/example.com/fullchain.pem (success)<br />
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br />
<br />
Create a cron to renew certificates automatically <br />
<br />
echo "20 0,12 * * * root /usr/bin/certbot renew" > /etc/cron.d/certbot_renewal_cron<br />
chmod 644 /etc/cron.d/certbot_renewal_cron<br />
service crond restart<br />
<br />
This will try to renew the certificate two times every day. Certbot will try to actually renew certificates once the expiration day will be less than 30 days<br />
<br />
<br />
If you get an error:<br />
<br />
Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.<br />
<br />
That means there is a problem with <VirtualHost *:80> configuration in /etc/httpd/httpd.conf<br />
<br />
Check with:<br />
<br />
apachectl -t -D DUMP_VHOSTS<br />
<br />
<br />
NOTE: this procedure overwrites /usr/lib/systemd/system/httpd.service<br />
<br />
Check with:<br />
<br />
grep -i private /usr/lib/systemd/system/httpd.service<br />
<br />
If you see PrivateTmp=true and need false, do:<br />
<br />
sed -i "s|PrivateTmp=true\+|PrivateTmp=false|g" /usr/lib/systemd/system/httpd.service<br />
systemctl daemon-reload && systemctl restart httpd.service<br />
<br />
<br />
<br />
<br />
<br><br><br />
<br />
=== Method 2 (using snap management system) ===<br />
To streamline the install process across different Linux Distributions, the Let's Encrypt official guide use snapd management system<br />
<br />
If you want to use snaps, please use this guide:<br />
<br />
https://certbot.eff.org/lets-encrypt/centosrhel7-apache.html<br />
<br />
Using this installation method, automatic renewal will be configured automatically (it will be systemd timer, not a simple cron)<br />
systemctl list-timers <br />
NEXT LEFT LAST PASSED UNIT ACTIVATES<br />
Tr 2021-10-06 12:42:00 CEST 41min left Tr 2021-10-06 05:11:01 CEST 6h ago snap.certbot.renew.timer snap.certbot.renew.service<br />
<br />
<br><br><br />
== Logs ==<br />
Let's encrypt log<br />
/var/log/letsencrypt/letsencrypt.log<br />
<br />
<br><br><br />
== Accessing switch without /billing suffix ==<br />
Follow the guide [[I see Apache test on Start page| here]]<br />
<br />
Use https instead of http and domain names instead of 127.0.0.1</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=MOR_API_did_details_update&diff=29003MOR API did details update2023-06-20T10:47:19Z<p>Nerijuss: </p>
<hr />
<div>=Description=<br />
<!---This functionality is available in MOR X5 and MOR X6---><br />
[[MOR API]] DID details update<br />
<br />
Please note that only admin, accountant(with device management) with permission and reseller can use this API. <br />
<br><br><br />
=Usage=<br />
<br />
* Call: /api/did_details_update<br />
* Methods: POST, GET(if allowed, not recomended)<br />
<br><br><br />
===Parametres===<br />
<br />
Parameter which is '''included''' into hash:<br />
<br />
* '''did_id''' – this is id of DID which have to be updated. '''Required'''.<br />
<br />
'''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'''<br />
<br><br><br />
Parameters which are '''not included''' into hash:<br />
<br />
* [[MOR API hash construction | hash]] - SHA1 hash constructed using '''did_id''' and API_Secret_Key ([[MOR API hash construction | More described in Constructing hash]]). '''Required'''.<br />
* '''u''' – username to login. '''Required'''.<br />
* '''call_limit''' – call limit of did which will be updated. '''Optional'''<br />
* <!--FROM MOR X6--->'''did_user_id''' – User ID from database whom DID should be assigned. '''Just free DID can be assigned to User.''' DID can be assigned to Reseller or simple User. Set -1 to make DID free. '''Optional'''<br />
* '''active_from''' - Active from date in Unix timestamp format. '''Optional'''.<br />
* '''active_till''' - Active till date in Unix timestamp format. '''Optional'''.<br />
* '''grace_time''' - same as [[DID_Management#Details|Grace Time GUI option]]: If call duration is less than Grace Time, it will not be accounted, for example: Grace Time = 3s, call duration <= 3s, then price for the call = 0. '''Optional'''<br />
* '''language''' - allows setting two letters (i.e. en, it, es, ...) language code. '''Optional'''<br />
<br><br><br />
<br />
===Request===<br />
<br />
We have API Secret Key = secret, did_id = 6511 <br><br />
We send:<br />
<br />
HTML POST: http://<server_ip>/billing/api/did_details_update?u=admin&did_id=6511&call_limit=999&hash=f7de355c9b4421ce6c705b4b32c89dbcaca51e46<br />
<br />
'''* Note that username is not included in hash'''<br />
<br><br><br />
<br />
===Returns===<br />
<br />
'''Success'''<br />
<br />
<page><br />
<status><br />
<success>DID details successfully updated</success><br />
</status><br />
</page><br />
<br />
'''After successfully updating DID action log record is added.'''<br />
<br><br><br />
----<br />
'''Errors'''<br />
* <error>Access Denied</error> – Specified username (u) does not exist or u is not admin, reseller or accountant with permission.<br />
* <error>Incorrect hash</error> – Hash was not correct. Check API_Secret_Key and order or params while concatenating hash_string.<br />
* <error>Call limit is incorrect format</error> – Specified call limit has to be 0 or positive number.<br />
* <error>DID is already assigned</error> – DID is already assign to other User, Reseller or Dial Plan.<br />
* <error>DID was not found</error> – Specified did does not exist or it belongs to different username(u).<br />
* <error>Active till must be greater than Active from</error><br />
* <error>Active till must be a valid timestamp</error><br />
* <error>Active from must be a valid timestamp</error><br />
<br />
<br><br><br />
<br />
=See also=<br />
<br />
* [[MOR API]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Recordings_Addon&diff=28980Recordings Addon2023-06-13T11:50:19Z<p>Nerijuss: /* Configuration */</p>
<hr />
<div>=Description=<br />
<br />
Recordings functionality can be used to record selected users' calls for Monitoring purpose.<br />
<br><br><br />
== Functionality ==<br />
<br />
Recording Addon provides this functionality:<br />
<br />
* Record User Calls.<br />
* Send a Recording to email.<br />
* Limit space Users' space for Recordings.<br />
* Record Calls without User knowledge.<br />
* Let Users manage their Recordings (send to email/listen/download/delete).<br />
* Convert recordings from WAV to MP3 format and store them on an external server, to ease the load on the main server.<br />
<br />
NOTE: Reseller is able to have the same functions as an administrator if '''Allow to use recording functionality''' option is checked by Admin in resellers settings. In order for the calls to be recorded for resellers users the "Record calls for this Device:" option (located in the device edit window, "Recordings" block) has to be enabled by the reseller for the devices for which the calls should be recorded. <br />
<br><br><br />
=== Limitations ===<br />
<br />
* Recordings will not be saved on the server if there will be left less then 10% of free space. Such recordings will be sent directly to the Email (if email is specified in GUI Interface) and will be completely removed from the server.<br />
<br />
*Calling Cards calls cannot be recorded.<br />
<br><br><br />
<br />
=== Sound file format ===<br />
<br />
Recordings are saved into mp3 format. 1MB can save around 4min of recordings.<br />
<br><br><br />
<br />
=Configuration=<br />
Adjust needed settings in '''ADDONS –> Recordings –> Settings'''<br />
<br><br><br />
[[File:recordings_addon_settings.png]]<br />
<br><br><br />
* '''Show in the File Name:''' select format for recording filename. This applies to filename when you download recording(s) over GUI interface. Recordings filename in the server will always be stored in internal Asterisk format uniqueid.mp3, where uniqued is in format unixtimestamp.xxxxx. Format rules also do not apply to recording files sent over email. Internal recording filename will be used for attachment.<br />
* '''Show Recordings with zero billsec:''' Display recordings which have zero billsec. <br />
* '''Start Recordings On Answer:''' by default, the recording starts, before the call is answered. This option allows start recording only when the call gets answered. The option helps to reduce the number of recording files and decrease system resource usage. <br />
* '''Delete Recordings older than:''' delete recordings older than x amount of days. 0 (default) means to no delete any recordings.<br />
* '''Delete Recordings on the Backup Server''' - With this option enabled, MOR will explicitly delete recordings (both manually selected and automatically selected based on recordings age) on the Backup server. Use this option only if there are two GUI servers (Main and Backup) and there is a cron that syncs recordings between these servers. SSH connection using keys [[Configure SSH connection between servers |must be configured]] between the Main and Backup servers. <br />
** '''IP:''' - IP of the backup server.<br />
** '''Port:''' - SSH Port of the backup server.<br />
** '''Login:''' - SSH username of the backup server.<br />
** '''Path:''' - Recordings path on the backup server. Default /home/mor/public/recordings<br />
* '''Use external Server:''' enable this option if you want to use [[External Recordings Server]].<br />
* '''Recordings Server:''' valid only if '''Use external Server:''' is enabled. More information available in [[External Recordings Server]] page.<br />
<br />
In order to use Recording, you have to set up which Users' Calls you want to record. <br />
<br />
Go to '''ADDONS –> Recordings –> Users''' and you will see this window:<br />
<br><br><br />
[[Image:recordings1.png]]<br />
<br><br><br />
<br />
Here you can check the '''Forced record calls for this User''' field for the Users you want to record. By checking '''Allow to use recording functionality''' option you can authorize the User to use the Recordings Addon functionality. Click '''Update''' at the bottom for the changes to take effect.<br />
To allow particular Reseller to use Recordings functionality, "Allow to use recording functionality" option must be checked in his details. <br />
<br />
If you leave '''Server space (MB)''' 0 - there will be no limitations in data usage (HDD will fill up after some time).<br />
<br />
'''NOTE''' Recordings are NOT available in Calls between 2 SIP Devices in MOR. <br />
<br><br><br />
'''SETTINGS –> Users –> Edit (on selected user)'''<br />
<br />
The Recordings section has the following options:<br />
<br />
* Allow to use recording functionality - can this user use the Recording addon functionality?<br />
<br />
* Forced record calls for this User - record calls for this user (all devices) without user knowledge. This option has the highest priority.<br />
when enabled - records for all User devices will be recorded regardless of other options (value in Device settings: Record calls for this Device: - will be ignored, Server space - dedicated for User will be ignored ant etc ) <br />
<br />
* Server space - how much HDD space to reserve for recordings of this user. Takes effect only if Admin has not enabled recordings for User himself. Such options should be set on appropriate User/Device by Admin in order to enable this function for User:<br />
User settings<br />
Forced record calls for this User: NO<br />
Device settings:<br />
Record calls for this Device : NO<br />
Keep Recordings on Server after sent to Email: NO<br />
<br />
* Send deleted recordings to this email. If HDD space is exceeded, the new recordings will not be saved and will be sent to this email instead. If this email is empty, the recording will be sent to the default user email. Recordings will be kept in server if email sending fails.<br />
<br><br><br />
'''Device –> Edit window'''<br />
<br />
The following options are available for Device:<br />
<br />
* '''Record calls for this Device''' - record calls for this Device (without user knowledge). If this option is enabled, recordings must be deleted manually. If this option is set to YES, then server space - dedicated for User will be ignored and records will be placed on server regardless of this value<br />
* '''Show Recordings to the User for this Device''' - allows User to see his recordings. Shows new recordings from time then this option enabled.<br />
* '''Send Recording to Email''' - when recording is completed, send to it email. Recordings will be kept in server if email sending fails. Admin must enable "Allow to use recording functionality" for this User; and User, on his/her account must set "Record calls for this Device:" to "Yes" in the Device settings, otherwise, mail will not be sent.<br />
* '''Recordings Email''' - send to this email address.<br />
* '''Keep Recordings on Server after sent to Email''' - should the recording be left on the server after being sent to email? If this option is set to YES, then server space - dedicated for User will be ignored and records will be placed on server regardless of this value <br />
<br><br><br />
[[File:device_recordings_settings.png]]<br />
<br><br><br />
== Setup User so he could see his recorded Calls ==<br />
<br />
1. As admin, go to '''User Edit''' settings [[Image:icon_edit.png]] and check '''Allow to use recording functionality'''. User will be able to use Recording addon functionality.<br />
<br />
2. Log in as this User and in '''PERSONAL MENU –> Details –> Devices''', click [[Image:icon_edit.png]] for Device and in the Recordings section check '''Record calls for this Device: YES.'''<br />
<br />
3. Now the user will be able to see his calls in '''PERSONAL MENU –> Call –> Recordings'''.<br />
<br><br><br />
=== User settings ===<br />
<br />
The Administrator must authorize the User to use the Recording Addon functionality before User can use its functions. This can be done by checking '''Allow to use recording functionality''' in the User Edit window.<br />
<br />
* Delete Recordings older than - any integer value higher than 0 enables functionality only for this User (ignoring Global Recordings Setting). Value 0 - disables deleting Recordings older than by days functionality, only for this User (ignoring Global Recordings Setting). Empty input box (no value at all) uses Global Recordings Setting.<br />
<br><br><br />
'''PERSONAL MENU –> Details'''<br />
<br />
* Server space - shows used/reserved HDD space for recordings. If limit reached , recordings will not be showed for user.<br />
* Email for deleted Recordings - to which email recordings should be sent if there is not enough space for them.<br />
<br><br><br />
'''PERSONAL MENU –> Details –> Devices –> Edit'''<br />
<br />
* Record calls for this Device - user can set to record calls for this device or not.<br />
* Send Recording to Email - should recording be sent to email? Recordings will be kept in server if email sending fails.<br />
* Recordings Email - the email address email to which recordings should be sent.<br />
* Keep Recordings on Server after sent to Email - should recordings be left on the server after being sent to email?<br />
<br><br><br />
'''PERSONAL MENU –> Calls –> Recordings'''<br />
<br />
On this page, the User can manage his recordings.<br />
<br><br><br />
User Owner can decide:<br />
<br />
* Whether or not the user can use Recording Addon functionality (set to record calls, send recordings to email, etc).<br />
* Which user calls should always be recorded (without User knowledge).<br />
<br><br><br />
<br />
== Record not answered calls ==<br />
<br />
In order to enable this functionality few changes a needed: <br><br />
<br />
1) Edit /etc/asterisk/mor.conf <br><br />
<br />
vi /etc/asterisk/mor.conf<br />
<br />
and set '''record_not_answered_calls =''' '''1''' <br><br />
<br />
This option record_not_answered_calls - save audio to the file while the channel is not answered (not bridged), default 0 (by default records only answered calls). <br />
<br><br />
<br />
2) Option Show Recordings with zero billsec should be enabled in GUI. <br><br />
<br />
To enable it go to '''Addons –> Recordings –> Settings''' and check option '''Show recordings with zero billsec'''. <br><br />
<br />
Now system records not answered calls for all users which are using recording functionality. <br><br />
<br />
Recordings are located in '''ADDONS –> Recordings.''' <br><br />
<br />
In recording list you will be able to see recordings without duration. <br><br />
<br />
Such calls were not answered but recorded.<br />
<br><br><br />
[[Image:recordingams2.png]]<br />
<br><br><br />
<br />
== Delete recordings after sending it via e-mail ==<br />
<br />
1. As admin, go to '''User Edit''' settings [[Image:icon_edit.png]] and check '''Allow to use recording functionality'''. User will be able to use Recording addon functionality. Do not check '''Forced record calls for this User''' because it this way recordings will '''NOT''' be deleted.<br />
<br />
2. Log in as this User and in '''PERSONAL MENU –> Personal Details –> Devices''', click [[Image:icon_edit.png]] for Device and in the Recordings section check '''Keep Recordings on Server after sent to Email: NO.'''<br />
<br />
3. Now recordings will be deleted immediately after they will be sent via e-mail.<br />
<br><br><br />
== Recordings on external server == <br />
<br />
Manage settings for recordings upload to external server go to '''ADDONS –> Recordings –> Settings'''<br />
<br><br><br />
[[File:recordings_settings_path.png]]<br />
<br><br><br />
you will reach settings page<br />
<br><br><br />
[[File:recordings_addon_settings.png]]<br />
<br><br><br />
* '''Use external Server''' - should system send recordings to [[External Recordings Server]]? Please check instructions how to setup [[External Recordings Server]].<br />
* '''Recordings server''' - details such as IP/Port/Login where port is SSH default port 22 and Login is default root.<br />
* By default recording files in remote server will be placed at /tmp directory<br />
<br />
'''P.S. SSH keys must be configured without password in order scp command could transfer the recordings to other server. If this functionality is not enabled - the recordings are stored in local server'''<br />
<br><br><br />
<br />
==Recordings on additional HDD==<br />
<br />
If you want to save recordings on additional HDD, please follow this instrucction<br />
[[Recordings on additional HDD]].<br />
<br />
==Recordings HDD usage==<br />
<br />
By default, recordings will not be stored on HDD if free space drops below 10%. If limit is reached, recordings will be sent to email.<br />
<br />
It is possible to set specific free space limit (in gigabytes) to control when recordings should be sent to email and deleted from HDD. To set this limit, edit '''/etc/mor/system.conf''' file in each Asterisk server and add the following line:<br />
<br />
recordings_hdd_free_space_limit_gb = X<br />
<br />
Here X is the limit in gigabytes. For example '''recordings_hdd_free_space_limit_gb = 5''' will force recordings to be sent via email (instead of storing them on HDD) when free space left on recordings partition is 5GB or less.<br />
<br />
=Usage=<br />
<br />
To view/listen/download/delete recorded Calls go to '''ADDONS –> Recordings'''. You will see something like this:<br />
<br><br><br />
[[Image:recordings2.png]]<br />
<br><br><br />
If a Call was made from Device to DID that is connected with another Device, you will see such information:<br />
<br><br><br />
[[Image:RecordingsExt.png]]<br />
<br><br><br />
Here Admin/Reseller can see all recordings, search Recordings by:<br />
<br />
* Period.<br />
* Source (CallerID).<br />
* Destination (Dialed number).<br />
* User.<br />
* Device.<br />
<br />
With each recording, it is possible to:<br />
<br />
* Check its details.<br />
* Check Call details.<br />
* Add comment to it (note that User and Admin have different comment fields)<br />
* Listen to it.<br />
* Download it.<br />
* Delete it.<br />
<br><br />
'''NOTE:''' It is available to use recordings 15 minutes after call was made. Till then you may see the message '''Recording was not found locally'''. When listening to a recording its row will turn green as an indicator that the recording was listened.<br />
<br><br><br />
[[Image:Recordig_listened_indicator.png]]<br />
<br><br><br />
<br />
= Recordings bulk management =<br />
<br />
This feature allows an administrator to quickly delete Recordings for selected period or selected Device<br />
<br><br><br />
=== Who can use this functionality? ===<br />
<br />
* This feature is available for MOR administrator and Users.<br />
<br />
By default, simple Users can listen and download selected recordings. Please note that Users need to have enabled Recording functionality.<br />
<br />
If you want to let simple users to delete Recordings. Special permission must be enabled at Users->[[User_Permissions]]->Recordings delete.<br />
<br><br><br />
<br />
=== How to use this functionality ===<br />
<br />
To delete by device:<br><br />
Go to '''ADDONS –> Recordings'''<br />
<br><br><br />
[[File:Recordings_menu_path.png]]<br />
<br><br><br />
Click on [[image:icon_edit.png]] '''Bulk management''' link. <br />
<br><br><br />
[[File:Recordings_bulk_management.png]]<br />
<br><br><br />
Here you can check an option to delete by device, select device and click '''Delete'''.<br />
<br />
To delete all recordings from all devices at once, select '''All'''.<br />
<br><br><br />
[[File:Recordings_bulk_management_delete_all.png]]<br />
<br><br><br />
[[File:Recordings_bulk_management_confirm.png]]<br />
<br><br><br />
Confirm that you really want to delete recordings of selected device.<br />
<br><br><br />
To delete by date:<br><br />
Go to '''ADDONS –> Recordings'''<br />
<br><br><br />
[[File:Recordings_menu_path.png]]<br />
<br><br><br />
Click on [[image:icon_edit.png]] '''Bulk management''' link. <br />
<br><br><br />
[[File:Date bulkmanagement.png]]<br />
<br><br><br />
Here you can check an option to delete by date, select date and click '''Delete'''.<br />
<br><br><br />
[[File:Date recorddelete.png]]<br />
<br><br><br />
Confirm that you really want to delete recordings of selected period.<br />
<br><br><br />
To delete recordings for specific user and for specific date, please select user, date and click '''Delete'''.<br />
<br><br><br />
[[File:Recorduserdate.png]]<br />
<br><br><br />
<br />
= Recordings Quality Test =<br />
<br />
This feature allows to record Calls for specified Destination Group with desired quantity and send Recordings' links via e-mail.<br />
<br><br><br />
=== Who can use this functionality? ===<br />
<br />
* This feature is only available for MOR administrator and accountant (Manage Recordings Permission)<br />
<br><br />
=== How to use this functionality ===<br />
<br />
To setup new Quality Test:<br><br />
Go to '''ADDONS –> Recordings –> Quality Test'''<br />
<br><br><br />
[[File:Recordings_quality_test_menu_path.png]]<br />
<br><br><br />
[[File:Recordings_quality_test_list.png]]<br />
<br><br><br />
Set desired E-mail address, Destination Group, Calls Quantity and click on [[image:icon_add.png]] icon. <br />
<br><br><br />
[[File:Recordings_quality_test_list_input.png]]<br />
<br><br><br />
After Quality Test is created, MOR will collect Recordings with required Destination Group.<br />
Once Recordings quantity is met, shortly after links with Recordings will be sent to Email.<br />
<br><br><br />
[[File:Recordings_quality_test_list_input_success.png]]<br />
<br><br><br />
Once email is sent, corresponding Quality Test row will not be shown in list.<br />
<br><br><br />
<br />
=See also=<br />
<br />
* [[MOR Addons]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=File:Recordings_addon_settings.png&diff=28979File:Recordings addon settings.png2023-06-13T11:44:42Z<p>Nerijuss: Nerijuss uploaded a new version of File:Recordings addon settings.png</p>
<hr />
<div></div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=What_are_callgroups_and_pickupgroups&diff=28978What are callgroups and pickupgroups2023-06-13T10:55:14Z<p>Nerijuss: </p>
<hr />
<div>'''Letting someone else answer a call'''<br />
<br />
In the mgcp, SIP, IAX, and Asterisk Skinny Channels and in the zapata channels, you can define call and pickup groups for phones.<br />
Note that call pickup typically only works WITHIN a technology, e.g. from a SIP phone to a SIP phone, and not ACROSS technologies, e.g. from a SIP phone to an IAX phone. <br />
<br />
The basic functionality is this:<br />
<br />
* A call is placed in one or several call groups.<br />
* If a phone belongs in a pickup group that matches one of the call's call groups, the user of that phone may pickup the incoming call by dialing *8#<br />
* In v1-0, the feature code seems to be *8# on zap channels, and *8 on SIP channels: *8# does not seem to work from a SIP phone <br />
(unless your phone is configured to interpret # as the ENTER key) <br />
<br />
<br />
Groups are numbered in the range 0-63.<br />
<br />
You define call and pickupgroup per device, in this way:<br />
<br />
callgroup=1<br />
pickupgroup=1-9,13<br />
<br />
Call groups and pickup groups can be found in Device Settings <br><br />
[[File:Callgroups pickupgroups.png]]<br />
<br />
=== A common misconception ===<br />
<br />
Callgroups are not intended to call a group of phones. All a callgroup entry does is help define who is permitted to perform a pick-up for particular calls.<br />
<br />
Call pick-up is the function that allows a user to pick up his phone, enter a predefined number, and take a call from another phone that is currently ringing. It is useful in situations when somebody has called your colleague and you do not want to jump up from your desk and run to his desk in order to answer his phone. Instead you pick up your own phone, enter the predefined number, and take the call on your own phone.<br />
<br />
<br><br><br />
----<br />
* Info taken from: http://www.voip-info.org/wiki-Asterisk+callgroups+and+pickupgroups<br />
<br />
<br />
<br><br><br />
=Practical Example=<br />
<br />
Lets say we have a receptionist and 5 other colleagues. Receptionist usually answers all the incoming calls. Sometimes receptionist can be out of the office, so her colleagues could hear her phone ringing and want to pickup the call on their phones, not going directly to the receptionist's phone physically.<br />
<br />
To achieve this, such configuration is necessary:<br />
<br />
On the receptionist device:<br />
<br />
callgroup=1<br />
<br />
On all colleague's devices:<br />
<br />
pickupgroup=1<br />
<br />
When receptionist device is ringing, colleague can dial on his phone *8 and answer the call.<br />
<br />
This is enough to achieve functionality described above.<br />
<br />
NOTE: that callgroups and pickupgroups are global on the system (Asterisk), so if you set callgroup or pickupgroup 1 for somebody, do not set same group for another company, which should not be able to pickup calls.<br />
<br />
=Troubleshooting=<br />
<br />
If Pickup does not work on a system with Proxy, set the receiving and answering Devices to Trunk: Yes.<br />
<br><br></div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Data_import&diff=28966Data import2023-06-09T10:31:42Z<p>Nerijuss: </p>
<hr />
<div>= User/Device/DID/CLI import =<br />
<br />
You must import the data in the following order '''from CSV files''':<br />
<br />
1. Users data<br><br />
2. Devices data<br><br />
3. DIDs data<br><br />
<br />
'''Import Devices from CSV''' link is disabled while Users data is not imported. '''Import DIDs from CSV''' link is disabled while Devices data is not imported.<br />
<br />
CLIs data can be imported for already existing Devices by Device ID or for just imported Devices by Temporary Device ID (which is in '''SETTINGS -> Users -> Import''').<br />
<br />
Functionality is available for '''Admin''' and '''Reseller'''.<br />
<br />
== CSV file format ==<br />
<br><br />
'''Please note that such details like tariff, LCR, IDs should be specified in csv instead names.'''<br />
<br />
Example you have LCR called "My first LCR" this LCR ID is 2. You should specify in csv 2, but not My first LCR. <br />
<br />
Other way if you will not specify ID system will not find it.<br />
<br />
You can upload your data from a CSV file that has the following structure:<br><br />
1. Each record is started in a new line.<br><br />
2. Each piece of record information is separated by commas (see the example).<br><br />
3. Text is enclosed within inverted commas (for example: "name").<br><br />
4. Numbers are written without inverted commas (for example: 4).<br><br />
5. The first line can be used for your own needs, such as for naming each field of information. '''If you use this line, do not select the "include first line?" option when asked.<br />
'''<br />
<br />
'''For example:'''<br><br />
We have a CSV file named '''example.csv''' with the contents:<br />
<br />
"id", "username", "password", "e-mail"<br><br />
1, "username1", "verySecretPassword", "example@example.com"<br><br />
2, "username2", "34r34r4232", "example2@example.com"<br><br />
3, "username3", "23er29923wjwe", "example3@example.com"<br><br />
<br />
'''Explanation:'''<br><br />
The '''first line''' is used in this case for naming the fields, so '''when asked, do not select the "include first line?"''' option. (If you won't use the first line for '''naming the fields''', please do select '''"include first line?")'''<br><br />
The other three lines (starting 1, 2, 3) are for data records. Each record (the first one is: 1, "username1", "verySecretPassword", "example@example.com") represents:<br><br />
<br />
1 - user id.<br><br />
"username1" - user's username.<br><br />
"verySecretPassword" - user's password.<br><br />
"example@example.com" - user's e-mail.<br><br />
<br />
Your CSV file can have any number of lines with any number of fields ('''each line must have the same number of fields''').<br />
<br />
P.S. The file should not have any other symbols than those mentioned above. Be careful, as some editors can add their own formatting symbols. In Windows we recommend using Notepad, and in Linux: gedit, kedit, nano.<br />
<br />
'''Here are some examples:'''<br />
<br />
'''Users CSV file example:'''<br><br />
<br />
38,2,0,"NULL","NULL",TRUE,"11420471-2-03","Example ZRt","Example ZRt","example example. 11","76/356-650","example@example.hu",04/06/07 01:48 PM," ","en",97,20,0,FALSE,TRUE,5,0,04/06/07,"NULL","NULL",0,FALSE,04/06/07,"Lajosmi",6050,1,0,1,1,TRUE,"NULL","NULL",3<br><br><br />
45,2,0,"95757bfa00bf85b17921d709b5af0234","NULL",TRUE,"12969247-2-03","Example Ákos","Example Example, Kft","Example's 38","70/235-45-89","example@example2.hu",04/06/09 11:28 AM," ","en",97,20,0,FALSE,TRUE,5,0,04/07/09,"NULL","NULL",0,FALSE,04/06/09,"Kecexample",6000,1,0,1,1,TRUE,"NULL","NULL","NULL"<br><br><br />
2138,2,0,"cc1b3ae8986559b10786d6ea73912bd5","NULL",TRUE,"11871633-2-03","Kos Tas","Ks Kft","Alsó ast","20/229-36-78","pli@example.hu",12/13/07 09:42 AM," ","en",97,20,0,FALSE,TRUE,5,0,12/13/07,"NULL","NULL",0,FALSE,12/13/07,"Sirly",6031,1,0,1,1,TRUE,"NULL","NULL","NULL"<br />
<br />
In the first column is a Temporary User's ID; the other columns represent other data. As mentioned above, it does not matter in which order your data is represented in the CSV file. It only matters that each column (the data between commas) represents the same data value (id, email, password or other).<br />
<br />
"Blocked" column accepts values "1", "y", "true", "yes", "block" or "blocked". These values will result in imported User being blocked. Any other or empty value will result in User not being Blocked.<br />
<br />
'''Devices CSV file example:'''<br />
<br />
38,38,76824435,"3676586421","asd dsa u.12","jamaica","7ewfw@sip.example.com",TRUE,"dynamic","sip",TRUE,"NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL" <br><br />
<br />
45,45,76846301,"3676886421","fgh hgf u.","ergerSiP","76886421@sip.example.com",TRUE,"dynamic","sip",TRUE,"NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL"<br><br />
<br />
2138,2138,76505921,"3676505921","jkl lkj u.12","treK","6654@sip.example.com",FALSE,"dynamic","sip",TRUE,"NULL",FALSE,FALSE,10,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,FALSE<br />
<br />
The first column here represents "id", the second "user_id", and the others represent other data. YOUR ORDER CAN BE DIFFERENT. The main thing is that each type of data (email, password, id...) must be in the same column. When you are asked to provide data when importing, be sure to assign the correct data from CSV for each column and MOR will know which column represents which data.<br />
<br />
'''Dids CSV file example:'''<br />
<br />
37067531061,38,38<br><br />
37065431061,45,22<br><br />
37062431031,2138,2138<br><br />
<br />
In this example I have used the first column for DID, the second for Temporary User ID, and the third for Temporary Device ID. Your data order can be completely different. You just need to select the correct values when asked.<br />
<br />
== Importing data ==<br />
<br />
Firstly, from the MOR Graphical User Interface (GUI), navigate to: '''Settings -> Users -> Import''', as in the picture:<br />
<br><br><br />
[[Image:Imports_menu.png|alt import_menu]]<br />
<br><br><br />
=== Temporary User ID & Temporary Device ID ===<br />
<br />
These fields are necessary to map DIDs to Devices and Devices to Users.<br />
<br />
Temporary IDs can be integer digits only.<br />
<br />
Example:<br />
<br />
You have some other system with some user_ids, device_ids, DID_ids. You export them into CSV files. The relations between them are kept by these IDs, so importing them to MOR will keep these relations.<br />
<br />
<br />
First you need to import a User with some temporary ID, then make sure this ID is near each Device you are trying to import. Select this ID as Temporary User ID when importing Devices. That way these devices will be mapped to this User.<br />
<br />
The "Clear temporary information" button will clear Users and Devices temporary IDs. Use it only when import procedures are completed and you want to start over with a new set of Users and Devices.<br />
<br />
== Importing users ==<br />
<br />
To import users, click on the "Import Users from CSV" link:<br />
<br><br><br />
[[Image:Imports_users_selection.png|alt Imports_users_selection]] <br />
<br><br><br />
Now locate the CSV file in your local system by clicking the "Browse" button. As indicated above, don't click the "Include first line?" checkbox if you have used the first line for commenting on the fields.<br />
<br><br><br />
[[Image:Upload_csv_file.png|alt upload_csv_file]]<br />
<br><br><br />
<br />
'''Click on the "Upload file" button.'''<br />
<br />
In next menu, please fill in the requested data (you should select the correct field from your CSV file). '''You must select a field for each selection box marked with an asterisk (*) symbol'''. Having finished, press the "Assign columns" button.<br />
<br><br><br />
[[Image:User import.png|alt select_fields]]<br />
<br><br><br />
On the next page, check whether all the data was assigned correctly. If not, click the "Back" button and correct the mistakes. If all the data was assigned correctly, click the "Confirm columns" button. After the "Columns assigned" notification informs you that data successfully imported. <br />
<br />
'''NOTE:''' When you are going to import CSV file, which includes Tariff and/or LCR, the '''IDs''' of Tariff and LCR should be specified in CSV file.<br />
<br />
Where to find ID of Tariff or LCR? Just go to some of them and press on edit icon, where Browser navigator bar will show full link with location, last number is ID.<br />
<br />
'''NOTE:''' In the Payment type section you have to select do you want to upload prepaid or postpaid user. In CSV file 1 stand for postpaid user, 0 for prepaid user. By default, if Payment type is not select all users will be uploaded as prepaid users.<br />
<br />
<br />
Having completed all these steps, you should see a page similar to this:<br />
<br><br><br />
[[Image:Users_imported.png|alt Users_imported]]<br />
<br><br><br />
<br />
== Importing devices ==<br />
<br />
Click on the "Import Devices from CSV" link and follow the same procedure for uploading a CSV file as in the "Importing users" section. That is, locate the CSV file in your local system by clicking the "Browse" button. As stated before, don't click the "Include first line?" checkbox if you have used the first line for commenting on the fields. Click on the "Upload file" button. Now you should see a menu similar to this:<br />
<br><br><br />
[[Image:Device_selection.png|alt device_selection]]<br />
<br><br><br />
In this menu, once again select a matching field from your CSV file for each selection box. '''It is very important to correctly select Temporary User ID and Temporary Device ID, because these fields are necessary to map DIDs to Devices and Devices to Users.'''<br />
<br />
'''NOTE:''' When you are going to import CSV file, which includes Location, the '''name''' of Location should be specified in CSV file.<br />
<br />
<br />
Having finished selecting the fields, press the "Assign columns" button.<br />
<br />
Once the columns are assigned, check whether all the data is correct. If not, press the "Back" button and correct the mistakes. Now, if you haven't made any mistakes, you should see two tables similar to these:<br />
<br><br><br />
[[Image:Users_devices_tables.png|alt users_devices]]<br />
<br><br><br />
<br />
== Importing DIDs ==<br />
<br />
Click on the "Import Devices from CSV" link and follow the same steps for uploading a CSV file as in the "Importing users" section. That is,<br />
locate the CSV file in your local system by clicking the "Browse" button. As stated before, don't click on the "Include first line?" checkbox if you have used the first line for commenting on the fields. Click on the "Upload file" button. Now you should see a menu similar to this:<br />
<br><br><br />
[[Image:Dids select.png|alt dids_selection]]<br />
<br><br><br />
Select all matching fields from your CSV here. It is very IMPORTANT to select the CORRECT Temporary User ID and Temporary Device ID! Having selected everything correctly, click the "Assign columns" button. In the next page, if all imported data is assigned correctly, click the "Confirm columns" button. If you haven't made any mistakes, you should now see a "DIDs successfully imported" message. <br />
<br />
== Importing CLIs ==<br />
<br />
<!-- This option is available starting with [[MOR X3]]--><br />
<br />
CLIs data can be imported for already existing Devices by Device ID or for just imported Devices by Temporary Device ID.<br />
<br />
Click on the "Import CLIs from CSV" link and follow the same steps for uploading a CSV file as in the "Importing users" section. That is, locate the CSV file in your local system by clicking the "Browse" button. As stated before, don't click on the "Include first line?" checkbox if you have used the first line for commenting on the fields. Click on the "Upload file" button. Now you should see a menu similar to this:<br />
<br><br><br />
[[Image:CLIs select.png|alt clis_selection]]<br />
<br><br><br />
Select all matching fields from your CSV here. It is very IMPORTANT to select the CORRECT Device ID (if it is selected "Use Device ID") or Temporary Device ID(if it is selected "Use Temporary Device ID")! Having selected everything correctly, click the "Assign columns" button. In the next page, if all imported data is assigned correctly, click the "Confirm columns" button. If you haven't made any mistakes, you should now see a "CLIs successfully imported" message.<br />
<br />
<br />
<br />
<br />
You can now check whether all your data has been imported.<br />
<br />
To check users, go to: '''SETTINGS –> Users'''.<br />
<br />
To check devices, go to: '''SETTINGS –> Users –> Devices'''.<br />
<br />
To check DIDs, go to: '''SETTINGS –> Billing –> DIDs'''.<br />
<br />
To check CLIs, go to: '''SETTINGS –> Billing –> Devices –> CLIs'''.<br />
<br><br><br />
[[Image:Dids devices users.png|alt dids_devices_users]]<br />
<br><br><br />
<br />
= Explanation of IDs =<br />
<br />
Many users find it difficult to understand what User_ID or Device_ID mean in Data Import.<br />
<br />
These are temporary IDs created only for import purposes. '''These IDs have NO relation to User ID/Device ID in the Users/Devices windows of the MOR system.'''<br />
<br />
The workflow of Import is:<br />
<br />
1. We have Users/Devices/DIDs.<br />
<br />
2. We create a separate file with Users and add a unique ID to every User. The ID is NOT related to User ID in MOR DB/GUI.<br />
<br />
3. We create a separate file with Devices and add a unique ID to every Device. The ID is NOT related to Device ID in MOR DB/GUI. Near each device we add a temporary User ID from previous file, which shows which Device belongs to which User.<br />
<br />
4. We create a separate file with DIDs and near each DID add a User_ID/Device_ID that shows which DID belongs to which User/Device.<br />
<br />
5. We import the User file, and MOR remembers the temporary User_ID.<br />
<br />
6. We import the Device file, and MOR remembers the temporary Device_ID and checks the User_ID for such Devices which have a User_ID near them in the file. It assigns this Device to the appropriate User.<br />
<br />
7. We import the DID file. MOR checks the Device_ID/User_ID in the DIDs file and assigns a DID to this Device/User.<br />
<br />
8. We import the CLI file. If during import there is selected "Use Temporary Device ID " MOR checks the Device_ID in the CLIs file and assigns a CLI to this Device. If it is checked "Use Device ID" MOR checks the ID of Device in the CLIs file and assigns a CLI to this Device<br />
<br />
NOTE: in all processes, only a TEMPORARY User_ID/Device_ID is used. In the database, Users' ID/Devices' ID are not used directly. They have no relation to the User_ID/Device_ID from import files.<br />
<br />
<br />
= See also =<br />
<br />
* [[Export Users and Devices]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Device_settings&diff=28964Device settings2023-06-08T13:06:20Z<p>Nerijuss: </p>
<hr />
<div><mkmeta>MOR Device Settings Explained</mkmeta><br />
=General=<br />
<br />
* '''Accountcode''' – the unique ID of the device in the system.<br />
* '''Description''' – for informational purposes.<br />
* '''PIN''' – device PIN for authentication/authorization.<br />
* '''Device group''' – to which group the device belongs (not used most of the time).<br />
* '''Type''' – what type of device it is. Device type '''cannot''' be changed once it is created.<br />
* '''Extension''' – a short number by which this device can be reached; must be unique in the system.<br />
* '''DTMF Mode''' – in which protocol phone button presses are sent over network. The available options are: inband, info, RFC2833, and auto. Choose which one your provider uses (RFC2833 is used most often). This setting applies to SIP, H.323 and IAX2 protocols. For ZAP devices edit the configuration files in /etc/asterisk.<br />
* '''Location''' – the default is Global. Choose the appropriate location based on [[Localization]] needs.<br />
* '''Ringing Timeout''' – allows to limit the ringing duration in seconds. Minimal value is 10 seconds. Option is designed for incoming calls.<br />
* '''Call Timeout''' – allows to limit answered call billsec. Leave 0 for unlimited.<br />
* '''[[Trunks | Trunk]]''' – No/ Yes/ Yes with ANI/ 3CX – Is this device Trunk with/without ANI, 3CX? The "3CX" option adds rinstance parameter to R-URI which is used on 3CX authentication. More details: https://www.3cx.com/docs/sip-trunk-registration-authentication/<br />
* '''[[Simultaneous call limitation | Call Limit]]''' – how many outbound simultaneous calls can a Device make?<br />
* '''Inbound concurrent Call Limit''' – how many inbound simultaneous calls can a Device can get?<br />
* '''[[Multi_Server_support | Server]]''' – allows to choose server in multiple servers system. Choose '''''All''''' to assign all servers. Option '''All''' can be used and is shown only for IP Authenticated devices. (While Carrier Class Addon is active, all Virtual and Fax devices are auto-assigned to all present Asterisk servers and cannot be re-assigned. Disabling Carrier Class Addon all Virtual and Fax devices will be assigned to default Asterisk server chosen from Addons > Carrier Class > Settings dropdown).<br />
* '''Balance''' – a balance of the device. Disabled by default. Balance is decreasing when the User makes calls. Payments does not affect device balance.<br />
<br><br><br />
<br />
=Authentication=<br />
<br />
===For dahdi devices:===<br />
<br />
* '''Channel''' – which channel (or channel group) to use on PRI/BRI/PSTN card. Channels and groups should be configured in ''zapata.conf''.<br />
<br><br><br />
===For SIP, H323 and IAX2 Devices:===<br />
<br />
'''IP Authentication:'''<br />
* '''Hostname''' – Device hostname. Use "IP Address" instead if you have problems with inbound calls.<br />
* '''IP Address''' – Device IP address in one of the following formats: <br />
** '''IP''' – understands simple IP address, IP address with it's Subnet Mask and IP address with it's Range. For example ''192.168.0.1'', ''192.168.0.1/24'' and ''192.168.0.0-255''. <br />
* '''Accept calls from any port''' – this option lets you receive calls from different Ports. This option is just on SIP (when [[SIP balancer]] in use) and H323.<br />
* '''Port''' – Device Port.<br />
<br />
'''Dynamic:'''<br />
<br />
* '''Username''' – username you enter in your Device.<br />
* '''Password''' – password you enter in your Device.<br />
* '''IP Address''' – shows Device IP address.<br />
* '''Port''' – shows Device Port.<br />
* '''Registration Status''' - available only for SIP devices. If device is assigned to server A but registers to server B - status will not be shown (devices must register to the server they are assigned to). If no status is displayed - device has not tried to register or no one called to that device. Qualify must enabled if you want to monitor device status.<br />
* '''UNREGISTER''' - last registration information will be deleted (ipaddr, port, fullcontact).<br />
<br><br><br />
<br />
=CallerID=<br />
<br><br><br />
[[File:device_callerid.png]]<br />
<br><br><br />
A CallerID consists of two parts: Name and Number. The "Number" part is transferred by default by all technologies (GSM, PSTN, SIP etc), but the "Name" part is transferred only by some. The number you see on your mobile phone when someone is calling you is the "Number" part.<br />
<br />
* '''Name''' – the "Name" part of the CallerID.<br />
* '''Number''' – the "Number" part of the CallerID. Only numerical values can be entered in this field. <br />
<br />
NOTE: if you leave these fields empty, the user can set the CallerID name by himself. Usually it is not advisable to allow the user do it on his own. If CallerID number field is empty, system will take device username as CallerID number (if device is username/password authenticated).<br />
<br />
* '''Number from DID''' - use the DID as the CallerID (only available when the device has DIDs), this option just sets CallerID Number to be equal to DID. Next time you will edit Device's settings, first option - Number will be checked<br />
<br />
* '''Control by DIDs (CID from DIDs)''' – only available when the device has DIDs and "Number" field is empty.<br />
<br />
This setting lets you control what a CID user can enter in his devices. CID numbers should be from the set of the device's DIDs. They are mainly used when the user's PBX is connected over Trunk and many DIDs are routed to this Trunk. Calls coming out from this PBX must have a CallerID Number from the set of DIDs assigned to this Trunk (PBX). If "CID from DIDs" is checked, the system checks whether the device's CID number is from DIDs assigned to this device. If no DIDs are assigned, this value is ignored. In order for this setting to be active, CID Name/Number fields must be empty to allow the user to enter any CID number he wants. If "CID from DIDs" is checked and user enters any CID (not from his DIDs), the system will change his CID by his first available DID (selected from database by lowest ID). Original (non Localized) CallerID is used for DID matching.<br />
<br />
* '''Control by CIDs''' – system checks incoming CallerID (Device's CallerID which is set on the Device). If CallerID matches one of the Device's CIDs - then such CallerID will be allowed. If it does not match - it will be changed to the selected CID.<br />
<br />
* '''Control by Destination''' – This is advanced option which works by such algorithm:<br />
<br />
# system checks Destination and checks DIDs assigned to calling Device. Then it finds 'nearest' DID to the Destination by subtracting DID from Destination in numerical form (Example, DID: 11111, Destination: 11112, |DID-Destination|=|1111-11112|=1) If Device has several DIDs - the lowest value is selected and this DID is set as CallerID.<br />
#If Device has no DIDs - then User DIDs are used. <br />
#If Device does not have DIDs and User has no DIDs, then CallerID set in Number field will be used. <br />
#If nothing is set here - CallerID coming from Device will be used.<br />
Note: behavior can be [http://wiki.kolmisoft.com/index.php/Mor.conf changed] to search for '''best matching''' DID instead of '''nearest''' DID <br />
* '''Random Number from Number Pool''' – This functionality gives you an ability to send different caller number on each Call. Available from MOR X4. More information: [http://wiki.kolmisoft.com/index.php/Number_Pool Number Pool].<br />
#Random - Send random CallerID.<br />
#Pseudorandom with Deviation. Range can vary from 0 to 9999999. If 0 is chosen, then all numbers will be chosen same amount of times. If 9999999 is set, then numbers will be completely random.<br />
<br />
* '''Unknown''' - This option lets you set CallerID number to ''unknown'' and pass a custom CallerID in either RPID or PAI header:<br><br />
[[File:Unknown_cid_rpid_pai.png]]<br />
<br />
* '''Copy Leg A Name to Leg B Number''' – Leg A name will be used as Leg B number.<br />
<br><br><br />
<br />
=Network Related=<br />
<br />
===For H323:===<br />
<br />
* '''Fast start''' – option for faster H.245.<br />
* '''h245 Tunneling''' – use H.245 without opening a second TCP/IP channel.<br />
More info you can find [http://toncar.cz/Tutorials/VoIP/VoIP_Protocols_H323_Call_Signalling_Optimizations.html here].<br />
<br><br><br />
===For SIP and IAX2===<br />
<br />
* '''Media control''' – can reinvite. Do you want your server to stay in media path between your clients and your provider? Please note that this option will work only if it is supported from both, device and provider, sides and it allows to handle SIP packets only. Moreover, no codec mismatch between device and provider is available. Default value is ''No''. '''WARNING''': This option can cause [[Call was billed incorrectly|incorrect billing]].<br />
** canreinvite = yes "allow RTP media direct"<br />
** canreinvite = no "deny re-invites"<br />
** canreinvite = nonat "allow reinvite when local, deny reinvite when NAT"<br />
** canreinvite = update "use UPDATE instead of INVITE"<br />
** canreinvite = update,nonat "use UPDATE when local, deny when NAT"<br />
* '''NAT''' – the available options are: yes, no, never, force_rport, comedia. For a detailed explanation of these settings, refer to [http://www.voip-info.org/wiki/view/Asterisk+sip+nat here].<br />
* '''Qualify''' – how long to wait for a response to Qualify request. If you have lot of Devices in your system, set it to 9000ms or more. More details [http://www.voip-info.org/wiki/view/Asterisk+sip+qualify here] for SIP devices and [http://www.voip-info.org/wiki/view/Asterisk+iax+qualify here] for IAX2 devices.<br />
* '''IAX2 Trunking Mode''' – enable/disable trunking mode, which allows multiple voice streams to share a single "trunk" to another server, reducing overhead created by IP packets. Only on IAX2.<br />
<br><br><br />
<br />
=Groups=<br />
<br />
* [[What are callgroups and pickupgroups | Call Group]] – to which Call Group this device belongs.<br />
* [[What are callgroups and pickupgroups | Pickup Group]] – which Call Groups this device can pick up.<br />
<br><br><br />
=Voicemail=<br />
<br />
* '''Email''' – where to send received Voicemail.<br />
* '''Password''' – the digital password the user enters when he calls the Voicemail number to hear his messages.<br />
Voicemail login details are required when the user access Voicemail from outside over DID.<br />
* '''Enable MWI''' - In telephony, a Message Waiting Indicator (MWI) is a telephone calling feature that illuminates a LED on selected telephones to notify a user of waiting for voicemail messages. It works on most telephone networks and PBXs.<br />
* '''Subscribe MWI''' - If set to 'no', then Asterisk will send notifications to the phone about new voicemails. If set to 'yes', then the Phone should subscribe to Asterisk to get messages. If MWI does not work on your phone, try to switch this setting on/off.<br />
* '''Delete VoiceMail after sending it''' – If it is set to 'yes', the VoiceMail will be deleted after it is sent to email.<br />
<br><br />
* Language – (in Advanced settings) sets Voicemail language (and IVR language)<br />
<br />
<br><br><br />
<br />
=Codecs=<br />
<br />
[[Which codecs should I choose for devices | Choose the codecs]] your provider uses.<br />
<br />
NOTES: <br />
* When no fields are checked, all codecs are available – for example, settings in sip.conf or iax.conf are effective.<br />
* If the Provider and the Device do not have similar codecs, no call can be established.<br />
<br><br><br />
<br />
=Allowed Addresses=<br />
<br />
Described [[Allowed Addresses | here]]<br />
<br />
<br><br><br />
<br />
=Advanced=<br />
<br />
* '''Fromuser/Fromdomain''' – used when calling TO this peer FROM Asterisk. If you're using _register=>_ with another SIP proxy, this setting can come in handy since some SIP networks only allow users in the right domain with the correct user name. <br />
* '''Trustrpid''' – defines whether or not Remote-Party-ID is trusted. It's defined in http://tools.ietf.org/id/draft-ietf-sip-privacy-04.txt.<br />
* '''Sendrpid''' – defines whether a Remote-Party-ID SIP header should be sent. The default setting is "no". This field is often used by wholesale VoIP providers to provide calling party identity regardless of the privacy settings (the From SIP header). <br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+sip+insecure Insecure]<br />
** port: ignore the port number where the request came from. '''WARNING:''' do NOT enable it on username/password authenticated devices.<br />
** invite: don't require authentication of incoming INVITEs. '''WARNING:''' do NOT enable it on username/password authenticated devices.<br />
** port, invite: don't require initial INVITE to authenticate and ignore the port where the request came from. '''WARNING:''' do NOT enable it on username/password authenticated devices.<br />
<br />
Both of these settings are enabled by default for [[Authentication | IP Authenticated]] devices, but they can be changed, unless you are using Carrier Class Addon, which forces the device to ignore the port number and the authentication from an incoming request.<br />
<br />
Insecure Invite means that MOR will not challenge for a password, it means that anyone who knows extension can call without password, this is the reason why it is very insecure to use for username/password authenticated devices.<br />
<br />
Insecure Port means that MOR will allow INVITES from a different port than the one REGISTER packets come from. This could be used with username/password authenticated devices too. <br />
<br />
* '''Disable global pass_privacy''' - if set to yes, this option disables global [[mor.conf|pass_privacy_header]] variable for this device. If global pass_privacy_header variable is not set to yes, this option has no effect.<br />
* '''Usereqphone''' - Yes or No. The default setting is "No". Option adds ;user=phone in From, To, Invite, and PAI headers. Only active for incoming calls. If the device is originator, please set '''Usereqphone''' in Provider settings.<br />
* '''Custom SIP Header''' - adds custom header to SIP request. Format is '''header: value''' (for example '''x-My-Custom-Header: my value''')<br />
* '''[http://www.voip-info.org/wiki/index.php?page=Asterisk+sip+progressinband Progressinband]''':<br />
** yes – when the "RING" event is requested, always send 180 Ringing (if it hasn't been sent yet) followed by 183 Session Progress and in-band audio.<br />
** no – send 180 Ringing if 183 has not yet been sent, establishing an audio path. If the audio path is established already (with 183), then send in-band ringing (this is the way Asterisk historically behaved because of buggy phones like Polycom's).<br />
** never – whenever ringing occurs, send "180 ringing" as long as "200 OK" has not yet been sent. This is the default behavior of Asterisk.<br />
NOTE: if Progressinband does not work, add "prematuremedia=no" to sip.conf and reload Asterisk.<br />
* '''Video support''' – does your provider support Video over IP? More info [http://www.voip-info.org/wiki/view/Asterisk+video here].<br />
* '''[[Duplicate call prevention | Allow duplicate calls]]''' – the default setting is "no".<br />
* '''Language''' – sets IVR language<br />
* '''Use ANI (if available) for CallerID:''' – When the call comes the information about who is calling is found in CallerID field. This field is used to determine who is calling. When the call comes through PRI/SS7 channels - then additional information is available who is calling in ANI field (in call's data channel) so sometimes CallerID might be empty or anonymous, but the caller can be found in ANI field. This option allows to use ANI field as CallerID to determine and recognize who is calling. <br />
* '''Incoming Call CallerID Presentation''' – sets CallerID Presentation. Please note that this setting applies only for incoming calls. More information can be found [http://www.voip-info.org/wiki/view/Asterisk+cmd+SetCallerPres here] and [http://www.voip-info.org/wiki/view/Asterisk+cmd+CallingPres here] <br />
* '''Change Failed Code To''' – if call fails change Hangup Cause Code to this value. This works only for outgoing calls from device. '''Not for Incoming'''<br />
* '''Forward DID''' – it allows to forward call to DID which is assigned to Authorization by PIN or Calling Cards dial plan. After user enters PIN of any device or card, call gets connected with destination.<br />
* '''Anti-resale (Auto-answer)''' – when option is set to YES, MOR answers the call before sending it to provider in order to generate FAS. This does not affect billing in MOR (User is not billed for extra time).<br />
* '''Time limit per day''' - Total time available for device per day. When limit is reached call fails with HGC "239 - Device used its daily call time limit" (total time is calculated after rounding rules and minimal time adjustment, so if user's tariff has increment higher than 1 or minimal time set, then total device time may be different than actual call time).<br />
* '''Time limit per month''' - Total time available for device per month. You can also set day of limit reset (default is 1st day of month). When limit is reached, call fails with HGC "286 - Device used its monthly call time limit" (total time is calculated after rounding rules and minimal time adjustment, so if user's tariff has increment higher than 1 or minimal time set, then total device time may be different than actual call time).<br />
* '''Transport''' – lets you choose protocol(s) for data transfer. Appears only if device is SIP and when Asterisk 1.8 is enabled. Default value: ''udp''. If TCP is used, it has to be [[How_to_enable_TCP_for_Asterisk |enabled in Asterisk]].<br />
* '''T.38 Support''' – should T.38 pass-through be supported<br />
* '''SRTP Encryption''' – should SRTP protocol be used for calls <br />
* '''Block callerid if (number) simultaneous calls come from it''' – blocks CallerID if the entered number of simultaneous calls come from it<br />
<!---This functionality is available from MOR x4---><br />
* '''Limit up to (number) calls, during (number) seconds''' – allows to set calls per second limit in some period. [[File:call_limit_per_period.png]]<br />
* '''Outbound Proxy''' – send outbound signaling to this proxy, not directly to the peer (Internal Asterisk option).<br />
* '''SIP Session Timers''' - SIP Session Timers provide an end-to-end keep-alive mechanism for active SIP sessions. Possible values are "accept", "originate", "refuse":<br />
** '''originate''' - request and run session-timers always.<br />
** '''accept''' - run session-timers only when requested by other UA.<br />
** '''refuse''' - do not run session timers in any case.<br />
* '''SIP Session Refresher''' - The session refresher (uac|uas). Defaults to 'uas'.<br />
** '''uac''' - default to the caller initially refreshing when possible.<br />
** '''uas''' - default to the callee initially refreshing when possible.<br />
* '''SIP Session Expires''' - maximum session refresh interval in seconds. Defaults to 1800 secs. <br />
* '''SIP Min Session''' - minimum session refresh interval in seconds. Defaults to 90 secs.<br />
* '''Hangup Call if PDD is more than''' - set maximum PDD time (in seconds) before call ir hangup. Note that failover providers will not be used in this case. Call will be hanged up completely and will not be passed to other provider in LCR.<br />
* '''Localize PAI''' - if set to 'yes' then MOR will localize originator's number from PAI (P-Asserted-Identity) by [[Localization | CallerID Localization Rules]]. Works only if '''pass_pai''' is set in [[Mor.conf|mor.conf]].<br />
* '''Pass PAI''' - available options are 'Global', 'Yes', 'No'. Global (default value) means use value from pass_pai in [[mor.conf]] file. More information available in table [[P-Asserted-Identity#How_P-Asserted-Identity_.28PAI.29_is_handled_in_MOR_X11_and_later_versions|here]].<br />
* '''Use random Number when CallerID is invalid''' - if set to ''Yes'' then when CallerID is NOT found in a Number Pool set in '''Number Pool with valid CallerIDs''' then CalleID in FROM is changed to "anonymous" and random CallerID taken from '''Random Number from a Number Pool''' is set in PAI/RPID headers.<br />
* '''Emergency CallerID''' - number from this field will be used as CallerID if Destination number matches any number from '''Emergency CallerID Number Pool''' (see below). Localization rules will be applied before checking Destination number in Number Pool. P-Asserted and/or Remote-party-ID will be overwritten with the same as CallerID. If Destination number (after localization applied) does not match any number in '''Emergency CallerID Number Pool''', then CallerID is handled as usual.<br />
* '''Emergency CallerID Number Pool''' - Number Pool with numbers used for '''Emergency CallerID''' feature.<br />
* '''Music On Hold to Device''' - what to play when this Device is made On Hold by other party. Feature named "mohinterpret" on Asterisk.<br />
* '''Music On Hold from Device''' - what to play to other party, when this Device sets it On Hold. Feature named "mohsuggest" on Asterisk.<br />
* '''Announcement to the Called Party''' - plays specified announcement to callee in the beginning of conversation, right after call is answered. For example you can play message like "This conversation will be recorded" before every call from this Device.<br />
<br><br><br />
<br />
=Tell Options=<br />
<br />
* '''Tell rate before call''' - should MOR tell announce minute price (rounded to cents) before every call. Default value is "no".<br />
* '''Tell balance before call''' – should MOR tell the user his balance every time he tries to dial? The default setting is "no".<br />
* '''Tell time''' - should MOR tell the user his remaining time every time he tries to dial? The default setting is "no".<br />
** Time is told in MINUTES only. Currently it is not possible to tell both in minutes and seconds.<br />
* '''Tell remaining time when left''' – when some time is left, MOR will tell the remaining time to talk (in seconds).<br />
* '''Repeat remaining time when left''' – repeats the remaining time when some time is left (in seconds).<br />
<br><br><br />
=Debug=<br />
<br />
* [[SIP debug info|'''Process SIPCHANINFO''']] - shows SIP channel info in [[Asterisk CLI]] and saves this information on database.<br />
NOTE: debug should be enabled only if you are experiencing any problems. It should be disable in any other cases, because it stores lot of information on database.<br />
<br><br><br />
<br />
=Recordings=<br />
<br />
This section is available when [[Recordings Addon]] is installed in the system.<br />
<br><br><br />
=Comment=<br />
<br />
Devices can have Comments, which gives information about the Device.<br />
<br><br><br />
=See also=<br />
<br />
* [[Devices]]<br />
* [[Grace_time | Grace time]]<br />
* [[PAP_device_configuration | PAP device configuration]]<br />
* [[H323 Device settings]]<br />
* [[Hide Device username for Users]]<br />
* [[What is PIN]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Device_settings&diff=28963Device settings2023-06-08T13:05:30Z<p>Nerijuss: </p>
<hr />
<div><mkmeta>MOR Device Settings Explained</mkmeta><br />
=General=<br />
<br />
* '''Accountcode''' – the unique ID of the device in the system.<br />
* '''Description''' – for informational purposes.<br />
* '''PIN''' – device PIN for authentication/authorization.<br />
* '''Device group''' – to which group the device belongs (not used most of the time).<br />
* '''Type''' – what type of device it is. Device type '''cannot''' be changed once it is created.<br />
* '''Extension''' – a short number by which this device can be reached; must be unique in the system.<br />
* '''DTMF Mode''' – in which protocol phone button presses are sent over network. The available options are: inband, info, RFC2833, and auto. Choose which one your provider uses (RFC2833 is used most often). This setting applies to SIP, H.323 and IAX2 protocols. For ZAP devices edit the configuration files in /etc/asterisk.<br />
* '''Location''' – the default is Global. Choose the appropriate location based on [[Localization]] needs.<br />
* '''Ringing Timeout''' – allows to limit the ringing duration in seconds. Minimal value is 10 seconds. Option is designed for incoming calls.<br />
* '''Call Timeout''' – allows to limit answered call billsec. Leave 0 for unlimited.<br />
* '''[[Trunks | Trunk]]''' – No/ Yes/ Yes with ANI/ 3CX – Is this device Trunk with/without ANI, 3CX? The "3CX" options adds rinstance parameter to R-URI which is used on 3CX authentication. More details: https://www.3cx.com/docs/sip-trunk-registration-authentication/<br />
* '''[[Simultaneous call limitation | Call Limit]]''' – how many outbound simultaneous calls can a Device make?<br />
* '''Inbound concurrent Call Limit''' – how many inbound simultaneous calls can a Device can get?<br />
* '''[[Multi_Server_support | Server]]''' – allows to choose server in multiple servers system. Choose '''''All''''' to assign all servers. Option '''All''' can be used and is shown only for IP Authenticated devices. (While Carrier Class Addon is active, all Virtual and Fax devices are auto-assigned to all present Asterisk servers and cannot be re-assigned. Disabling Carrier Class Addon all Virtual and Fax devices will be assigned to default Asterisk server chosen from Addons > Carrier Class > Settings dropdown).<br />
* '''Balance''' – a balance of the device. Disabled by default. Balance is decreasing when the User makes calls. Payments does not affect device balance.<br />
<br><br><br />
<br />
=Authentication=<br />
<br />
===For dahdi devices:===<br />
<br />
* '''Channel''' – which channel (or channel group) to use on PRI/BRI/PSTN card. Channels and groups should be configured in ''zapata.conf''.<br />
<br><br><br />
===For SIP, H323 and IAX2 Devices:===<br />
<br />
'''IP Authentication:'''<br />
* '''Hostname''' – Device hostname. Use "IP Address" instead if you have problems with inbound calls.<br />
* '''IP Address''' – Device IP address in one of the following formats: <br />
** '''IP''' – understands simple IP address, IP address with it's Subnet Mask and IP address with it's Range. For example ''192.168.0.1'', ''192.168.0.1/24'' and ''192.168.0.0-255''. <br />
* '''Accept calls from any port''' – this option lets you receive calls from different Ports. This option is just on SIP (when [[SIP balancer]] in use) and H323.<br />
* '''Port''' – Device Port.<br />
<br />
'''Dynamic:'''<br />
<br />
* '''Username''' – username you enter in your Device.<br />
* '''Password''' – password you enter in your Device.<br />
* '''IP Address''' – shows Device IP address.<br />
* '''Port''' – shows Device Port.<br />
* '''Registration Status''' - available only for SIP devices. If device is assigned to server A but registers to server B - status will not be shown (devices must register to the server they are assigned to). If no status is displayed - device has not tried to register or no one called to that device. Qualify must enabled if you want to monitor device status.<br />
* '''UNREGISTER''' - last registration information will be deleted (ipaddr, port, fullcontact).<br />
<br><br><br />
<br />
=CallerID=<br />
<br><br><br />
[[File:device_callerid.png]]<br />
<br><br><br />
A CallerID consists of two parts: Name and Number. The "Number" part is transferred by default by all technologies (GSM, PSTN, SIP etc), but the "Name" part is transferred only by some. The number you see on your mobile phone when someone is calling you is the "Number" part.<br />
<br />
* '''Name''' – the "Name" part of the CallerID.<br />
* '''Number''' – the "Number" part of the CallerID. Only numerical values can be entered in this field. <br />
<br />
NOTE: if you leave these fields empty, the user can set the CallerID name by himself. Usually it is not advisable to allow the user do it on his own. If CallerID number field is empty, system will take device username as CallerID number (if device is username/password authenticated).<br />
<br />
* '''Number from DID''' - use the DID as the CallerID (only available when the device has DIDs), this option just sets CallerID Number to be equal to DID. Next time you will edit Device's settings, first option - Number will be checked<br />
<br />
* '''Control by DIDs (CID from DIDs)''' – only available when the device has DIDs and "Number" field is empty.<br />
<br />
This setting lets you control what a CID user can enter in his devices. CID numbers should be from the set of the device's DIDs. They are mainly used when the user's PBX is connected over Trunk and many DIDs are routed to this Trunk. Calls coming out from this PBX must have a CallerID Number from the set of DIDs assigned to this Trunk (PBX). If "CID from DIDs" is checked, the system checks whether the device's CID number is from DIDs assigned to this device. If no DIDs are assigned, this value is ignored. In order for this setting to be active, CID Name/Number fields must be empty to allow the user to enter any CID number he wants. If "CID from DIDs" is checked and user enters any CID (not from his DIDs), the system will change his CID by his first available DID (selected from database by lowest ID). Original (non Localized) CallerID is used for DID matching.<br />
<br />
* '''Control by CIDs''' – system checks incoming CallerID (Device's CallerID which is set on the Device). If CallerID matches one of the Device's CIDs - then such CallerID will be allowed. If it does not match - it will be changed to the selected CID.<br />
<br />
* '''Control by Destination''' – This is advanced option which works by such algorithm:<br />
<br />
# system checks Destination and checks DIDs assigned to calling Device. Then it finds 'nearest' DID to the Destination by subtracting DID from Destination in numerical form (Example, DID: 11111, Destination: 11112, |DID-Destination|=|1111-11112|=1) If Device has several DIDs - the lowest value is selected and this DID is set as CallerID.<br />
#If Device has no DIDs - then User DIDs are used. <br />
#If Device does not have DIDs and User has no DIDs, then CallerID set in Number field will be used. <br />
#If nothing is set here - CallerID coming from Device will be used.<br />
Note: behavior can be [http://wiki.kolmisoft.com/index.php/Mor.conf changed] to search for '''best matching''' DID instead of '''nearest''' DID <br />
* '''Random Number from Number Pool''' – This functionality gives you an ability to send different caller number on each Call. Available from MOR X4. More information: [http://wiki.kolmisoft.com/index.php/Number_Pool Number Pool].<br />
#Random - Send random CallerID.<br />
#Pseudorandom with Deviation. Range can vary from 0 to 9999999. If 0 is chosen, then all numbers will be chosen same amount of times. If 9999999 is set, then numbers will be completely random.<br />
<br />
* '''Unknown''' - This option lets you set CallerID number to ''unknown'' and pass a custom CallerID in either RPID or PAI header:<br><br />
[[File:Unknown_cid_rpid_pai.png]]<br />
<br />
* '''Copy Leg A Name to Leg B Number''' – Leg A name will be used as Leg B number.<br />
<br><br><br />
<br />
=Network Related=<br />
<br />
===For H323:===<br />
<br />
* '''Fast start''' – option for faster H.245.<br />
* '''h245 Tunneling''' – use H.245 without opening a second TCP/IP channel.<br />
More info you can find [http://toncar.cz/Tutorials/VoIP/VoIP_Protocols_H323_Call_Signalling_Optimizations.html here].<br />
<br><br><br />
===For SIP and IAX2===<br />
<br />
* '''Media control''' – can reinvite. Do you want your server to stay in media path between your clients and your provider? Please note that this option will work only if it is supported from both, device and provider, sides and it allows to handle SIP packets only. Moreover, no codec mismatch between device and provider is available. Default value is ''No''. '''WARNING''': This option can cause [[Call was billed incorrectly|incorrect billing]].<br />
** canreinvite = yes "allow RTP media direct"<br />
** canreinvite = no "deny re-invites"<br />
** canreinvite = nonat "allow reinvite when local, deny reinvite when NAT"<br />
** canreinvite = update "use UPDATE instead of INVITE"<br />
** canreinvite = update,nonat "use UPDATE when local, deny when NAT"<br />
* '''NAT''' – the available options are: yes, no, never, force_rport, comedia. For a detailed explanation of these settings, refer to [http://www.voip-info.org/wiki/view/Asterisk+sip+nat here].<br />
* '''Qualify''' – how long to wait for a response to Qualify request. If you have lot of Devices in your system, set it to 9000ms or more. More details [http://www.voip-info.org/wiki/view/Asterisk+sip+qualify here] for SIP devices and [http://www.voip-info.org/wiki/view/Asterisk+iax+qualify here] for IAX2 devices.<br />
* '''IAX2 Trunking Mode''' – enable/disable trunking mode, which allows multiple voice streams to share a single "trunk" to another server, reducing overhead created by IP packets. Only on IAX2.<br />
<br><br><br />
<br />
=Groups=<br />
<br />
* [[What are callgroups and pickupgroups | Call Group]] – to which Call Group this device belongs.<br />
* [[What are callgroups and pickupgroups | Pickup Group]] – which Call Groups this device can pick up.<br />
<br><br><br />
=Voicemail=<br />
<br />
* '''Email''' – where to send received Voicemail.<br />
* '''Password''' – the digital password the user enters when he calls the Voicemail number to hear his messages.<br />
Voicemail login details are required when the user access Voicemail from outside over DID.<br />
* '''Enable MWI''' - In telephony, a Message Waiting Indicator (MWI) is a telephone calling feature that illuminates a LED on selected telephones to notify a user of waiting for voicemail messages. It works on most telephone networks and PBXs.<br />
* '''Subscribe MWI''' - If set to 'no', then Asterisk will send notifications to the phone about new voicemails. If set to 'yes', then the Phone should subscribe to Asterisk to get messages. If MWI does not work on your phone, try to switch this setting on/off.<br />
* '''Delete VoiceMail after sending it''' – If it is set to 'yes', the VoiceMail will be deleted after it is sent to email.<br />
<br><br />
* Language – (in Advanced settings) sets Voicemail language (and IVR language)<br />
<br />
<br><br><br />
<br />
=Codecs=<br />
<br />
[[Which codecs should I choose for devices | Choose the codecs]] your provider uses.<br />
<br />
NOTES: <br />
* When no fields are checked, all codecs are available – for example, settings in sip.conf or iax.conf are effective.<br />
* If the Provider and the Device do not have similar codecs, no call can be established.<br />
<br><br><br />
<br />
=Allowed Addresses=<br />
<br />
Described [[Allowed Addresses | here]]<br />
<br />
<br><br><br />
<br />
=Advanced=<br />
<br />
* '''Fromuser/Fromdomain''' – used when calling TO this peer FROM Asterisk. If you're using _register=>_ with another SIP proxy, this setting can come in handy since some SIP networks only allow users in the right domain with the correct user name. <br />
* '''Trustrpid''' – defines whether or not Remote-Party-ID is trusted. It's defined in http://tools.ietf.org/id/draft-ietf-sip-privacy-04.txt.<br />
* '''Sendrpid''' – defines whether a Remote-Party-ID SIP header should be sent. The default setting is "no". This field is often used by wholesale VoIP providers to provide calling party identity regardless of the privacy settings (the From SIP header). <br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+sip+insecure Insecure]<br />
** port: ignore the port number where the request came from. '''WARNING:''' do NOT enable it on username/password authenticated devices.<br />
** invite: don't require authentication of incoming INVITEs. '''WARNING:''' do NOT enable it on username/password authenticated devices.<br />
** port, invite: don't require initial INVITE to authenticate and ignore the port where the request came from. '''WARNING:''' do NOT enable it on username/password authenticated devices.<br />
<br />
Both of these settings are enabled by default for [[Authentication | IP Authenticated]] devices, but they can be changed, unless you are using Carrier Class Addon, which forces the device to ignore the port number and the authentication from an incoming request.<br />
<br />
Insecure Invite means that MOR will not challenge for a password, it means that anyone who knows extension can call without password, this is the reason why it is very insecure to use for username/password authenticated devices.<br />
<br />
Insecure Port means that MOR will allow INVITES from a different port than the one REGISTER packets come from. This could be used with username/password authenticated devices too. <br />
<br />
* '''Disable global pass_privacy''' - if set to yes, this option disables global [[mor.conf|pass_privacy_header]] variable for this device. If global pass_privacy_header variable is not set to yes, this option has no effect.<br />
* '''Usereqphone''' - Yes or No. The default setting is "No". Option adds ;user=phone in From, To, Invite, and PAI headers. Only active for incoming calls. If the device is originator, please set '''Usereqphone''' in Provider settings.<br />
* '''Custom SIP Header''' - adds custom header to SIP request. Format is '''header: value''' (for example '''x-My-Custom-Header: my value''')<br />
* '''[http://www.voip-info.org/wiki/index.php?page=Asterisk+sip+progressinband Progressinband]''':<br />
** yes – when the "RING" event is requested, always send 180 Ringing (if it hasn't been sent yet) followed by 183 Session Progress and in-band audio.<br />
** no – send 180 Ringing if 183 has not yet been sent, establishing an audio path. If the audio path is established already (with 183), then send in-band ringing (this is the way Asterisk historically behaved because of buggy phones like Polycom's).<br />
** never – whenever ringing occurs, send "180 ringing" as long as "200 OK" has not yet been sent. This is the default behavior of Asterisk.<br />
NOTE: if Progressinband does not work, add "prematuremedia=no" to sip.conf and reload Asterisk.<br />
* '''Video support''' – does your provider support Video over IP? More info [http://www.voip-info.org/wiki/view/Asterisk+video here].<br />
* '''[[Duplicate call prevention | Allow duplicate calls]]''' – the default setting is "no".<br />
* '''Language''' – sets IVR language<br />
* '''Use ANI (if available) for CallerID:''' – When the call comes the information about who is calling is found in CallerID field. This field is used to determine who is calling. When the call comes through PRI/SS7 channels - then additional information is available who is calling in ANI field (in call's data channel) so sometimes CallerID might be empty or anonymous, but the caller can be found in ANI field. This option allows to use ANI field as CallerID to determine and recognize who is calling. <br />
* '''Incoming Call CallerID Presentation''' – sets CallerID Presentation. Please note that this setting applies only for incoming calls. More information can be found [http://www.voip-info.org/wiki/view/Asterisk+cmd+SetCallerPres here] and [http://www.voip-info.org/wiki/view/Asterisk+cmd+CallingPres here] <br />
* '''Change Failed Code To''' – if call fails change Hangup Cause Code to this value. This works only for outgoing calls from device. '''Not for Incoming'''<br />
* '''Forward DID''' – it allows to forward call to DID which is assigned to Authorization by PIN or Calling Cards dial plan. After user enters PIN of any device or card, call gets connected with destination.<br />
* '''Anti-resale (Auto-answer)''' – when option is set to YES, MOR answers the call before sending it to provider in order to generate FAS. This does not affect billing in MOR (User is not billed for extra time).<br />
* '''Time limit per day''' - Total time available for device per day. When limit is reached call fails with HGC "239 - Device used its daily call time limit" (total time is calculated after rounding rules and minimal time adjustment, so if user's tariff has increment higher than 1 or minimal time set, then total device time may be different than actual call time).<br />
* '''Time limit per month''' - Total time available for device per month. You can also set day of limit reset (default is 1st day of month). When limit is reached, call fails with HGC "286 - Device used its monthly call time limit" (total time is calculated after rounding rules and minimal time adjustment, so if user's tariff has increment higher than 1 or minimal time set, then total device time may be different than actual call time).<br />
* '''Transport''' – lets you choose protocol(s) for data transfer. Appears only if device is SIP and when Asterisk 1.8 is enabled. Default value: ''udp''. If TCP is used, it has to be [[How_to_enable_TCP_for_Asterisk |enabled in Asterisk]].<br />
* '''T.38 Support''' – should T.38 pass-through be supported<br />
* '''SRTP Encryption''' – should SRTP protocol be used for calls <br />
* '''Block callerid if (number) simultaneous calls come from it''' – blocks CallerID if the entered number of simultaneous calls come from it<br />
<!---This functionality is available from MOR x4---><br />
* '''Limit up to (number) calls, during (number) seconds''' – allows to set calls per second limit in some period. [[File:call_limit_per_period.png]]<br />
* '''Outbound Proxy''' – send outbound signaling to this proxy, not directly to the peer (Internal Asterisk option).<br />
* '''SIP Session Timers''' - SIP Session Timers provide an end-to-end keep-alive mechanism for active SIP sessions. Possible values are "accept", "originate", "refuse":<br />
** '''originate''' - request and run session-timers always.<br />
** '''accept''' - run session-timers only when requested by other UA.<br />
** '''refuse''' - do not run session timers in any case.<br />
* '''SIP Session Refresher''' - The session refresher (uac|uas). Defaults to 'uas'.<br />
** '''uac''' - default to the caller initially refreshing when possible.<br />
** '''uas''' - default to the callee initially refreshing when possible.<br />
* '''SIP Session Expires''' - maximum session refresh interval in seconds. Defaults to 1800 secs. <br />
* '''SIP Min Session''' - minimum session refresh interval in seconds. Defaults to 90 secs.<br />
* '''Hangup Call if PDD is more than''' - set maximum PDD time (in seconds) before call ir hangup. Note that failover providers will not be used in this case. Call will be hanged up completely and will not be passed to other provider in LCR.<br />
* '''Localize PAI''' - if set to 'yes' then MOR will localize originator's number from PAI (P-Asserted-Identity) by [[Localization | CallerID Localization Rules]]. Works only if '''pass_pai''' is set in [[Mor.conf|mor.conf]].<br />
* '''Pass PAI''' - available options are 'Global', 'Yes', 'No'. Global (default value) means use value from pass_pai in [[mor.conf]] file. More information available in table [[P-Asserted-Identity#How_P-Asserted-Identity_.28PAI.29_is_handled_in_MOR_X11_and_later_versions|here]].<br />
* '''Use random Number when CallerID is invalid''' - if set to ''Yes'' then when CallerID is NOT found in a Number Pool set in '''Number Pool with valid CallerIDs''' then CalleID in FROM is changed to "anonymous" and random CallerID taken from '''Random Number from a Number Pool''' is set in PAI/RPID headers.<br />
* '''Emergency CallerID''' - number from this field will be used as CallerID if Destination number matches any number from '''Emergency CallerID Number Pool''' (see below). Localization rules will be applied before checking Destination number in Number Pool. P-Asserted and/or Remote-party-ID will be overwritten with the same as CallerID. If Destination number (after localization applied) does not match any number in '''Emergency CallerID Number Pool''', then CallerID is handled as usual.<br />
* '''Emergency CallerID Number Pool''' - Number Pool with numbers used for '''Emergency CallerID''' feature.<br />
* '''Music On Hold to Device''' - what to play when this Device is made On Hold by other party. Feature named "mohinterpret" on Asterisk.<br />
* '''Music On Hold from Device''' - what to play to other party, when this Device sets it On Hold. Feature named "mohsuggest" on Asterisk.<br />
* '''Announcement to the Called Party''' - plays specified announcement to callee in the beginning of conversation, right after call is answered. For example you can play message like "This conversation will be recorded" before every call from this Device.<br />
<br><br><br />
<br />
=Tell Options=<br />
<br />
* '''Tell rate before call''' - should MOR tell announce minute price (rounded to cents) before every call. Default value is "no".<br />
* '''Tell balance before call''' – should MOR tell the user his balance every time he tries to dial? The default setting is "no".<br />
* '''Tell time''' - should MOR tell the user his remaining time every time he tries to dial? The default setting is "no".<br />
** Time is told in MINUTES only. Currently it is not possible to tell both in minutes and seconds.<br />
* '''Tell remaining time when left''' – when some time is left, MOR will tell the remaining time to talk (in seconds).<br />
* '''Repeat remaining time when left''' – repeats the remaining time when some time is left (in seconds).<br />
<br><br><br />
=Debug=<br />
<br />
* [[SIP debug info|'''Process SIPCHANINFO''']] - shows SIP channel info in [[Asterisk CLI]] and saves this information on database.<br />
NOTE: debug should be enabled only if you are experiencing any problems. It should be disable in any other cases, because it stores lot of information on database.<br />
<br><br><br />
<br />
=Recordings=<br />
<br />
This section is available when [[Recordings Addon]] is installed in the system.<br />
<br><br><br />
=Comment=<br />
<br />
Devices can have Comments, which gives information about the Device.<br />
<br><br><br />
=See also=<br />
<br />
* [[Devices]]<br />
* [[Grace_time | Grace time]]<br />
* [[PAP_device_configuration | PAP device configuration]]<br />
* [[H323 Device settings]]<br />
* [[Hide Device username for Users]]<br />
* [[What is PIN]]</div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=Providers&diff=28956Providers2023-06-06T06:14:41Z<p>Nerijuss: </p>
<hr />
<div>= Description =<br />
<br />
In the old PSTN world, Providers were called Trunks. Providers are your route out of your VoIP network to the outside world.<br />
<br />
Providers can be one of several types: ZAP, SIP, IAX2, and H323. The type determines which technology is used to connect to the Provider.<br />
<br />
At the very start, you need to create a Provider through which you will dial out to PSTN or other VoIP networks.<br />
<br />
Every Provider will charge you for calling a destination through his service (although the rate might be zero). The rate to every destination is different. Because of this, we need to have a Tariff (or Price List) for each Provider. This Tariff will tell our billing what price we will pay to a destination when using this Provider's services. In other words, this will be our Selfcost.<br />
<br><br><br />
=Usage=<br />
<br />
Go to '''SETTINGS –> Billing –> Providers'''.<br />
<br><br><br />
[[File:providers_path.png]]<br />
<br><br><br />
Here you can see a list of all Providers:<br />
<br><br><br />
[[File:providers_list.png]]<br />
<br><br><br />
* Click [[image:add.png]] '''New Provider''' to create new Provider, enter the Name for a new Provider, select its Technology, Tariff, Asterisk server which should be used for this provider and click Create.<br />
* Click [[image:icon_edit.png]] icon to change settings for old Provider.<br />
<!---This functionality is available from MOR X4---><br />
* Click [[Image:icon_check.png]] icon to disable Provider and it will not be used while it is cross in Active column. It affects only outgoing calls. Incoming calls from this provider will be accepted.<br />
* Click [[Image:icon_cross.png]] icon to enable Provider if you want to use it again. <br />
* Click [[Image:icon_vcard.png]] icon to access [[Provider Contact Info]].<br />
* Click [[Image:icon_list.png]] icon to access [[Provider assigned to LCRs list]].<br />
NOTE: <br />
* You can't create a new Provider if there are no Tariffs available for Providers.<br />
* A Provider is also able to send calls, not just receive them. More info [[Configure Provider which can make calls | here]]. In case you want to sell services to a provider you have to create such a provider.<br />
<br><br><br />
== Settings ==<br />
<br />
=== General ===<br />
<br><br />
[[File:Prov addon.png]]<br />
<br><br><br />
* '''Name''' – a name for the provider, for informational purposes.<br />
* '''Technology''' – out of SIP/IAX2/ZAP/H323, choose which technology your provider uses - that is, the way you connect to the provider.<br />
* '''DTMF Mode''' – the available options are inband, info, RFC2833, and auto. Choose the one used by your provider.<br />
* '''Location''' – which Localization rules are set to apply to INCOMING calls COMING FROM this provider.<br />
* '''Automatic Number Identification''' - used in a special case explained here: [[Provider with ANI]]<br />
* '''Ringing Timeout''' – this setting lets you set for how long this provider should be dialed before giving up. The default value is 60 seconds, and the minimum value is 30 seconds.<br />
* '''Call Timeout''' – this setting lets you set the duration of the whole call: ringing and the period after connection. <br />
* '''Device ID''' – informational data. <br />
* '''Call limit''' – explained here: [[Simultaneous call limitation]].<br />
* '''Hidden?''' – [[Hide_provider|hide/unhide provider]]<br />
<!---This functionality is available from MOR 12---><br />
* '''Balance''' – provider balance. Provider balance increases when calls are made via that provider. Currently it is not available to decrease provider's balance. You can read more about [[Provider Billing Addon|Provider Billing Addon here]].<br />
<!---This functionality is available from MOR x4---><br />
* '''Balance limit''' – this is the limit of balance that can be reached by the provider. After he reaches the specified balance, calls aren't sent through this provider anymore. Balance limit value of zero means that balance is unlimited.<br />
* '''Responsible Accountant''' – dropdown to choose Provider's responsible accountant.<br />
<br><br><br />
<br />
=== Tariffs ===<br />
<br><br />
[[File:Mor_prov_tariffs.png]]<br />
* '''Default Tariff''' – the list of rates the provider charges you.<br />
* '''Use Tariffs by CLIs''' – disabled by default.<br />
<br><br><br />
<br />
=== Authentication ===<br />
<br />
==== For ZAP providers ====<br />
<br />
* '''Channel''' – which channel (or channel group) to use on a PRI/BRI/PSTN card. Channels and groups should be configured in zapata.conf.<br />
<br><br><br />
==== For SIP/IAX2 providers ====<br />
<br />
* '''Login''' – username if your provider asks for it.<br />
* '''Password''' – password used for authentication by your provider (characters '''@ : /''' are not allowed when Register option is enabled)<br />
* '''Authenticate by IP''' – just check the checkbox (Login/Password can be left empty).<br />
** Make sure you put the correct Hostname/[[IP address]]!<br />
* '''Register''' – should we register the provider? (option is not visible when '''Dynamic''' is selected in '''Network related''' section)<br />
* '''Register extension''' – if the provider asks to use an extension for registration (usually they don't), enter it here.<br />
<br><br><br />
<br />
=== Provider CallerID ===<br />
<br />
'''CallerID''' – consists of two parts: Name and Number. The "Number" part is transferred by default on all technologies (GSM, PSTN, SIP etc), but the "Name" part only on some. The number you see on your mobile phone when someone is calling you is the "Number" part.<br />
<br><br><br />
[[File:provider_callerid.png]]<br />
<br><br><br />
* '''Name''' – the "Name" part of CallerID. Works only on incoming calls.<br />
* '''Number''' – the "Number" part of CallerID. Works only on incoming calls.<br />
* '''Random Number from Number Pool''' – the "Number" part of CallerID selected from [[Number Pool]]<br />
#Random - Send random CallerID.<br />
#Pseudorandom with Deviation. Range can vary from 0 to 9999999. If 0 is chosen, then all numbers will be chosen same amount of times. If 9999999 is set, then numbers will be completely random.<br />
* '''Set PAI from CallerID''' – creates PAI header from CallerID and sends to Provider. Example:<br />
P-Asserted-Identity: <sip:CallerID@host>;user=phone<br />
* '''Set RPID from CallerID''' – creates RPID header from CallerID and sends to Provider. Example:<br />
RPID-Privacy: full<br />
Remote-Party-ID: <sip:CallerID@host:5060>;privacy=off;screen=yes<br />
<br><br><br />
<br />
=== Network related ===<br />
<br />
* '''Hostname''' – hostname of the provider.<br />
* '''Server IP''' – the provider's IP. The value can be "dynamic", which means that provider can change its IP. To discover this value, do ping to the provider's hostname. Use command "''dig +short''". Example ''dig +short google.com''.<br />
* '''Port''' – port used to connect to the provider (default: 5060 for SIP, 4569 for IAX2, 1720 for H323).<br />
<br><br><br />
====H323 specific network settings====<br />
<br />
* '''Fast Start''' – an option specific to H323; it is either on or off.<br />
* '''h245 Tunneling''' – an option specific to H323; it is either on or of<br />
<br><br><br />
====SIP specific network settings====<br />
<br />
* '''Media control''' – canreinvite/transfer. Do you want your server to stay in the media path between your clients and your provider? Disable if you have a lot of 1-second answered calls.<br />
* '''NAT''' – the available options are: yes, no, never, and route. For a detailed explanation of these settings, refer to [http://www.voip-info.org/wiki-Asterisk+sip+nat here].<br />
<br><br><br />
====IAX2 specific network settings====<br />
<br />
* '''IAX2 Trunking Mode''' – enable/disable trunking mode, which allows multiple voice streams to share a single "trunk" to another server, reducing overhead created by IP packets. More details [http://wiki.kolmisoft.com/index.php/Trunks here]<br />
<br><br><br />
====SIP and IAX2 specific network settings====<br />
<br />
* '''Qualify''' – how often to "ask" the provider about availability. More details [http://www.voip-info.org/wiki/view/Asterisk+sip+qualify here] for SIP providers and [http://www.voip-info.org/wiki/view/Asterisk+iax+qualify here] for IAX2 providers.<br />
<br><br><br />
<br />
=== Blacklist/Whitelist ===<br />
<br><br />
[[File:MOR_provider_blacklist_whitelist.png]]<br />
<br><br><br />
Enable static Source - enables a static Blacklist or a Whitelist for source (CallerID).<br />
* '''No''' - use neither a Blacklist nor a Whitelist.<br />
* '''Blacklist''' - set a [[Number Pool]] which is used to block a Provider from receiving specific Source Numbers. When a Source Number (RPID and PAI headers included) is found within a selected [[Number Pool]] this Provider is skipped with a Hangupcause Code ''272''.<br />
* '''Whitelist''' - set a [[Number Pool]] which is used to allow a Provider to receive only specific Source numbers. When a Source Number (RPID and PAI headers included) is NOT found within a selected [[Number Pool]] this Provider is skipped with a Hangupcause Code ''273''.<br />
<br><br><br />
Enable static Destination - enables a static Blacklist or a Whitelist for Destination.<br />
* '''No''' - use neither a Blacklist nor a Whitelist.<br />
* '''Blacklist''' - set a [[Number Pool]] which is used to block a Provider from sending to specific Destination. When a Destination Number is found within a selected [[Number Pool]] this Provider is skipped with a Hangupcause Code ''281''.<br />
* '''Whitelist''' - set a [[Number Pool]] which is used to allow a Provider to send only specific Destination. When a Destination Number is NOT found within a selected [[Number Pool]] this Provider is skipped with a Hangupcause Code ''282''.<br />
<br><br><br />
<br />
=== Servers ===<br />
Allows to select on which Asterisk servers this provider should be used.<br />
<br><br><br />
=== Codecs ===<br />
<br />
Choose the codecs your provider uses.<br />
<br />
NOTE: When no fields are checked, all codecs are available. ([[Image:asterisk_icon.png]] For example, settings in sip.conf or iax.conf are effective).<br />
<br />
* '''Enforce same codec as on Leg A''' - this option takes effect only when Device/Provider is used as Terminator. When this option is enabled, system checks what codec is used on Leg A. Then if Leg A codec matches one of codec enabled on Codecs list, system enforces callee to use that codec, by offering only that single codec in SDP data.<br />
<br><br><br />
=== Advanced ===<br />
<br />
* '''Grace time''' – if call duration is less than <i>Grace Time</i>, it will not be accounted.<br />
* Progressinband:<br />
**yes – when "RING" event is requested, always send 180 Ringing (if it hasn't been sent yet) followed by 183 Session Progress and in-band audio.<br />
**no – send 180 Ringing if 183 has not yet been sent, establishing an audio path. If the audio path is established already (with 183), then send in-band ringing (this is the way Asterisk historically behaved because of buggy phones like Polycom's).<br />
**never – whenever ringing occurs, send "180 ringing" as long as "200 OK" has not yet been sent. This is the default behavior of Asterisk.<br />
* '''Video support''' – does your provider support Video over IP? More info [http://www.voip-info.org/wiki/view/Asterisk+video here].<br />
* '''[[Duplicate call prevention | Allow duplicate calls]]''' – the default setting is "no".<br />
* '''Interpret NO ANSWER as FAILED''' – default option is no (This will change the provider in LCR like it is failed, in last calls you will see<br />
the real hangupcause – no answer)<br />
* '''Interpret BUSY as FAILED''' – default option is no (This will change the provider in LCR like it is failed, in last calls you will see<br />
the real hangupcause – busy)<br />
* '''Fake Ring''' – should system generate Fake Ring or not? Use only if your Device/Provider has bad protocol implementation and does not send the RING signal properly.<br />
* '''Common Use''' – Provider can be used by Resellers which are able to create their own Providers. The reseller will be billed using this Provider. If the provider is marked as common use and is used in one of reseller's LCR or is in Terminators list - admin is not allowed to delete this provider or remove common use option.<br />
* '''Anti-resale (Auto-answer)''' – when the option is set to YES, MOR answers the call before sending it to the provider in order to generate FAS. Work only when the provider is the originator of the call. This option does not affect billing.<br />
* '''Transport''' – lets you choose protocol <nowiki>[tcp, udp]</nowiki> for data transfer. Appears only if Provider is SIP and when Asterisk 1.8 is enabled. Default value: ''udp''. If TCP is used, it has to be [[How_to_enable_TCP_for_Asterisk |enabled in Asterisk]].<br />
* '''Time limit per day''' - Total time available for provider per day. When limit is reached, call fails with HGC "238 - Provider used its daily call time limit" and another provider in LCR is used (total time is calculated after rounding rules and minimal time adjustment, so if your provider tariff has increment higher than 1 or minimal time set, then total provider time may be different than actual call time). Only available with Provider Billing addon.<br />
* '''Time limit per month''' - Total time available for provider per month in minutes. You can also set day of limit reset (default is 1st day of the month). When limit is reached, call fails with HGC "285 - Provider used its monthly call time limit" and another provider in LCR is used (total time is calculated after rounding rules and minimal time adjustment, so if your provider tariff has increment higher than 1 or minimal time set, then total provider time may be different than actual call time). Only available with Provider Billing addon.<br />
* '''Limit up to X, during Y seconds''' – you can set a limit how many calls (X) can be done in some interval of seconds (Y). [[Last Calls]] will show '''FAILED([[Hangupcause Codes |243]])'''.<br />
* '''Execute AGI script''' - Execute custom AGI script. More info [http://wiki.kolmisoft.com/index.php/Provider_AGI_script here].<br />
<br><br><br />
<br />
=== SIP Specific ===<br />
<br />
* '''Fromuser''' – [http://www.voip-info.org/wiki/index.php?page=Asterisk+sip+fromuser more details]<br />
* '''Fromdomain''' – [http://www.voip-info.org/wiki/index.php?page=Asterisk+sip+fromuser more details]<br />
* '''Trustrpid''' – This defines whether or not Remote-Party-ID is trusted. It's defined in http://tools.ietf.org/id/draft-ietf-sip-privacy-04.txt<br />
* '''Sendrpid''' – defines whether a Remote-Party-ID SIP header should be sent. It defaults to "No". This field is often used by wholesale VoIP providers to provide calling party identity regardless of the privacy settings (the From SIP header). <br />
* '''Insecure''' – [http://www.voip-info.org/wiki/index.php?page=Asterisk+sip+insecure more details]<br />
* '''T.38 Support''' – should we support T.38 pass-through?<br />
* '''SIP Session Timers''' - SIP Session Timers provide an end-to-end keep-alive mechanism for active SIP sessions (more info [http://doxygen.asterisk.org/trunk/sip_session_timers.html here]). Possible values are "accept", "originate", "refuse":<br />
** '''originate''' - request and run session-timers always.<br />
** '''accept''' - run session-timers only when requested by other UA.<br />
** '''refuse''' - do not run session timers in any case.<br />
* '''SIP Session Refresher''' - The session refresher (uac|uas). Defaults to 'uas'.<br />
** '''uac''' - default to the caller initially refreshing when possible.<br />
** '''uas''' - default to the callee initially refreshing when possible.<br />
* '''SIP Session Expires''' - maximum session refresh interval in seconds. Defaults to 1800 secs. <br />
* '''SIP Min Session''' - minimum session refresh interval in seconds. Defaults to 90 secs.<br />
* '''[[SIP 302 Reinvite Support]]''' – turns this SIP feature on or off. <br />
* '''P-Asserted-Identity usage''' – The P-Asserted-Identity header field can be used to convey the proven identity of the originator of a request within a trusted network. If pass_pai =0 in [http://wiki.kolmisoft.com/index.php/Mor.conf Mor.conf] and PAI usage in provider settings =1, then core will add PAI header.<br />
* '''Periodic check''' - if enabled, periodic SIP OPTIONS requests will be sent to Provider to check if it is reachable. If Periodic Check is enabled and Provider does not respond to OPTIONS request then Provider will be marked as unreachable and will be skipped when making Calls. Once Provider starts to respond to OPTIONS request it will be marked as reachable and Calls will be routed through this Provider. Providers are checked every 5 minutes. Options packets are sent from IP address defined in /etc/asterisk/sip.conf<br />
* '''[http://wiki.kolmisoft.com/index.php/Mobile_Number_Portability_Addon#MNP_tags_in_SIP_INVITE Enable MNP tags]''' - adds MNP tags in SIP INVITE requests (if MNP is configured).<br />
* '''Localize PAI''' - applies [[Provider_Rules#CallerID_Rules|Provider rules Source]] on PAI header for calls that are terminated by this Provider.<br />
* '''Pass PAI''' - available options are 'Global', 'Yes', 'No'. Global (default value) means use value from pass_pai in [[mor.conf]] file. More information available in table [[P-Asserted-Identity#How_P-Asserted-Identity_.28PAI.29_is_handled_in_MOR_X11_and_later_versions|here]].<br />
* '''Usereqphone''' - Yes or No. The default setting is "No". Option adds ;user=phone in From, To, Invite and PAI headers.<br />
* '''Custom SIP Header''' - adds custom header to SIP request. Format is '''header: value''' (for example '''x-My-Custom-Header: my value''')<br />
* '''Custom Destination Header''' - allows to read Destination number from specific SIP header (for example x-DID: 123) instead of SIP URI.<br />
* '''Privacy CallerID''' - allows to change CallerID (From: <sip:'''xxxxxx'''@yyyyyyy>) when originator sends '''Privacy: id''' or '''Privacy: header'''. If originator does not send '''Privacy: id''' or '''Privacy: header''' or '''Privacy CallerID''' is empty, then SIP From header will not be modified. This option would only work on outbound calls terminated by this Provider.<br />
* '''Privacy From Domain''' - allows to change Domain (From: <sip:xxxxxx@'''yyyyyyy'''>) when originator sends '''Privacy: id''' or '''Privacy: header'''. If originator does not send '''Privacy: id''' or '''Privacy: header''' or '''Privacy From Domain''' is empty, then SIP From header will not be modified.<br />
* '''Playback before dial''' - allows to play selected sound file to originator before dialing to Provider. Select 'none' to disable this feature.<br />
* '''Playback before dial mode''' - controls how '''Playback before dial''' handles media.<br />
** '''Early media''' - uses '''183 Session Progress''' to send audio to originator. This is preferred way of sending media to originator since it does not require legA call to be answered. One drawback is that not all providers resend SIP 183 early media correctly. In those cases originator will hear silence.<br />
** '''Answer and play''' - if this mode is selected, then '''MOR will answer legA''' and play media to originator. This way originator should always hear media but there are various drawbacks since legA is already answered. One of drawbacks is that MOR will generate false answer if Provider rejects call. Use this mode only if you know what you are doing.<br />
<br><br><br />
<br />
== VIDEO: How to create Provider ==<br />
<br />
<html><br />
<iframe width="640" height="360" src="https://www.youtube.com/embed/S7DHLOOMBUs" frameborder="0"></iframe> <br />
</html><br />
<br />
<br />
<br><br><br />
<br />
=See also=<br />
<br />
* [[H323 Provider settings]]<br />
* [[Quick Providers changes]]<br />
* [[Providers Statistics]]<br />
* [[NO ANSWER/BUSY interpretation for providers]]<br />
* [[I have a problem with Provider]]<br />
<br><br></div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=File:Recordings_addon_settings.png&diff=28947File:Recordings addon settings.png2023-05-29T08:44:33Z<p>Nerijuss: Nerijuss uploaded a new version of File:Recordings addon settings.png</p>
<hr />
<div></div>Nerijusshttps://wiki.kolmisoft.com/index.php?title=M4_Managers&diff=28946M4 Managers2023-05-29T08:04:48Z<p>Nerijuss: /* Manager Groups */</p>
<hr />
<div>=Description=<br />
Managers are a type of users who are controlled by permissions assigned to them. There can be several different Managers with different sets of permissions. For example, one manager can access Users, but not the Devices and another can manage Devices, but cannot access Users.<br />
<br />
<br><br><br />
=Usage=<br />
Go to '''MAINTENANCE –> Managers''' to access the list of Managers: <br />
<br><br><br />
[[File:Managers list.png]]<br />
<br><br><br />
On this page, you can go permissions page and edit them (Manager Group column), log in as a Manager, check the log of Manager's activity, and edit or delete him. You can also access create form by clicking on '''Add new Manager'''.<br />
<br />
<br><br><br />
=Manager Create/Edit=<br />
You can access this page from the Managers List by clicking on '''Add New Manager''' button to create a new Manager or by clicking '''Edit''' on an already existing Manager to edit his data.<br><br />
In order to create a new Manager, at least one Manager Group must exist.<br />
<br><br><br />
[[File:Managers_edit_new.png|1000px]]<br />
<br><br><br />
You must specify your Name, Username, and Password upon creating a new Manager.<br><br />
When editing a Manager you can leave the Password input blank, this way Manager's Password will not be changed.<br><br />
If you check to Show only assigned Users, the manager will see only data of assigned Users (Responsible Manager can be assigned in the User Edit window).<br />
<br />
<br><br><br />
=Manager Groups=<br />
Go to '''MAINTENANCE –> Managers -> Groups''' to access the list of Manager Groups: <br />
<br><br><br />
[[File:Manager_groups.png]]<br />
<br><br><br />
To change permissions you have to click on '''EDIT/PERMISSIONS''' and reach a window like this: <br />
<br><br><br />
[[File:Manager_permissions.png]]<br />
<br />
If you check to Show only assigned Users, the manager will see only data of assigned Users (Responsible Manager can be assigned in the User Edit window).<br />
<br />
"ACCOUNTING > Services" are only visible if DIDs functionality is enabled.</div>Nerijuss