v3
UCS Server - changelog
All notable changes to this project will be documented in this file.
[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
- (brainless) Added UCS config into Brainless Registry
🐛 Bug Fixes
- Save registry changes
- (brainless) [breaking] Sanitize languages and VPN port in UCS config
⚙️ Miscellaneous Tasks
- 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
- (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
- (email) Don't expose email attachments data in list
- (ai) Send ID as str to AI processor
- (api) Allow column selection in extension list
- (queues) Don't play announcements for inter queue transfers
⚙️ Miscellaneous Tasks
- (ai) Changed attribute for correlation from record_id to id
[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
- (log) Added OTel logging to call events
[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
- (otel) Added call traceparent for OTel
- (otel) Added traceparent to Channel and Call
🐛 Bug Fixes
- (otel) Added OTel traceparent to inbound queues
[4.46.3] - 2026-05-11
🐛 Bug Fixes
- (outbound) Update autoanswer settings on outbound add/update
[4.46.2] - 2026-05-11
🚀 Features
- Expose working_time on inbound queue status
🐛 Bug Fixes
- 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
- (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.
- (queue) Synchronize inbound queue agents to Brainless
- (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
🚀 Features
- (ai) Update call transcription on voicebot handover
- (ai) Add voicebot summary to call handover
🐛 Bug Fixes
- (call) Mute on legacy softphones
⚙️ Miscellaneous Tasks
- (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
[4.43.1] - 2026-04-03
🚀 Features
- (api) Return also ongoing calls in status.call method
🐛 Bug Fixes
- (ai) Rename OSL Voicebot workflow attribute
- (api) Properly answer and hangup call by uniqueid
- (asterisk) Increased DB synchronization timeout to 60 seconds
⚙️ Miscellaneous Tasks
- (inbound) Remove unneeded methods
- (pbx) Unify ring indication across extensions