Skip to content

Changelog - UCP (Unified Communications Portal)

All notable changes to UCP (Unified Communications Portal) will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[2.10.0] - 2026-06-05

Added

  • calls: drag & drop
  • chore: add ucp bug to docs
  • ucp-conference: normalize Dial-tab input before submit (PU-14)
  • ucp-conference: drop E.164 gate for Dial tab (PU-10)
  • cc-dashboards: bump version
  • queue-crm: parse callee id name & number
  • conferences: UCP "Invite People to Active Call"

Changed

  • sms: redesign UCP SMS UI to match Chat module

Fixed

  • 3way: merge inbound audio on hold
  • calls: refine drag dock stacking, scope, and grip visibility
  • styles: close unclosed .switch rule in CheckboxSlide
  • 3way: re-attach remote media on conference re-INVITE (SUP-320 inbound audio)
  • 3way: transference edge case
  • login: stabilize MSAL instance across re-renders
  • login: micorosoft oauh flow
  • settings/contacts: refresh integrations from BE after OAuth callback
  • settings/calendar: refresh integrations from BE after OAuth callback
  • calendar: handle null data response when provider has no events
  • sipsessions: prevent hold re-invite when answering inbound calls
  • calls: stop filing disposition-render notify failures as bugs
  • login: oauth security issue
  • conferences: remove transfer icon during conference

[2.9.0] - 2026-04-29

Added

  • sms: MMS drag in files feature
  • sms: add outbound MMS capability
  • docker: install private bitbucket deps via SSH mount
  • theme: add Nobela customer theme
  • development: sdd tools update
  • development: Add SDD integration
  • SMS: ixica/mysms MMS
  • sip-session: open outbound queue CRM on progress and hangup
  • callcenter-crm: open outbound queue CRM on dial progress and on call end when enabled (not only after answer); still gated by PSTN-style dial (To more than 6 digits) and enabled_outbound
  • cc-dashboards: bump supervisor panel to v1.3.5
  • cc: upgrade cc-dashboards to v1.3.4
  • 3way: add 3way conference controls and detailed info
  • cc-dashboards: bump to v1.3
  • cc-dashboards: upgrade cc dashboards to v1.2
  • ucp: disposition localStorage retry and related fixes
  • callcenter-crm: gate inbound CRM by popup timing and refresh token for URLs - Open inbound queue CRM on INVITE or after answer per popup_timing (and legacy open_in_new_tab) - Share Desktop Connector, /crm, and named-window delivery via deliverInboundQueueCrmPopup - Refresh access token when CRM URL uses {ACCESS_TOKEN} and the session token is empty
  • callcenter-crm: gate inbound CRM by popup timing and refresh token for URLs - Open inbound queue CRM on INVITE or after answer per popup_timing (and legacy open_in_new_tab) - Share Desktop Connector, /crm, and named-window delivery via deliverInboundQueueCrmPopup - Refresh access token when CRM URL uses {ACCESS_TOKEN} and the session token is empty
  • dashboards: use cc-dashboard version
  • sip: pstn-oriented opus sdp, strip red, unify modifiers
  • cc-dashboards: import supervisor panel from library
  • theme: add Nexge theme
  • follow-ups: reminders & events
  • cc-dashboards: split unavailable to DND and Break fix(cc-dashboards): on call counting
  • callcenter: slot-based queue crm for embedded and new-tab
  • dashboards: add scrolling
  • calls: q_headers merge for lifecycle and call forward overhaul
  • ucp-calls: disposition routes and attended/conference transfer notify
  • calls: q_headers merge for lifecycle and call forward overhaul
  • ucp-calls: disposition routes and attended/conference transfer notify
  • sidebar: show logout button on desktop >= 2.0.73 and send logout-success
  • supervisor: portal SLA parity, dial-type breakdown, queue card width
  • callcenter: supervisor v2 portal parity and agents UX
  • dashboards: supervisor panel add counters and filters
  • caller-id: add custom caller id information
  • dashboards: add agents performance and agents cards to supervisor panel

Fixed

  • webrtc: raise Opus max bitrate to 24 kbps
  • 3way: on hangup only owner leaves conference
  • callcenter: stabilize supervisor fetchTags and bump cc-dashboards
  • 3way: transfer on incoming call
  • sipsessions: persist sip leg call-id through teardown
  • calls: restore disposition dropdown in blocking modal
  • sip: use mutate-in-place opus fmtp modifier return
  • sip: return explicit type and sdp from opus fmtp modifier
  • sip: preserve description.type in opus fmtp modifier
  • crm: lead ticket id
  • contacts: adapt native checkbox to dark theme with color-scheme
  • styles: replace hardcoded colors in Switcher with theme tokens
  • dashboard: on call counter
  • chat: hide delete button for direct message conversations
  • config: use /ucp/config.json path in dev mode and remove legacy config.js.sample
  • sipsessions: harden invite hangup answer cleanup and promise resolution
  • bugs-reporter: support dark theme in error boundary page
  • callforward: persist off-mode destination and composite readback
  • callforward: persist off-mode destination and composite readback
  • dashboards: add dnd break tile back
  • dashboards: add Today option back
  • profile-picture: use proper MIME type in data URIs for profile pictures

[2.8.0] - 2026-03-18

