Billing: Difference between revisions

From VoIPmonitor.org
No edit summary
(Review: přidán hlavní nadpis, kategorie, opraveno formátování seznamů (bold), opravena hierarchie nadpisů, opraveny odkazy, opravena syntaktická chyba (.Settings), vylepšen AI Summary)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Billing feature overview =  
= Billing =
[[Category:GUI manual]]


* two price types in CDR - customer and operator price (to see differences between various operators)
== Overview ==
* multiple billing tables - for each of your operator and for each customer
* billing watchdog rule quota - per hour / day / week / month aggregated per src IP or per tel. number
* billing watchdog rule expensive destination


= Settings -> Billing configuration =
* Two price types in CDR: Customer and operator (for comparing operators).
* Multiple billing tables: For each operator and customer.
* Billing watchdog rules: Quotas per hour/day/week/month aggregated by src IP or tel. number.
* Billing watchdog rules: For expensive destinations.


In this section you can see sections "billing type / rules, state holidays, operator assignment, customer assignment, exclude, aggregation, currency and settings.
== Settings > Billing Configuration ==


== billing type / rules ==
Sections: Billing type/rules, state holidays, operator assignment, customer assignment, exclude, aggregation, currency, settings.


Here you need to create at least one billing table which will be used to bill customer and operator price. If you do not need to have customer price but only operator price, just create one billing table for each operator (if you have different pricing for each operator) and do not check "Default customer billing" checkbox. You will then assign the billing table in section "operator assignment"
=== Billing Type / Rules ===


* Name: name of the billing table
Create at least one billing table for customer/operator prices. For operator-only, create per operator and assign in "operator assignment" without "Default customer billing".
* State holidays: choose holidays table which will be used if peak is enabled
* Default price: is price per minute (offpeak if peak/offpeak enabled)
* Enable peak / offpeak: enable billing based on peak / offpeak
* Default price peak: is price per minute for peak period (and offpeak if peak/offpeak enabled)
* Default T1: number of seconds for the first impulse.
* Default T2: lenght of period. For example call was 30 seconds length and T1 is 10 and T2 is 6 the number of seconds to bill will be 10 + 4*6 = 34 seconds.
* Default customer billing: if checked all customer prices who are not assigned in "customer assignment" will be billed based on this billing table


After creating billing table you need to add billing rules: (you can export / import them via CSV)  
* '''Name:''' Billing table name.
* '''State holidays:''' Assign holidays table for peak/offpeak.
* '''Default price:''' Per-minute (offpeak if peak/offpeak enabled).
* '''Enable peak/offpeak:''' For time-based billing.
* '''Default price peak:''' Peak per-minute.
* '''Default T1:''' First impulse seconds.
* '''Default T2:''' Period length (e.g., 30s call, T1=10, T2=6: Bill 10 + 4*6 = 34s).
* '''Default customer billing:''' When enabled, applies the customer price (C:) from this table to all source IPs, even if not assigned to a specific customer. This is useful for reporting purposes when you want to ensure all calls show customer pricing, while operator prices (O:) are still determined by operator assignment rules based on destination IP.


* name: of the billing rule
Add billing rules (CSV export/import):
* prefix number: rule will match based on the same prefix 
* fixed number:  rule will match based on the same exact number
* price: price for the destination (offpeak if peak/offpeak enabled)
* price peak: price for the destination in peak period (if peak/offpeak enabled)
* override default peak offpeak: change the default peak/offpeak
* t1: set custom T1 timer
* t2: set custom T2 timer


== state holidays ==
* '''Name:''' Rule name.
* '''Prefix number:''' Match prefix.
* '''Fixed number:''' Match exact.
* '''Price:''' Destination (offpeak if enabled).
* '''Price peak:''' Peak destination.
* '''Override default peak/offpeak:''' Custom times.
* '''T1:''' Custom first impulse.
* '''T2:''' Custom period.


Table of state holidays which you can assign in billing table. Those days will be treated as offpeak. You need to define this only in case your billing are based on peak/offpeak.
==== Number Matching Type ====


== operator assignment ==
When creating prefix rules, choose how VoIPmonitor matches international prefixes:


