billing.journals replication to 3308 is now ignored
because it is not in use on proxies
(cherry picked from commit 383f7523b1)
(cherry picked from commit 8f8f329e49)
Change-Id: I28100d7bb824f742378684010ce29e7794ccf875
* reason for this change is because the related
changes in the kamailio table get replicated to the
active node during the upgrade and that breaks outbound peer
provisioning / selection by running kamailio there
(cherry picked from commit c332fc9d9f)
(cherry picked from commit 60ad7b8caf)
Change-Id: I69416b5737cf05695cbfd1c2e4544faa8b1a2ab0
* freeswitch table is now synced to 3308 by ngcp-update-db-schema
because it's fully replicated in my.mysqld2.conf
(cherry picked from commit 5f0327bf0e)
Change-Id: Iadbd99e11df054e95e37bb56aa7576c387761e84
* new command line boolean option --ngcp-upgrade that enables
ngcp upgrade related logic (particularily sync_ro_db())
if not specified - NGCP_UPGRADE env var is checked to
auto enable it
* sync_ro_db(): rework master node detection:
- preferred master node selection is now only performed when
ngcp_upgrade is enabled
- fix and improve node side detection by either using regexp
or checking if the name is 'sp1' or 'sp2'
this logic is important because during the upgrade the sync must
be done from the db node of the same side, as otherwise old database
version and might be synced.
- mysql database is no longer synchronised to 3308 (it's already
removed from replication)
(cherry picked from commit 4d014bcdff)
Change-Id: I151c725058627ec409b65a9e889a81a08f3a9129
Support for the new HTTPS v1 protocol. GCM doesn't exist any more.
(cherry picked from commit d75b113db8)
Change-Id: I7017e5474ef699a2dcaf6d4d7f815193a2819685
voicebox_unavailable sound handle is notsupported since mr5.3
and it is even mentioned as not supported in the handbook.
It is time to removed it completely from the system.
Change-Id: I9bd0122fc192d5d5906494b5051e471556f8778a
The change of the ENUM 'direction' column removing old values
and adding the new ones, creates problems to existing HM
records.
The records with direction 'inbound' or 'outbound' loose
their direction right after the ENUM is updated.
To fix the issue we have before to add the new values,
then migrate the enties, and finally remove all the values
not needed.
Change-Id: Ib350b6aaada2cdabccb01947f131d3389e1a5110
* --defaults-extra-file arg is now provided first in the list
of args for the mysql command, otherwise it fails with:
/usr/bin/mysql: unknown variable
'defaults-extra-file=/etc/mysql/sipwise_extra.cnf
* get_db_schema() goes to shutdown(1) if db_schema is empty
and mode is 'down' or if --downgrade-release provided with a
non-existing release version
Change-Id: Ia7621f93fed2a4e7054af11930698348a57df92d
* 'proxy' role is not correctly checked not only that it does
not exists in the config.node_roles object but if it exists
it is checked that it's True/False, to correctly skip sync_ro_db()
if it's False
Change-Id: I03061362c508e474782cf98e81020b067b4ff583
Commit 5f0bfdae7c wrongly disabled
preference ignore_cf_when_hunting at domain level.
Actually in template there is a reference to this parameter at domain level
(it was missed on first analysis) and for this reason
the corresponding flag in provisioning.voip_preferences must be set to 1.
Change-Id: I89b9597e8bc46a8ccf3e07edcb13199a831aef68
* this column is added to billing.admins and
provisoning.voip_subscribers to control the amount
of consequent bans for progressive ban increase.
Change-Id: I09c5205294b11aec16f0c6a7a3b9257ff5b90e01
* provisioning.voip_subscriber_password_journal stores last
used sip passwords per subscriber
* provisioning.voip_subscriber_password_journal stores last
used web passwords per subscriber
* billing.admin_password_journal stores last
used passwords per admin user
* add password_last_modify and webpassword_last_modify into
provisioning.voip_subscribers to keep track of password age
* add saltedpass_last_modify into billing.admins
to keep track of password age
Change-Id: Iff5dd016a2542a01a36ebcf50f561911fb5f7bed
* 15800 revision contains additiona of `ngcp.release` column and
this column is crucial during downgrades and cannot be removed,
therefore, this revision is automatically skipped during downgrades
as non-removable.
Change-Id: Ic16119cf08cd239db089e5bb202ec5154bfb1713
inbound/outbound no longer represent the "full" direction and belong
only to A leg, so they are renamed to a_inbound/a_outbound accordingly.
The up-script is not replicated because while the first half of the
nodes is upgraded the other half shoud continue to work with the old
parameters.
Change-Id: I1ac49b44c439ae1ba00c0862968c58831c605279
This is needed to perform manipulations to the SIP message
just before it leaves the system on the B-Leg side.
Change-Id: I61ee456d84061092af26ede51a99c480aca66a1d
* as announce_conn_type is of the enum type now there are
potential leftovers in the usr/dom/prof preference tables
that will cause the provisioning to not function correctly,
therefore, the "" empty values are removed from those tables.
Change-Id: I37ffe4720889a29b9e054aa816b785059ef36222
Use a real NULL value instead of string.
Additionally: update description for the preference
'announce_conn_type'.
Change-Id: I144702d0b6decfde42b075eb50399b68ed5b4818
The preference is available only for subscribers and it is
not exposed to customers or subscribers.
It contains a list of numbers that the subscriber is allowed
to call even if blocked by the NCOS. If the called number
matches, then all the NCOS and administrative NCOS checks are
skipped.
Change-Id: Id366a405efe5228405fc95419bdfc2eaddc6e69c
* use join instead of tuple to build
WHERE revision IN config._post_set_release_for_revisions
because in case of one element tuple represents it as
(15708,) which is invalid sql syntax.
Change-Id: I48f408556ace6dbed303a10fa3c4ba4759e5eaf4
* add support for db_schema release column.
* a new command line option '--set-release'
* when .up scripts are applied - the db_schema release column
is set from either --set-release option or /etc/ngcp_version
as the fallback.
* the release column is updated for all applied scripts after
all of them are applied, that is to include revisions that
were applied by the script before the 'release' column.
applied_at timestamp is preserved to keep the original time
when the revision was applied.
* new command line options --get-release-info and --as-json:
when --get-release-info is specified - a table with
"release,min_revision,max_revision,count" is returned and
no scripts processing takes place. With --as-json the data
is returned as a JSON string instead (for possible parsing
automation purposes).
* new command line option --downgrade-release:
- mutually exclusve with --mode
- automatically enables --mode=down
- removes all revisions that match the specified release version
* fix --mode=down --batch-mode, add missing ';' between delete
and commit sql statements.
Change-Id: I529ab523d7886a94848f6d9bbcf4a0348d0842ef
Kamailio proxy evaluates the preference "ignore_cf_when_hunting" only at customer
(contract) level but web interface lets the user set this pref also at domain
and subscriber level.
This leads to some confusion, the web interface user is fooled by this preference
and thinks something is wrong inside kamailio proxy because enabling/disabling
"ignore_cf_when_hunting" at dom/subscriber level has no effect at all.
Original implementation treats this option as something that must have
a global impact as demostrated by the same preference into config.yml.
Change-Id: I2ba28709dac8a3348049ad9dd5f116ce9d86d9f8
Add header=P-Preferred-Identity for cdrs, this field will
store the P-Preferred-Identity header of the initial INVITE.
Change-Id: I3a6c4a26bda18b80c9f25caf42328eab1e7171cc
Subscriber administrators should be able to configure the
preferences of each single provisioned device. Due to that
this commit set expose_to_customer=1 for all the preferences
flagged with fielddev_pref=1.
Change-Id: Ifdc4e32212aa2e948d41bcf019bf1051be6b7c7d
* get_db_schema() now issues a commit after selects to cleanup
any pending ngcp.db_schema row locks as otherwise applying
an .up script that modifies ngcp.db_schema (usually applied outside
of the connection handle by invoking 'mysql' command) causes
wait locks.
Change-Id: Ie0557a1a7648baeba2ec6ded3665c51667877101
By mistake in commit 7aab6d290d the new 'rcv_display/np_display'
option was added to the 'outbound_from_user' and 'outbound_pai_user'
preferences instead of 'outbound_from_display' and 'outbound_pai_display'.
This fix revert previous addition and add it to the correct preference.
Change-Id: Ifed659b22dbde621fbf366092268e6416e9ad4ba
This new column will be used to store a flag (value 0 or 1) that
controls wether the CF is processed as usual (flag with value 0,
default) or generates a 302 redirect message back to the
caller (flag with value 1).
Updating also the 'v_subscriber_cfs' VIEW to add thhis new column.
Change-Id: I74e53a526810f0145e305b90c3c3bd56cf91bc61
This will add support to both 'outbound_from_display' and
'outbound_pai_display' for a new method called 'rcv_display/np_display'.
This will allow to use the received display name if available
and the network provided one as fallback.
Change-Id: Iab0335c73ea6aba883b111645abec17bfede9386
* release column is going to contain the ngcp release
version when an .up script is applied and also used
with --mode down --to-release mrX.X.X to automatically
downgrade releases to a specific version
Change-Id: I8750646eee6076bc343a0c05e5c85c137458ef92
* Add `value` to the uda_idx, to reduce/eliminate gap locs and deadlocks from
the API /api/subscribers update scenarios
Change-Id: I62feb07c4df1675771b93e2a29a2aa126a14d34a
* with --mode=down and --to-revision, the revisions are now downgraded
to, and excluding --to-revision (before they included --to-revision,
which is incorrect because downgrades to
package version X.Y, usually do that to the specified package version
Change-Id: I6f250e47f130fc050cbed65d7945a58cde3341a1
* voip_phost_crepl_trig: enum default preferences are now always
created regardless of the enabled state, otherwise that led
to peering servers to be created without their default
not null enum preferences in voip_peer_preferences.
* fix missing not null enum preferences for peering servers
Change-Id: If8cecb5570ba876643207931ecab1e42a994a2fe
* Instead of using "set foreign_key_checks=0" before
altering voicemail_spool voicemail_users tables the
foreign key voicemail_spool.`v_s_mailboxuser_ref` is
dropped instead and re-created after the alter table operations
(same lines where "set foreign_key_checks=0" and "set
foreign_key_checks=1" were respectively.
* That addresses the changed behavior with MariaDB 10.11.6
where "alter table" statements the change columns involved
in a foreign key and potentially causing data loss are prohibited
even with "set foreign_key_checks=0".
* This change is only valid for new deployments and databases
with already applied 6425.up are not affected.
Change-Id: I2f2a85ca9f9f7d15058f41f5d8eaaec23ec501fa
Add support for on demand recording allowing now 4
different configuration types for the 'record_call'
preference:
* 0 = never record
* 1 = always record
* 2 = on-demand record (initially disabled)
* 3 = on-demand record (initially enabled)
Peers cannot use the on-demand recording
Change-Id: I17db074ea7cd690493eb48faa335ef2bfd3a0603
* update_sound_set_handle_parents() procedure is redesigned
to avoid "insert into select from" statements as they cause
gap locks when run concurrently and access the same index
rows.
*** WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 6594 page no 6 n bits 56 index parent_id_idx
of table `provisioning`.`voip_sound_sets` trx id 400852
lock mode S locks rec but not gap waiting
the "insert into select from" statements are reworked:
the "select from/with recursive" parts are now declared cursors
and the data is inserted inside the opened cursor loop (if any).
this way the selects are not causing exclusive gap locks.
Change-Id: I35ec28a33ecca42de898e67a2709eda4364e5f95