The preference allows to enable the conversion of SIP INFO messages
containing application/dtmf-relay or application/dtmf payloads to
RFC DTMF events.
Added note that the feature is restricted to internal generated
INFO messages and it will not detect and convert exetrnal generated
INFO messages.
Change-Id: I02b5a72f3f5c1c5dfc1e5ed8a8746013ef9a1901
In particular add the following preferences:
* concurrent_max_in
* concurrent_max_in_per_account
* concurrent_max_in_total
Change-Id: I02bf2bc567acf52c832a2808b319b89c3d73fff4
* tables for intermediate cdrs are created as copies
from existing cdr tables
* the tables have similar names and prefixed with int_
* partitioning is removed in those tables
* int_cdr has a new column acc_ref that contains a reference
to the related acc 'INVITE' record,
and also used as a unique index
Change-Id: Ib9951d9d4618c4cfbb0991da3e8c803a7ccb61dd
* is_ccare flags a user as customer care one
and is used in ngcp-panel to restrict the role
only to Customer/Subsceriber related scopes
Change-Id: I72ff7d2d3ba6e56306e1a326f26475cee28e8100
* allowed_ips_header preference provides with a SIP
header name to take the IP address from for
"allowed_clis" ipauth check
Change-Id: I23790881c35534a82993e9afd645a754fb5723c0
* provisioning.voip_peer_rules triggers use internally
a join by IP address to insert/update entries in
kamailio.lcr_rule_target. in cases where there are 2 hosts
per peering group with the same IP address, the triggers
fail because they select duplicate peer hosts. to address
that the "lcr_rule_target join" in the relevant triggers
is adjusted to join the hosts tables by gw_name isntead,
since gw_name is guaranteed unique per peer group
(controlled by a unique key)
Change-Id: I36669efc22bb62ad34c57aac4d978435dbb26f0c
* this table is supposed to group cdrs
by a common identifier. for now it is call_id
it does not contain a dictionary like other
cdr_* relation tables because the field must be
of the similar type as well as to make it possible
to have multi field groups in the future.
Change-Id: Ie304c00bb5f061c80402de7a1072c206b11619ab
Must be 0 for string-key/string-val instead of 1 for
string-key/int-val, otherwise kamailio complains about
invalid int parameter in lua script.
Change-Id: I3421f3706efab9703fb046e0c6981785bb4bc696
We're querying for the alias during registration phase to check if the
dev-id passed by the device is a native alias or a devid alias.
Change-Id: I183cde2690e50bf233f388d79783ce1e5e868aa9
In v_time_sets_ical LEFT join is used insted of INNER join
Use varchar for the bysetpos for set input
Add duration and wkst fields to voip_timeset_periods
Add dtend into vcalendar header if presented
Add name into vcalendar
Change-Id: I077361c01adf034177f09401db9d7d2c4f838be3
A new "Add" mode allows to merge registered contacts of two different
subscribers, instead of replacing the actual ones with an external
one.
Change-Id: I0405ad90d58654bb14b39061b60407186ba6cff4
This flag indicates whether an alias is meant to be a device id, so
calls to this alias can be filtered to only allow calls to devices
carrying this device id in their display-name.
Change-Id: I29c0e2a34d2bd9c1a15618bcfcefe15b77787097
* ngcp.date_range_helper was created as replicated
but it was not replicated on PRO.
this up script recreates the table syncing it in the pair
Change-Id: I4259436701a686729cbbb4a8248feabfcf8054d3
- currenty, there is only cdr.export_status and cdr.exported_at columns
to mark rows already written.
- to handle the AMA ticket export (and other exporters in the future), a
table "accounting.cdr_export_status" is introduced, defineing "streams".
for now there will be "defualt" (the good old cdr-exporter) and
"ama-simples" (for UPC AT)
- the table accounting.cdr_export_status_data stores individual vlaus
for "export_status" (unexported, ok, failed) and exported_at timestamp
per cdr and per cdr exort stream
- all cdr relation table triggers for emulating fk are refactored to be fast.
Change-Id: I52c3383f82ef841e7b18515dd7b73db42a43e2f9
Added the following preferences:
* play_announce_before_call_setup
* play_announce_before_recording
Added the following sounds:
* announce_before_call_setup
* announce_before_recording
Change-Id: I433b09875dc09202390770c78e47cb2db9360fa4
to prevent a pontential foreign key error in susequent
alter table billing_fees_raw
..,
add unique key bfr_srcdestdir_idx (billing_profile_id, type,
match_mode, direction, source, destination),
..;
the key is turned into not-unique afterwards with 15449.up
Change-Id: I884adc442e48202fd0061fece400f5fcb6f892b5
* addresses an issue with the foreign key cannot be
recreated as it relies on the lnp_providers table,
affected since MariaDB 10.1.37
Change-Id: I785fcae727e975839c710f327bd10a659384c39c
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
This allows to reject any VSC coming from the subscriber, disabling
the possibility to provision subscriber features on the system.
Change-Id: I5cceb70875467a8252ce588ddc90d4c2fbd3c8de
* active_watchers.user_agent had no default value
> [km_dbase.c:128]: db_mysql_submit_query(): driver error on query: Field 'user_agent' doesn't have a default value (1364)
Change-Id: Ie9e7091dbc6f4122056fddc01f514222f61f948e
+immediate use for netcologne's "calling party category"
+per source/destination
+per customer/reseller/carrier
+TEXT instead of varchar(255)
+upcoming use eg. for location data.
Change-Id: I24abe06310a7f9ba6f0cb3e044db4ebb0b297cf1
+replace old lnp_provider_id index by multi-column unique index
(safe one index)
+not replicated, as lnp_numbers table could get large
Change-Id: I776358e42345f9a58bd3c755f7e40b12c1ac0a25
in the future, we will connect one rtc-session to all related
networks (via rtc-accounts). therefore, there is no need anymore,
to store the network tag here. assign a default, in order to ensure
compatibility with old and new code
Change-Id: I76c69250217e1295f511e74a17ef55504e526b80
Authoritative is rejecting call with 404 if number is not assigned
to local subscriber.
Skip Rewrite is skipping lnp rewrite rules.
Change-Id: I8d7654bbe02db6f2a92f93712e5b34185ede423d