Added

  • callcenter: report agent mute state by call id
  • supervisor: feed supervisor panel with cc snapshots
  • supervisor: add queue group feature
  • alerts: listen to permission changes for microphone and notifications
  • cx-channels: loader
  • cx-channels: full screen support using a flag url cx_fullscreen=true
  • cx-channels: full screen flag
  • cc: supervisor panel -> receive & parse data from presence ws
  • desktop: add google oauth
  • crm: status support dark theme
  • crm: table cases add sort
  • crm: some style improvement on elapsed column
  • crm: cases table add elapsed column
  • crm: case detail some css in status
  • crm: in case detail add close and resolve action
  • crm: add filters
  • crm: remove call id, add a buton beside title instead
  • crm: show case disposition
  • crm: show case transcription
  • calls: show/hide blind transfer option based on account config
  • devices: Disables devices based on account settings
  • chat: Sorts contacts by last message time
  • persona-v2: Adds disposition column to leads table
  • notification: Increases notification display duration
  • settings: audio -> call -> set ringtone based on account config
  • calls: outbound -> callee id -> visibility
  • leads: Adds case detail modal to leads view
  • leads: list cases instead leads
  • leads: remove filter
  • leads-modal: Replaces CaseDetailModal with LeadCasesModal
  • leads-sidebar: Adds Leads functionality to the application
  • agent-state: update only after receiving ws event
  • calls: queue calls -> crm link -> access token var
  • call-transcription: Improves transcription handling and display
  • transcription: send raw PCM audio for Gemini Live API
  • crm: improve tabs UI and add iframe close tab event
  • callcenter: crm -> show/hide close tab option
  • desktop: support multiple customers with separate desktop versions
  • ucp-lite: Implements PWA requirement for UCP Lite.
  • changelog: auto create
  • supervisor: add queues multi selector
  • ucp-lite: Updates activity refresh icon styling
  • ucp-lite: Updates theme toggle to cycle through modes
  • ucp-lite: Implements dark mode theme toggle
  • ucp-embedded: keypad, call's activity logs & contacts
  • ucp-lite: Resizes window in Lite mode
  • lite: Enables lite mode to switch to iframe
  • docs: add changelog md
  • crm: Adds case detail modal to leads management
  • meetings: Adds meeting background selection
  • crm: Adds case creation via websocket
  • crm: Adds case management functionality to CRM
  • whitelabel-title: Fetches and sets whitelabel title
  • contacts: rename crm to global
  • meetings: Refactors conference video layout and screen share
  • supervisor: queues data padding agent filters per queue agents queues multiple selector agents show available by default
  • meetings: Adds random background images to conference view
  • leads: Adds leads management functionality
  • cc: new agent and supervisor panels
  • meetings: Enables real-time transcription translation
  • meetings: Adds meeting transcription stop event
  • whitelabel-favicon: Adds favicon support
  • whitelabel-favicon: Adds favicon support
  • chat: add cache
  • theme: Adds theme toggle functionality to sidebar
  • call-detail: Enhances Call Detail Modal with AI Summary
  • activity: Enhances call, voicemail, and meeting activity displays
  • chat: Enables chat functionality based on user setting
  • calls: Enables manual call transcription toggle
  • calls: Adds live call transcription feature
  • chat: Restores last active chat on app load
  • meetings: Enables Markdown support for AI summaries
  • meetings: Improves meeting details modal layout
  • meetings: Adds meeting summary display
  • meetings: Updates captions sidebar visibility
  • meetings: Filters out system agents from participant lists
  • meetings: Improves meeting participant display
  • meetings: Enhances live captions with speaker coloring
  • meetings: Adds speaker-specific colors to transcript entries
  • meetings: Removes redundant isTranscribing update
  • meetings: load is creator, is recording, is transcription on reload
  • meetings: Enables meeting transcription feature
  • meetings: Enables conditional rendering of recording controls
  • meetings: Adds live meeting transcription feature
  • meetings: Decouples meetings feature from Jitsi app ID
  • meeting: recording
  • meeting: add meeting detail modal and fix participant names
  • chat: Enables chat functionality based on user settings
  • chat: add Three.js animation for empty chat state
  • contacts: add drag and drop to reorder sidebar sections
  • contacts: add Queues section to sidebar for callcenter agents
  • conference: Renames participant number to extension
  • conference: add sound when participant leaves
  • conference: add sound and visual effect when participant joins
  • conference: show participant full name and profile picture
  • profile-picture: Adds image cropper component
  • chat: add link preview with Open Graph metadata
  • chat: allow sending text, audio and files together in one message
  • chat: add audio message recording and playback
  • chat: add delete message functionality
  • chat: improve code block arrow key escape logic
  • chat: create custom emoji picker with theme support
  • chat: allow multiple file selection at once
  • chat: send images and text together as single message
  • chat: auto-convert dash to bullet list and continue on new line
  • chat: add rich text editor with formatting toolbar
  • chat: add markdown support for messages
  • chat: convert emoji shortcodes and emoticons to emojis
  • chat: add date separators between messages
  • chat: group consecutive messages from same sender
  • chat: move chat panel to right side of layout
  • contacts: restore tags filtering functionality in sidebar
  • chat: add Slack-style chat sidebar to contacts panel

Changed

  • waves: add missing image
  • build: add staging
  • build: add staging
  • oauth-microsoft: label and icon
  • crm: Updates page heading
  • call-transcription: Updates the WebSocket URL source
  • crm: create dedicated CRMListener for iframe messages
  • crm: Adds CRM component with tab functionality
  • agent-state: Adds delay after setting agent state
  • agent-state: Fix agent state sync: re-fetch backend state after status change
  • supervisor-dashboard: Removes auto-refresh functionality
  • theme: Updates ChiOX theme to improve contrast.
  • new-theme: Adds ChiOX customer theme
  • leads: Adds leads functionality to the contacts sidebar.
  • theme: Adds theme support based on domain
  • moh: Reduces width of MOH text container
  • moh: Increases width of MOH text container
  • moh: Improves MOH component's appearance and responsiveness
  • crm: table
  • voicemail: remove log
  • call: show badge without text
  • call: badge order
  • call: recording space reserved
  • call: separator bar
  • call: Refines call component styles and UI/UX
  • sidebar: Reduces size of contact bar
  • keypad: Adjusts dialed number box width on web
  • keypad: Refactors keypad styles for improved UI
  • keypad: Adjusts keypad position for web source
  • call-detail: Adjusts Call Detail Modal width and waveform
  • sidebar: Adjusts contact compact list item padding
  • meetings: Removes toggle captions button.
  • meetings: invite logic
  • theme: use theme.border for activity filters in dark mode
  • hangup-hover: Improves UI transitions and styling
  • recovery-password: add dark theme support to auth pages
  • linter: Refactors codebase and improves eslint config
  • linter: Refactors and enhances application features
  • linter: Refactors and optimizes component imports
  • chat: lighten code block background color
  • chat: remove message bubbles for Slack-like design
  • chat: consistent icon sizes and button styles

