Releases: 2600hz/kazoo
4.3.92
Changes for 4.3.92
Changes to branch 4.3
after version 4.3.91
.
Commits
-
KZOO-53: test when endpoint settings are empty objects - by James Aimonetti
Make sure that account and endpoint settings are properly populated
when device/user settings are empty objects instead of undefined.
Part of HELP-13159
-
KZOO-31: add privacy headers for carrier endpoints in bridge string - by icehess
This adds the
Privacy: id
SIP header on the endpoints string if only some of carriers/endpoints have the privacy flags during building the bridge string.If there is only one carrier or the only some of the carriers have privacy settings, the
P-Asserted-Identity
tend to not be lifted in bridge object andecallmgr_fs_xml
during creating bridge string won't addPrivacy: id
header because thePrivacy-Hide-Name
orPrivacy-Hide-Number
are set on the endpoint Prop.Also when adding
P-Asserted-Identity
, its value in the bridge string should be single quoted.If this PR causes issues with your devices you can opt-out of the feature by setting use_sip_privacy_header to false on that system_config privacy document.
-
KZOO-52: use a default empty list for messages - by James Aimonetti
When a voicemail box is empty and deleted via API, an error would be
thrown during deletion when deciding to publish deleted
messages. kvm_messages:fetch/4 strips empty values from the results,
succeeded
would be[]
and thus stripped, soget_list_value/2
returned
undefined
. This caused the call tolists:foreach/2
tocrash.
Instead, fetch
succeeded
with[]
as a default and only process ifthe result is a non-empty list.
-
add state and used_by back into _read_only - by lazedo
4.3.91
Changes for 4.3.91
Changes to branch 4.3
after version 4.3.90
.
Commits
-
add qubicle webhooks modules - by Mark Magnusson
-
HELP-13212: Document vmboxes.include_message_on_notify field - by Harenson Henao
Missing change for #6339
-
validate token term in blackhole - by lazedo
-
KQUB-56: update quantifiers to support pro and basic - by Mark Magnusson
this will require a "sup qubicle_maintenance update_offering" after upgrade to correctly set the offering levels on existing qubicle entities
-
KCRO-17: skip some routines during user creation if there were errors - by lazedo
Addresses payloads that fail validation but continue to execute routines that expected valid data:
01:00:29.333 error kazoo_bindings.690 unable to find function clause for kz_json:no_prune([<<"pvt_sha1_auth">>], undefined) in src/kz_json.erl:1369
01:00:29.334 error kazoo_bindings.696 as part of cb_users_v2:validate/2
01:00:29.334 error kazoo_bindings.697 st: {lists,foldr,3,[{file,"lists.erl"},{line,1276}]}
01:00:29.334 error kazoo_bindings.697 st: {cb_users_v2,remove_creds,1,[{file,"src/modules_v2/cb_users_v2.erl"},{line,770}]}
01:00:29.334 error kazoo_bindings.697 st: {lists,foldl,3,[{file,"lists.erl"},{line,1263}]}
01:00:29.334 error kazoo_bindings.697 st: {kazoo_bindings,fold_bind_results,5,[{file,"src/kazoo_bindings.erl"},{line,632}]}
01:00:29.334 error kazoo_bindings.697 st: {lists,foldl,3,[{file,"lists.erl"},{line,1263}]}
01:00:29.334 error kazoo_bindings.697 st: {kazoo_bindings,fold_processor,3,[{file,"src/kazoo_bindings.erl"},{line,860}]}
01:00:29.334 error kazoo_bindings.697 st: {api_util,validate_data,2,[{file,"src/api_util.erl"},{line,1077}]}
-
KCRO-14: emit the billing_seconds for the reduce - by lazedo
The reduce view for user interactions uses the billing seconds but it is not emitted from the map function.
-
[PROD-157] - 4.3 - by John White
Adding telemetry capabilities, see the
doc/announcements.md
for details. -
Harden blackhole against high connection rates - by James Aimonetti
Prior, blackhole had no effective tracking of connection count
per-IP or globally. Errant clients were terminating their connection
but not closing the TCP socket, reconnecting, and causing accidental
DoS of the blackhole server.
This PR creates a websocket client in the
kazoo_proper
app to testpings and "high" connection attempts. The PR introduces a
system_config
flag to allow system administrators the ability tolimit concurrent connections per IP address to help limit impact of an
IP creating large amounts of connections quickly.
Additionally, update blackhole to return an error when no auth token
is present.
The kz_cache is updated to allow higher-level apps to associate a
cache key with a PID, flushing the entry on the PID's exit. A helpful
feature is to also allow some exposure to match specs for the purposes
of counting cache entries. Instead of having to fetch a list and
filter in the higher-level code (incurring copying / memory usage),
the
count
API allows the filtering criteria to be specified usingmatch spec grammar and done in ETS via
select_count
. -
[PROD-170]: Announcement Only Mode for vmboxes - 4.3 - by John White
Announcement Only Mode for Vmboxes
This PR adds new functionality to a voicemail box, enabling a mailbox to only play the greeting and advance to the next node of the current callflow.
Announcement only mode can be controlled with the
announcement_only
boolean in the vmbox schema or by the mailbox owner via the voicemail config menu. This default setting for this feature's is disabled orfalse
.Mailbox owners will now hear new options in the voicemail configuration menu as two new prompts have been added to Kazoo Core Media.
Kazoo-Sounds Prompt Changes
Two new en-US prompts have been added to handle this feature and should be imported in conjunction with the upgrade of KAZOO.
-
vm-settings_menu
-
vm-settings_menu_announcement_on
For instructions on how to import prompts, please consult the Kazoo Core Media documentation.
-
-
KZOO-45: Filter just empty strings when normalizing CDRs - by James Aimonetti
An addition to filter_empty fields from the CDR summary response is
causing expected fields like
cost
to be stripped when they are- The intent of the change was to filter keys with empty strings ("")
to reduce payload size.
Instead, let's add a
filter_empty_strings
to narrow down what isremoved from the payload.
4.3.90
Changes for 4.3.90
Changes to branch 4.3
after version 4.3.89
.
Commits
-
KCRO-15: expose transcription capabilities in the crossbar authentication response - by bitbashing
When generating a new JWT for Crossbar the response now includes the cluster id as well as a new object 'capabilities'. The capabilities object conveys services and settings of the cluster so the UI can modify the user experience to match. At this time the only parameters that are exposed are voicemail.transcription.supported if a transcription service is configured with an API key and voicemail.transcription.default to inform the UI transcriptions are created by default.
-
HELP-13433: noop email conversions to avoid errors - by James Aimonetti
On some email attachments (seemingly PDFs) the
iconv
program used toconvert between character encodings (via gen_smtp/mimemail) will fail,
causing the email to be thrown away as invalid. These emails and their
attachments are, in fact, valid and should be processed.
The gen_smtp commit hash is updated to change mimemail to consider
matching
From
/To
encodings as a no-op and avoid the call toiconv
entirely. This allows the PDF to be processed out of the emailfor use by fax_smtp.
-
Notifications for Voicemail Delete Actions - by Noah Mehl
As a user, I may want to receive both AMQP and email notifications when a user deletes a voicemail.
AMQP messages (to the notifications exchange) are sent if voicemails are deleted via DTMF, delete after notify, and for crossbar actions.
A teletype email template: notification.voicemail_deleted is included and can be activated by:
# sup kapps_maintenance migrate # sup teletype_voicemail_deleted init # sup teletype_maintenance restore_system_templates
The teletype template can be made durable by adding it to system_config/notify.default.autoload_modules.
Right now, the voicemail delete template is essentially a copy of the voicemail new template with the Reason added.
This is a PR to 4.3 because we haven't been able to develop against master for a bit. We'll submit a PR to master once we have all of the approvals for 4.3.
-
interaction view by owner - by lazedo
- sorts by billing_seconds
this makes terminated calls preferred
for users with 2+ devices
where a b-leg could be retrieved
for a LOOSE_RACE leg if that device
was called first
- add inception_direction cdr column
so that clients don't need to know the rules
on how to display direction of cdr
origination/termination are the possible values
note:
master version will have more changes and will take a bit longer to complete -
Voicemail Fast Forward and Rewind - Rebased on 4.3 - by Noah Mehl
This is a back ported version of the recently merged: #5662
-
HELP-13212: Exclude attachments from being included if present - by Harenson Henao
master #6338
-
Gateway strategies - by Shvein Anton
This is a feature to allow for random gateways in an offnet document. We have PR'd to 4.3 for the time being until we can develop again for master.
4.3.89
Changes for 4.3.89
Changes to branch 4.3
after version 4.3.88
.
Commits
- fix inbound rate for sms - 4.3 - by lazedo
4.3.88
Changes for 4.3.88
Changes to branch 4.3
after version 4.3.87
.
Commits
-
KCRO-10: expose the message counts per folder when listing vmboxes - by Karl Anderson
When listing the voicemail boxes this adds a new object to each called "folders" if the vmbox has messages. The object contains two properties that represent the quantity of messages in the 'new' and 'saved' folders.
-
HELP-13256: show correct port alerts based on authenticated account id - by icehess
When deciding to how to show port alerts for reseller account, we should check and use authenticated account ID (as it was describ in the comments).
-
Number services for im 4.3 - by lazedo
-
PISTON-1028: use startkey and endkey for get_directory_listing - by Daniel Finke
Fix bug introduced in 3a8ff80 where "no users have been assigned to directory" would always be hit
-
HELP-11566: clarify precedence of call forward vs failover - by James Aimonetti
The
call_forward
object handles configuration for both callforwarding and for failover. In its current implementation, only one
of those features can be "active".
Prior to this change, if
call_forward.failover
wastrue
it wouldbe included on the endpoint object and ecallmgr would treat the
call_forward
settings as a failover endpoint, regardless of thecall_forward.enabled
flag's setting.This change clarifies that if
call_forward.enabled
istrue
, thesettings should only be considered for call forwarding. If the setting
is
false
andcall_forward.failover
istrue
then consider thesettings as a failover endpoint.
4.3.87
4.3.86
Changes for 4.3.86
Changes to branch 4.3
after version 4.3.85
.
Commits
- KZOO-37: address CI issue from cherry-pick - by Karl Anderson
- KZOO-37: address CI issue from cherry-pick - by Karl Anderson
4.3.85
Changes for 4.3.85
Changes to branch 4.3
after version 4.3.84
.
Commits
-
Listener federators and memory improvements - by James Aimonetti
Prior, when a gen_listener needed to federate its queue and bindings
to other zones, it would start_link the listener_federator (and trap
exits). However, should a listener_federator process actually exit,
the parent gen_listener would receive the EXIT message but failed to
have a handle_info clause to restart the process.
Introduce a sofo supervisor for starting listener_federator processes
and restart them if they die unexpectedly (non-normal exits).
Secondly, introduce memory consumption checks and GC gen_listeners
when they exceed 100K in total_heap_size. In addition, copy the binary
payloads as they arrive off the AMQP channel has shown to decelerate
the memory growth as the original binary can be garbage collected
sooner and not count against the gen_listener's "old" heap.
All told, these manual GC runs appear to be minimal and only affect
long-running and busy gen_listeners; even fewer runs needed to release
memory after the binary:copy/1 introduction.
-
KZOO-37: Avoid migrate command to crash when unexpected conditions are found - by Harenson Henao
-
Backport - by Harenson Henao
Master: #6184
-
Add endkey to avoid pulling in other directory listings - by James Aimonetti
With just
startkey
, any directories sorted after the requesteddirectory would also appear in the results. Include
endkey
to ensureonly the requested directory's users are listed.
Update pqc to test that only a directory's users are returned.
-
[KZOO-33] - 4.3 - by John White
-
If not service plan definition or rate is 0 skip ledger debit
-
Fix case condition where errors weren't returning an asr_request
-
4.3.84
Changes for 4.3.84
Changes to branch 4.3
after version 4.3.83
.
Commits
-
KZ00-41: handle number delete conflicts - by James Aimonetti
Previously, when deleting the number document from the account
database, a conflict almost always occurred on the first delete
attempt as the number doc from the number database was used (which
contained a different _rev).
However,
knm_phone_number:retry_conflicts/4
only had code for savingto the target database (the account). The result is that the number
doc (now in the "available" state) would be
ensure_saved
to theaccount database, resulting in number listings for the account to both
show the number belonging to the account and show it as "available",
an internal state that clients should not see.
This changeset provides additional context to handle_bulk_change about
what type of change, 'delete' or 'save', and informs retry_conflicts
of how to proceed.
Secondly, the likelyhood of conflict is high when saving/deleting from
the account database as the JSON object used is the number db's
version.
try_delete_from
has been updated to use just the number asID and lets kz_datamgr build the tombstone and delete accordingly.
-
KCRO-7: new filter to find missing keys OR keys with empty values - by Karl Anderson
If you want to find a document by missing a value for a parameter the only way currently is to use the filter for a missing key. However, this filter does not emit the document if the key is present but the value is empty/null. There is a has_value filter but no inverse of that. This adds a new query filter missing_value that will return a document if the key is missing OR the value is empty.
4.3.83
Changes for 4.3.83
Changes to branch 4.3
after version 4.3.82
.
Commits
- HELP-12984: set account ID on CCVs for conference route_req - by James Aimonetti
- restore circleci config - by Karl Anderson