To be able to bill CDR based on to what operator call is going through you need to create rule for each of operator and select billing table. If you create and assign the table customer price will be not calculated if call is coming from operator. This way the system knows that it should bill only outgoing calls. If you would like to have customer and operator price in CDR you need to create at least two billing tables and the customer one set as "default customer billing" and assign the operator billing table in this section to the operator IPs.  
* '''Original:''' Requires separate rules for each prefix format. For example, if users dial both <code>00420</code> and <code>+420</code>, you need two rules: one for <code>00420</code> and another for <code>+420</code>.


You can override default international prefix settings for each operator (for details see [[#settings]]
* '''Normalized:''' International prefixes are stripped before matching. A single rule for <code>420</code> will match calls to <code>00420</code>, <code>+420</code>, and just <code>420</code>. This is recommended for simpler configuration when international prefixes vary.


== customer assignment ==
The matching behavior is controlled by the "International prefixes" setting in the global Settings section (default: <code>00</code> and <code>+</code>).


If you need to bill some customers differently so the default customer billing table is not enough you can create rules to apply different billing tables to customers based on their source IP or source Tel. numbers. (prefixes or fixed numbers)
=== State Holidays ===


You can override default international prefix settings for each operator (for details see [[#settings]]
Holidays table for offpeak treatment. Define only for peak/offpeak billing.


== exclude ==
=== Operator Assignment ===


If you do not want to bill CDR for some IP or numbers you can set rules for them here. Rules allows to choose for what source or destination IP should be excluded as well as for source or destination tel. prefixes / numbers.  
Rules per operator with billing table. Excludes customer price for operator calls (bills outgoing only). For both prices: One default customer table, assign operator tables here.


== aggregation ==
Override international prefixes per operator (see [[#Settings|Settings]]).


Aggregation feature summarize called sum based on ip source or tel. number source for hours days weeks months. This aggregation is used in fraud/alerts in billing over quota rules.
=== Customer Assignment ===


=== settings ===
Apply different tables to customers by src IP or tel. numbers/prefixes if default insufficient.


* enable by addresses: aggregates per source IP address
Override international prefixes per customer (see [[#Settings|Settings]]).
* enable by numbers: aggregates per tel. number
* week start
* hours / days / weeks / months / years: set how long should be various date ranges kept in the database.  


=== exclude addresses ===
=== Exclude ===
* which IP addresses (src or dst) should be excluded from aggregation. This is usefull to not aggregate operator source IP or your SIP proxy source IP so the aggregation data will have only customers data.


=== exclude numbers ===
Rules to exclude billing by src/dst IP or tel. prefixes/numbers.
* which numbers (src or dst) should be excluded from aggregation. It is always good to set addresses first like your operator sip source ip addresses so your database will be not filled with data you do not want to use.  


== currency ==
=== Aggregation ===


You do not need to create currency if you have only one. If you will have more currencies the GUI will recalculate it to the base currency which is set as "Main currency". It uses google services to get current exchange rate. The recalculation is not stored into the database. In database is always the original price thus recalculation is used only when viewing data.  
Summarizes costs by src IP/tel. number for hour/day/week/month/year. Used in fraud/alerts for quota rules.


* Code: USD for example
==== Settings ====
* Custom code: symbol "$" for example 
* Name: name of the currency
* Country: Select the country
* Main currency: if selected all currencies in CDR view and charts etc. are recalculated to this currency
* Description


== settings ==
* '''Enable by addresses:''' Per src IP.
* '''Enable by numbers:''' Per tel. number.
* '''Week start.'''
* '''Hours/days/weeks/months/years:''' Retention periods.


* international prefixes: list of all prefixes used to distinguish between local and international numbers. Default is 00, +
==== Exclude Addresses ====
* min. international length: if number does not match to international prefixes (for example lets say you are calling to Czech with normalized prefix 420123123123) and numbers of digits are greater then this value the number is treated as international. If you do not set this value it is not used at all.
* local number are in: if number is detected as local number (does not contains international prefix and is less then min. international length) it will be prefixed with international prefix according to what you choose. This is in case the a destination number is without + or 00 and without local international prefix


Exclude src/dst IPs (e.g., operators/SIP proxies) for customer-only data.


= Watchdog =  
==== Exclude Numbers ====


In alerts / anti fraud there is two billing watchdog rules. You have to enable aggregation in billing settings.  
Exclude src/dst numbers. Prioritize addresses to avoid unnecessary data.


=== Currency ===


== Billing over quota ==
Optional for single currency. Multiple: Recalculates to main via Google rates (view-only, not stored).


Billing over quota is checking total billed sum per source IP or souce Tel. number or grouped source IPs / numbers for hour / day / week and month aggregation periods. The purpose of this rule is possibility to be alerted globally or individually if there is any account which has billed sum higher then set threshold during the last hour day etc.  
* '''Code:''' e.g., USD.
* Enabled: enable/disable rle* Every N minutes: how often to check the rule* Enable hyperlinks: create hyperlink in email alert to quickly go to the rule * hour / day / week / month: set maximum amount of calling costs to trigger the alert. * summary: if enabled all included caller numbers / ip addresses are summarized and then evaluated instead of taking each IP/tel.num separatly. This is for case where you want to group all customers numbers or ip addresses. * Include / Exclude IP addresses / numbers: allow to filter only calls you want to get the alert. If you do not specify any include/exclude rules the rule will trigger for every IP / tel. number individually.
* '''Custom code:''' Symbol, e.g., "$".
== Billing high rate ==
* '''Name:''' Currency name.
* '''Country:''' Select.
* '''Main currency:''' Recalculate all to this.
* '''Description.'''


=== Settings ===


The second watchdog rule is to trigger alert if calling to destination with higher cost per minute then set threshold. For example you want to know if someone is calling to destination 0.5USD / minute.  
* '''International prefixes:''' Distinguish local/international (default: 00, +).
* Enabled: enable/disable rle* Every N minutes: how often to check the rule* Enable hyperlinks: create hyperlink in email alert to quickly go to the rule * Limit: set the cost / minute which will trigger this alert* Include / Exclude IP addresses / numbers: allow to filter only calls you want to get the alert. If you do not specify any include/exclude rules the rule will trigger for every IP / tel. number individually.
* '''Min. international length:''' Treat longer numbers as international if no prefix.
* '''Local numbers are in:''' Prefix local numbers with international code for selected country.


== Watchdog ==


In Alerts/Anti Fraud: Two rules requiring aggregation enabled.


=== Billing Over Quota ===


Checks billed sums per src IP/tel. number or groups for periods. Alerts on thresholds.


* '''Enabled:''' On/off.
* '''Every N minutes:''' Check frequency.
* '''Enable hyperlinks:''' Links in emails.
* '''Hour/day/week/month:''' Max costs.
* '''Summary:''' Aggregate included callers/IPs.
* '''Include/Exclude IP/numbers:''' Filter calls. None: Per individual IP/number.


=== Billing High Rate ===


Alerts on destinations > cost/minute threshold.


* '''Enabled:''' On/off.
* '''Every N minutes:''' Check frequency.
* '''Enable hyperlinks:''' Links in emails.
* '''Limit:''' Cost/minute threshold.
* '''Include/Exclude IP/numbers:''' Filter calls. None: Per individual IP/number.


== Viewing Costs in Reports and CDR View ==


After configuring billing, you may want to verify that costs are being calculated and then include them in reports.


=== Verifying Costs in CDR View ===


To verify that billing is working correctly, check if costs appear in your CDR records:


# Navigate to the '''CDR''' view in the GUI
# Click the dropdown menu on the first column (column selection icon)
# Select '''PRICE''' from the list of available columns
# The PRICE column will now show Customer (C:) and Operator (O:) prices for each call


If prices show as zero or empty, check:
* The billing system is enabled (Settings > Billing Configuration > Settings > "Enable by addresses" or "Enable by numbers")
* The source or destination IP is assigned to a billing table
* The called number matches a prefix or rule in the billing table
* The "Default customer billing" checkbox is enabled if you want customer prices applied to all calls


=== Including Costs in Daily Reports ===


To generate reports with call costs:


# Navigate to '''GUI > Reports > Configure Daily Reports'''
# Select '''CDR summary''' as the report type
# Enable the '''Price columns''' option
# Configure the date range and any filters (e.g., specific trunks, IP addresses)
# Save the report configuration


The report will include cost information based on your billing configuration. See [[Reports|Reports]] for more details on report types.


== AI Summary for RAG ==


'''Summary:''' This article documents VoIPmonitor's billing features for tracking call costs. Features include: two price types (Customer and Operator), multiple billing tables per operator/customer, watchdog rules for quotas and expensive destinations. Configuration covers billing rules with peak/offpeak rates, state holidays, operator/customer assignment, exclusions, cost aggregation, and multi-currency support. Number matching can be "original" (exact prefix match) or "normalized" (strips international prefixes). Costs are viewable in CDR PRICE column and can be included in daily reports.


'''Keywords:''' billing, customer price, operator price, billing tables, peak, offpeak, currency, watchdog, quota, high rate, PRICE column, daily reports, CDR summary, default customer billing, prefix number, normalized, original, international prefixes, number matching, T1, T2, impulse, aggregation


 
'''Key Questions:'''
 
* What are the key billing features in VoIPmonitor?
 
* How to create and configure billing tables and rules?
 
* What is the state holidays table used for in billing?
 
* How to exclude calls from billing?
 
* How to handle multiple currencies in VoIPmonitor?
 
* What are international prefix settings?
 
* How do billing watchdog rules function?
 
* How to view costs in the CDR view?
 
* How to include costs in daily reports?
 
* What does Default customer billing do?
 
* What is the difference between normalized and original number matching for billing prefixes?
 
* How do I configure billing rates based on specific call number prefixes?
 
* What are T1 and T2 billing parameters?
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.

Latest revision as of 18:00, 6 January 2026

Billing

Overview

  • Two price types in CDR: Customer and operator (for comparing operators).
  • Multiple billing tables: For each operator and customer.
  • Billing watchdog rules: Quotas per hour/day/week/month aggregated by src IP or tel. number.
  • Billing watchdog rules: For expensive destinations.

Settings > Billing Configuration

Sections: Billing type/rules, state holidays, operator assignment, customer assignment, exclude, aggregation, currency, settings.

Billing Type / Rules

Create at least one billing table for customer/operator prices. For operator-only, create per operator and assign in "operator assignment" without "Default customer billing".

  • Name: Billing table name.
  • State holidays: Assign holidays table for peak/offpeak.
  • Default price: Per-minute (offpeak if peak/offpeak enabled).
  • Enable peak/offpeak: For time-based billing.
  • Default price peak: Peak per-minute.
  • Default T1: First impulse seconds.
  • Default T2: Period length (e.g., 30s call, T1=10, T2=6: Bill 10 + 4*6 = 34s).
  • Default customer billing: When enabled, applies the customer price (C:) from this table to all source IPs, even if not assigned to a specific customer. This is useful for reporting purposes when you want to ensure all calls show customer pricing, while operator prices (O:) are still determined by operator assignment rules based on destination IP.

Add billing rules (CSV export/import):

  • Name: Rule name.
  • Prefix number: Match prefix.
  • Fixed number: Match exact.
  • Price: Destination (offpeak if enabled).
  • Price peak: Peak destination.
  • Override default peak/offpeak: Custom times.
  • T1: Custom first impulse.
  • T2: Custom period.

Number Matching Type

When creating prefix rules, choose how VoIPmonitor matches international prefixes:

  • Original: Requires separate rules for each prefix format. For example, if users dial both 00420 and +420, you need two rules: one for 00420 and another for +420.
  • Normalized: International prefixes are stripped before matching. A single rule for 420 will match calls to 00420, +420, and just 420. This is recommended for simpler configuration when international prefixes vary.

The matching behavior is controlled by the "International prefixes" setting in the global Settings section (default: 00 and +).

State Holidays

Holidays table for offpeak treatment. Define only for peak/offpeak billing.

Operator Assignment

Rules per operator with billing table. Excludes customer price for operator calls (bills outgoing only). For both prices: One default customer table, assign operator tables here.

Override international prefixes per operator (see Settings).

Customer Assignment

Apply different tables to customers by src IP or tel. numbers/prefixes if default insufficient.

Override international prefixes per customer (see Settings).

Exclude

Rules to exclude billing by src/dst IP or tel. prefixes/numbers.

Aggregation

Summarizes costs by src IP/tel. number for hour/day/week/month/year. Used in fraud/alerts for quota rules.

Settings

  • Enable by addresses: Per src IP.
  • Enable by numbers: Per tel. number.
  • Week start.
  • Hours/days/weeks/months/years: Retention periods.

Exclude Addresses

Exclude src/dst IPs (e.g., operators/SIP proxies) for customer-only data.

Exclude Numbers

Exclude src/dst numbers. Prioritize addresses to avoid unnecessary data.

Currency

Optional for single currency. Multiple: Recalculates to main via Google rates (view-only, not stored).

  • Code: e.g., USD.
  • Custom code: Symbol, e.g., "$".
  • Name: Currency name.
  • Country: Select.
  • Main currency: Recalculate all to this.
  • Description.

Settings

  • International prefixes: Distinguish local/international (default: 00, +).
  • Min. international length: Treat longer numbers as international if no prefix.
  • Local numbers are in: Prefix local numbers with international code for selected country.

Watchdog

In Alerts/Anti Fraud: Two rules requiring aggregation enabled.

Billing Over Quota

Checks billed sums per src IP/tel. number or groups for periods. Alerts on thresholds.

  • Enabled: On/off.
  • Every N minutes: Check frequency.
  • Enable hyperlinks: Links in emails.
  • Hour/day/week/month: Max costs.
  • Summary: Aggregate included callers/IPs.
  • Include/Exclude IP/numbers: Filter calls. None: Per individual IP/number.

Billing High Rate

Alerts on destinations > cost/minute threshold.

  • Enabled: On/off.
  • Every N minutes: Check frequency.
  • Enable hyperlinks: Links in emails.
  • Limit: Cost/minute threshold.
  • Include/Exclude IP/numbers: Filter calls. None: Per individual IP/number.

Viewing Costs in Reports and CDR View

After configuring billing, you may want to verify that costs are being calculated and then include them in reports.

Verifying Costs in CDR View

To verify that billing is working correctly, check if costs appear in your CDR records:

  1. Navigate to the CDR view in the GUI
  2. Click the dropdown menu on the first column (column selection icon)
  3. Select PRICE from the list of available columns
  4. The PRICE column will now show Customer (C:) and Operator (O:) prices for each call

If prices show as zero or empty, check:

  • The billing system is enabled (Settings > Billing Configuration > Settings > "Enable by addresses" or "Enable by numbers")
  • The source or destination IP is assigned to a billing table
  • The called number matches a prefix or rule in the billing table
  • The "Default customer billing" checkbox is enabled if you want customer prices applied to all calls

Including Costs in Daily Reports

To generate reports with call costs:

  1. Navigate to GUI > Reports > Configure Daily Reports
  2. Select CDR summary as the report type
  3. Enable the Price columns option
  4. Configure the date range and any filters (e.g., specific trunks, IP addresses)
  5. Save the report configuration

The report will include cost information based on your billing configuration. See Reports for more details on report types.

AI Summary for RAG

Summary: This article documents VoIPmonitor's billing features for tracking call costs. Features include: two price types (Customer and Operator), multiple billing tables per operator/customer, watchdog rules for quotas and expensive destinations. Configuration covers billing rules with peak/offpeak rates, state holidays, operator/customer assignment, exclusions, cost aggregation, and multi-currency support. Number matching can be "original" (exact prefix match) or "normalized" (strips international prefixes). Costs are viewable in CDR PRICE column and can be included in daily reports.

Keywords: billing, customer price, operator price, billing tables, peak, offpeak, currency, watchdog, quota, high rate, PRICE column, daily reports, CDR summary, default customer billing, prefix number, normalized, original, international prefixes, number matching, T1, T2, impulse, aggregation

Key Questions:

  • What are the key billing features in VoIPmonitor?
  • How to create and configure billing tables and rules?
  • What is the state holidays table used for in billing?
  • How to exclude calls from billing?
  • How to handle multiple currencies in VoIPmonitor?
  • What are international prefix settings?
  • How do billing watchdog rules function?
  • How to view costs in the CDR view?
  • How to include costs in daily reports?
  • What does Default customer billing do?
  • What is the difference between normalized and original number matching for billing prefixes?
  • How do I configure billing rates based on specific call number prefixes?
  • What are T1 and T2 billing parameters?