Fixed

  • cx-channels: move cx_fullscreen from sessionStorage to Redux
  • callcenter: harden disposition render diagnostics and recovery
  • contacts-bar: tags selector flotant window visibility
  • desktop-mac-download: dmg instead zip
  • modal: reusable -> access to onClose func
  • chat: empty animation -> canvas api usage on old browsers
  • contacts-bar: list -> contact -> get initials
  • notification: browser api -> safety access
  • conference: notification melody -> cleaning up
  • desktop: use default latest.yml when theme customer is undefined
  • auth: reduce delay and add retry for login_token_based flow
  • build: sync node_modules from cache when missing or incomplete
  • branding: update ApxIT domain to uc.apxit.net
  • axios: retry mechanism after 401 -> prevent infinite loop
  • get-leads: loop
  • desktop: Fixes desktop download URL generation
  • ucp-lite: Enables iframe mode regardless of source
  • leads: Refactors leads list to fetch all leads
  • contacts-sidebar: collapse-button
  • whitelabel-favicon: add validation
  • call-date: Aligns call/voicemail datetime to the right
  • calls: Adjusts the position of the call window
  • reset-password: Updates reset password URL generation
  • chat: remove extra space below audio when message has no text
  • chat: uniform padding around chat input container

[2.7.0] - 2025-12-17

Added

  • conference: add product tour for conference feature
  • conference: intelligent video grid layout based on participant count
  • chat: Introduces a new chat feature, enabling real-time messaging between users
  • conference: Refactors conference component initialization
  • conference: Adds conference invitation notification
  • conference-invite: Enables conference invitation functionality
  • diposition-modal: show call info
  • conference: end conf go to menu
  • conference: add menu to create or join to room
  • conference: using livekit SFU server
  • sidebar: collapsable
  • sidebar: collapsable
  • callcenter: supervisor panel -> queue agents -> columns refactor
  • tile-view: queues -> show count of idle agents
  • home: preferences -> call forward -> restrictions to enabling
  • alerts: notifications -> do not show if app it's embedded
  • calls: set disposition -> notification message -> add disposition id
  • app: use react location instead of browser global var
  • callcenter: agent panel -> queues -> logged in col header
  • ucp-login: Adds Chrome Extension login support
  • ucp-embed-login: Enables login via Chrome Extension
  • fax-cover: Adds fax cover page functionality
  • fax-multiple: Enables users to send multiple PDF files as fax
  • calls: headers -> direction -> evaluate c2c calls
  • calls: disposition -> 3rd level subdisposition key/value
  • calls: disposition -> 3rd level subdisposition
  • calls: wrap up timer during disposition form
  • calls: set timer before the call is answered
  • config: ui layout -> enable/disable sections based on config
  • calls: disposition blocking
  • contacts-bar: profile images -> use gravatar or default avatar
  • callcenter: agent outbound queue -> process ws event
  • callcenter: agent state -> process ws event
  • agent-state-disabled: Disables agent status on permission
  • parent-messenger: Adds logout message receiver
  • calls: cc -> crm link -> call id var
  • ucp-embed: Adds token-based login route
  • callcenter: agent state -> cumulative available time
  • app: presence -> process logout message
  • new-theme: added
  • calls: disposition -> subdispositions -> 2nd level key/value type
  • queue-crm: Opens CRM on outbound call based on queue config
  • calls: set disposition -> custom type
  • cx-channel-notification: on incoming msg
  • calls: agent skills
  • on-change-agent-state: send msg to parent
  • on-change-agent-state: send msg to parent
  • disposition: send msg to parent
  • desktop-pwa: download button
  • desktop-pwa: download button
  • cc: supervisor panel -> calls actions -> coach
  • bugs: reporting -> add hostname
  • agent-panel: on login/logout ensure correct queue outbound is set
  • agent-panel: on login/logout ensure correct queue outbound is set
  • agent-panel: ensures correct outbound queue is set
  • queue-auto-answer: ring 2 seconds
  • alerts: info -> follow up type
  • app: use prettier to set a code indentation rule
  • app: error boundaries

Changed

  • conference: Removes participant adding functionality
  • conference: Enhances end call button UI
  • conference: Updates LiveKit URL to use dynamic domain
  • modal: Updates mobile modal styles
  • devices: Restructures device component for better UI
  • modal: Refactors Download Desktop Modal
  • mobile-modal: Enhances mobile download modal
  • call-activity: Enhances callcenter agent panel appearance
  • call-activity: Improves user details window display
  • call-activity: Updates button color on hover
  • call-activity: Improves call recording option styling
  • conference: Updates config property name
  • conference: Uses config flag to show conference option
  • login: Adds border to login form in dark theme
  • input-placeholder: Enhances input field styling for dark mode
  • call-rate: Improves star rating appearance
  • call: Updates clear button colors for consistency
  • call: Improves call option hover states in dark mode
  • call: Improves call popup UI and styling
  • agent-panel: Applies theme variables to call components
  • settings-tones: Improves UI theme consistency
  • settings-personal: Adds default avatar for users
  • settings: Updates bar styling to use theme variables
  • dark-theme: Applies theme to AI Lab components
  • dark-theme: Replaces default avatar with icon
  • dark-theme: contact profile picture
  • contact-buttons: Enhances contact button styling and UX
  • persona-contact: Improves contact list item layout and styling
  • dark-theme: Updates styling to align with new theme
  • dark-theme: Refactors CheckboxSlide styles for theming
  • dark-theme: Updates theme variables for UI consistency
  • dark-theme: Refactors styling to use semantic theme variables
  • calls: add calls & popups state logs
  • docker-dev: Updates target host for Docker environment
  • docker-dev: Simplifies Docker setup and improves config
  • docker-dev: Configures proxy settings based on environment
  • docker-dev: Adds Dockerfile and Nginx configuration
  • theme: change image
  • staging: set base path ucp_staging instead staging
  • parent-messenger: using facade pattern with ts
  • theme: dark
  • callcenter-update-queue-call: using vars
  • theme: new
  • linter-issues: #3
  • linter-issues: #2
  • deploy script: print remote
  • linter-issues: #1

