there is an issue with a cornercase of resolving
domain preferences allowed_ips overloads. the cursor
loop of the proc therefor now gets proper statemachine
logic.
Change-Id: Ieeacc4d7c8a931c6e9f0f8087b2a05112f78c675
(cherry picked from commit 73a55b33ae)
(cherry picked from commit 2acc2fb3b0)
(cherry picked from commit f423dc3d3c)
rationale:
-ipv6 allowed_ip adresses were not yet supported in kamailio
-the current ipv4 allowed_ip check has bad performance
this change introduces a new UDF to check the UA ip against
allowed_ip and man_allowed_ip preferences in a fast and
convenient way, ie.:
SELECT provisioning.ip_is_allowed(
<subscriber_uuid>,
<ipv4_or_ipv6_address>
);
the check is based on range queries supported by indexes,
following the proven approach we already use for roaming/
billing_networks.
it requires to transfrom IPnet values of existing data into
numerical representation of the network start (network) and
end (broadcast) addresses.
mariadb does not support arithmetic or bitwise operation
for varbinary or numerical values larger than bigint, which
is required to calculate network and broadcast adresses.
the change therefore provides an own implementation for
large integer operations. it works with hex string
representations, which fits the existing mariadb "hex()",
"unhex()" and "inet6_aton/ntoa()" functions.
Change-Id: I9dbaa769252babf168243167c061f035f0f43242
(cherry picked from commit 7c1453e460)
(cherry picked from commit 796fa0e5e6)
(cherry picked from commit e8837f2c55)
The format of Android push tokens is a free-form binary string of up to
4096 bytes. Currently the tokens are under 256 bytes long, but we expand
the DB field anyway to be future-proof. Unfortunately MySQL doesn't
allow keys that long, so we have to restrict the field to 3072 bytes.
Further add an auto-increment integer primary key to make InnoDB happy.
Change-Id: Ic664d47b80f751397ec51688d8f399da06eac176
(cherry picked from commit 31527c2281)
In mr7.5 block_on_clir and adm_block_on_clir are not dependent
anymore on the configurations of block_in_mode and adm_block_in_mode.
Thus the value has to be updated in order to preserve the system
functionality.
Change-Id: I045bbf216f8648fb53e02339a979ff9656406035
Change kamailio.location expires and last_modified columns
from datetime to bigint
Change-Id: I2baa7134fe84960f07efda1e621cf0508345e1b1
(cherry picked from commit 6618e9be0c)
* 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