v3
UCS Server - changelog
All notable changes to this project will be documented in this file.
[5.9.0] - 2026-09-07
🚀 Features
- (dispatch) Configurable ringing of calls with no agent assigned
- Added working_time indicator to outbound queue status
🐛 Bug Fixes
- (booking) _set_agent_peer no-op guard
- (dispatch) Drop RingMode import that broke UCS start-up
- (agents) Stamp last_interaction when a call leaves the agent, not at final hangup
- (email) Reassing incoming e-mail when replying on reply
[5.8.1] - 2026-09-01
🐛 Bug Fixes
- Removed accidentaly added reporting plugin
[5.8.0] - 2026-09-01
🚀 Features
- Added full-text search to e-mails
🐛 Bug Fixes
- Resolve current_peer on mobility login, reconcile stale values, only assign agent's own line
[5.7.5] - 2026-08-25
🐛 Bug Fixes
- Use dialed legs count instead of call state for CANCEL logic
- Issue EVENT_CALL_CANCEL when agent doesn't answer call from queue
- Force EVENT_CALL_CANCEL on external agent phones in PSTN
- Typo in Channel dispatchPendingEvents -> dispatchPendingQueueEvents
[5.7.4] - 2026-08-25
🐛 Bug Fixes
- Don't release agents with external calls into booking with reconcile
[5.7.3] - 2026-08-24
🐛 Bug Fixes
- Handle multiple call blind transfers via queues
⚙️ Miscellaneous Tasks
- Moved PostgreSQL indexing logic to sql module
[5.7.2] - 2026-08-23
🐛 Bug Fixes
- (nats) Catch OSError, not the undefined OSerror, and do not block the loop while retrying
⚙️ Miscellaneous Tasks
- Changed INSOFT kiosk deploy directory (for BeFree)
[5.7.1] - 2026-08-23
🐛 Bug Fixes
- (call) Refuse a transfer to a busy agent instead of dropping the customer
- (nats) Stop doubling every UCS API call after a NATS reconnect
[5.7.0] - 2026-08-22
🚀 Features
- (softphone) Added device into user mobility events
🐛 Bug Fixes
- Update brainlessdb
[5.6.6] - 2026-08-20
🐛 Bug Fixes
- (bridge) Don't register the semi-attended transfer transport as a dialed destination
- (call) Fall back to the default outgoing filter when the extension has none
- (bridge) Drop the destroyed-channel guard superseded by the ari single-publish fix
[5.6.5] - 2026-08-19
🐛 Bug Fixes
- (call) Survive semiattended transfers whose destination is not the Dial app
[5.6.4] - 2026-08-18
🐛 Bug Fixes
- (provisioning) Update version of settings when deleting template user
- (call) Set proper user_id on call when dialing user's external number
[5.6.3] - 2026-08-15
🐛 Bug Fixes
- Upgrade braunlessdb
[5.6.2] - 2026-08-15
🐛 Bug Fixes
- (brainless) Restore agent answered-stats update in UCS (revert 1baaddd6)
[5.6.1] - 2026-08-15
🐛 Bug Fixes
- (call) Exclude hung up calls immediately from API call.current
- (email) Don't reassign original e-mail agent on reply
- (brainless) Move agent answered calls stats update to ARI
- (emal) Change queue and agent in reply when changed original message
[5.6.0] - 2026-08-12
🚀 Features
- (dispatch) Added abandoned calls to outbound campaign feature
⚙️ Miscellaneous Tasks
- (email) Unify e-mail reply and forward template usage
[5.5.0] - 2026-08-11
🚀 Features
- (email) Allow additional replies to e-mails
🐛 Bug Fixes
- (brainless) Resync device lines into the bucket on device.line.* events instead of only at startup
[5.4.1] - 2026-08-06
🐛 Bug Fixes
- (call) Set last dialed channel on broadcast queue connect to have connected as B side instead of last rang channel
[5.4.0] - 2026-08-06
🚀 Features
- (email) Added configurable number of automatically assigned emails
- (phone) Added configurable offline forward if no agent is associated
🐛 Bug Fixes
- (email) Fix sanitizer configuration so href is not stripped from anchor...
- (call) Don't hangup call on blind transfer, cancel it and reset connected information
🚜 Refactor
- (ai) Keep id/uniqueid out of stored transcription
[5.3.11] - 2026-08-04
🐛 Bug Fixes
- (stats) Ignore non-agent changes in agent first login time
- (call) Generate event for semiattended call transfers from ARI queues
[5.3.10] - 2026-07-31
🐛 Bug Fixes
- (status) Emit terminal call.hangup for blind-transferer and detach them from a call continuing to an external destination
[5.3.9] - 2026-07-30
🐛 Bug Fixes
- (callcontrol) Link blind-transfer-into-queue Local caller to its bridge peer so queue events pair and agents see the call
[5.3.8] - 2026-07-28
🐛 Bug Fixes
- (nats) Handle race condition when UCS AMI starts after UCS server
[5.3.7] - 2026-07-24
🐛 Bug Fixes
- (email) Fix sanitizer configuration so href is not stripped from anchor elements in outgoing emails
- (email) Allow links in outgoing emails
- (email) Prefer html multipart alternative
- (booking) Release immediate reservations and periodically reconcile agent peer state so a missed event can't starve a READY agent
🚜 Refactor
- (email) Avoid reusing queue variable
- (email) Rename reused variables
- (email) Use where_ prefix for assignEmail filter variables
- (email) Rename reused variables
- (crm) Remove dead None initializations
- (email) Rename reused variables
- (email) Remove Any from agent_status typing
- (email) Remove Any from updateNumbers
🎨 Styling
- Apply ruff formatting
- (email) Apply ruff formatting
⚙️ Miscellaneous Tasks
- (ruff) Ignore B904, we don't use raise from
[5.3.6] - 2026-07-17
🐛 Bug Fixes
- (brainless) Map SQL penalty to KV priority in user.queue updates so supervisor priority changes reach ari
- (config) Include suspended in queue agents select so queue settings saves don't wipe suspension from the KV
[5.3.5] - 2026-07-16
🐛 Bug Fixes
- (brainless) Sync runtime agent suspend/resume into the inbound KV so ari stops ringing suspended agents
[5.3.4] - 2026-07-16
🐛 Bug Fixes
- (brainless) Stamp last_interaction at call hangup instead of connect so leastrecent orders by reliable, final, end-of-call data
[5.3.3] - 2026-07-15
🐛 Bug Fixes
- (status) Surface ringing of Stasis-blind-transferred calls to the target operator (link orphan Local pair via bridge, guard same-call setCall, ignore hold/unhold from transferred-away channels)
- (status) Repair Local pair mislinked to its own dial target instead of creating a degenerate self-call
[5.3.2] - 2026-07-14
🐛 Bug Fixes
- (provisioning) Import ORIG_CALLER/LAST_EXTENSION from transferer on blind transfer of Stasis calls
- Add missing newline
🚜 Refactor
- (queue) Add type hints to queue.py
🧪 Testing
- Enable pytest unit tests for ucs modules
- Add tests for email
⚙️ Miscellaneous Tasks
- Replace ruff select ALL with a curated rule set
- (agent) Add type hints to EmailQueueAgent
- (email) Add type hints to Email state attributes
- (email) Annotate local collections in Email
- (email) Annotate normalize_attachments return and stats_stored
- (email) Annotate load() where dict
- (mypy) Add override for untyped ucs_data
- (ruff) Enable W rules to catch missing EOF newline
[5.3.1] - 2026-07-14
🐛 Bug Fixes
- (agents) Call agents booking in run method so we don't override thread start method
[5.3.0] - 2026-07-13
🚀 Features
- (phone) Make complete provisioning for INSOFT kiosk
🐛 Bug Fixes
- (email) Unpack multiple values in email attachment sender
- Added external number handling into agent booking
- Booking start order fix
- Trigger call.connected when dispatch channel joins
- (dispatch) Emit call.connected when agent joins dispatch bridge
- (email) Read attachment fields by key instead of unpacking dict
- (transfer) Normalize external targets for blind/consult transfer so they route via filter-internal
⚙️ Miscellaneous Tasks
- Add email sender typing to enhance type safety
- (email) Correct attachment types in outgoing message
- Add dev dependency group
- Move mypy config into pyproject.toml
- Fix deprecated ruff lint config
[5.2.0] - 2026-06-25
🚀 Features
- (queues) Added agent reservation for multichannel
- (queues) Return peer and line_id in successful agent reservation
🐛 Bug Fixes
- (sync) Fixed logging of IDP synchronization
- (uphone) Activate and deactivate uPhone for INSOFT kiosk device ID too
- (mobility) Always issue all currently associated lines in UM login event
⚙️ Miscellaneous Tasks
- (queues) Accept agent ID as argument in reservation
[5.1.0] - 2026-06-16
🚀 Features
- (phone) Added INSOFT kiosk device provisioning
🐛 Bug Fixes
- (nats) Subscribe to all events in main thread
- (inbound) Handle inbound queue agent external phones in PSTN
- (email) Discard empty blockquotes from messages
[5.0.5] - 2026-06-15
🐛 Bug Fixes
- (ai) Make workflow_logical_id optional for OSL voicebot
⚙️ Miscellaneous Tasks
- (calls) Be verbose about inbound queue events
[5.0.4] - 2026-06-14
🐛 Bug Fixes
- (queues) Calculate properly threshold wait and ring time for inbound to outbound abandoned calls
- (mobility) Make user primary extension sticky on device line
🚜 Refactor
- (api-call) Guard waiting for event with checking whether event is none to prevent type error
⚙️ Miscellaneous Tasks
- (queues) Removed anget queue assigment profiles
[5.0.3] - 2026-06-12
🐛 Bug Fixes
- (brainless) Handle devices synchronization exception
[5.0.2] - 2026-06-11
🐛 Bug Fixes
- (xmpp) Get rid of protocol logging from Jabber server
[5.0.1] - 2026-06-11
🐛 Bug Fixes
- (build) Use HTTPS to fetch ucs-data to project
[5.0.0] - 2026-06-11
🚀 Features
- (dispatch) Added call handling for dispatch bridges
- (ai) Added assistant extension type
- (api) Make call.dial synchronnous and return new call data
- (api) Make call.answer and call.hangup synchronnous and return new call data
- (ai) Made AI service extension general
- (ai) Added processor to AI Extension
- (api) Return also ongoing calls in status.call method
- (ai) Update call transcription on voicebot handover
- (ai) Add voicebot summary to call handover
- Expose working_time on inbound queue status
- (otel) Added call traceparent for OTel
- (otel) Added traceparent to Channel and Call
- (log) Added OTel logging to call events
- (brainless) Added UCS config into Brainless Registry
🐛 Bug Fixes
- (brainless) Recognize properly legacy INSOFT softphones
- (brainless) ISO time format hotfix for NATS
- (dispatch) Handle dispatch enter via user phone extension
- (callcontrol) Set call state if added channel to bridge is ringing or connected
- (brainless) Mirror agent state to user
- (dispatch) Handle properly dispatch hold, disconnect and outbound calls
- (ai) Handle AI assistant extension calls properly
- (mobile) Check if mobile application is main before sending APN PUSH call notification
- (ai) Pass call uniqueid via SIP header to uPhone for Assistant
- (provisioning) Format filter ID properly in sip.conf
- (mobile) Added missing displayname in profile provisioning
- (ai) Rename OSL Voicebot workflow attribute
- (api) Properly answer and hangup call by uniqueid
- (queue) Synchronize inbound queue agents to Brainless
- Ignore API-format lines from device events
- Remove stale updateAsterisk call after ARI migration
- Log error when agent channel is missing on queue call
- Publish call.cancel and call.ringing per queue ring leg
- Update user.last_interaction and inbound agent stats for selector strategies
- (inbound) Handle inbound queue join rejections
- (otel) Added OTel traceparent to inbound queues
- (status) Set agent channel state for ARI hold/unhold
- Update ucs-data version and uv lock
- (agents) Don't evict previously-ringing agents on RINGALL concurrent ring
- (ai) Send ID as str to AI processor
- (api) Allow column selection in extension list
- Save registry changes
- (brainless) [breaking] Sanitize languages and VPN port in UCS config
⚙️ Miscellaneous Tasks
- (inbound) Handle inbound queues outside of Asterisk
- (data) Added external UCS data module for Brainless DB
- (data) Synchronize users to Brainless DB
- (brainless) Upgrade to synchronous version
- (brainless) Generalize collection updates
- (brainless) Sync devices and inbound queues
- (callcontrol) Cleanup module initialization and startup
- (brainless) Added synchronization of inbound queue agents
- (brainless) Added extensions and linked ucs/lib as ucs_data source
- (brainless) Use git to fetch ucs-data module
- (brainless) Update device line associated user on user mobility login/logout
- Cleanup DispatchBridge handling in callcontrol
- (inbound) Remove unneeded methods
- (pbx) Unify ring indication across extensions
- (core) Switched to Python logging via aiobp
- (async) Improved exception logging from async code
- (ai) Renamed extracted_data to metadata for voicebot data
- (ai) Don't get channel names from voicebot result
- (ai) Force channel names for voicebot summary
- (ai) Changed attribute for correlation from record_id to id
- Update brainless to include unhashed key name in brainless_registry
[4.51.1] - 2026-06-10
🐛 Bug Fixes
- (email) Use default template for new e-mails
[4.51.0] - 2026-06-09
🚀 Features
- (email) Provide cids in email detail endpoint to be able hiding inline email attachments from attachment list
- (email) Filter e-mails by tags and indicate if they have attachments
🐛 Bug Fixes
- (email) Don't expose email attachments data in list
- (queues) Don't play announcements for inter queue transfers
[4.50.0] - 2026-06-04
🚀 Features
- (uphone) Added DTMF support
- (email) Allow e-mail fetcher deliver info via NATS
[4.49.0] - 2026-05-25
🚀 Features
- (notifier) Added SMS action to Event notifiers
- (login) Added apps JWT claim checking
[4.48.0] - 2026-05-22
🚀 Features
- (sms) Added MEX GATE SMS gateway driver
[4.47.0] - 2026-05-21
🚀 Features
- (queues) Allow to list leads across all user outbound campaigns
[4.46.3] - 2026-05-11
🐛 Bug Fixes
- (outbound) Update autoanswer settings on outbound add/update
[4.46.2] - 2026-05-11
🐛 Bug Fixes
- (autoanswer) Indicate beeps on inbound and outbound queue calls
[4.46.1] - 2026-05-04
🐛 Bug Fixes
- (call) Serialize distinctive ring to call events
- (call) Parse Bellcore-rX rings to enum int value X
- (call) Make sure distinctive is integer for enum values
[4.46.0] - 2026-05-03
🚀 Features
- (call) Added distinctive ring support on queues
[4.45.3] - 2026-04-27
🐛 Bug Fixes
- (sip) Load configured SIP on UCS startup
[4.45.2] - 2026-04-24
🐛 Bug Fixes
- (sip) Make SIP port configurable
[4.45.1] - 2026-04-23
🐛 Bug Fixes
- (mobile) Send call event type in PUSH notification.
- (agent) Update ACW settings for non-callcenter calls from role without UCS restart
[4.45.0] - 2026-04-21
🚀 Features
- (queues) Link outbound campaign depended callback inbound queues
- (queues) Suspend outbound on depend inbound agent membership delete and add inbound on mebership add
- (uphone) Added hanshake ID to SDP/Candidates methods
- (call) Added distinctive ring to inbound queues and outbound campaigns
⚙️ Miscellaneous Tasks
- (ucrm) Avoid pertson auto-assign to interaction when multiple matches exist
[4.44.1] - 2026-04-15
🐛 Bug Fixes
- (dialer) Send SIP NOTIFY about dialer connected call out of dialog
[4.44.0] - 2026-04-14
🚀 Features
- (agent) ACW switch from AUX flag to agent teams moved from parameters to teams
[4.43.2] - 2026-04-08
🐛 Bug Fixes
- (call) Mute on legacy softphones
[4.43.1] - 2026-04-03
🐛 Bug Fixes
- (asterisk) Increased DB synchronization timeout to 60 seconds
[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