v3
UCS Server - changelog
All notable changes to this project will be documented in this file.
[4.43.0] - 2026-03-27β
π Featuresβ
- (provisioning) Added device_id to user object
π Bug Fixesβ
- (mobile) Send PUSH notifications with call UUID
[4.42.9] - 2026-03-27β
π Bug Fixesβ
- (provisioning) Allow more than 5 lines on Yealink WP devices
- (call) Generate call.new event immediately for calls into invalid extensions
[4.42.8] - 2026-03-26β
π Bug Fixesβ
- (mobile) Access KV bucket value properly (for director)
[4.42.7] - 2026-03-23β
Apiβ
- (call) Make call/answer/hangup API calls synchronous
[4.42.6] - 2026-03-19β
π Bug Fixesβ
- (dialer) Fixed bug in SQL query that caused endless loop
[4.42.5] - 2026-03-18β
π Bug Fixesβ
- (dialer) Avoid using endless loop in lead provider
[4.42.4] - 2026-03-14β
Reportβ
- (leads) Fixed report for outbound campaign numbers
[4.42.3] - 2026-03-14β
π Bug Fixesβ
- (call) Set SIP Call-ID on channel and notify dialer on called connect
[4.42.2] - 2026-03-12β
π Bug Fixesβ
- (sms) Allow nickname as SMS sender (name instead of number)
- (crm) Added EXE button action
[4.42.1] - 2026-02-22β
π Bug Fixesβ
- (recording) Start recording after attended transfer to queue of not recorded call
[4.42.0] - 2026-01-24β
π Featuresβ
- (dialer) Added AUX for no answer, minimum talk time, and lead expire date
[4.41.3] - 2026-01-21β
π Bug Fixesβ
- (dialer) Store lead hangup causes and subsequent calls
[4.41.2] - 2026-01-21β
π Bug Fixesβ
- (api) Allow user get by username and external ID
[4.41.1] - 2026-01-21β
π Bug Fixesβ
- (lookup) Allow offset and limit for last calls lookup
[4.41.0] - 2026-01-13β
π Featuresβ
- (outbound) Allow override outgoing filter by outbound campaign
- (uphone) Control multiple calls on uPhone softphone
- (sip) Pass UCS uniqueid to IP phones via SIP header
π Bug Fixesβ
- (uphone) Allow call ID in uPhone sdp and candidate methods
- (email) Obtain XOAUTH token for SMTP via new API
- (api) Detect dialer requests for call answer/hangup properly
[4.40.2] - 2025-12-18β
π Bug Fixesβ
- (dialer) Merge lead and outbound metadata properly
[4.40.1] - 2025-12-17β
π Bug Fixesβ
- (outbound) Lookup non E.164 number properly in DB
[4.40.0] - 2025-12-17β
π Featuresβ
- (recording) Modify transcription params after refactor
- (dialer) Allow external lead source for dialers
π Bug Fixesβ
- Store empty strings correctly in transcription results
[4.39.1] - 2025-12-05β
π Bug Fixesβ
- (metadata) Pass SIP prefixed metadata as SIP headers
- (dialplan) Break endless loops and allow X patterns in timeroute/switch/playback destinations
- (metadata) Move SIP from prefix to suffix
- (lookup) Allow lookup result transformation
[4.39.0] - 2025-12-04β
π Featuresβ
- (mobile) Allow removal of application provisioning
π Bug Fixesβ
- (metadata) Allow complete removal of metadata from extensions
[4.38.3] - 2025-12-02β
βοΈ Miscellaneous Tasksβ
- (cdr) Refactored CDR and recording permissions
[4.38.2] - 2025-12-01β
π Bug Fixesβ
- (events) Allow events received from dialers to be notified outside UCS
[4.38.1] - 2025-11-30β
π Bug Fixesβ
- (dialer) Count dialer originated, connected and failed calls in outbound stats
[4.38.0] - 2025-11-28β
π Featuresβ
- (cdr) Added metadata update data transformation callback
[4.37.2] - 2025-11-27β
π Bug Fixesβ
- (ai-driver) Add missing underscore
- Change 'setimental' to 'sentiment'
- (mobility) Use proper types for extensions in UM login and logout
π Refactorβ
- (ai-driver) Rename sentiment structures for consistency
[4.37.1] - 2025-11-23β
π Bug Fixesβ
- (dispatch) Pass dialed number to stasis for dispatcher outgoing calls
- (provisioning) Enable SIP push notifications for Yealink SIP-T32G phones
β‘ Performanceβ
- (events) Drop wildcard event matching
βοΈ Miscellaneous Tasksβ
- (api) Unify UCS HTTP client for caller lookups and event notifiers
[4.37.0] - 2025-11-13β
π Featuresβ
- (stats) Added outbound queue hourly statistics endpoint
- (dispatch) Added support for dispatch workspaces
[4.36.0] - 2025-11-07β
π Featuresβ
- (recording) Return error for each Azure service
- (recording) Move errors to service_statuses, save only on failure
π Bug Fixesβ
- Save services_statuses when no status is failed, apply Ruff format
π Refactorβ
- (recording) Rename custom_error to error
[4.35.0] - 2025-11-04β
π Featuresβ
- (outbound) Added outbound campaign lead retry histogram statistics
[4.34.1] - 2025-10-30β
π Bug Fixesβ
- (fix) Fix version tag from other branch
[4.34.0] - 2025-10-30β
π Featuresβ
- (fix) Fix version tag from other branch
[4.33.2] - 2025-10-30β
π Bug Fixesβ
- (recording) Rename column updated_at to updated in cdr_tags table
- (outbound) Pass queue ID and name for inbound callback requests
[4.33.1] - 2025-10-29β
π Bug Fixesβ
- (nats) Try to get existing bucked before creating new one
[4.33.0] - 2025-10-29β
π Featuresβ
- (recording) Add last_transcription and is_last_transcription fields
π Bug Fixesβ
- (sync) Handle users, extensions and phones using their external ID from IDM
[4.32.0] - 2025-10-17β
π Featuresβ
- Add filename and enable sentiment analysis
- Replace file_path with filename
- (ai) Added confidence settings to tags
- Delete only AI tags before insert, add decision_values
- Add cdr notification for AI driver results
- (api-cdr) Add recording id to call detail endpoint
- (structure) Added needed enums for AI tagging configuration
π Bug Fixesβ
- (inbound) Kick waiting callers only when queue is deactivated (not on every update)
- (recording) Correctly select tag definition for call type 0
- Always include transcription_process
- Delete AI tags before insert, save only tags with confidence
- (ai) Pair fulltext search results on CDR properly
- (recording) Skip non-AI conflicts for insert in cdr_tags
- Set transcription_status as 'error' when saving fails
[4.31.2] - 2025-10-02β
π Bug Fixesβ
- (db) Use transaction properly for position assisted queries
βοΈ Miscellaneous Tasksβ
- Rename python3 branch to master
[4.31.1] - 2025-10-01β
π Bug Fixesβ
- (ai) Use SQL transaction correctly in recording selection
[4.31.0] - 2025-10-01β
π Featuresβ
- (ai-driver) Add STT Service name to the transcription
π Bug Fixesβ
- (recording) Use proper column name for AI transcription timestamp
[4.30.1] - 2025-09-30β
π Bug Fixesβ
- (api) Fixed typo in call.hangup method
[4.30.0] - 2025-09-25β
π Featuresβ
- AI driver integration
- (api) Added phone control via backend API
[4.29.0] - 2025-09-15β
π Featuresβ
- (api) Added method to obtain agent's current calls
- (api) Allow specify attributes for agent.get method
- (provisioning) Add user id and application to list of settings
- (provisioning) Allow superusers setting provisiong settings to other users via target_user_id paramter
[4.28.0] - 2025-09-04β
π Featuresβ
- (outbound) Allow override dialer called ring timeout by outbound campaign
π Bug Fixesβ
- (uphone) Indicate if the call was autoanswered in onCallConnect event
[4.27.0] - 2025-09-01β
π Featuresβ
- (metadata) Added configurable call metadata to allow search
π Bug Fixesβ
- (sql) Added patches from development so we can release version
- (provisioning) Added call metadata
- (synchronization) Handle properly users from IDM with phones without MAC address
βοΈ Miscellaneous Tasksβ
- Enable JS in dev docker nats
[4.26.1] - 2025-08-12β
π Bug Fixesβ
- (provisioning) Set call waiting for Yealing wireless IP phones
- (inbound) Properly handle softphone registration
[4.26.0] - 2025-07-14β
π Featuresβ
- (provisioning) Added Yeastar TA200 support and changed uPhone KV key to Base64
[4.25.3] - 2025-07-07β
π Bug Fixesβ
- (db) Replace ownership with configured DB user in upgrade SQL scripts
- (inbound) Indicate call ringing for agent call legs with too fast uPhone
[4.25.2] - 2025-07-02β
π Bug Fixesβ
- (lookups) Fixed loading of lookup records after recent calls list was added
[4.25.1] - 2025-06-28β
π Bug Fixesβ
- (mobile) Use proper device ID naming in push notifications
- (inbound) Display properly number of waiting/ringing callers handled by external phone agents
Callβ
- (transfer) Handle multiple attended transfers via queues
[4.25.0] - 2025-06-23β
π Featuresβ
- (api) Added AI transcription, sentiment and tags to call detail
[4.24.3] - 2025-06-19β
π Bug Fixesβ
- (call) Report queue ring time in CDR properly
- (uphone) Allow uPhone device to be selected as user softphone device
[4.24.2] - 2025-06-06β
π Bug Fixesβ
- (clone) Activate clone when cloned from inactive user
[4.24.1] - 2025-06-04β
βοΈ Miscellaneous Tasksβ
- (sso) Added debuging to SSO PSK provider
[4.24.0] - 2025-06-03β
π Featuresβ
- (lookup) Return last 10 calls if lookup without string is requested
π Bug Fixesβ
- (build) Copy entry script for SELinux to build
- (http) Handle incorrect content-length value
βοΈ Miscellaneous Tasksβ
- (startup) Moved DB upgrade into UCS and prepared for SELinux
- Add DS_Store to gitignore
- Use tmp file instead of inplace awk to change version in source files
[4.23.3] - 2025-05-31β
βοΈ Miscellaneous Tasksβ
- (api) Unify RPC method calls across protocols
- (debug) Added thread utilization monitoring
[4.23.2] - 2025-05-30β
π Bug Fixesβ
- (api) Retype XML-RPC args to list
[4.23.1] - 2025-05-30β
π Bug Fixesβ
- (api) Use proper args in OAuth token provider
βοΈ Miscellaneous Tasksβ
- (logging) Use correlation logging for RPC API
[4.23.0] - 2025-05-26β
π Featuresβ
- (vmware) Added script for VMware image preparation
- (mobility) Add API method allowing getting device by device id instead of identifier
- (recording) Added call recording on demand
- (ai) Added AI TTS to recording storages and tags
- (ai) Adedd sentiment and summary to recordings
[4.22.1] - 2025-05-12β
π Bug Fixesβ
- (holidays) Fix or 15yo bug fix
[4.22.0] - 2025-05-07β
π Featuresβ
- (api) Optionally include path and queue detail records into status.call
[4.21.3] - 2025-05-05β
π Bug Fixesβ
- (timerouting) Honor holiday fallback route on holidays
- (holidays) 15yo bug in DB sequence...
[4.21.2] - 2025-04-29β
π Bug Fixesβ
- (call) Set properly abandoned flag on outbound calls in QDR
[4.21.1] - 2025-04-28β
π Bug Fixesβ
- (call) Ensure interaction is transferred to agent on attended xfer via queue
[4.21.0] - 2025-04-25β
π Featuresβ
- (uphone) Added STUN servers to device lines
- (uphone) Added client remote IP address as location to user mobility login
- (mobile) Added mobile settings to use rroles
π Bug Fixesβ
- (uphone) Pass return value for sdp and candidates remote control
- (calls) Don't allow CLID override when trunk is set to YES but filter to NO
- (provision) Change uPhone provisioning based on attribute
- (um) Add device_type_id to each line to user mobility response
- (package) Removed pycurl and firebase-admin as they are part of ucs-mobile now
- (mobile) Move mobile app provisioning to proper API context
- (queues) Don't interrupt mass agent suspend/resume when missing permission to one user
βοΈ Miscellaneous Tasksβ
- (provisioning) Cleanup Asterisk features provisioning
- (mypy) Add config enabling checking of untyped defs and disallowing implicit any type parameters
- (pylint) Removed .pylintrc, we use Ruff only
[4.20.0] - 2025-03-28β
π Featuresβ
- (api) Make UCS Tree User accesible via API structure.user
- (nats) Added JetStream KV support and uPhone KV for manager
π Bug Fixesβ
- (nats) Log exceptions for asyncio corutines which aren't awaited for result
- (utils) Strip newline from /etc/uauth/psk in UCS command line utils
- (uphone) Added prefix to NATS JetStream KV bucket
- (uphone) Fixed types of SDP and ICE candidates method arguments
- (route) Removed HSTS middleware, it is already part of HTTPS group
βοΈ Miscellaneous Tasksβ
- (provisioning) Refactored uPhone driver
[4.19.0] - 2025-03-17β
π Featuresβ
- (api) Added UCS JSON specific API
- Also increaset API HTTP server backlog from 5 to 64 requests
- (build) Use Python virtual environment
- (config) Added Traefik support
- (phone) Added INSOFT virtual softphone driver
π Bug Fixesβ
- (build) Sync UV after bumping version
- (db) Don't stop dbsink thread on DB error
- (build) Added dependency to libmysqlclient21 for Ubuntu distros
- (soundfiles) Allow note edit on soundfile directory
- (service) Added 15 second timeout to UCS stop for cluster installations
βοΈ Miscellaneous Tasksβ
- (auth) Allow to read uAuth from configured file
- (tools) Switched commandline ucs-* tools to uAuth
[4.18.4] - 2025-02-08β
π Bug Fixesβ
- (calls) Fixed ACW for attended transfer to queue
[4.18.3] - 2025-02-08β
π Bug Fixesβ
- (api) Return message and data separately in JSON-RPC API error
- (recording) Record final call leg after caller does attended transfer
[4.18.2] - 2025-02-06β
π Bug Fixesβ
- (api) Generate UCSAuth PSK automatically and keep /etc/ucs/auth.psk in sync
[4.18.1] - 2025-02-05β
π Bug Fixesβ
- (soundfiles) Handle soundfile extension properly
[4.18.0] - 2025-02-04β
π Featuresβ
- (auth) Unified API validator for SID argument so we can use UCSAuth
π Bug Fixesβ
- Exclude whoami, ping, version and logout from sid conversion exception as they can handle the user object
- (cluster) Ignore error of pre-start script
[4.17.2] - 2025-01-29β
π Bug Fixesβ
- (recording) Added minimal number of characters in reason of recording download
βοΈ Miscellaneous Tasksβ
- Add .idea to .gitignore
[4.17.1] - 2025-01-06β
π Bug Fixesβ
- (interactions) Create interaction on CALL_NEW event to indicate calls with session progress
[4.17.0] - 2024-12-17β
π Featuresβ
- (roles) Added scopes to roles for application access pemission
[4.16.0] - 2024-12-16β
π Featuresβ
- (api) Added method to get user access rights
- (languages) Added all languages support
π Bug Fixesβ
- (rating) Display proper evaluator in agent rating report
[4.15.0] - 2024-11-25β
π Featuresβ
- (events) Added agent trace and qdr events
π Bug Fixesβ
- (audit) Log recording download and playback separately
[4.14.1] - 2024-11-21β
π Bug Fixesβ
- (email) Close e-mail on reply if close on forward is disabled
- (recording) Storage edit (typo in method name after refactoring)
- (reports) Report hangup cause properly when caller hangup while call rings in PSTN
[4.14.0] - 2024-11-18β
π Featuresβ
- (email) Allow leave e-mail in processing state on forward
- (reports) Added caller and called column to call path report
β‘ Performanceβ
- (provisioning) Don't send leads on Operator provisioning
[4.13.0] - 2024-11-17β
π Featuresβ
- (clid) Added possibility to override phone number for internal calls
[4.12.4] - 2024-11-12β
π Bug Fixesβ
- (recording) Fixed recordig late processing callback
[4.12.3] - 2024-11-11β
π Bug Fixesβ
- (statistics) Fixed swapped talk and ring time from last patch
[4.12.2] - 2024-11-10β
π Bug Fixesβ
- (sso) Fixed and refactored reading principal from ktpass
- (recording) Handle properly UNIX socket notification from Asterisk on RHEL 8
- (interactions) Count talk time only for call.connect event
- (report) Display number of answered emails
[4.12.1] - 2024-11-06β
π Bug Fixesβ
- (report) Allow reports for queues with special characters in their names
- (cdr) Don't generate CDR event from recording for semiattended calls
- (statistics) Count ring time for agent queue statistics properly
[4.12.0] - 2024-11-05β
π Featuresβ
- (leads) Add paging support to outbound campaign list method
- (leads) Allow filter only active leads in outbound campaign API
- (email) Added default e-mail HTML body format into queues
π Bug Fixesβ
- (email) Use Reply-to address when specified by e-mail sender
- (provisioning) Fixed YeaStar TA gateway provisioning
[4.11.2] - 2024-11-03β
π Bug Fixesβ
- (sync) Don't synchronize empty groups from identity management
βοΈ Miscellaneous Tasksβ
- (sync) Improve identity management synchronization logging
[4.11.1] - 2024-11-01β
π Bug Fixesβ
- (oid) Don't synchronize telephones without MAC address from AD
- (metadata) Handle older UCS metadata structure upgrade on the fly.
βοΈ Miscellaneous Tasksβ
- (git) Added ignored reformating commit for Git blame
[4.11.0] - 2024-10-29β
π Featuresβ
- Add role to transcription segments determined by who is call initiator and channel
[4.10.0] - 2024-10-29β
π Featuresβ
- Add transcription status to cdr (call history) so supervisor can see what is already transcribed
[4.9.1] - 2024-10-25β
π Bug Fixesβ
- (recording) Handle storage path with variable date properly