Fixed

  • call-button: Updates contact bar search button styles
  • disposition: condition to show
  • hide-from-number-util: add some validations
  • show-disposition: case ext to ext
  • calls: show disposition & rate form for transferred calls
  • settings: contacts -> list google accounts
  • recording-modal: avoid exception if transcription cannot be obtained
  • calls: parse call headers -> access to 'to' sip header
  • audio: output -> check if setSinkId method is available
  • callcenter: agent panel stats -> custom datetime range filter
  • calls: disposition form -> properly handling the accessing to the data
  • disposition: Avoids errors when disposition is undefined
  • disposition: Handles potential undefined calls array
  • disposition: Avoids errors when accessing nested properties
  • disposition: Fixes undefined property access
  • disposition: Guards against undefined form dispositions
  • diposition: Avoids error when popups.list[calls[0]?.id] is undefined
  • calls: outbound calls -> disposition evaluation
  • disposition: Avoids error when 2nd subdisposition is undefined
  • disposition: Fixes nested disposition access
  • disposition: Fixes disposition subdisposition access
  • calls: queue outbound -> crm url vars
  • calls: disposition form -> visibility during ucp load
  • call: Avoids error when agent skills list is null
  • confirm-disposition: Avoids error when form is undefined
  • attend transfer: Handles potential null values in transfer destination
  • ai-assist: Updates socket URL
  • account-bar: items list -> save
  • account-bar: items list -> scrolling
  • disposition: Fixes potential undefined subdisposition access
  • disposition: Fixes potential null reference error
  • embed: topbar
  • call: Handles undefined disposition type
  • agent-stats: 1 month
  • agent-update: case queue empty
  • set-outbound-call: on agent panel
  • calls: disposition -> form -> reset subdisposition values
  • activity: calls -> player

[2.6.0] - 2025-08-17

Added

  • agent-panel: config disable queue login logout
  • agent-panel: config disable queue login logout
  • app: add eslint and run it in a pre-commit hook
  • app: bugs reporting -> add context information
  • embedded: major refactor

Changed

  • version-file: add to the build
  • version-file: add to the build
  • version-file: add to the build
  • version-file: txt

Fixed

  • reject-second-call: add missing import
  • embedded: calls -> disposition -> exception using text field
  • show-close-call-popup: case transferred call
  • contacts: add missing global contacts import

[2.5.0] - 2025-08-08

Added

  • event-incoming-call: add q customer call id
  • desktop: pwa
  • call-forward: set keep caller id
  • sip-sdp: ip modifier public to private
  • sip-sdp: ip modifier public to private
  • sip-sdp: ip modifier public to private
  • sip-sdp: ip modifier public to private
  • calls: omit disposition & rate setting after blind transfer
  • calls: do not send queue post api call anymore
  • preferences: dnd -> visibility status based on account config
  • home: don't show download desktop modal after login
  • calls: cc -> evaluate disposition visibility per queue
  • calls: cc -> disposition -> restricted options list per queue
  • agent-panel: agent stats -> select datetime range
  • listener: support incoming msgs from parent window
  • agent-panel: agent states
  • calls: notify parent window several events
  • calls: disposition form -> mandatory fields
  • calls: disposition form -> not show on transferred calls
  • last-activity: refresh button
  • agent-panel: limit number of tabs
  • recordings: transcription -> sentiment analysis
  • dev-tools: remove fullstory and sentry
  • calls: inbound -> notify parent window
  • calls: caller/callee id number -> check if it matches with personal contacts
  • last-activity: calls & voicemails -> transcription -> evaluate feature status of account
  • stun: from backend
  • contacts: items -> action buttons new layout
  • auto-answer-c2c: from account config
  • agent-stats: add time range
  • agent-stats: add time range
  • agent-panel: add agent stats
  • ringtone: offer standard and custom options
  • iframe: support full screen
  • activity: cals filters
  • call-activity: add button to copy call id
  • calls-activity: add button to copy call id
  • calls-activity: add button to copy call id
  • zendesk: crm
  • contact-sms: start sms conver from sidebar contact
  • contact-sms: start sms conver from sidebar contact
  • embedded: show callcenter status change
  • embedded: support change callcenter status
  • profile-picture: button delete
  • user-profile-picture: on sidebar header
  • user-profile-picture: on contact list
  • user: profile picture

Changed

  • logo: height & width
  • favicon: add new one
  • favicon: svg -> png
  • sip-sdp-modifier: codecs
  • after-diposition: remove set agent state
  • lab: set cad
  • ci: remove not used tasks
  • button: removed duplicated key width
  • call-mock: removed duplicated key
  • commented-code: remove
  • supervisor-panel: border
  • stats: format time in days hh:mm:ss
  • call-voicemail-style: font size, width
  • deploy-script: python -> bash
  • ucp-embed: remove document title
  • slider: use from @mui lib
  • caller-id-name: use sip header
  • sidebar-show: sms and callcenter
  • frame-reusable: unify style
  • frame-reusable: unify style
  • home: prevent unmount
  • supervisor-panel: prevent unmount
  • agent-panel: css
  • agent-panel: css
  • agent-panel: css
  • default-server: lab
  • fix-live-reload: start with vite from zero
  • account-topbar-blocks: fix list should have a unique
  • crm-list: fix list should have a unique
  • account-bar: fix memory leak
  • bugs-system: add customer
  • bugs-system: capture exceptions from onclick user interactions
  • bugs-system: send sourcemap to ucp directory
  • bugs-system: add project name
  • bugs-system: copy source map on bugs directory
  • bugs-system: add test
  • bugs-system: add version
  • bugs-system: copy source map on bugs directory
  • bugs-system: copy source map on bugs directory
  • bugs-system: copy source map on bugs directory
  • bugs-system: copy source map on bugs directory
  • bugs-system: copy source map on bugs directory
  • bugs-system: copy source map on bugs directory
  • bugs-system: report
  • sip-register: capture err
  • deprecated-electron-json: remove get
  • audio-input: meter
  • sipaccount: add comments
  • theme: change logo
  • is-embedded: from util
  • release-notes: disabled
  • collaboration-unread-messages: get only if is enabled
  • devices-list: remove timeout to dispatch
  • redux-logger: disabled by default
  • logs: remove those that are not useful
  • sms-view: improve style
  • profile-picture: loader
  • profile-picture: input button
  • sms-send-outbound: wait event confirmation
  • profile-picture-contact: get only if has
  • user-profile-picture: 200 instead 404 when not exist
  • field-input: support loading
  • user-profile-picture: header style

