The schema files contains '1970-01-01 00:00:01' as the value for timestamp
columns but when the sql file is uploaded into mariadb it's converted
according to time-zone settings and causes '0000-00-00 00:00:00' value
and warning 'Out of range value for column'.
So set session time zone UTC.
Change-Id: I6e5634df12104e2887142ace77df574c4200179c
Fix of db-schema.git:29ce6639d6a5101bf008274b678f022a449ca8e0 commit.
Instead of using string '1970-01-01 00:00:00' use
FROM_UNIXTIME(1).
Using the string causes the date '0000-00-00 00:00:00' and the warning:
+---------+------+-----------------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------------+
| Warning | 1264 | Out of range value for column 'applied_at' at row 1 |
+---------+------+-----------------------------------------------------+
It's because the time zones differences so '1970-01-01 00:00:00'
translates into earlier date which is out of range for timestamp
datatype.
Using the FROM_UNIXTIME() gives us a reliable result which fits the
datatype and is not zero date.
Change-Id: Ie123363a74e81c37c8ca5458b6aafd53fd3b74ca
This reverts commit 29ce6639d6.
Reason: setting timestamp fields as '0000-00-00 00:00:00' causes
API v1 ORM to read them as undefined and breaks the related logic as
either create_timestamp or modify_timestamp are expected to be
valid datetime strings.
Change-Id: I48ac4daa2e63727b6aa16314d9427ba4833937aa
Update columns with default 'current_timestamp()' to zero unixtime.
Update encrypted password and hashes to the current value,
Change-Id: I177d0f51437678526b0ae84fa916dafaa1dbf0ec
- use coalesce(unix_timestamp(if(x)),if(x)) rather than
coalesce(unix_timestamp(if(x)),0)
- fix from_unixtime(0) also in transform_billing_mappings()
in 15418.up
Change-Id: I55a54deb9e6e3412650e56cefed87a6637a2c0d1
base/8629.up introduced voip_preferences_enum with auto
named foreign key as
"FOREIGN KEY (preference_id) REFERENCES voip_preferences (id)"
which auto created a missing index as
`preference_id` (`preference_id`).
diff/15787.up re-created the foreign key as named
"ADD CONSTRAINT `pref_id_fk` FOREIGN KEY (`preference_id`) ... "
which normally should cause the auto created `preference_id` key
to be renamed to `pref_id_fk`.
but customers who had their database re-synced, had that index
turned from "auto created" to "permanent" and therefore, causing
diff/15787.up to keep the original index name as `preference_id`.
that in turn, caused ngcp-mysql-compare-dbs to report db inconsistencies
as the default schema/.sql files are built with `pref_id_fk`.
the current fix addresses the index issue by dropping it as either
`preference_id` or `pref_id_fk` and creating it as a named index
`pref_id_idx`, so that it wont be affected by the issue anymore.
Change-Id: I4c777902251f915a1b07e92744d78e81087d607c
* fix peering hosts weight update to be correctly performed
only for the same peering host (was for the whole peering group).
Change-Id: Iaca327b1d49f2e50f9aa258e72392ffafe271fd3
* recreate provisioning.voip_phost_*_trig triggers with the same
content to fix a possible discrepancy caused by
15783_not_replicated.up
Change-Id: Id184e50c94ba9f92eb4ba6d243457e0343353704
* triggers are removed from the not replicated script because
they create an issue if this script is applied on the other
node after 15791.up and 15797.up and revert the triggrs to
inintended state.
Change-Id: Iac830c24d0d51d693e6dbe76cea3766feebf7dd8
Added 2 new prefereences inside group "Cloud PBX"
to let the admin to control how many times the AA welcome message
must be played before overflowing in case of timeout or wrong key selection.
Change-Id: I19debd3dc06cd9234355a67ffdc8b5c9db42f61f
* make 15798 as "not_replicated" otherwise the "freeswitch"
database creation is not replicated to the other nodes during
upgrade because there are no my.cnf yet with
"replicate-wild-do-table=freeswitch.%"
* all CREATE statements in the .up script adjusted to be as
CREATE ... IF NOT EXISTS, as the not_replicated script will
be executed once more on the existing deployments.
Change-Id: Idf6c9e8a304639ecabab0a442273cba4b306a6e1
The newly implemented manual ban release needs extra fields to
return for the client.
* Add `last_banned_at` timestamp for admins and subscribers
* Add `last_banned_ip` varchar(45) for admins and subscribers
Change-Id: I691bf2f5c62180d6fb010c3e844a79384f81b3d3
* v_contract_phonebook - returns shared+contract+reseller phonebook
entries, where same numbers are merged into contract > shared > reseller
entries
* v_contract_shared_phonebook - returns shared+contract phonebook
entries, where same numbers are merged into contract > shared entries
* v_contract_reseller_phonebook - returns contract+reseller phonebook
entries, where same numbers are merged into contract > reseller entries
* v_subscriber_phonebook - returns subscriber+contract+reseller phonebook
entries, where same numbers are merged into
subscriber > contract > reselelr entries
* v_subscriber_contract_phonebook - returns subscriber+contract phonebook
entries, where same numbers are merged into
subscriber > contract entries
* v_subscriber_reseller_phonebook - returns subscriber+reseller phonebook
entries, where same numbers are merged into
subscriber > reseller entries
* shared entries of subscribers within the same customer are considered
"customer" entries and shown in v_subscriber_phonebook or
v_subscriber_contract_phonebook
Change-Id: Id66502fadea93be05e3dab7f386e92068fcde21d
This commit adds a list of tables:
- `limit_data`
- `db_data`
- `group_data`
required by the mod_db of freeswitch, which
from now on is in use.
Add them, because we are of the full table
schemas control, not the freeswitch service.
Change-Id: I59b6161a393ca6816cfaba527cf339add55224f5
* add_row() now uses list[any] instead of tuple[any]
to be compatible with PrettyTable coming with debian/trixie
Change-Id: I98cf5db91c6f63e13577f29ce437046898c5ba1c
* Fixes bug reported by frontend team where in case a billing.voucher is updated the
`valid_until` field automaticly updates to the current_timestamp.
Change-Id: Ie4bcd9ebf0eeda066768781c89d892180cfb3c57
This is rollback case if during the upgrade there is no
not_replicated sql scripts.
In 1st run of 'ngcp-update-db-schema --downgrade-release' deletes all
the records will be deleted on sp1. So the next run on sp2 finds no
records to delete and it's ok.
So don't fail on this case.
Change-Id: Ifcdd6cb369eaa0da0167c50023e5502e06aa3a8a
* 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
Change-Id: I69416b5737cf05695cbfd1c2e4544faa8b1a2ab2
Prefs codecs_id_filter and codecs_id_list are no more selectable.
Records inside kamailio.user_preferences will be automatically deleted by triggers.
Change-Id: I6224a8cae8df7e6f159142a8ee09a0ab9b26b1be
* freeswitch table is now synced to 3308 by ngcp-update-db-schema
because it's fully replicated in my.mysqld2.conf
Change-Id: Iadbd99e11df054e95e37bb56aa7576c387761e84
Add a preference, which introduces a mixed mode of handling AA
choices and extensions dialing via AA menu.
Can be enabled or disabled (default).
If enabled then instant extensions dialing mode is used,
otherwise the usual one (which requires dialing through
the *asterisk sign).
Can be applied at the following levels:
- domain (has always default value 'disabled')
- profile (inherits from domain if doesn't have own value)
- subscriber (inherits from domain if doesn't have own value)
Change-Id: Ibf1d08268a9b72d2524881951700776fdc9ec215
* 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)
Change-Id: I151c725058627ec409b65a9e889a81a08f3a9129
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