the proc now locks contract_id=1 to synchronize when
creating new contracts. (LOCK TABLE is n/a in procs)
note this would be also needed for update operations.
for the lock to work, it requires a proper isolation level.
Change-Id: Ie553532d2879905858a02d0bff22b94d74b44850
A typo in 15400_not_replicated.up script cause the initial select
to return a NULL id, introducing some wrong lines in voip_preferences_enum
table.
The new up script delete the previously introduced wrong lines and
insert the correct ones.
Change-Id: I4e321978e932f866eeaec2b57cdc3deb3a3a0f35
+ add "match_mode" column
+ refactor indexes, triggers, copy proc
+ get_billing_fee_id proc implementing the 4 match modes:
- regex_longest_pattern
- regex_longest_match
- prefix
- exact_destination
+ get_billing_fee proc returning intervals/rates as a
packed string for matching call-out fees and on/offpeak
for the given time. to be used in kamailio/AoC
Change-Id: I7799c5a1ab33bb433c231bd4049c977bcb19b684
* when peer group is changed for a peer rule
it is now correctly reflected in
kamailio.lcr_rule and kamailio.lcr_rule_target
Change-Id: I0a449a224874bd098a3d3c973958f812dbf78530
Allows to identify firmwares by a given tag, if the firmware consists
of multiple files and the phone fetches them by hardcoded names.
Change-Id: I5325895da642d306c92ab1e03264ba128cc295a6
to optimize the heavyweight fraud events query (and similar
places), the billing.billing_mappings is refactored into 2
new tables that will hold a scan-line rendered representation
of the former billing_mapping records known with their
(nullable) start and (nullable) stop cols.
accessing this new tables (eg. insert a billing mapping to
switch a contract's billing_profile, or query for the
contracts current billing profile) is not supposed to be
done explicitly, but by the stored sql proc provided:
- "billing.create_contract_billing_profile_network_from_package":
set/add a bunch of profiles from a profile package at once.
- "billing.get_billing_profile_by_*":
get a contract's billing profile id at the given epoch.
+ by_contract_id: customer or system contract id
+ by_uuid: subscriber uuid
+ by_peer_host_id: peer server id
- "billing.get_billing_profile_by_*_network":
get a contract's billing profile id for the given IPv4 or IPv6
string at the given epoch.
+ by_contract_id: customer or system contract id
+ by_uuid: subscriber uuid
+ by_peer_host_id: peer server id
The enhanced fraud queries can finally make use of a view that
can be used to get the current billing profile id:
- "billing.v_actual_billing_profiles":
View showing all contracts' billing_profile_id at the
current time. In contrast to the procs, the view can
be used nicely in joins of stmts.
15418.up also cover copying+transforming the existing records
in billing.billing_mappings. the old table and records are left
for now but are subject to be dropped soon. if new contracts
were created during the upgrade (although discouraged), the
transformation of not yet transformed contracts can be done by
simply re-executing
call billing.transform_billing_mappings();
Change-Id: Ib5ddd620b2b08ed7db4b6448a44931d37ea5b06a
* type field is now varchar(255) to allow custom
dictionary data to be entered
* add new dictionary values:
(header related dvalues are prefixed with 'header='
to avoid possible collisions as such fields will be
dynamic)
- furnished_charging_info
- header=Divesion
- header=P-Asserted-Identity
Change-Id: I907ad7d074e8ecbdcbfb57ba06dcab3645d60cf6
* new 'smsc_peer' domain preference, synced up automatically
by the sync-db ngcpcfg helper
* sms_journal is extended with sms_peer field
Change-Id: Ida8c7d4f4ef78002bdd822cc6f5967920500b948
This is needed because we now also look at the `with` part
to also retrieve inbound messages to a user.
Change-Id: I8602ec4e3e8b94dcbdd3548dd3ad4ac73d399c0d
To be used to divert call to a given number if the outbound
call is blocked due to block lists or NCOS.
Change-Id: Id3acdfe38ef0a4ab211b96678cdf93fad12f85c7
If activated, the preference will force the system to resolve the
hostname to find the proper destination IP.
Change-Id: I05da4e2ed3e048a1fc7f85558dc0becc3246bb10
+ add default pref values only if not existing yet
+ do not add "0" default values for fromer int prefs
such as "lock"
Change-Id: Ia726fd66f4e3261e6f450877612ece371d744408
* ngcp.tzinfo_version is meant to store
the tzdata package version used in
the 'mysql_tzinfo_to_sql' data synchronisation.
Change-Id: I389ee0d189aff40ab94f55e04025a2e44e7027c8
New options:
* diversion: If received Diversion header
* historyinfo: If received History-Info header
Change-Id: Id6de1b2b3d6673f1f7becb377692e98511723f22
* created a stored procedure that moves the firmwwares data
into a new table as chunked blocks, that resolves the
innodb_log_file_size and max_allowe_packet limitations
enabling any size of data
Change-Id: I52ffcc5e0dad4ce35e70cdb13192de1eb54b909c
* as the new introduced ngcp.timezone table is not replicated
in my.cnf by default it must be as not_replicated and
only become available when both nodes contain the same
updated my.cnf tempalte and MariaDB is also restarted on
both of them
* fill in ngcp.timezone with a default record
Change-Id: I34c080a6fa62d951fa01218f9049ef3e1d6668f0
* this change brings back the accounting.cdr tables
to use composite primary keys, that is compatible with
partitioning
Change-Id: I52dc5e665db1a9b9964b52690a7f0792310e1b1b
* ngcp.timezone is used in the
v_subscriber_timezone
v_contract_timezone
v_reseller_timezone views as the fallback one
Change-Id: I52b7b413c7af3d54577665517197a13ca7a95b7d
The previous fix was backported to mr4.5 and mr3.8 LTS while mr5.[0-3] was untouched.
It resulted to the fact that systems upgraded via release where grants.yml has user 'export'
will have it restored. Also we need to care about Carrier's 3308 here so we have to use _not_replicated.
The current fix will be included into mr5.5.1+ only,
so it is safe to use "IF EXISTS" as in upgrade
mr4.5->mr5.5 it will be executed in new MariaDB 10.1
Change-Id: I5f1612393aea2676f96d6824a9ab641d29bb8407
+ anticipate warnings in .down, if string values
other than "fixed" or "mobile" are present
+ .down scripts now dropped, no rollbacks supported.
Change-Id: I82f4b6d814892586613da3e670e8e50b50ae54b3
* kamailio.acc_backup and kamailio.acc_trash are not replicated
and therefore, changes to those tables must be done separately
for sp1 and sp2
Change-Id: I633838d2bbf6f346de0a9e97dcfd9234060e334e
* remove primary key and create (id,start_time) index
for the following accounting tables:
- cdr
- cdr_cash_balance_data
- cdr_time_balance_data
- cdr_relation_data
- cdr_tag_data
Change-Id: I399e9504496bdfd4600466d8fb67abccb3a0c40f
* backward compatibility to support existing 0 values
of the 'lock' preference in voip_usr_preferences
Change-Id: I7c497e14695891d3b7a4ee018cf5429f79a0a485
- required to support acc-cleanup's "backup" and "archive"
modes. for "cleanup" mode, they are not needed considering
the original plan with cdr delete triggers.
- delete triggers for accounting.cdr slow down the cleanup,
so we take them out. separate cleanup jobs should be registered.
this way, the performance of 3.x cleanup must be axactly restored.
- same for events; also there was no index for the
events.timestamp column yet
Change-Id: Ia117e237533814b5175eb2b1fab8fdc153878f83
* add t38 preference to enable/disable t38 support per subscriber
* add ecm preference to enable/disable ecm support per subscriber
Change-Id: I3ae69fa49c952732c012c5fd385104e5ebdc92fa
* Add probe column to provisioning.voip_peer_hosts
* Add trigger to populate kamailio.dispatcher on active probing
* Fix kamailio.version table to version 4 of dispatcher table to
use the attrs column.
* Write peerid (used for routing) and also peername and peergid
(used for monitoring) into dispatcher attrs
* Only enable probing if peer is enabled
Change-Id: I29bc23ec27bf59672656fc972171a518aecce133
by adding the subscriber_id. This is still fine, to reference them
uniquely per subscriber but allows e.g. for the same name in different
subscriber like the automatically created sets like "quickset_cfu".
Change-Id: If72354639f501e8925680a664ef61951940b8ece
Storing salt and bcrypt hash per admin in this column.
Also clear existing ssl certs for security reasons. If someone
lost his key, it needs to be deleted and re-generated.
Change-Id: I0db91865f1ee248037bb0eaa31a97937c71d0ad6
since it can be written using a separate db connection,
pointing to a database that is not fully replicated,
foreign keys will cause failing inserts, updates etc.
Change-Id: I65108abdce1f5ad86b982adaf4d0d762fd0a634d
+ events_relations: store associated id's (int):
-subscriber_profile_id
-pilot_subscriber_profile_id
-primary_number_id
-pilot_subscriber_primary_number_id
-subscriber_profile_set_id
-pilot_subscriber_profile_set_id
+ events_tags: store associated strings:
-number cc,ac,sn
-pilot number cc,ac,sn
-subscriber profile name
-pilot susbcriber profile name
-subscriber profile set name
-pilot subscriber profile set name
no alter table required
Change-Id: I74c54c0c3505fc014c640bf3298e81ab97ac0ad8
* on OLD.enabled = 1 AND NEW.enabled = 0
limit delete to only 1 row to cover cases when
there are several identical rules within one group
(e.g. 2+ ALL NULL rules)
Change-Id: Id19ea55f81324e44870b743ecb1d96f593f1436b
* copy all existing data from autoprov_firmwares.data field
into autoprov_firmwares_data
* remove autoprov_firmwares.data field
Change-Id: I7a62208a323e1bc2d35df4db5828518d897855e3
+_not_replicated, as there can be hundred k's
records (remember a new contact is created for every
subscriber). as mediator copies contact gpp columns
into the cdr, "ALTER contacts" will likely block mediator.
Change-Id: I678291936a03963fd56cfbb6e9f1b2e13e2b05a4
-undo lnp unique constraints
-restoring separate number index to accelerate actual numbers view
-retain cascade delete restrict
-15285->15288
-start date index
Change-Id: I6380479da14302abdb7309da4b7ec22cebe568cd
If set and a call is done within a pbx customer, the call is blocked
in blacklist, and is allowed in whitelist.
Change-Id: I3a113a29baa0c1500e23016d05c8225024dcf295
* "partition" is a reserved word in MariaDB and as such
the existing column with name partition is escaped
as `partition`
* MariaDB is more restrictive to column alterations that have
foreign keys in another tables and as such added
constract drop/add wrapped into LOCK TABLES.
LOCK TABLES is essential there as after DROP FOREIGN KEY
up until the CONSTRANT is recreated again there is a chance
to break the consistency with a wrong sql statement executed
when the up script is being applied.
Change-Id: I4b08a1c5b2c5e1632e2683f62251fe3873ebc58e
creating the index takes few 100msec for
a table with 100k rows, so imho no _not_replicated
required.
Change-Id: I63cc65d934955557675d5a33f7ec9c14bfdde565
tables to support a new subscriber preference, which allows to provide
a custom cli when the a-number matches a configured pattern
Change-Id: Ia7688470978aa88634197176139465e6c674a5b8