Fixed

  • on-invite: missing import getQueueById
  • queue-auto-answer: race condition second call
  • logo: case image whitelabel
  • logo: case image whitelabel
  • supervisor-parse-queues: add validation
  • queues-list-sort: add validation
  • calls: controls -> hold & keypad options visibility
  • keypad: display
  • desktop-download: from topbar
  • download-transcription: add validation
  • supervisor-view: parsing calls add validation
  • update-agent-registration-callcenter-dashboard: add validation
  • callcenter: supervisor panel -> spy/barge cc calls
  • calls: cc -> outbound -> disable disposition
  • api-call: disposition
  • contact-delete: add missing import
  • fix(modal-desktop): typo operating instead operative
  • parse-queues: add validation
  • account-bar: outbound cid -> ignore cc
  • parsing-call-queue: add validation
  • calls: omit disposition & rate setting after transferring
  • calls: multi level disposition validation
  • parse-call-form: add validation
  • iterating-session-receivers: define var
  • delete-personal-contact: add missing import
  • iterating-session-receivers: add validation
  • parse-call-to: add validation
  • call-set-sub-disposition: form validation
  • parse-call-by-session-id: add validation
  • salesforce-sanitize-number: case null
  • parsing-queue-dids: add validation
  • parsing-sip-session: add validation
  • parsing-queue-extension: add validation
  • parsing-callcenter-calls: add validation
  • calls: info -> caller id number -> evaluate q-caller-id-number
  • calls: inbound -> queue crm url parsing
  • contact-list: on tile view
  • fax-number: from keypad
  • sip-session-get-receivers: exception
  • agent-login: exception
  • agent-stats: table width and refresh
  • peer-connection-get-stats: access to undefined
  • useContext: missing import
  • call-disposition: access to undefined
  • call-state: access to undefined
  • auth-c2c-extension: from embed
  • agent-stats: css width
  • call-rate: access to undefined
  • react-select: dependency
  • sms-background: dark theme
  • dark-theme: sms
  • dark-theme: colors
  • activity: calls filter
  • bugs-system: point to cad
  • bugs-system: create instance after get auth token
  • sms-inbound: case zero messages
  • collab: reload
  • parse-call: from key
  • parse-call: disposition and rate
  • call-parse: get call id
  • call-parse: get call id
  • personal-contacts: menu z index
  • sms-sort: by notifications
  • sms-popup: to
  • sms-get: parse
  • personal-last-name: form value
  • sms: new contact

[2.4.0] - 2025-03-11

Added

  • zoom: add zero
  • zoom: commands
  • cx-channels: zoom menu
  • cx-channels: zoom out 10% when screen width is less than 1600
  • calls: incoming calls -> evaluate hide caller id feature
  • chrome-extension: link to store
  • contacts: sidebar -> trasfer call option per contact
  • chrome-extension-login: added
  • calls: disposition -> evaluate status per account
  • home: devices -> remove add devices feature
  • tile-view: queues

Fixed

  • queue-call: parse api request
  • crm: tabs -> call vars
  • calls: cc -> post call api request after finishing
  • sms: validate e164 number format
  • sms: first sms message from a new chat
  • salesforce-call-log: outbound call
  • ucp: calls -> white screen after the call is disconnected

[2.3.0] - 2025-01-23

Added

  • calls: show contact name on outbound calls
  • settings: contacts & calendar -> microsoft -> ui improvements
  • settings: contacts & calendar -> microsoft integration

Changed

  • new-theme: added

[2.2.0] - 2025-01-15

Added

  • salesforce: call log
  • custom-domain: cx
  • custom-domain: on desktop download
  • custom-domain: create teams url based on domain
  • ai-lab: inject audio on call
  • ai: lab
  • agent-panel: queues list sorting
  • click-2-call: ring all devices
  • theme: new
  • ai-assist: from queue
  • call-transcription: using deepgram
  • screen-recording: on a call
  • screen-recording: on a call
  • salesforce: incoming call
  • salesforce: listener
  • provisioning-pnp: scroll
  • provisioning-pnp: clear logs on switch enabled
  • provisioning-pnp: logs
  • sidebar: show/hide desktop logout button
  • sidebar: show or hide logout option based on account config
  • settings: show or hide fmfm section based on account config
  • agent-panel: calls history -> table refactor
  • post-call-api-request: add call id
  • sms: sort chats by most recent
  • branding: new
  • callwaiting-tone: set frequency and volume
  • calls: blind transfer -> allow input phone numbers
  • calls: set disposition -> multi level type
  • transfer: on tile view
  • agent-panel: calls history -> agent note
  • mattermost: show unread messages count on the tab title
  • mattermost: show unread messages count
  • collaboration: open embedded or in a new tab checking if is ugpraded
  • sip: on invite -> set early media

Changed

  • config-js: remove
  • date-tests: toDateBySeconds
  • tests: vitest
  • sentry: source map
  • sentry: add ucp version in the event
  • sentry: ignore axios 401
  • sentry: enabled on production
  • sentry: point to new account
  • redux-logger: only enabled on development mode
  • ws-goai-service: proxy on development mode
  • performace: redux state cdrs, faxes and voicemails
  • avatar: use react-avatar instead react-gravatar

