There are 2 .up scripts that modify voip_allowed_ip_groups.ipnet
15702.up - modifies it to varchar(43)
15710.up - modifies it to varchar(46)
Because in 15710.up was backported into mr9.5 but is missing in mr10.5,
existing upgrades from mr9.5 -> mr10.5 apply 15702 after 15710.up,
effectively downgrading the column to varchar(46).
This .up script fixes the scenario and also the .down script modifies
the column also to varchar(46) to respect the previous 15710.up the
sets it to varchar(46), so to achieve the consistent state.
Change-Id: If14917ef437de3abf46b1900f68c9cc3a9a4b947
(cherry picked from commit 9c6ef86372)
New index for watchers table for columns "inserted_time" and "status".
This is a little performance boost since the function
ps_watchers_db_timer_clean() cleans pending subscriptions
using this columns inside the "where" clause.
Change-Id: I9cb2220f6fe89aa2070d9a739c4a3a0417e3de71
Remove 'serial' from the label and description of
'cloud_pbx_hunt_timeout' as this preference can now also
be used for parallel groups.
Change-Id: I66a51a5dddd9b872d97b2ec3de36ce79524abce6
Improve description of ignore_cf_when_hunting
explicitly stating that this preference
only affects members of hunt groups when called in a hunt group context.
Change-Id: I0cfb0f8187e18f2771055866879363ee0dd4a050
see RQRAINB-6610
Add the new domain/subscriber preference 'busy_hg_member_mode' to
determine if a huntgroup call can be distributed or not to a busy member.
The new preference accepts the following values:
- 'ring' the call is always distributed to the member whatever is
his/her busy status (note: default value for domain preference)
- 'skip_totaluser' or 'skip_activeuser' the call is not distributed
to a member considered as busy depending of the counter 'totaluser'
or 'activeuser'.
Change-Id: I83973d7bdae2420d8c6836ddcbc542eb7c6f9fd2
By default calls that come from a peer group and are looped back
to the same peer group due to a subscriber location mappings 'forward'
entry are blocked to avoid loop creation.
This preference allows to override the default behavior and permit
the loop over the same peering group.
It has to be used with caution and activated only if necessary.
Change-Id: I5040204805c3b2a740250cec11a8e9914333f10b
New subscriber location mapping mode "forward" is now part of the
enumeration inside provisioning.voip_subscriber_location_mappings.
Change-Id: I93bbecd1e88452ddbc5249f344c3ad66ddea8739
Set peer flag for the following user preferences to allow peer sdp filtering:
- codecs_list
- codecs_filter
- codecs_id_list
- codecs_id_filter
Change-Id: I619cd3c3f6f7d87b91502ecf7563556e991d5089
This value will be the default that is assigned to 'normal' subscribers
The HuntGroup subscribers will contain instead one of the other possible
values: 'serial','parallel', 'random', 'circular'.
Change-Id: I5400e2ccfa5af5905777f1bc608054e0743ea1ef
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
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
All "transcode" preferences are listed as type "0" in the DB except for
DTMF and CN which are listed as "1". The LUA/Kamailio scripts fail to
include tyoe "1" preferences in the list of flags given to rtpengine.
Change the type to "0" to fix.
Change-Id: I38f0d9f1394e07b190f1bd196ac85f456017ae6f
play_announce_before_recording cant have 2 default values
and "never" should not be default for subscriber
Change-Id: I0ecfb76ac6d9f9c7e431f4bc4b28d2619a06e076
* fileshare is not replicated by default therefore the script
breaks replication and it is converted to not_replicated to
address that.
Change-Id: I52f59630f92f4b9c901a84a296cd9e53442f5c0c
* there can be more than one journal record created per a
transaction (e.g. a subscriber and a customer are created
at once, therefore the tx_id field cannot be unique)
Change-Id: I0046f41ec52412dbad319610d7b1b87988798586
- create table acl_roles that contains information about a role
- inserted existing roles (system, admin, reseller, ccareadmin, ccare,
lintercept)
- create table acl_role_mappings that contains information about which
role has access to other roles
- remove field role from journals table and add FK role_id
- add FK role_id and set the right one accordingly
Change-Id: Id92726e9aaf7c6f6c126b18a76f86fc133aea5ae
* susbcriber_id column is needed to relate the uploaded data
to the subscriber user
* reselelr_id column is needed to narrow down the scope of
files per reseller
Change-Id: Ie6ef264eb5e25e48f6458f74b310e451e406fef6
mariadb does not support variable referals in correlated
subqueries if the nesting depth is 2 or beyond.
so in short: below works ->
select
(select
count(*)
from table1
where id = root.id
) as cnt
from table2 as root;
... while this not unfortunately:
select
(select
count(1)
from (select
1
from table1
where id = root.id
LIMIT 1001) as q
) as cnt_limited
from table2 as root;
this can be solved by declaring the topical subqueries
in dedicated user-defined functions, so involved
panel/api parts will load quickly even with millions of
subscribers.
Change-Id: If96603cb4115259d719297af46c5bc7c10aadf76
for IPv4, ipnet length of 3*4 + 3 + 1 + 2 = 18 was
sufficient. for IPv6 ipnets we need to extend this
to 8*4 + 7 + 1 + 3 = 43 chars.
Change-Id: I9b44c63b58bc08bc41f0d50a9ec94234ffffd6c2
Extend billing.journals with fields required for RBAC for journals.
Added fields:
- reseller_id to limit reseller admins to their reseller
- user_id to reference admins or subscribers
- tx_id unique transaction id
- role defining the access scope the entry was created with
Change-Id: Id4a093a3ea668914d6f3214f79955d89b58263db
Description for field upn_block_clir is fixed.
This pref blocks outgoing calls and not incoming.
Additionally fixed anonymous typo.
Better description for outbound_from_display pref
Change-Id: Ic578da7b3c14689a3883a5f18c804105961eb5b6
Added the following options:
* use domain default
* Never send push
* Always send push
* Send push only if no device registered
* Always send push, skip registered devices
* Registered devices, then send push
* Send push, then registered devices
Change-Id: I78ef73e2de5a8692c393586d9298b46d429fa36d
We need to have the following columns in a new version of the 'v_subscriber_devices':
- ha1
- ha1b
Change-Id: Icfb466a302f1b0b3cb5fd93bd314438f11bf5d9e
play_announce_before_recording has been extended from on/off
state to multiple select state.
Now It can handle 4 different values (+ domain default):
- Always (all calls)
- External calls only
- Internal calls only
- Never (default)
Change-Id: Idbe70a4844b3ca6a4f240b5087deaff5d1007522
New foreign keys:
- 'sub_id_ref' - towards 'subscriber.id'
- 'lcr_gw_ref' - towards 'lcr_gw.id'
Beforehand delete all alone subscriber_id's from the 'sems_registrations'
in case they for some reason exist, this will prevent us from .up script failure.
Change-Id: Ib225cc11771c9038c408f6c409d95a417e7ac311
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
New columns:
- 'id' - new PK for the 'sems_registrations'
- 'peer_host_id' - for filling it with IDs of SIP peerings
Remark: 'peer_host_id' and 'subscriber_id' must be null by default.
Change-Id: I7ecaa42e540a96a5d6835a78e391adc909aab111
fee matching works in 2 attempts:
1. try to find a fee matching <user@domain>
2. if none found, try to find a fee matching <user>
the billing_profile record will get a new field
"ignore_domain". if set to "1", step#1 above
should be skipped.
see commit id 1af70b
Change-Id: I4b05112db52afbf6f4369711ad946ff1070260ca