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
isTranscribingupdate - 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