Fixed

  • ai-lab-call: match condition
  • sip-re-register: add loop
  • signup: add missing import
  • recording-transcription: handle err
  • sentry: ci
  • settings: camera
  • login: from onboard
  • login: from onboard
  • embedded: show attend transfer button condition
  • embedded: close on call ends
  • salesforce: dial number with symbols
  • reset-password: validation -> strength
  • calls: transference -> close form if call is finished
  • embedded: dark theme disabled
  • settings: moh -> player
  • sip-js-reconnect: loop
  • agent-panel: calls history -> get call rating
  • agent-panel: calls history -> agent disposition -> edit button
  • calls: set disposition -> white screen
  • call-box: z position
  • callcenter-dropdown: status
  • stun: setting conf
  • mattermost: reload once to mitigate migration issue
  • calls: set disposition -> save follow up note
  • mattermost: set dark theme
  • mattermost: refresh unread count when user view a channel
  • main-numbers: opacity
  • last-activity: list cdrs -> loading status
  • sip: early media -> disable ringing tone

[2.1.0] - 2024-08-07

Added

  • settings: personal -> edition permission only for admins
  • callcenter: agent panel -> set agent's default queue for outbound calls
  • last-activity: rows spacing improvements
  • dark-theme: sync cx channels
  • dark-theme: added
  • embedded: calls -> disposition form
  • call: prevent 2 calls with the same destination per account
  • calls: campaigns -> evaluate lead mask to show cid number
  • calls: restriction to make a new one when other is being connected
  • disposition: follow up type
  • calls: popup -> adapt ui to new disposition fields
  • calls: set rate -> evaluate feature status per tenant
  • disposition-notes: always visible
  • post-call-api: outgoing call
  • follow-up: notes
  • follow-up: notes
  • disposition: follow up
  • queue-post-call-api-request: after set diposition
  • queue-call: disable call rating
  • release-notes: modal
  • new-theme: added
  • new-theme: added
  • queue: auto-answer
  • disposition: outbound calls
  • crm: desktop
  • crm: desktop
  • calls: popups -> recording indicator & controls
  • logout: propagate to desktop app
  • settings: company -> show only if account is signup
  • login: credentials login -> evaluate security policy configuration
  • apps: desktop & mobile download -> visibility based on account config
  • sanitization-number: before start the call
  • call-rate: optional
  • disable-desktop-modal: configurable
  • calls: bulk close finished calls
  • callcenter: supervisor panel -> list queues based on restriction
  • new-theme: added
  • stun-servers: per account
  • camera-setting: added
  • camera-settings: added
  • logo: added
  • resize: all screens
  • contacts-bar: header -> show location
  • response-screen: on resize
  • tile-view: ui
  • callcenter: ui -> supervisor panel

Changed

  • disposition: improvements
  • api-call: do request on backend
  • disposition: inbound and outbound calls

Fixed

  • account-bar: outbound cid
  • calls: callcenter -> outbound calls -> check destination status only if agent is logged in into some queue
  • dark-theme: cx popup
  • dark-theme: dialpad
  • dark-theme: desktop download modal
  • dark-theme: calendar btn
  • dark-theme: activity btn
  • call-icon: on a mask campaign call
  • caller-call-history: remove + char
  • mask-caller-id: apply on last activity
  • mask-caller-id: apply on agent panel
  • mask-caller-id: apply on active call
  • mask-caller-id: improve the mask
  • mask-caller-id: read bool
  • logout: on new session detected
  • wave-lib: api changed
  • call-rating: outboing calls
  • call-rating: on a outbound call
  • api-call: number
  • outgoing-calls: disable call rating
  • api-request: after call hangup
  • release-notes: on desktop
  • set-agent-state: after set disposition
  • auto-answer: if zero calls
  • crm-home: send to desktop
  • fmfm-profile: remove
  • new-disposition: field
  • audio-input-meter: leak
  • favicon: change background
  • tag-validation: when color is invalid
  • sidebar: callcenter -> redirect to agent/supervisor page
  • faxes-activity: remove duplicate timestamp
  • recovery-email: link
  • last-activity: faxes -> datetime
  • agent-panel: calls history
  • callcenter: supervisor panel -> white screen when queues are empty
  • agent-panel: change login status
  • agent-panel: change login status
  • callcenter: agent panel -> calls history -> edit disposition -> list custom dispositions
  • settings: contacts & calendar -> show only if google integrations feature is enabled for the tenant
  • mic-permission: on desktop app on macos
  • last-activity: play & transcript options only if there is recording
  • settings: company -> open smartpbx
  • settings: company -> remove main number selection
  • popup-title: cx channels
  • cx-channels: height
  • responsive-ui: last activity & account bar -> improvements
  • responsive-ui: last activity & account bar
  • share-screen: emit event

[2.0.0] - 2023-12-27

Added

  • disposition: added
  • activity: calls & voicemails -> recordings -> play & transcript modal
  • jitsi: join guests
  • jitsi-moderator: only creators are moderators
  • jitsi-moderator: #1
  • leave-site: show always
  • jitsi: improvement
  • hangup-calls: on close window
  • jitsi: added
  • new-customer: theme
  • dev-config-url: var
  • crm: open using sip invite
  • crm-url: by whatsapp
  • set-agent-state-available: after agent set disposition and qualify the call
  • callcenter-call: close enabled by disposition set
  • app: embedded -> ui
  • crm: hide instead close
  • crm: hide instead close
  • crm-tabs: instead unique window
  • calls: active call popup -> ui improvements
  • deploy-staging: script
  • crm: tab
  • rename: customer
  • callcenter: agent view
  • ucp: ui -> major improvements

Changed

  • sip-account: remove commented code

Fixed

  • callcenter: agent -> queues -> login / logout
  • callcenter-status: agent login
  • sip-hold-unhold: set codecs
  • cdrs: duplication
  • cx-channels: msg popup
  • cx-channels: msg popup
  • callcenter-agent-panel: hide instead unmount
  • crm-logout: cause unmount
  • crm-logout: cause unmount
  • crm: show
  • calls: active calls popups -> options -> open in agent panel -> visibility
  • calls: active calls popups -> keypad
  • callcenter: agent panel -> queues -> login/logout from all queues
  • crm-tab: select latest
  • crm-is-agent: validation
  • crm-event: filter
  • cx-channels: login
  • dtmf: set 100 instead 1000
  • app: ui -> background

