This modification enables the get uri related to a speed dial number for a group (with 3 digits - *999).
It gets the new_uri from the table speed_dial using the group_id, the sd_username and sd_domain.
Change-Id: I629c2b5e35b53ee21a1e3a67df7a66f095da9db4
We have to concern slow selections like this:
"SELECT a.callid FROM acc a WHERE a.method = 'INVITE' GROUP BY a.callid LIMIT 0,200000;"
which can take procesisng time over 10 sec (as reported in the WF ticket).
As a simple solution, we can give an additional index to the 'acc' table:
KEY `method_callid_idx` (`method`,`callid`)
Which will give us an indexation on selecitons with the WHERE clause on 'method' column.
Without the index (explain of the selection):
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: a
type: range
possible_keys: NULL
key: callid_method_idx
key_len: 817
ref: NULL
rows: 2
Extra: Using where; Using index for group-by
With the index (explain of the selection):
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: a
type: ref
possible_keys: method_callid_idx
key: method_callid_idx
key_len: 50
ref: const
rows: 1
Extra: Using where; Using index
The newer index is not to be mixed with the previously existing one:
KEY `callid_method_idx` (`callid`,`method`)
Change-Id: Ie8a4ab102adb8788d9e273bd5a9edf1ddbb702bf
In order to introduce the new 'fax=' prefix, we have to update
the already configured CF destinations to fax2mail, and prefix them
with 'fax='.
Change-Id: Id09886932ba3246b7e10b36fb4f3f50c61139c7a
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
As the option to add default actions has been introduced for Auto-Attendant,
where we are using string literals as lables/values, we need to let the SQL
structure be compatible with this update.
Hence our customers will be able to set and then see the default action
in the Auto-Attendant menu for a subscriber.
Change-Id: I949d7b72c9211588389a64df9af49b0201587d87
- 'aa_default' gives a possibility to add the default URI destination,
in case no option have been previously done by the caller ;
Change-Id: I720ca1b53b2dbc04973eeebcc570772a8be1a417
Added new option extended_send_primary_plus_extension inside
extended_dialing_mode enum to enable a new extended mode
allowing to user to send the primary number + the extension
Change-Id: Ide1afe1b664be7dd499d203c26afb5ec8b42ba6b
Added crypto_base64_padding user preference for
subscriber / domain / peer under NAT and Media Flow Control
section.
Change-Id: I4b5c8f319a5da5d5260107211ba79d65793d948b
New peer/subscriber preference introduced:
* 'peer_auth_hf_user' - gives a possibility to specifically define the 'username' parameter of the Authorization header.
Change-Id: I295a4b548b95de5ca106281a71b6efa9c67d79d8
The additional column in necessary to get which is the username
of the subscriber associated to a particular device_id.
It is mostly used for presence status because kamailio has
to trigger presence based on the subscriber and not on
the device.
Change-Id: I881ea1e54c8b0e9635e9ceb96ed60ac8792bf50e
Add new prompt (sound handle): aa_timeout to "pbx" group
in provisioning.voip_sound_handles table.
Change-Id: I24dece40996c1b982fa8b71fd132ab02374c7ded
Move the under the new section the announce handles:
* announce_before_call_setup
* announce_before_cf
* announce_before_recording
* announce_to_callee'
Change-Id: I698dd74a5b8c7f94253bf1763ebb533a41f0ba07
Replace the special character 'μ' (lowercase Greek Mu) with latin 'u' in
a word ‘u-Law’ inside the label and description of 'transcode_PCMU'
voip_preferences attribute. This is for compatibility with xgettext
programs and the Crowdin platform.
Change-Id: I3ffde8a4cb0a57d36e559d88bb2cd9740bc6dbef
* v_subscriber_cfs represents all callforwards per subscriber uuid
to be used in call forward related selects
Change-Id: I7cbdcf5454c616f0116abbcba4a1625efa80d8da
Adding the source_last_hih field for the cdrs, this field will be used
to store the last history info header of the incoming invite if present.
Change-Id: I6549e69da4bd47b76c7365ece3a9507abdcf733c
This reverts commit b8107d2653.
Reason for revert: upscript conflicts with ngcpapply helper script
Change-Id: I04dfb82ef0c4851d53efa432efb37e44ce37926e
This upscript will do the following:
- the domains/peers where the selection is on default are migrated to ext
- default entry removed from domains/peers
- new default selection for domain/peers is ext
- The "default" entry has been renamed for subscribers to "use domain default"
Change-Id: I7e5d6f48f6c4aaf4db0e33abf4a3f3d58c446c82
* defines the format of emergency_location_object field
* set cirpack as default since that was the original format
* add PIDF-LO for implementing TR Notruf
Change-Id: Ifcac50b7147f7233d42e1abea75c6cfc1d59f604
* voip_preferences 'type' can be 2, means' blob'
* voip_preferences data_type enum add: 'blob'
* 4 new tables:
- voip_dom_preferences_blob
- voip_usr_preferences_blob
- voip_contract_preferences_blob
- voip_peer_preferences_blob
(they are innodb page compressed)
* triggers on insert/delete on these tables
cause the 'value' field of the related
voip_usr/dom/contract/peer_preferences table to
be updated with the id of the record, required
for kamailio to find the related blob record without
replicating the blob data
* procedure for adding a new blob entry:
1. insert into voip_usr_preferences with the empty value
2. insert into voip_usr_preferences_blob
3. the voip_usr_preferences value will be automatically updated
with the id of the created blob record
Change-Id: I9330613f50de20bc098a94f3fc28cfd4b3ad3c68
Added new usr_preferences with attribute = "no_404_fallback"
This option will enable/disable the user to disable 404 fallback when the callee UAc
replies with a 404 not found.
Change-Id: I414014e920f8f0fbd690b8b3551b0afbed5c6625
* this table is in the provisioning database and is used
to add additional location mappings for terminated calls on a
subscriber instead of the 'location_from_subscriber' preference
* 'location_from_subscriber' preference data is migrated into
the new table
Change-Id: I92726e765c51e87c4d815d01161d8866fe58ef9c
* this new view accumulates possible auth data
containing both subscrber usernames and devices
(aliases with is_devid=1)
* this view is used in subscriber auth and the proxy
code to fetch registered devices not only by
subscriber username but also by the device
Change-Id: Ic4e2596ad461c70acf34cf75a2590640813ec2ca
* Switch all 'redirect_sipwise' and 'profile_sipwise'
to 'redirect_ale' bootstrap method
* Remove them from enum
Change-Id: I394d5926c75a3784cb0fecff983ff3cfd3a889a5
This user/password combination is not used any longer by the monitoring
system and it is a security risk as it is using a hardcoded password
instead of the one from constants.yml.
Change-Id: If00789343e57c5e1e058e431d3dcfc59a6e3fd58
A new 'peer_group_tag' preferences allows to store a string value, which
will be used to narrow peering selection.
The 'caller_pattern' of a peering group has to match this tag to be
considered for outgoing calls.
Change-Id: Ia1ce7a70a3b036f7c37b054c0aeba36fb9b21352
* The 'is_system' column will be used for users
that will have permission to see, create,
edit, delete lawful intercept admins
* Make the default administrator is_system and
revoke its lawful_intercept flag
Change-Id: Ib3349d4e5719f1a16df00647f24ac49174ccc792
this cdr tag will be used to persist the compressed
delta datastructure for contract_balance records.
additional tablespace consumption is minimal: there
will be only one string value (~20chars on average)
required per cdr.
Change-Id: I32557443df2efa7381c85ddfb8c380c8df02df5e
* Store 'email' for administrators to use
for password reset
* Add additional 'can_reset_passsword' column
to indicate wether an admin can request
password reset
Change-Id: If383e1328eb091c68b8419c574dfae307e1b7920
A regression found in mr7.5 forced to apply an up script only
in that specific version (commit 5580ed34).
The commit is to create a dummy up script in order to keep the
ids consistent in all the versions.
Change-Id: I3d16a9edc3791ac030018ba95c4704388b5e4066
The using of MD5() for password was outdated and there is an appropriate
warning in ngcp-status.
So change the default password to salted one. Unfortunately Mariadb
doesn't provide bcrypt() function so use the prepared string.
Change-Id: I668e32265c5e3f0f4907ddba0f9546fafdb8acdd
* The type was wrongly set to 1 which is reserved
to integer/boolean; it has to be 0 since it's a
string
Change-Id: Idf2582f9a3ac70eb032493495b71b3fb0a7c4431
* The new preference defines in which scope is
CLIR used: all (hide all callers) or external
(hide callers except calls from same customer)
Change-Id: Ib05a1a8ad7abea2c0eee30928d39478a41e8e169
* Create up and down scripts with 'enabled'
column representing if a callforwards is
enabled or not
Change-Id: Ibbade5cdc31395e9f129f7cf2ae428edf2352c38
Setting Enabled and Immediate the redirection will be immediately
followed cancelling the other active brances.
Change-Id: Ic861983f24ecaa53f57c5f2ad6f64f021ec0523a
* the foreign key device_id pointed to table autoprov_devices
where the correct table is autoprov_field_devices.
Change-Id: I8523435970b31f011919c83c9615972a0f97b53a
The preference is used to define if, in case of emergency call,
the subscriber's cli is set to UPN or NPN (default).
Change-Id: I4b7b1fe9291f6d2b938fd92ee16f2ef009c8be92
It contains a list of SIP codes that is matched with the response
code received in reply from the subscriber's contacts in case
of call failure. In case of match, the forking based on Q value
is stopped and the code is transparently signaled back to the
caller, whereas also an announcement can be played if configured
in the existing sound set. Response codes 600, 603, 604, 606 are
implicitly included in the list.
Change-Id: Iec6ccad25aa59130ecd5c9add2e83c1341ff49eb
The preference specifies how many seconds each single contact
should ring before the calls goes to the next one. It is
considered only in case of forking based on Q value.
Change-Id: I0d0e93a3dae52934910248060616cc0d4833fa4a
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