Skip to content

Releases: 2600hz/kazoo

4.3.92

12 Mar 00:20
2373919
Compare
Choose a tag to compare

Generic badge

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 and ecallmgr_fs_xml during creating bridge string won't add Privacy: id header because the Privacy-Hide-Name or Privacy-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, so get_list_value/2

    returned undefined. This caused the call to lists:foreach/2 to

    crash.

    Instead, fetch succeeded with [] as a default and only process if

    the result is a non-empty list.

  • add state and used_by back into _read_only - by lazedo

4.3.91

09 Mar 19:02
5d58c08
Compare
Choose a tag to compare

Generic badge

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 thedoc/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 test

    pings and "high" connection attempts. The PR introduces a

    system_config flag to allow system administrators the ability to

    limit 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 using

    match 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 or false.

    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

    1. 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 is

    removed from the payload.

4.3.90

28 Feb 00:13
fb66d88
Compare
Choose a tag to compare

Generic badge

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 to

    convert 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 to

    iconv entirely. This allows the PDF to be processed out of the email

    for 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

23 Feb 17:49
030e0b3
Compare
Choose a tag to compare

Generic badge

Changes for 4.3.89

Changes to branch 4.3 after version 4.3.88.

Commits

4.3.88

14 Feb 00:41
ce84352
Compare
Choose a tag to compare

Generic badge

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 call

    forwarding and for failover. In its current implementation, only one

    of those features can be "active".

    Prior to this change, if call_forward.failover was true it would

    be included on the endpoint object and ecallmgr would treat the

    call_forward settings as a failover endpoint, regardless of the

    call_forward.enabled flag's setting.

    This change clarifies that if call_forward.enabled is true, the

    settings should only be considered for call forwarding. If the setting

    is false and call_forward.failover is true then consider the

    settings as a failover endpoint.

4.3.87

11 Feb 21:41
Compare
Choose a tag to compare

Generic badge

Changes for 4.3.87

Changes to branch 4.3 after version 4.3.86.

Commits

4.3.86

10 Feb 23:36
Compare
Choose a tag to compare

Generic badge

Changes for 4.3.86

Changes to branch 4.3 after version 4.3.85.

Commits

4.3.85

10 Feb 22:48
b918e2b
Compare
Choose a tag to compare

Generic badge

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 requested

    directory would also appear in the results. Include endkey to ensure

    only 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

05 Feb 18:26
3389744
Compare
Choose a tag to compare

Generic badge

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 saving

    to the target database (the account). The result is that the number

    doc (now in the "available" state) would be ensure_saved to the

    account 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 as

    ID 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

03 Feb 23:01
9374664
Compare
Choose a tag to compare

Generic badge

Changes for 4.3.83

Changes to branch 4.3 after version 4.3.82.

Commits