[1.19.0] - 2023-08-28

Added

  • new-theme: added
  • last-activity: set different icons for call, voicemail & fax
  • login: sign in using google -> migration to new library
  • dialpad: paste-numbers
  • login: sign in using microsoft/azure
  • config: environment -> config vars -> from .json file

Changed

  • script-deploy: production

Fixed

  • sidebar: omnichannel -> visibility based on account omni status
  • callcenter: agent status
  • contacts-bar: list -> scrolling due to calls handling
  • app: favicon path
  • get-config-json: avoid cache

[1.18.0] - 2023-07-28

Added

  • new-theme: added
  • recording: stereo to mono
  • user-agent: inform ucp version
  • desktop-version: send info
  • theming: new customer added
  • get-last-activity: show error
  • callcenter-agent-status: active, training, away and break
  • user-voicemail: call button
  • voicemail-pin: set and get
  • voicemail: remove
  • omni-notification-count: in the sidebar button
  • omni-popup: message received
  • lead-call: able to set voicemail
  • omni: icon
  • omni: show
  • omni: handle app reset
  • omni: set platform by message tunnel
  • omni: visibility
  • chatwoot: integration
  • dialpad: typing
  • monitoring: fullstory
  • call-waiting: tone
  • mfa: login flow -> multi factor authentication step

Changed

  • agent-login-logout: not use 304 anymore
  • bundler-and-sipjs-upgrade: vite instead cra and upgrade sip.js
  • bundler-and-sipjs-upgrade: vite instead cra and upgrade sip.js
  • callcenter-agent-states: since custom states added
  • get-desktop-links: using latest.yml
  • sip-logs: disable
  • dnd: loading

Fixed

  • attend-transfer: case refer a session
  • version: do not show on desktop
  • sip-reconnect: transport and registration
  • get-latest-yml: prevent cache
  • ring-tone: stop when user answer/hangup the call
  • tests: node version
  • login-err-msg: case user not found
  • app: version
  • vite: public url
  • favicon: name
  • favicon: name
  • cc-agent-status: use event
  • fmfm: not ring field not show it correctly
  • cc-agent-status: validation when timestamp last change not exist
  • cc-set-state: on 304 response
  • linter: precommit
  • tone-state-machine: callback
  • leak-audio: minor
  • leak-audio: minor
  • leak-audio: state machine tone handle case more than 2 calls
  • audio-leak: state machine tone
  • audio-leak: ring tone singleton
  • audio-leak: callwaiting tone singleton
  • audio-leak: disconnect tone singleton
  • desktop-listener: duplication
  • settings: hide sign up sections for accounts that are not signup
  • remove-voicemail: endpoint
  • dialpad: zero case
  • dialpad: add keycodes
  • keypad: open
  • logout: hangup all calls
  • tile-view: route
  • parse-callcenter: data

[1.17.0] - 2022-07-21

Added

  • callcenter-event-url: on answered incoming call
  • callcenter: handle agent hangup
  • callcenter-calls-view: separate calls
  • sms: added send button
  • cdr-fetch: only latest
  • callcenter: supervisor panel
  • moh: settings -> company -> moh section

Changed

  • webapi: use typescript
  • styles: use typescript
  • configjsapi: use typescript lintering with @typescript-eslint
  • molecules: use typescript
  • atoms: use typescript
  • utils: use typescript

Fixed

  • reload: added validations
  • registration-event: ignore if user agent is server
  • callcenter-calls-view: width agent
  • sms-bar: only show in case of contact selected
  • buy-dids: reseller dids -> filter
  • buy-dids: reseller dids -> do not limit results
  • linter-config: live reload
  • live-reload: remove env

[1.16.0] - 2022-04-22

Added

  • settings: company -> general -> set main company number

Changed

  • plans: change text of some features

Fixed

  • unique-session: add date

[1.15.0] - 2022-04-06

Added

  • phone-numbers: free numbers
  • new-theme: added
  • google-oauth: get google oauth client id from window.config
  • new-theme: added
  • google-integration: added
  • add-google: customer
  • numbers: buy dids with sms capability using voip innovations

Changed

  • memoized-state: using reselect
  • contacts-optimization: useSelector memorizing
  • invitations: list free numbers
  • login-or: added

Fixed

  • google-integration: add support
  • buy-number: list reseller dids

[1.14.0] - 2022-02-16

Added

  • billing: billing system major improvements

Fixed

  • refresh-profiles: on enabled fmfm

[1.13.0] - 2022-02-08

Added

  • google-integration: validated
  • devices: new device -> gs_wave

Fixed

  • chat: access to last message
  • dialpad: behind chat
  • send-sms: encode to and body

[1.12.0] - 2022-01-15

Added

  • payment-methods: input, validate and save payment methods (when payments gateway is payhost)

Changed

  • add-theme: branding

Fixed

  • fax: number typed

[1.11.0] - 2022-01-11

Added

  • google-integration: customer added
  • send-fax: from dialpad
  • fax: to any number
  • fax-info: modal
  • fax: system

Changed

  • popup: action
  • activity-row: reusable row

Fixed

  • fax-visibility: check
  • fax-number: parsing
  • fax-download: unique button
  • fax-download: tiff case
  • fax: only show fax info if result exist
  • fax-info: t38 used value
  • fax-info: read boolean
  • fax-info: validation

[1.10.0] - 2022-01-01

Added

  • payments-gateway: set currency symbol in all prices

Fixed

  • google-emails: list when a new is added

[1.9.0] - 2021-12-27

Added

  • sms-visibility: show if user have sms numbers
  • reset-password: validation of password security requirements
  • sms: interface

Changed

  • new-theme: added
  • sms: improvements
  • sms: better names
  • calendar-visibility: customer and user based

Fixed

  • google-support-validation: contacts and calendar
  • has-sms: sidebar

[1.8.0] - 2021-11-27

Added

  • phone-numbers: phone numbers section to users with free service plan
  • phone-numbers: phone numbers section to users with free service plan
  • buy-numbers: search available numbers to purchase

Changed

  • google: buttons
  • login: error cases

Fixed

  • branding: customer label

[1.7.0] - 2021-11-21

Added

  • security-policies: implementation of password age
  • invitations: validation of emails based on account users
  • reset-password: validate user password based on password history

Changed

  • google: tester users
  • logo: replaced
  • logo: replaced

Fixed

  • fmfm-range-time: decimals
  • callcenter-scroll: remove it
  • circleci-config: build -> node.js image version

[1.6.0] - 2021-10-26

Added

  • reset-password: implementation of password length security policy
  • login: representation of error messages
  • Build
  • export-lib: tokenize
  • header-environment: staging, production or localhost
  • login: change login routes
  • webchat: ui of webchat
  • webchat: UI of webchat

Changed

  • button-background: current plan
  • configjs-api: one liner

Fixed

  • calendar: calendar events without datetime
  • favicon: favicon

[1.5.0] - 2021-10-07

Added

  • tile-view: section

Fixed

  • tile-view: toggle mode

[1.4.0] - 2021-10-06

Added

  • google-calendar: calendar section and representation of calendar events

Fixed

  • payments: check for payments methods only for signup accounts
  • indicators: show low credit warning only in signup accounts

[1.3.0] - 2021-10-04

Added

  • payments: custom payment gateway -> custom payment methods form
  • ucp: integration with custom payment gateway
  • unique-session: logout oldest

Changed

  • dnd: logic in backend
  • tags: improve UI

Fixed

  • button-bussiness: in sidebar

[1.2.0] - 2021-09-10

Added

  • profile-add: hide when fmfm is disabled
  • tags: filter

Changed

  • dnd: in user list
  • answer-background-color: green

Fixed

  • fmfm-profile: body

[1.1.0] - 2021-09-03

Added

  • user-agent: header
  • get-fax-number: point to go server
  • ucp: send multiple invitations and buy phone number process

Changed

  • fmfm-and-voicemail-to-email: moved to settings
  • get-devices: point to gpbe

Fixed

  • mobile-app-label: in modal

[1.0.0] - 2021-08-17

Added

  • ucp: ui improvements on invitation flow, payment methods and login
  • ucp: UCP V1 -> New sections and features for Signup Accounts

Changed

  • fmfm: move logic to backend

Fixed

  • fmfm: use device name instead id
  • fmfm-device: initialize off
  • login: authentication from onboard and signup
  • ucp: credit balance warning message and remove currency symbol of service plans

[0.25.0] - 2021-07-30

Added

  • download-recording-by-user: enable / disable

[0.24.0] - 2021-07-23

Added

  • hide-login: on desktop
  • mobile-modal: download & install

Fixed

  • desktop: login
  • desktop: log in

[0.23.0] - 2021-07-06

Added

  • mobile-magic-link: instead qr
  • global-addressbok: contacts

Fixed

  • business-call: typo
  • business-call: use presence id if extension not exist
  • magic-link: mobile
  • destination: validation empty array
  • destination: validation empty array

[0.22.0] - 2021-06-15

Added

  • dnd: propagate and get update

[0.21.0] - 2021-06-13

Added

  • reload: by ws msg

Fixed

  • get-google-contacts: only if is enabled the integration

[0.20.0] - 2021-06-03

Added

  • registrations: load and reload
  • preferences: visibility per account
  • AudioContext-singleton: to avoid audio issues
  • signup: invite users from signup accounts, new login (traditional & google).
  • input-output-device: save in local storage selected
  • hide-google-add: on desktop
  • google-multiple-account: support

Changed

  • login-token-based: using react hooks
  • cdr-endpoint: poiting to go server
  • new-theme: added

Fixed

  • gitignore: add .idea/ path
  • gitignore: add .idea/ path
  • routing: route calls to python server to api/v1 prefix
  • queues-loading: show in callcenter section
  • device-keep-used: after select input on settings
  • sidebar: item selected

[0.19.0] - 2021-04-22

Added

  • personal-contacts: Add | Edit | Remove

Fixed

  • when-remove-integration: remove only google contacts
  • google-email-integration: in login
  • google-email-integration: in login

[0.18.0] - 2021-04-19

Added

  • validate-registration: before make a call
  • contacts: filter contacts by extension || number
  • google-redirect: to get contacts
  • keypad-improve: icons
  • touchmode-unique-dialpad: then remove sidebar dialpad
  • privacy-policy: in home page
  • contacts-bar-header: add location info in contacts bar
  • add-privacy-policy: in login page

Changed

  • title: to have consistency with other sites

Fixed

  • access-length: of undefined in main numbers
  • lose-audio: caused by dtmf
  • blind-transfer-dialed: parse before execute
  • show-privacy-policy: if have link
  • corrupt: when-close-teams
  • privacy-policy: show / hide condition

[0.17.0] - 2021-03-31

Added

  • google-contacts-incoming-calls: match contact by caller id number
  • download-recording-permission: for users

Changed

  • get-did-numbers: migration endpoint to goportalbackend
  • get-main-numbers: migration endpoint to goportalbackend

Fixed

  • notification-login: when credentials are invalid
  • numbers-unification: when request fail, show reload button
  • did-validations: for arrays
  • validate-admin-type: exist
  • outbound-cid-number: interface status when has no numbers

[0.16.0] - 2021-03-17

Added

  • google-contacts: Google Contacts Integration
  • new-theme: added
  • blind-transfer: input & search contacts
  • validate-3way-uuids: start 3way call if exist the 3 uuids
  • tooltips: blind transfer and attend transfer
  • 3way: call

Fixed

  • contacts-list: in case more than one event stacked
  • fmfm: dont show active label in profiles list when fmfm is disabled
  • fmfm: enable fmfm when active profile is created / edited
  • sdp-manipulation: HOLD / UNHOLD

Summary of Major Features

Security & Compliance

  • Enhanced security features and compliance improvements

AI & Automation

  • AI-powered features and automation capabilities

Communication Features

  • Real-time communication enhancements

User Experience

  • Improved user interface and experience

Infrastructure & Performance

  • Performance optimizations and infrastructure improvements