Changelog - Go Portal Backend¶
All notable changes to Go Portal Backend will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.118.0] - 2026-06-04¶
Added¶
- call-recording: return extension and tags on per-user recording summary
- usage-charges: audit cdr rerate and harden offnet-only rerate job
- usage-charges: add cdr rerate job for offnet usage charges
- usage-charges: include zero-rated onnet external calls in rate_report
- reports: apply filters to CSV file download
- reports: emit journey_timeline for inbound calls report
- roles: custom roles allow to create admin - allow to assign only custom roles
- date-format: add per-user and account date format preference
- queues: add sticky agent routing queue fields and cc_connect views
- monitoring: slack alert on critical ssl cert state
- monitoring: collect & expose SSL cert expiration
- cx: broadcast message_updated to presence WS
- roles: add smartpbx roles permission - flag configurable
- provisioning: add phone config preview for all manufacturers
- ucp-conference: blind-transfer falls back to other_leg_call_id when callee initiates conference (PU-13)
- docs: API docs update
- ucp-conference: cascade hangup of remaining participants on owner hangup (PU-12)
- ucp-conference: cross-instance conference reconstruction (PU-11)
- cx: forward attachments in cx_message presence event
- login: accept mobile-only Google audience on /ucp/login/oauth
- ucp-conference: narrow E.164 gate to external-only (PU-10)
- conferences: finish conference on all participants hangup
- cx-push: enrich title with inbox + read-receipt skip + 15s debounce
- cx-push: self-heal chatwoot webhook subscriptions on /cx/config
- auth: magic-link login endpoints for the new QVOICE Platform mobile app
- cc-reports: add sla columns to queues activity report
- queue: add post api call subdispositions variables
- export: add usage charges to exportable reports
- conferences: UCP "Invite People to Active Call" Lets an agent on an active call invite additional internal users, external contacts, or dialed numbers as conference participants, without putting the other party on hold. The backend originates the extra legs silently and joins them into a Kazoo conference room created on demand.
Changed¶
- auth: magic-link claims carry account_id (not name)
Fixed¶
- reports: usage charges round divergence
- rabbit: use durable shared queues for sms/livekit/fax, auto-recover mismatch
- cc-dashboards: ws race condition + tests
- usage-charges: satisfy golangci-lint on cdr rerate
- migration: pins reports
- conference: ucp conference edge case
- ucp: expand recurring events when fetching Google Calendar
- queues-calls: skip cc_campaign rows on queues_cdrs report
- reports: users charges csv
- queues-calls: skip inbound rows with QVOICE Platform.cc_campaign
- webphone: index out of range on webphone users
- reports: pins reports cost
- cx: normalize cx_message created_at to unix int
- login: accept native-mobile Google id_token on /login/oauth
- queues: add customer_call_id field to queues
- login: oauth security issue
- chatwoot-client: tolerate int message_type + timestamps in ConversationDetails
- onboard: detach goroutine context so invitation email survives 202 response
- auth: move native magic-link endpoint under /onboard/v1
- call-invite: allow external/PSTN destinations in conference dial-action
[2.117.0] - 2026-05-08¶
Added¶
- cache: fix crash in cache
- mobile: persist push platform on ucp_mobile_cloud device
- ratedeck: add logging to improve ratedeck debugging
- users: add bulk actions
Fixed¶
- storage: Google OAuth server override domain
- users: bulk creation -> tags
- storage: use account domain override value for redirect url
- cdrs: caller id name replacement on hot desking
- reports: pins
- accounts: dedup account ids
- cache: account deadlock
- whatsapp: evict stale unlinked linking clients after TTL
[2.116.0] - 2026-04-29¶
Added¶
- reports: add missed calls exportable report
- cc: leads csv download
- apns: instrument VoIP push pipeline with publish→ack timing
- ai-assistant: add KB types and account-features adapter
- sms: add outbound MMS capability
- devices: clear ucp_mobile_cloud push token on logout
- development: sdd tools update
- mobile: publish push_token_updated event to rabbit
- development: Add SDD integration
- devices: view list_by_QVOICE Platform_push_token
- devices: persist push token on ucp_mobile_cloud
- devices: ucp_mobile_cloud provisioning endpoint
- cx: remove cx agent on user delete
- leads: Fix lead pagination
- reports: add new pins reports
- SMS: ixica/mysms MMS
- push: retry on sandbox when production APNs returns BadDeviceToken
- push: accept and log environment on native push endpoint
- telephony: pins per user
- mobile: add DELETE /ucp/v2/mobile/push to remove chat push token
- push: FCM call push consumer for Android incoming calls
- push: FCM push service for Android chat and CX notifications
- reports: users activity report - add tags filter
- conference: add 3way conference hangup endpoint
- chat-push: reduce delay from 1 minute to 30 seconds
- cx-push: reduce delay to 30s for faster CX response
- cx-push: use shared RabbitMQ queue with 1-min delay like chat
- cx-push: send APNs push to assignee on customer message
- cx: route cx_message through presence WebSocket event factory
- cx: broadcast cx_message via presence WebSocket on Chatwoot webhook
- cx: add /ucp/v2/cx/config endpoint for native mobile CX
- users: add tags filter to CSV download
- chat-push: native mobile app chat push via APNs
- chat: add since param to messages endpoint
- disposition: map X-API-Key disposition to agent via body
- ucp: add GET /ucp/v2/devices/ucp_mobile_tls endpoint
- chore: update gitignore
- crm popup: support crm popup on invite or on answer
- crm: popup timing
- ucp: add GET /ucp/v2/contacts endpoint for mobile directory
- ucp: add GET /ucp/v2/contacts endpoint for mobile directory
- mcp: support ElevenLabs Streamable HTTP MCP integration
- push: add SaveNativePushData handler for iOS native app
- push: add /ucp/v2/push route for push token registration
- push: add APNs VoIP push notification service
- embed: allow to delete embed url config
- roles: add missed calls report
- ucp-api: fix ucp agent view - queue history
- dashboards: add live calls panel
- mobile: add meeting invite endpoint for mobile API
- cc: add new dashboards
Changed¶
- mobile: remove ucp_mobile_tls and Kamailio pusher path
- reports: extract callDirectionOutbound constant
Fixed¶
- callcenter: count unique agents in monitoring dashboard summary
- livekit: serialize ai provider websocket writes
- callcenter: return after account Get fails in queues status goroutines
- queue: resolve FOLLOW_UP_DATE and FOLLOW_UP_TIME placeholders in Post API Call
- mobile: publish push_token_updated on every cloud device call
- reports: missed calls report pagination
- push: log APNs failures as warn instead of info
- queue: post call url encoding. Add tests
- cx-push: filter by message_type instead of sender.type
- cx: suppress linter warnings in cx_config
- microsoft-oauth: use Micorosoft common oauth service to allow personal and business accounts
- chat-push: route to sandbox or production APNs per token environment
- test: add CreateUCPMobileTLS to DeviceServiceMock
- mobile: handle encode errors and fix linter warnings
- cc-reports: agents activity report only include agents
- follow-up: performance improvements
- follow-up: scheduling
- cache: do not save nil users list by id
- push: remove manual ack to prevent RabbitMQ channel crash
- roles: upgrade version
- tasks: anchor follow-up schedulers on admin and reduce QVOICE Platform_tasks load
- firehose: send event if it belongs to user own account
- cx-channels-full-screen: remove omit empty
- linter: improve code
[2.115.0] - 2026-04-07¶
Added¶
- reports: recording not available message
- recordings: apply role-based PII masking on call recordings APIs
- mobile: add GET endpoint for chat attachments
- cc-reports: campaigns report add csat
- export: queues activity new columns
- reports: add select queues feat(export): add select queues
- zoho: retry improvements, refresh token proactively, add metrics
- reports: contact center exportable reports
- dispositions: follow up events
- mobile: add omnichannel URL endpoint
- mobile: add member management routes for chat channels
- monitoring: return all users stats by default instead of last 30 days
- monitoring: send Slack alert when disk usage exceeds critical threshold
- mobile: add extension field to users list endpoint
- chat: set app badge with actual unread count
- chat: add delayed push notifications for unread messages
- cc-reports: dnd time can not be greater than login time
- crm-popup: allow popup to tab
- users-cap: enforce QVOICE Platform.limit.users on create, activate, and bulk
- ldap: return 200 if config does not exist
- chat: add mark-as-read route for mobile
- reports: charges pdf, csv improvements
- campaigns: detect transferred calls from lead_history
- queues: call lifecycle view, report enrichment, and ucp call routes
- queues: call lifecycle view, report enrichment, and ucp call routes
- mobile: add omnichannel SSO endpoint for mobile app
- portalsnapshots: sla metrics, dial buckets, and queue sla defaults
- mobile: add meeting endpoints for mobile app
- reports: journey timeline enrichment, menu cache, queue agent snapshot fields
- journey: call journey
- dashboards: add counters to supervisor panel
- number-manager: return error message on converters
- login: add custom caller id information on payload
- reports: add transfer rate to queues activity stats
- users: charges filter by tags or logic
- callcenter-reports: add queue skill-group fields and campaign disposition fallback
- callcenter-reports: add queue skill-group fields and campaign disposition fallback
- monitoring: add ignored_servers config to skip specific servers
- dashboards: add more statistics to cc snapshots
- reports: add callback rate to queues activity report
- reports: detect callbacks from agent_history instead of heuristic
- report-agents-activity: add transfer rate
- reports: add AHT, transfer rate, callback rate, repeat call rate (WCG Phase 2)
- reports: add agent time distribution percentage metrics (WCG)
- cdr: show disposition render
- missed-calls: resolve connected agent for queue follow-ups from CDR agent_history
- docs: supervisor panel
- users: add location field to user API responses with default fallback
- callcenter: add dial_type to agent metrics and adaptive queue polling
- callcenter: add last_state_change to agent metrics
- cc: add supervisor panel dashboard
- mobile-oauth: azure
- mobile-oauth: google
- chat-mobile: add users endpoint
- chat: mobile endpoints
- doc: update callcenter api doc
- provisioning: Grandstream GXP2170 template, routes without .xml, template funcs
- get-magic-link: support cx_fullscreen
- cc: add monitoring dashboard to ws
- locations: replace mango query for user assignment
- blacklist-menu-temporalrules: list endpoints
- presence: new job -> update cc supervisor panel data every n seconds
- device: add route field
- softphones: new flag cx channels full screen
- locations: invalidate user cache on location change
- crm: Adds transcript to CRM case
- ucp: api -> calls blind transfer visibility
- ai: portal assistant
- softphones: allow to disable devices section
- persona-v2: Refactors and enhances persona queue management
- persona-v2: Refactors MCP tool handling and case data
- persona-v2: Adds persona call dispositions and AI cost tracking
- cc: exclude originator cancel inbound calls only from post api call requests
- ucp: api -> settings -> audio -> call -> set ringtone
- personas: add editable DID and extension in Telephony section
- persona: add DID association via queue
- persona: Assigns queue to AI personas upon creation
- ucp: api -> callee id -> visibility
- agents-activity-csv: Adds inbound answered call percentage
- call-transcription: Adds Google Speech-to-Text integration
- queues: api -> crm -> hide tab close option
- cx-channels: persists round robin state in database
- provisioning: centralize default template selection for manufacturer/model
- provisioning: add Grandstream phonebook directory support
- disposition: add deduplication for post-call API execution
- changelog: auto create
- ai-agent-diagram: Ensures all Mermaid labels are in English
- api-keys: add caching and fix async context usage
- ucp-lite: Ensures
litefield is always serialized - ucp-lite: Adds UCP Lite mode functionality
- ai-provider: Adds callId to hangup event
- ai-provider: Adds call identifiers to DTMF events
- ai-provider: Adds SIP trunk header mapping
- mcp: Adds hangup call tool to MCP
- ai-provider: Adds hangup event for AI provider websocket
- ai-provider: Adds other leg call ID to start event
- ai-provider: Adds DTMF event handling for AI providers
- docs: add changelog md
- mobile: api -> dnd
- user charges report: add csv worker
- crm: Broadcasts case creation event to UCP
- crm: Introduces Case entity and service
- whitelabel-title: Adds whitelabel title functionality
- ai-call-screener: Adds intent to lead creation
- ai-call-screener: Adds call ID to lead creation flow
- ai-call-screener: Broadcasts lead creation event
- ai-call-screener: virtual receptionist
- cc: add queue sla
- meetings: Enables meeting transcription translation
- meetings: Adds transcription stopped event
- mcp: proxy /ucp/v2/mcp
- whitelabel-favicon: onboard
- whitelabel-favicon: Adds whitelabel favicon functionality
- transcription: Enables utterances and multi-channel support
- zoho: improve force single URI upload
- audit-logs: add get recordings endpoints
- cdrs: Adds campaign name to CDR reports
- meetings: Adds recording count to meeting history
- access: roles v2
- calls: Adds language selection for transcription
- calls: Adds transcription mode setting
Changed¶
- chat: use shared RabbitMQ queue for push notifications
- toml: fix rabbit password
- CI
- circleci: restrict cypress tests to master branch only
- monitoring: push interval
- linter: issues
- key-tipe-line: create constant
- mobile: avoid forward request in dev environment
- callflows: unit tests
- blacklist-menu-temporalrules: linter
- google-stt: Adds Google STT config logging
- ping-pong: Handles application-level ping/pong messages
- meetings: Adds meeting summary regeneration
- call-transcription: use ADC instead of deprecated WithCredentialsFile for Google STT
- call-transcription: Google Cloud Speech-to-Text V2
- log: removed
- log: Adds logging for call transfer and routing key
- log: Removes unnecessary log statement
- linter: issue
- user-creation: transactional rollback, trim input, 4xx for duplicates, tests
- crm-lead: Renames lead design doc to crm_lead
- livekit: new api secret
- linter: Fixes error handling in createLeadHandler
- mcp: Updates mcp-go library to v0.43.2
- linter: issues
- dispatch-agent: support agent name
- dev-env: lk point lab
- meetings: linter issue
- local-env: Adds OpenAI API key to config
- mcp: Removes persona-aware prompt injection
- mcp: Reverts MCP Go module replacement
- ai-agent: add log
Fixed¶
- mcp: simplify transfer_call tool parameter name and description
- campaign: include customer_wait_sla and target_sla in JSON when zero
- recordings: fully redact PII names and all digits in call recordings
- cc-reports: campaigns activity csat value
- presence: avoid send-on-closed-channel for supervisor dashboard ws Take client snapshots via the hub goroutine instead of ranging Hub.clients from the ticker, and use non-blocking send with recover so disconnects during BuildMonitoringDashboardOptimized cannot panic. Apply the same pattern to SendEventToUser.
- chat: prevent deleting direct message conversations
- chat: duplicate messages caused by AddDate month overflow in sharded DB queries
- users: creation of disabled users by default
- monitoring: restore disk critical threshold to 95%
- chat: fetch most recent messages instead of oldest
- Test
- monitoring: lower disk critical threshold to 93% for testing
- monitoring: temporarily lower disk critical threshold to 94%
- test: mock accountservice in agentservice tests
- chat: use NotifyGenericTextMessage verb for chat push
- chat: add app_id to push notification logs
- crossbar-account: avoid delete:null in service_plans POST body
- cc-reports: validate dnd and wrap up times
- queues: post api call double encoding
- profile-picture: return 404 for missing pictures and set content type
- roles: admin role ai transcription
- cc-reports: valid answered status when status is voicemail in campaign calls
- crossbar-callflow: handle variable payloads and nil callflow
- callcenter: enforce mute payload validation and call ownership
- reports-queues: restore queue csv integrity and actual skills export
- callcenter: enforce mute payload validation and call ownership
- reports-queues: restore queue csv integrity and actual skills export
- reports: cap percentage metrics at 100% to prevent overflow
- users: return error if user callflow is not found
- Test
- reports: add unit tests for WCG analytics metrics
- reports: add campaign disposition render lookup and disposition status logs
- tags: validate tag name
- persona-remove: users clearing
- zoho: use 30s timeout for click2call API only
- zoho: use 30s timeout for click2call API only
- users: bulk users name casting
- profile-picture: check has using the attachment
- cc-reports: api -> calls history -> invalid start time for outbound queue calls
- callflows: support direct flow field and prevent null arrays in create/edit
- cc: dashboards supervisor users restrictions vs admin users
- provisioning: use profile template for loading and add HT812 support
- auth: sanitize account name on cache miss before view query
- mobile: return domain for deeplink
- reports: agents activity summary now counts incoming calls to queue extension
- ucp-voicemail: fix crossbar requests via goportal
- ucp-voicemail: fix crossbar requests via goportal
- message-bus: post api call listener reconnection
- chat: Sorts messages by timestamp
- chat: Creates chat messages views in sharded DBs.
- view: index queue calls by agent by presence id
- recovery: recovery routes must not be authenticated
- agent-dispatch: request matching for account names with spaces
- transcription: api -> new transcription -> deepgram -> process every audio channel
- google-stt: Adapts Google STT for Sinhala language
- agents-activity: Improves call reporting by filtering invalid extensions
- meetings: Adds retry logic to meeting end process
- leads: return 500 instead of 401 when user context is missing
- recordings: safer cleaning task - skip nil doc, invalid pvt_created, current month
- sms: skip decode for number DBs to fix 404 on SMS send
- disposition: add include_docs to ListingByTitle to prevent nil document
- Test
- disposition dedup: test code for disposition dedup
- sms: Fixes database name decoding
- cx-channels: Creates Chatwoot account if needed
- tasks: check if pvt_created is unix or gregorian before deleting recordings
- service-plans: edit account assignment
- ai-agent-diagram: Adds tool call formatting rule
- ai-agent-diagram: Clarifies Mermaid code generation rules.
- deploy: use unique temp filename and cleanup to prevent directory conflicts
- api-keys: handle API key users in recordings and set user ID
- api-keys: set role id
- moh: Converts audio file extensions to MIME types
- webhooks: call events webhook config change
- mcp: Registers transfer_call tool properly
- mcp: Refactors call transfer to use call ID from context
- mcp: Adds dummy parameter to is_office_open tool
- zoho: user secret key validation
- zoho: send duration on ended calls
- cc-reports: agents activity hold time edge case
- sentiment: Handles nil sentiment analysis result
- roles: status permissions
[2.114.0] - 2026-01-02¶
Added¶
- calls: Enables call transcription feature
- meetings: Stops transcription when creator leaves
- meetings: Enables meeting transcription summarization
- meetings: Fixes meeting participant count inaccuracies
- meetings: Adds transcription data to meeting history
- meetings: Adds meeting info endpoint
- callcenter: Return email addresses for AGENT_USERNAME placeholder in queue API calls
- meetings: Adds meeting transcription feature
- meetings: Adds meeting recording functionality
- meetings: Adds real-time meeting transcription
- meetings: add flag enabled per account
- meetings: add audio recording support for video meetings
- meetings: Adds meeting history tracking and renames conferences to meetings
- chat-flag: Enables account chat feature
- mobile: list user's cdrs activity
- chat: add link preview with Open Graph metadata
- vm: Add Mark as Voicemail feature validation and save logic
- cc: add queue monitoring
Changed¶
- queue: Executes queue API calls asynchronously
- meeting: linter
- meeting: recording remove file
- meeting: linter
- meeting: auth token add user full name
- meetings: Renames conference invitation to meeting invitation
- monitoring: Reduces monitoring users push interval
Fixed¶
- zoho: inbound queue calls transferred direction
- calls: Configures Deepgram for multi-language support
- meetings: Refetches meeting after transcription stops
- meetings: enabled field serialization
- queues: queue post api call outbound calls customer caller id
[2.113.0] - 2025-12-19¶
Added¶
- queues: add crm info to conferences cache
- recordings: fetch recordings from other_leg_call_id in CDR revisions
- queues: add queue id and queue name to post api call
- presence: add conferences cache for queue
- cc: add disposition code and id to post api call
- zoho: add endpoint to reupload recording to zoho by call id or recording id
- monitoring-services: livekit, mattermost and chatwoot
- chat: Introduces a new chat feature, enabling real-time messaging between users
- cc: POST API improvements - disposition handling, exclusion logic, and documentation
- recordings: calculate size for recordings on external storage
Changed¶
- monitoring: add users monitoring to track all users count across systems
- linter: close body ws
Fixed¶
- cc: retry disposition mechanism
- tests: add missing mock
[2.112.0] - 2025-12-15¶
Added¶
- cc-reports: add total inbound and total outbound counters for agent stats
- queues: add cdr disposition to post api call
- cc: add queue cache to queue service
- conference-invite: Adds conference invitation feature
- dnd: dnd users cache issue
- queues: add endpoint to get status for a single queue
- mattermost: Improve Mattermost password handling and security
- zoho: set outbound direction for campaign calls
- users: improve users historical data
- recordings: get recording by call id from external storage
- cc: get agent extension from custom sip headers as fallback on queue post api call events
- conferences: ucp endpoints create auth token, create conf, list participants
- queues: normalize callflow children object if nil
- teams: do not force MM password update if password is valid
- rabbitmq: add monitor to detect broken connections
- call: omit destination occupied check for extensions
- tasks: use global fallback db for disposition retry docs
- ucp-callcenter: api -> set agent state -> trigger event
- permissions: admin total access allow to see numbers config
- campaigns: api -> status -> set active leads to cool off
- recordings: add endpoint to get recording document
- cache: add fallback invalidate users cache on creation mechanism
- listener: automatic reconnection for round robin config events listener
- zoho: handle multiple recordings case for recording upload
- reports: return multiple recordings by call id
- recordings: add HIPAA encryption support
Changed¶
- conferences: Proxies LiveKit RTC WebSocket connections
- ai-agents: Avoids processing AIAgents call event on nodes where LiveKit is not running
Fixed¶
- recordings: attachments length
- ai-provider: drop call due silence
- cc: abandoned value calculation on post api call
- cc-status: get user outbound queue from agent state doc
- views: create views although design doc exist
- teams: improve edge cases
- fmfm: Fix FMFM profile persistence and lowercase QVOICE Platform field handling
- cc-reports: agents activity registered time calculation
- cdrs: improve cc agent disposition retry mechanism
- provisioning: template web config edition
- cache: enable disable user
- doc: improve API documentation
- cc-reports: agents activity not available detailed report
[2.111.0] - 2025-11-04¶
Added¶
- zoho: improve logs - add call id
- reports: add edge case to get recording by call id
- ai-provider: Adds Opus codec support for AI Provider
- queue-calls: agent data improvement
- number-manager: get -> e164 converters list
- presence: add tags restrictions on presence events
Changed¶
- livekit-socket: Refactors media event string to constant
- build-version: Adds version and build information to the binary
Fixed¶
- zoho: detect queue inbound calls case properly
- mcp-transfer-call: Fixes MCP transfer call destination number handling
- users: invalidate cache
- persona: Makes voice field optional
- teams: handle user 409 conflict
- tests: cypress
- provisioning: use polycom default template
- cc-reports: queue calls report agent answer
- teams: reset teams pasword
- teams: sync improvements
- ai-provider: Ensures correct processing of AI provider call events by validating the request format and extracting the callee ID
[2.110.0] - 2025-10-22¶
Added¶
- cc-reports: agents activity report - do not return agents with no activity if queue is filtered
- ai-provider: support pcm16 and g711_ulaw
Changed¶
- ai-provider: Refactors call event handling
Fixed¶
- cc-reports: remove commas from lead name when building csv
- tests: failing tests
- cc-reports: queue calls csv abandoned reverted to original
- cc-reports: hardcode queue outbound calls abandoned to no
- cc-reports: csv campaigns activity columns and values
- agents-activity: Discards false agent events without preceding true.
[2.109.0] - 2025-10-21¶
Added¶
- zoho: change click to call method. Use queues app click to call
[2.108.0] - 2025-10-20¶
Added¶
- dispositions: api -> 3rd level subdisposition key/value
- ai-provider: Adds websocket headers to AI Provider
- dispositions: api -> subdispositions -> 3rd level
- callcenter: queues status -> add wrap up time
- ai-provider: Fixes device retrieval by name
- ai-provider: Adds device name to SIP URI creation
- ai-provider: Adds retrieval of AI provider by number
- cc-reports: filter agent activity by user creation date
- recordings: get transcription and recording storage information by call id
- queues: api -> config -> disposition blocking
- ai-provider: Removes play tone functionality
- AI Provider: be able to attach AI Provider using websocket to a number
- reports: add endpoint to get call recording by call id
- ucp: settings -> profile image -> enable/disable gravatar
- ws-events: decrease ws cc events logs
- ai-assist: websocket
- teams: add teams user docs in users cache
- callcenter: admin api -> set agent outbound queue -> ws presence event
- chatwoot-conversation-assigment: round robin strategy
- tasks: process accounts in batch for restore recordings
- callcenter: admin api -> set agent cc state -> ws presence event
- teams: mark user as MM checked for user teams ID
- docs: upload api docs to QVOICE Platform hosts
- ucp-logout-endpoint: Adds UCP logout functionality
- agent-state-disabled: Renames AgentState to AgentStateDisabled
- ucp: Adds agent state feature toggle.
- docker-dev: Adds Air for live-reloading development
- roles: add Admin Reports Call Recordings CC Reports
- cc: add agent events ws channel
- accounts: list children with pagination
Changed¶
- ai-provider: Fixes linter warning on websocket dial
- ai-provider: ignore linter issue
- ai-provider: Fixes number assignment label and error handling
- ai-provider: Improves AI provider call handling
- ai-providers: Adds AI provider feature toggle
- callflows: Removes cache calls from portal
- ai-agents: Refactors call event handling for AI agents
- ai-assist: websocket dial linter issue
- ai-assist: Logs errors when closing client connections
- cw: Updates inbox queue assignment
- cw: Removes unused dependency and log statement
- queue-service: Reorders interface methods for consistency
- gitignore: Ignores temporary directory
- chatwoot-dev-env: credentials
Fixed¶
- queues: unmarshall repeats as both int or string and normalize repeats to int if received string
- cc-reports: Agents activity summary not counting initial false events anymore
- Zoho: custom caller id enabled for user
- cc: agents activity report not answered outbound calls
- cc: linter
- cc: Agents activity report discard events before user creation
- teams: retry on update user info conflict
- Zoho: campaign calls recordings
- zoho: recordings on transferred calls
- tasks: cleaning recordings fix pagination
- zoho: recording on attended transfer calls
- cc: campaigns activity report broken when including two different months
- zoho: add state to zoho on busy calls
- tasks: delete recordings logs
- tasks: save doc revision after deleting attachment on clean recordings
- cache: linter
- persona: Relaxes validation for persona voice
- events: unmarshall global resource error
[2.107.0] - 2025-09-24¶
Added¶
- cc: add call id to CRM pop up logic
- callcenter: admin api -> set agent cc state
- dnd: do not check previous state to modify
- zoho: add debug doc
- sms: new Mysms (Ixica) incoming message format
- presence: reset & unregister user
- callcenter: queues status api -> agents -> outbound calls data
Changed¶
- docker-dev: Adds initial Docker and Compose configuration
Fixed¶
- periodic-tasks: use recording doc as map on cleaning recordings
[2.106.0] - 2025-09-18¶
Added¶
- ucp-magic-link: Adds magic link authentication for UCP
Fixed¶
- zoho: use pcid or first call id in Zoho call notifications
[2.105.0] - 2025-09-18¶
Added¶
- zoho: include on login response if is zoho user
- status: add queue id and call id to list calls for queues
- cc: 2nd subdisposition set disposition key:value value in name in CSV
- dispositions: subdispositions -> type key/value
- queue: Adds outbound call support to CRM integration
- dispositions: api -> custom type
- cdrs: add disposition ID
- zoho: edge case improvements
- ai-agent: llm tool api request headers
- ai-agent: llm tool api request headers
- sms: make mysms webhook url configurable
- mobile: api -> cc agent
- ucp-rate-disable: adds UCP call rate configuration
- crm: log zoho retry request
- callcenter: api -> queue calls -> actions -> coach
- bugs: api -> add hostname
- new-role: add admin config read only
- api-doc: improve titles
- cc: queue report add agent sub disposition
- cc: add agent presence popup
Changed¶
- llm-tool: use util PrintJSON
- bugs-report-slack: improve ui
- bugs-report-slack: improve ui
- softphones: unify put and get format
Fixed¶
- zoho: agent not registered edge case
- cc: call direction user perspective
- cc: return queue outbound call with agent on not available state
- cc-reports: campaigns subdispositions csv
- recording: limit to 10800
- recording: set call limit to 21600s (6h)
- zoho: add duration on restored body
- trunks: remove add and remove gateway IPs logic
- cc: remove calls from queues status reponse
- logs: formatter
- cdr: event struct
- zoho: request body after restore
- status: calls -> progressive campaign
- auth: mobile proxy auth
- status: active calls -> preview campaign calls
- auth: validate identity length before accessing it
- roles: admin config read only
- cc: queue status active calls
- views: lazy auto create
- rol: admin config read only
- websocker-msg-loadk: handles callcenter load errors gracefully
- user: return call forward number
- agent-active-call: ensures active call display regardless of agent state
- cc: campaign reports CSV agent disposition order
- cc: queue inbound calls report csv - follow up fields
- cc: agent status activity report custom states
- doc: agent pop up message
[2.104.0] - 2025-08-26¶
Added¶
- cc: add CSAT to queue post api call
- cc: add queue next abandon actions
- reports: agents activity - extend search range for true events
- cc-reports: add pagination to agent events report
- recordings: add restore recordings by filename endpoint
- agent-panel: config disable queue login logout
- cc: add lead id, lead ticket id and campaign name to queue post api calls
- status: active calls return tags although is empty
- bugs: api -> add context information
- zoho: allow to bypass recordings access restrictions
- ws-callcenter-load: add auto answer
- zoho: improve authentication edge case
- zoho: add endpoint to focre re-uploading recordings
- cc: add media recording ID to queue post api call
- docs: add cc reports doc
- proxy: cherry pick realm mobile link
- docs: add reports doc
- cc: add abandoned variable to queue cdrs and post api calls
- cc: return custom state id on creation
- fs-sofia-status: get endpoint
- raft: leader election
- persona: new fields stt, tts and speech engine type
- reports: add agent events endpoint
- users: api -> list users of specified account
- cc: improve post api call info on cc calls
- bugs: update if receive existing event
- bugs: notify slack
- campaigns: api -> leads dial cycles
- campaigns: api -> leads dial time window config
- persona: support new field llm model
- portal-user-interface-embed: add auth fields username and password
- gemini-models: add endpoint to retrieve the list of models
- cc: queue status - add uuid to calls information
- cc: allow to disable destination availability
- portal-user-interface: add title
- porta-user-interface: add title
- global-config: portal user interface
- login: add direct login endpoint
- cc: post api calls allow to exclude some hangup causes and dispositions
- cc: trigger queue api call request after setting disposition
Changed¶
- ai-agents-device: sip domain from new var
- ai-agents-rabbit: request to lowercase
- ai-agents-rabbit: ignore if request not match prefix
- cypress: user advance tests
- cypress: tags tests
- cypress: use random account
- monitoring-package-versions: list endpoint
- monitoring: package versions
- monitoring-disk: list endpoint
- users-cy: advanced tests fix ext
- monitoring-disk: push system
- monitoring-disk: push system
- unit-tests: userservice and add coverage info
- tests: newman -> cypress
- gemini-models: remove models/ from name
- response-body-close: linter issue
Fixed¶
- leads: new extension and skill fields
- cc: add subdisposition values to queue outbound calls csv
- cc: remove string special chars from rabbitmq messages for Post API call
- provisioning: add automatic view creation on provisioning database
- cc: encode url for post api call
- zoho: check auth before making the request
- zoho: call ended notify start_time change format
- agents-ai-agent-dispatch: compare account name using lowercase
- hubspot: bypass recordings restriction on hubspot requests
- zoho: set Content Length on api calls
- cc: queue post api call recording id
- recordings: update call recording custom filename
- views: dispositions default docs
- cc-reports: count outbound answered calls when billing gt 0
- reports: b legs by timestamp and ext
- gemini-models-list: use pagination
- reports: agents activity calls
- api-doc: agents events
- cc: post api call improve disposition cast method
- tasks: cleaning recordings docs
- cc: remove post api call old methods
- cc: exclude calls from port api call
- set-destination-free: campaign call
- cc: queue calls exclude nouser calls from view
- cc: panic on editing disposition without followup
- cc: config file error
- periodic-tasks: cleaning recordings
- agent-dispatch: use domain override
- cc: triggers post api call after publishing disposition event
[2.103.0] - 2025-07-14¶
Added¶
- reports: add recordings restriction by queues
Fixed¶
- ai-agent: sip uri device domain
- after-call-service: queue consume exclusive
- docs: delete test docs
[2.102.0] - 2025-07-11¶
Added¶
- cc: add queue post call action
- ucp: preferences -> dnd visibility status
Fixed¶
- api-docs: reports api doc
[2.101.0] - 2025-07-11¶
Added¶
- api-docs: add agent endpoints
- recordings: restrict call recordings access by tags on contact center calls
- reports: Users charges return both minutes and duration in PDF
- persona: llm provider
- callcenter: agent -> queues status -> add disable disposition to response
- reports: queue calls report add connected agent info
- users: publish event on skills updated
- office-hours: mcp tool
- office-hours: mcp tool
- office-hours: mcp tool
- reports: add outbound, inbound, Users, DIDs and Callers activity reports pdf endpoints
- cc: agent disposition set improvement mechanism
- reports: charges - round decimals to 2
Fixed¶
- provisioning: mitel panic
- test: cypress
- tests: unit tests
[2.100.0] - 2025-07-03¶
Added¶
- queues: api -> disable disposition per queue
- openai-tts: support instructions
- persona: vibe and initial reply
- agent-dispatch: support agent name
- queues: api -> restrict disposition options
- agent-activity: receive start & end datetimes
- persona-agents: sync first and last name on persona update
- agent-disposition: publish agent action diposition done
- mcp-llm-prompt: resource
- mcp-llm-prompt: resource
- endpoints: port missing endpoints from pybe
- audit-logs: log api key information instead user information
- numbers: add outbound cid selectable property
- api-key: resource
Changed¶
- agent-dispatch: agent name
- mobile-prov: encode api server url
- cypress-tests: new bash script
- llm-tools: linter issues
- zoho: add domain log
- zoho-webhook-domain: support public
Fixed¶
- agent-dispatch: multi-node server
- onboard-account-name: instead alphanum name
- queues: remove verbose log
- zoho: recording uri upload
[2.99.0] - 2025-06-20¶
Added¶
- mobile: auto create ucp mobile device on mobile login
- llm-tool-api-request: param type enum
- roles: upgrade new role to include status
- roles: add new admin role reports and cc
- mobile-link: allow domains
- queues-status: get calls info from queues app
- llm-tool: type api request
Changed¶
- suport-domain-public: domain override public for mobile link
- magic-link: use domain instead customer
- mcp-tools: per session
Fixed¶
- host-and-api-server-url: mobile prov
- outbound-proxy: use domain override
- mobile-redirect: case domain override public
- views: omnichannel
- views: creation
[2.98.0] - 2025-06-15¶
Added¶
- llm-tool: transfer call to queue
- list-skills: by user id
- cc: skills refactor
- llm-tool: create tools by persona with custom params
- persona: voice
- mcp-tools: list endpoint
- reports: round agent activity avg times
- role: add new role AdminViewRecordingsAndCCReport
- reports: add external calls flag for Users Activity
- mcp: server
- transcription: config -> sentiment analysis
- users-list: add flag is ai agent
- reports: use queues app DND events
- personas-list: add agent count
- agent: ext range 4000 to 6000
- agent: remove vmbox
- persona: ucp get
- agent: device sip uri
- agent: remove full cleanup
- agent: create, list and remove
- logs: log dnd event when used DND codes from phones
- persona: create, read, update and delete
- call-transfer: endpoint
- livekit-sanitizer: trunks and rules
- livekit-agent-dispatch: error instead fatal
- livekit-agent-dispatch: with auth access token as metadata
- livekit: add participants on the ws load
- transcription: api -> config per account
- livekit-sdk: endpoints and ws conn with portal
- reports: return all cdr information
- campaigns-activity-csv: add lead disposition
- cc-reports: add ticket id to campaigns report csv
- trunks: api v2 endpoint list
- callflow: api v2 endpoint remove
- roles: add activity reports and recordings role
- user: add disa pinset to creation
- get-stun: support per account
- ucp-config: endpoint
- numbers: add handler to get numbers in CSV
- storage: api -> add support for google drive
Changed¶
- skills-tests: fixed
- lint: issue
- mcp-hook: rename func
- mcp: add streamable server
- mcp: create a service
- linter: fix
- livekit-sanitizer: fix sleep
- livekit-agent-dispatch: metadata json
- livekit-sanitizer: continue instead return
Fixed¶
- list-llmtool-view: by persona id
- tags: restrict recordings by tags on recordings with no owner
- reports: outbound calls - only use other leg recording if recording not present
- reports: blegs by timestamp views
- reports: dids activity view
- reports: dids activity views filter conditions
- reports: dids activity edge case
- reports: dids activity report failed clicktocall calls edge case
- role: admin read only - download recordings
- cc-reports: campaigns activity - set lead disposition only on corresponding row
- roles: Call center and recordings download
- reports: include recordings although local storage is not enabled
- views: user activity detail
- reports: users activity edge case clicktocall
[2.97.0] - 2025-05-06¶
Added¶
- campaigns: allow to set retries to 0
- campaigns: allow retries to be 0
- agents-activity: add tags
- cc-campaigns: add new preview dialer way
- auto-answer-c2c: account config
- agent-stats-ucp: support time range
- agent-activity: endpoint ucp
- clicktocall: add custom sip header
- roles: add admin recordings view roles
- bugs-system: start gpbe reporting
- bugs-system: support customer
- hubspot: api -> call logs -> add media recording link
- hubspot: login -> get hubspot's user associated and super admin credentials
- limits: validate parent account call limits
- bugs-system: send project name to desminify server
- bugs-system: add project name
- bugs-system: remove endpoint
- user-cdrs: add call id and queue call id to user cdrs response
- bugs-system: apply source map
- bugs-system: store version
- bugs-system: get
- bugs-system: create and list
- rabbit: always close channels
- mails: add smtp server config for external smtp service
- zoho: handle agent call forwarded edge case
- hubspot: create call log for outbound calls
- ucp: do not return queue numbers as outbound cid selectable numbers
- security: allow always to change password if password minimum age is 0
- quotes: add company owner email, notes and terms
- quotes: api v2
- hubspot: create call log for inbound calls
- rabbit: add channel close monitoring and remove noisy log
Changed¶
- script: print remote host
- script: deploy
- cxagent: remove unused HubspotIntegrationDocument initialization
Fixed¶
- campaigns: continue although special callflow was not created yet - agent activity caller id name
- recordings: get recording from customer side only on campaign calls
- user: edit cc settings
- utils: pretty print
- roles: admin view and download recordings
- numbers: error message
- zoho: do not try to get account info if empty. +nouser number case
- sftp: recordings directory name
- limits: error message
- limits: error message
- presence-reset: presence id
- zoho: check if auth data is valid in auth map
- cache: user nouser edge case
- quotes: tests
- storage: directory -> format unification
- storage: api -> initialize tasks doc if it does not exist
- email: content type format for localhost
- google-calendar: check nil pointer
- hubspot: enable/disable integration
- ucp: include account main numbers to selectable outbound cid for users
[2.96.0] - 2025-03-27¶
Added¶
- emails: allow to attach file to email when using localhost
- moh: api v2 crud
- zoho: improve integration
- storage: add support for any S3-compatible storage provider
- edit-user: support remove profile picture
- profile-picture: endpoint remove
- hubspot: api -> create support ticket
- profile-picture: set has on user doc
- profile-pictures: cache
- user-profile-picture: get support user id param
- user: profile picture
Changed¶
- hubspot: improve client instance management and API calls
- hubspot: centralize API request logic and simplify integration flow
- sms-outbound: publish message
Fixed¶
- zoho: panic
- provisioning: rovision phone although blf user does not exist
- sms: handle error on propagate message
[2.95.0] - 2025-03-11¶
Added¶
- campaigns: set lead priority to 1 by default
- queues: remove campaign type restriction for queue callback
- crm: hubspot -> api -> get account region
- zoho: push call recordings to Zoho after call completion
- task: add presence sanity check flag
Changed¶
- zoho: move recording URI upload to dedicated event check
Fixed¶
- zoho: do not create new secret key var
[2.94.0] - 2025-03-04¶
Changed¶
- salesforce-connected-app: support per account
Fixed¶
- salesforce-connected-app: get campaigns
[2.93.0] - 2025-02-28¶
Added¶
- campaigns: return error from external CRM on leads sync
[2.92.0] - 2025-02-28¶
Added¶
- media: disable pagination to get media list from crossbar
- salesforce-connected-app: get leads
- account: limits -> concurrent calls
- salesforce-connected-app: get campaigns
- salesforce-connected-app: revoke auth
- salesforce-connected-app: get is authorized
- userservice: add method to fetch tags by user ID
- validation: add extension validation in queue and user handlers
- users: add mobile last login tracking to users report
- ucp: api -> hide caller id for incoming calls
- provisioning: add edit phone
- call-recordings: get -> apply tags restriction
- agents: improve HTTP request handling and logging
- integrations: add pagination to hubspot users list
- c2c: add CORS endpoint exception for Chrome plugin
- disable-call-disposition: endpoint
- roles: new role -> admin config tenant accounts (read only)
- roles: admin without inbound calls report
- agents: add pause and resume endpoints for AI agents
- agents: add agent deletion signaling to external service
- views: automatically trigger views creation if missing
- extensions: add API to generate valid extensions dynamically
- onboard: get mobile login link
- onboard: get image endpoint
- onboard: get account endpoint
- rabbit: panic if channel is exhausted
- integrations: microsoft contacts & calendar
- agents: integrate AI agent signaling and route updates
Changed¶
- salesforce-connected-app: dinamyc redirect url
- salesforce: save token on account doc
- salesforce-connected-app: change redirect url
- salesforce-connected-app: protect endpoints with auth
- cypress-tests-cdr: dynamic cdr
- user-service: add method change user password
- firehose: wrap subscription processing in function for better error handling
- agents: improve error handling in HTTP request functions
- contact-center: feature endpoint
- contact-center: feature endpoint
- agents: unify agent status signaling and update URLs
- agents: enhance signalNewAgentCreation with instructions support
Fixed¶
- active-calls: incoming offnet calls to the ivr
- account: limits -> concurrent calls response
- security: linter
- reset-password: user doc -> update security policies info
- sms: handle receiving %2B prefix on send SMS
- sms: api -> check "+" prefix of sms's messages senders/recipients
- ai-agents: don't attempt to delete empty usernames
- presence: exclude users that do not belong to any directory from list
- agents: properly store extension in user doc
- presence: initial load event -> apply tags restriction
- userservice: properly filter out AI agents from users response
- reports: exclude no route to destination calls from queue calls
- rabbit: improve error handling for channel closure
- status: include missing extension field in phone registrations
- presence: use userservice to get users instead using db
- provisioning: add missing return statement in phone creation error handling
- tests: enhance unit testing with GetCouchDB method and gotestsum target
- transcription: panic
- views: viewrows now triggers mechanism to create views if missing - deprecate GetAccountInfoByName method
- commands: create views
- tasks: cdrs upload -> remove single json/csv file from filesystem
- db: remove all usages of deprecated .View() func
- email-magic-link: double /login
- email-magic-link: double /login
- rabbit: make error const
[2.91.0] - 2025-01-16¶
Added¶
- cdr-endpoint: add queue name
- cdr-endpoint: add queue name
- ai-agents: add CRUD operations and database views for AI agents
- magic-link: send emails support custom domain
- magic-link: support param base url
- callflows: add GetCallflow endpoint for fetching callflow details
- webhooks: process call events for webhooks on a single server
- webhooks: use exclusive listener
- webhook: update webhook memory map on account edited
- webhooks: Add Account Callevents Webhook feature
Fixed¶
- Campaigns: sync leads
[2.90.0] - 2024-12-30¶
Added¶
- call-recording: split channel endpoint
- click-to-call: validate c2c id before using it
- account-feature: queues
- ucp: click to call
- tasks: api -> improvements
- meetings-activity: report
- rabbit-mq: log caller on channel closure error
- rabbit-mq: log channel closure error
- tasks: api
Changed¶
- calls: improve error handling and logging for click-to-call
- account: get
- sentry: ignore resource not found
- errors: messages
Fixed¶
- c2c: username
- views: QVOICE Platform reports view
- meetings: linter
- registration-event: get account by realm
[2.89.0] - 2024-12-06¶
Added¶
- userservice: prevent deletion of last agent in queue and improve error handling
- periodic-task: add endpoint to force cleaning recording task execution
- audit-logs: implement pagination
- ai-assist: on queue form
- usage-charges: add tags column
- users-charges: add tags column
- periodic-task: add logs to delete recordings
- tasks: users -> presence status -> sanity check
Changed¶
- queueservice: simplify GetQueueByDID signature and improve response handling in status endpoints
- account-service-plan: get endpoint
- account-limits: get endpoint
- recordings: refactor deleteRecordings to handle pagination internally for batch processing
- account-status-and-billing: get endpoint
Fixed¶
- ci: users integration tests
- Zoho: check for nil response from Zoho
- cypress-test: cdr
[2.88.0] - 2024-11-29¶
Added¶
- recordings: make minimum days to keep recordings configurable
- collaboration: set and get endpoint
- ai-assist: feature
- ai-assist: allow get from ucp
- ai-assist: on enable check if exist api key
- ia-assist: enable/disable
- skills: add skills option to queue form
- audit-logs: add user extension to report
- skills: improve hirarchy management
- audit-logs: add extension to user info
- queue-form: skills routing
- skills: add subskills
- transcription: api -> config -> deepgram model
- skills: add id to get list response
- skills: crud
- feature-plans: assign feature plans to children account feat(feature-plans): assign feature plans to users
- tasks: storage -> cdrs -> set local directory to /u2/local_storage
- sms: add support for ozsms provider
- presence: add endpoint to reset presence in bulk
- screen-recording: get attachment
- queues-cdrs: add bool to indicate if cdr has a video recording attached
- screen-recording: save on the cdr
- tasks: add endpoint to get tasks status
- presence: add endpoint to get directory list
- campaigns: save config for lead sync via api
- rabbit-mq: refactor
- set-push-notification-token: ionic app
- active-calls: list -> add conference_id
- moh: accept query param to decide if moh should be set as account's default
- fix: trim spaces from users' first and last name
- campaigns: distinctive cooloff per hangup cause
- account: ucp api -> disable logout
- account: ucp api -> disable fmfm settings
- cdr-service: case with prefix
- transcription: apply Thai sanitization to Deepgram transcriptions
- post-call-api-request: cdr fields
- queues: add support for multiple after-call API requests
- sms: improve response and body parsing for custom provider
- codecs: endpoint
- leads: add leads via API
- error-handling: improve error handling for 'zero or more than one' cases
- onboard: login -> set default cc agent state
- login: set default cc agent state
- sms: add endpoint to receive inbound messages in custom gw
- active-calls: add function to compare phone numbers
- salesforce: connected app
- reports: add user information for callee id number
- reports: cc -> add subdisposition info
- dispositions: api -> add support for subdispositions
- mattermost-client-api: get unread messages count
- events-listener: set default rabbit retry connection time to 5
- configuration: kazoo event listeners -> refactor
- sms: add destination prefix manipulation on outbound SMS
- cdrs-upload: add endpoint to upload cdrs to external service
- queue-cdrs: add follow up notes and agent disposition fields to queues cdrs response
- call-recordings: fix media recording field
- sms: add option to use custom sms providers
- cdrs: add endpoint to get all cdrs in given time range
- ucp: api -> calls -> early media
Changed¶
- google: get endpoint
- did-management: get endpoint
- sms: get endpoint
- callcenter: get endpoint
- autoprovision: set and get endpoint
- call-recording: get endpoint
- transcription: set
Fixed¶
- audit-logs: hide sensitive data
- plans: panic
- transcription: use feature default values
- transcription: panic on feature
- ai-assist: feature
- ci: skills tests
- CI: config
- ci: circles breaking change
- get: get plans available for account
- accounts: creation
- call-recording: patch account call recording configuration
- middleware: clean up logging
- middleware: value not of struct type
- cdrs: discard queue calls recordings for cdrs with hu cause != normal clearing
- queues: avoid the combination of 'position' with 'at' and 'every' type in pre connect actions
- tags: db error
- presence-reset: endpoint
- users: check if extension exists before creating a user
- zoho-call-notify: correct JSON decoding to prevent pointer misinterpretation
- set-push-notification-token: case mobile struct nil
- campaigns: advanced cool off
- cache: get user doc from db if it was edited and it does not exist on cache yet
- queue-calls: api -> get call rating
- leads: race condition writing response for bulk creation
- leads: endpoint path
- disposition: set disposition inside QVOICE Platform struct without deleting other info
- users: unencode users' first and last names on response
- active-calls: edge case panic
- active-calls: inbound queue call
- active-calls: edge case campaign dialing
- reports: fix queue filter on cc agents activity report
- sms: return message although text substring is not found in it
- active-calls: remove + prefix from numbers before comparing them
- sms: decode body for bulk solutions provider
- cc: log error
- active-calls: panic
- dnd: filter out events shorter than 2 s
- logs: filtering
- views: teams db view name on login
- reports: dnd view
- queue-outbound-calls: error accessing account db
- rabbitmq: close connection on error
- mattermost: get unread msgs
- mattermost: show msg error
- mattermost: show msg error
- provisioning: save MAC to db in upper case
- teams: use account service to edit account doc
- active-calls: list -> ext to ext calls parsing error
- call-status: do not process requests with no conference names
- reports: set limit on old dbs to be requested for user cdrs
- reports: panic
- reports: csv ring central format
- outbound-numbers: get users outbound numbers panic
- sms: do not return empty if getting SMS from some sharded db fails
- sip-logs: Download
- reports: cdrs all endpoint url
- cc: /callcenter/agent/{status}/all regression
- ci: linter
- reports: cc call history report returning results with no id nor call_id
[2.87.0] - 2024-08-13¶
Added¶
- reports: add hangup_cause to agents history array in campaigns activity report
- tasks: recordings -> restoration -> new process checking /tmp everyday
- provisioning: add delete phone by mac feature
- reports: add agents events to campaign activity csv
- cdr-sip-log: get stderr output on error grepping call ids
- callcenter: set agent's default queue for outbound calls
- reports: add detailed info for not available agent status
- reports: include campaign and outbound queue calls in queue calls report
- reports: use new dnd events for dnd reports
- reports: billing -> download pdf -> custom columns
- cc-reports: agents activity add on call avg time
- status: api -> list active calls (major refactor)
Fixed¶
- ci: various
- logging: stop logging 'token expired' 'errors'
- reports: idle time + username for agents activity report
- faxboxes: remove mango queries when processing faxbox created event
- reports: returning some results mapped by user id instead of presence id
- panic: prevent panic in agents stats report from taking down whole server
- calls: panic index out of range [0] with length 0
- cc-reports: agent disposition
- calls: index out of range [0] with length 0
- agent-activity-report: fix idle time calculation
- cc: queues/calls endpoint
- crossbar: EOF error
- reports: panic + result for queues report
- cc-reports: fix login time
- crossbar: EOF error by ensuring request body is reusable
- api-doc: improve add campaign lead doc
- reports: error handling on agents activity report
- cc-reports: agents activity set DND activity on user with no calls in period
- cc-reports: agents activity CSV dnd column position
- cc-reports: agents activity CSV change columns order
- agents-activity: not available state
- cc-reports: add missing csv field to agents activity report
- outbound-cid: return main callflow numbers for user CID
[2.86.0] - 2024-07-22¶
Added¶
- cc-reports: Agents activity - add new fields to CSV file
- reports: improve error handling to get clearer error messages for agents activity report
- reports: add not available time to agents activity report
- reports: add on call time to agents activity report
- reports: add hold time to agents activity report
- reports: add wrap up time to agents activity report
- reports: add idle time to agents activity report
- reports: add registration time to agents activity report
- supervisor-panel: add endpoint to access supervisor panel data
Fixed¶
- reports: inaccurate error propagation
- reports: fix test for time calculation in agents activity report
- reports: fix wrap up time field in agents activity report
- reports: grouping by empty extension in agent activity report
- reports: remove type field from agents activity report
[2.85.0] - 2024-07-16¶
Added¶
- reports: add dnd info to agents activity report
- config: live config reload
- reports-agent-activity: add callee id name, number and type
- reports: add outbound and cc calls to agents activity report
- cdr-activity: add flag mask
- live_recordings_tracking+destination availability: read clean-up max age from config
- queues-outbound-calls-csv: add disposition
- campaings-activity-csv: add agent disposition
- cc: add endpoint that tells whether an agent is available for a call
Fixed¶
- agent-activity-report: fix answered calls count
- queues-reports: minor improvements
[2.84.0] - 2024-06-27¶
Added¶
- queue-calls: agent disposition
- campaign-activity: agent disposition
- feature-bundles: CRUD
- feature-list: add cmd to update feature list document
- cc-reports: set queue outbound calls csv filename
- cc-reports: add agent disposition field to queue calls report CSV
- campaigns: set status -> reset -> improvements
- callcenter: cc queues events listener -> abandoned call
- campaigns: api -> add support to mask caller id number
- report-queue-calls: agent disposition
- disposition: save on all cdrs
Fixed¶
- reports: dont return next start key and doc id for last page of campaigns activity report
- reports: disable pagination on Campaigns Activity CSV generation
[2.83.0] - 2024-06-18¶
Added¶
- call-recordings: add endpoint to return recording of a call in progress
[2.82.0] - 2024-06-14¶
Added¶
- disposition: follow up type
- accounts: creation/edition -> disable call rating
- ucp-crm: add endpoint to make crm api call
- tasks: service -> add periodic cleaning recordings
- api: ping endpoint -> evaluate config var when request comes from desktop
- campaigns: actions -> reset leads
- disposition: add note to disposition edition
- hubspot: automatic sign in
- cache: allow to disable account summary calculation at startup
- disposition: add follow_up_timestamp field to disposition edition
- queues: return after call actions info on /callcenter/agent/status/queues endpoint
- queues: add after-call actions to config
- disposition: add type and crm code fields
- queue-form: disable call rating
- crm: hubspot -> api
Fixed¶
- sms: change request method to bulk solutions to Post.
- routes: set use local resources based on account selected
- users: api -> restrict admin users creation
- reports: inbound calls -> pagination
- recordings: delete -> remove recording info from cdr
- reports: exclude loopback channels on forwarded calls from user activity reports
- zoho: call notify -> outbound calls -> duplicated events
- kapi: concurrent map write
- hubspot: improvements on user assignment
- queues: next actions config storage
- Zoho: handle race condition on accessing Zoho API domain
[2.81.0] - 2024-05-10¶
Added¶
- reports: paginate campaigns leads history report (breaking change)
Fixed¶
- user-creation: crossbar error handling
- query-params: case
[2.80.0] - 2024-05-07¶
Added¶
- storage: add agents stats report to storage config
- queue: auto answer
- reports: paginate user stats per tenant
- queues-get: add is disposition mandatory
- queues-get: add outbound calls flag
- panic: gracefully handle panics during http requests to avoid taking the whole server down
- reports: add ring central format option for cdrs csv
- sftp: add error log on SFTP failed connections
- call_recordings: add endpoint to start/stop call recordings
- call_recordings: config - add option to enable recording per agent
Fixed¶
- presence: panic on new call event
- campaigns: retries check
- sentry: minor issues
- outbound-cid: edit user outbound cid
- disposition: set disposition inside QVOICE Platform struct
- reports: start with newest results when paginating
- reports: false positive error on row processing for rates report
- logs: remove unnecessary data from logs to avoid clogging
- panic: on logs tags processing
- sentry: don't log error for empty user id
- sentry: set log informing empty results from db to info level
- sentry: omit users cache warning log
- teams-db: fix view access
- recordings: show media recording id from customer's cdr in case of missing value
- toggle-recording: on external calls
- toggle-recording: response code when feature is disabled
[2.79.0] - 2024-04-05¶
Added¶
- stats-server: rename endpoints
- sentry: ignore 'token is expired' errors
- locations: allow to delete all locations if Locations feature is disabled
- provisioning: add endpoint to create phone
- user-edit: role id restriction
- storage: edit configuration -> sftp -> add error message to response
- mac: add endpoint to check mac address case-insesitively
- fax: add option for cover page
- security: api -> credentials login -> enable/disable
- did: remove mango query for did endpoint
- reports: exclude campaign calls from queue calls reports
- cc-reports: add csv endpoint for queues activity stats report
- grafana: expose grafana data via ip-protected endpoints
- ucp: api -> apps -> desktop & mobile -> disable download links
- users: sort summary response by ext
- devices: add endpoint for bulk creation
- db-views: add views for grafana
- queues: improve performance to get agent's queue data
- calls: add logs to better trace hang up issue
- callcenter: spy/barge -> allow admin and supervisor to perform it
- tasks: restore recordings -> point to new endpoint
- cc-reports: add voicemail event to queue calls CSV file
- transcription: deepgram -> set a specific language
- recordings: don't remove doc if recordings is stored to external storage
- reports-cdr: add a-leg and interaction id fields
- accounts: call recording -> enable/disable feature by reseller
- transcription: deepgram -> replace tier by model
- queues-reports: add caller id name and number fields to outbound report
- reports-pdf: add pdf endpoint for usage charges, users charges and total charges per account reports
- cypress-tests: improvements
- cc-reports: add 'callee_id_number' field to queues calls report
- users: api -> callcenter -> supervisor -> queues restriction
- support-stun: saving on account doc
- users: remove user from queues where user was an agent on user deletion
- recordings: remove mangoes on periodic task
- provisioning: api -> list phones -> add owner tags info
- call-recording: config -> edit -> always set gorec as call recording manager
- reports: add direction to cdr reports
- storage: cdrs & recordings -> enable/disable date directory
- reports: improve recordings reports logging
- sentry: add client tag to events
- account: improve logging for getting account info by name
- error-handling: accept optional param in ProcessErrorResponse func
- sentry: improve config to include more context data
- sentry: connect to sentry
- dispositions: tests
- mobile: 1:1 messaging
- personal-calendar: use views instead of mango queries
- audit-logs: store user info
- audit-logs: add buffer to db write
- sftp: add cbc cyphers alg for SFTP client
- audit-logs: implementation
Fixed¶
- tags: color validation
- cypress-user-test: set role as admin total access
- locations: don't allow Default location to be deleted if it's not the last one
- logging-middleware: fix payload field
- recordings-cleanup: delete recordings older than 31 days when retention duration < 31 days
- oubound-cid: use user numbers only if user has assigned numbers
- recordings-cleanup: panic
- payment-methods: nil pointer dereference
- mfa: verification code email -> customer name
- zoho: call notify -> get outbound cid related to click to call
- cypress-tests: set level as admin
- faxbox: get user faxbox
- grafana-views: design doc name
- ratedecks: add rate_increment and rate_minimum default values to csv
- user-creation: add length check for first and last name
- reports: return header row when csv is empty for cc campaigns activity report
- hangup: force hangup when other methods fail
- reports: cdrs reports spanning more than one month
- login: oauth -> sanitize username when getting related user
- dnd: set DND start time
- login: google/microsoft oauth -> sanitize email when getting related tenants
- csvs: missing data
- tasks: panic
- rate-reports: add rate call edge case
- zoho: call notify -> panic when evaluating outbound cid
- cdrs: listing -> get media recording id for b legs
- devices: check for nil pointers when doing mobile devices profile
- storage: sftp -> close connections
- zoho: call notify -> outbound call scenarios
- fmfm: avoid saving null profiles
- cx-channels: unmarshal error adding agents to inbox
- db: panic getting db name
- recordings: add check to prevent deleting recording if it's not at least a month old
- recordings: cleanup
- events: on callflow edited -> fmfm profile -> devices list is erased
- queues: name length restriction
- phones: fix phones doc unmarshal error
- pins: per user -> deactivation
- onboarding: add retry to transient data doc edition
- sentry: error logging
- db: get sharded db
- sentry: clean up on faxbox deleted event
- registration: error propagation filtering
- faxbox: cleanup on faxbox deleted event
- registration: fix loading user doc on new registration event
- middleware: panic
- callflow-events: log level error -> info
- tasks: params
- logging: level: warning -> debug & general sentry improvements
- registration: improve logging
- numbers: don't propagate number not found as error to sentry
- queues: which callflow we get data from
- faxbox: error handling for onFaxBoxCreated event
- logging: add context to account fetch error
- fax-events: add fields to improve error tracing
- sentry: send log fields to sentry
- queues: default login value
- registration: improve logging
- faxes: improve get faxes endpoint
- faxboxes: don't return error if user has no faxboxes configured
- reports: users activity -> inbound stats
- tests: disposition deletion
- tests: disposition deletion
- mobile: iOS push notifications
- dispositions: check for non duplicated title
- contacts: remove mango queries
- integrations: remove credentials for contacts and calendar integrations with google from user doc
- trunk: custom routing
- storage: api -> config -> tasks are not being scheduled
- views: QVOICE Platform_callflows/list_by_owner_id
- storage: sftp -> creation of remote directories using two approaches
- sftp: add all supported ciphers
- tasks: progress
- queue-callback: save play_instructions field just for callback actions
- reports: DID detailed view
[2.78.0] - 2023-12-11¶
Added¶
- users: compatibility between downloaded csv and bulk upload
- addressbook: remove mango query
- webchat: use view to access doc
- dispositions: CRUD
- transcription: api -> integration with deepgram
Fixed¶
- storage: sftp -> creation of remote directory
- storage: cdrs and recordings storage server cache
- transcription: api -> new -> access to doc attachment
- users: improve users summary endpoint
- CI: users tests execution
- users-delete: remove conflicting documents
- reports-did: performance
- Mitel-provisioning: set ptime to 20
[2.77.0] - 2023-12-01¶
Added¶
- queues: add callback option to next actions
- ci: add junit support to enable test splitting by timing and reduce test execution time
- provisioning: add lock/unlock feature to templates
- cx: Collaborators - Update Agents when queues are updated in Portal
- provisioning: add Grandstream provisioning templates
Fixed¶
- callflows: faxing by owner ID view
- recordings: access to db
- mitel: web ui config
- test: disable CX
[2.76.0] - 2023-11-28¶
Added¶
- tests: provisioning
- tests: provisioning
- tests: provisioning
- contactservice: remove mango queries
- jitsi: support guests
- users: set extension mix and max len from config file
- registrations: add Registrations CSV header
- jitsi-meeting: store meeting on db and restrict only creators are moderators
- accounts: remove account's phones on delete
- users: creation -> extension max length validation
- jitsi-token: add our user id
- call-recording: custom filename -> remove call_id restriction
- jitsi: endpoint
- export: api -> exportable reports
Fixed¶
- users: check for valid account ID
- users: panic on get account users
- users: improve logging by adding more context on user enable/disable
- user-cdrs: return all CDRs
- storage: api -> sftp -> test upload
- users: add more context to error logs in user deletion cleanup
- callflows: remove mangoes on callflow methods
- users: change const to func
- ci: flakey tests
- whitelabel: api -> whitelabel images -> internal server errors
- numbers: error on number assignment when original user doesn't exist anymore
- reports: views filtering on queues cdrs reports
- zoho: call notify -> outbound calls
- bulk-user-creation: take into account mitel phones on user bulk creation
[2.75.0] - 2023-11-01¶
Added¶
- dbviews: remove unused code
- jitsi: added
- registrations: add device type and device name
- queue: remove mangos on queue edition
- get-devices: add option to avoid getting whole docs
- periodic-tasks: add boolean to disable restore recordings task
- leads-status: add pagination
- db: create recordings config views
- endpoint-queue-by: added
- endpoint-queue-by: added
- remove-publish-event: after disposition update
- cc: set agent state to available and trigger event on call hang up & disposition is mandatory
- login: add last_login_audit flag
- Onboarding: Send invitation SMS using HTTP POST and JSON body
- provisioning: add mitel 6865 and 6869 models
- event-queue-agent: add cid number
- call-recording: config -> add support for custom filename
- crm: url
- cc: queues status -> add DND & Agent status fields
- reports-upload: refactor to unify code across all reports upload tasks
- registrations: Status -> Registrations - Add CSV download
- provisioning: add web admin password to mitel template
- tftp: return file blindly if it exists
- provisioning: Add models to mitel
- provisioning: add Mitel provisioning logic for 6731 model
- login: add omnichannel status to the response
- ratedecks: add default rate increment
- report-inbound-outbound: recordings permission
- provisioning: save state to phone doc
- cdrs: set disposition and quality
- integration-test: user
- cypress-tests: request auth and device tests
- tets-e2e: cypress
- suport-encryption: start to support srtp and tranport tls
- reports: refactor to separate functions for json and csv data
- campaign-delete: add validation that its not running
- contact-center: remove calling queues app API endpoint to set agent login
- error-handling: unify old QVOICE Platform errors with new error handling function
- db: update dependency version to pass context to db requests for all ops
- build: use go 1.20 and static linking
- CI: separate unit tests from build step
- integration-tests: by cypress
- support-device-encryption: transport tls and encryption method srtp
Changed¶
- caller_id-users: remove mango queries
- pins: remove mango queries
- onboard-images: remove mango queries
- security_policies: remove mango queries
- callflows: remove mango queries
- payment-gateway: remove mango queries
- users: remove mango queries
- roles: remove mango queries
Fixed¶
- tasks: storage -> cdrs -> upload csv file -> media data for queue cdrs
- leads: fix memory issue on bulk upload
- queues: remove mangoes on queue deletetion
- extensions: remove mango on extension validation
- queue-edit: fix getting account db
- fmfm: error setting new state
- users-cache: do not reset cache for user if user id is empty
- account-trunk: remove mango from /api/v2/config/account/{account_id}/route/{route}
- callflow-events: error getting callflow doc from db
- queue-calls: panic
- pins: db access
- db-views: fix onboard images view design doc name on access
- ws: queue-agent event
- storage: 4d6552c fix(storage) api -> get recordings config -> do not return 500 response code when config is empty
- rate-reports: caller id number on rating transferred outbound calls
- provisioning: mitel blf
- user-tests: cy
- cc-call-rate: check if call id prefix is yyyymm not only int
- cc-disposition: check if call id prefix is yyyymm not only int
- cc: crm enabled pointer
- agent-login: do not check agent status to set it to new state
- tasks: storage -> reports -> cancelling messages
- tasks: storage -> reports -> upload json files is not being scheduled
- tasks: storage -> reports -> upload json file -> type param
- tasks: storage -> reports -> scheduling -> inverted task names
- tasks: messages processing -> omit category validation (temporary)
- faxbox: Do not GetUser ID couchdb method, use ID
- users-reports: fix users' Historical Report
- onboard-sms: add parameters to get and replace white spaces with + on get
- tasks-cdrs: uses key all for outbound calls CDRs
- codecs-ucp-device: patch
- CI: update deprecated node installation step
- mobile: deeplink login
- cdrs-upload: do not access value if not there for config options
- login: avoid fetching account docs multiple times
- login: stop using deprecated function with mango query
- devices: use views instead of mango query
- tags: use views instead of mango query
- cx: queues status race condition
- calls: unmarshal error
- callcenter: api -> set agent status -> using a custom state
- accounts: additional pointer check on edition
- provisioning: mitel tz offset calculation
- reports: rate report db view only set cid vals if they exist in doc
- zoho: call notify -> queue calls
- locations: delete -> users reassignation
- locations: api -> add/edit/remove -> deletion of trunk custom fields
- cc-reports: Queues Status - improve performance
- cx: improve error handling
- db-views: don't return on error when iterating over all accounts to upgrade views
- provisioning: escape Mitel SIP pass in template
- htek-provisioning: add header content length and type
- queues-status: improve performance getting queues status
- general: remove tmp file
- set-ucp-mobile-codecs: patch
- provisioning-htek: fix server name and uuid issue
- callcenter: agent queues list -> dids
- callcenter-agent-status: status missing
- db-context: pass background ctx to goroutine to avoid premature cancellation
- db: use context in queues handlers
- reports: remove pagination which caused wrong stats to be returned
- devices: panic accessing nil doc
- tech-debt: move Htek provisioning handler to its own file
- devices: panic accessing nil doc
[2.74.0] - 2023-08-20¶
Added¶
- campaigns: make target SLA configurable
- campaigns: allow to set 2nd & 3rd cooloff in leads CSV upload
- ring-groups: add ring group numbers to available caller id numbers
- agent-states: avoid view creation attempt on agent queue status query
- reports: add custom report to queue calls csv and queue outbound reports
- login: oauth -> google/microsoft
- cc-login-logout: return 204 instead of 305
- report-caller-activity: add queue name
- recording: stereo to mono
- reports: switch call id and bleg call id values for outbound custom report
- periodic tasks: add cdrs type to cdrs upload handler
- report-campaign-activity: add lead ticket id
- add-campaign-type: to campaign report
- campaign-type: add to campaign list
- campaigns: support multiple caller ids
- storage-tasks: add CRUD for campaigns activity report CDRs upload task
- storage: add option to upload Outbound calls report
- storage: add CSV single file option to CDRs Upload
- campaigns-reports: add CSV endpoint for campaigns activity report
- provisioning: unify htek template for all models
- tftp: add enabled flag
- tftp: add log info
- reports: add disposition to queue calls report response
- reports: add username and media name to outbound calls report
- ratedeck-csv: include rate_increment and rate_minimum fields
- reports: add event dial to agent history in queue calls reports
- provisioning: add support for Htek models
Fixed¶
- outbound-caller-id: migration
- agent-status: send rabbit mq message regardless of previous agent's status
- zoho: click to dial -> webhook configuration -> domain
- queues: add queue name to login/logout event
- csv-reports: use duration to calculate answered time
- storage: api -> edit configuration -> test upload process
[2.73.0] - 2023-06-30¶
Added¶
- campaigns: add new fields to campaigns
- campaigns: add wait duration, SLA and over SLA fields to campaigns activity report
- desktop-user-agent: add ucp version
- calls: allow to set call quality rate for call (1 to 5)
- cc: add media_recording_id to api/v2/reports/callcenter/queues response
- report-inbound-outbound-calls: add media recording id
- desktop-app-tracking: start tracking desktop app version in DB and add endpoints to return that info
- reports: add other leg call ID field to outbound report
- campaigns: add new fields to campaigns
- login: return 404 if user doesn't exist instead of 500
- numbers: move number to parent when account is deleted
- users: return role_id in users and users historical report endpoints
- db: update dependency version to pass context to db requests
- reports-csv: add Media Recording ID and Media filename cols to queue calls report (in & out)
- agent-states: look for agent login status in new doc
- dnd: save dnd state in user doc and in agent status doc
- users: add invitation status, cellphones and numbers to users list and users csv
- agent-states: add endpoints for custom Agent states CRUD
- agent-states: add endpoint to trigger action to start using custom agent states
- roles: migrate states doc
Fixed¶
- queues-reports: fix CDR response fields (unmarshal error)
- agent-login: wrong Not Modified response
- agents-login: fix panic on SetAgentLoginStatus
- tags: get total tags from DB
- states: fix endpoint to enable state for agent
- states: allow empty max allowed time field
[2.72.0] - 2023-05-11¶
Added¶
- db: update dependecy version to process error from iterview channel
- reports: delete unused queues endpoints and their related views
- contact-service: unit tests
- sms: add new provider
Fixed¶
- cache: do not get account balance from cache get it from crossbar to avoid cache inconsistency
- roles: admin permission
- device: profile devices panic
- storage: api -> get storage server configuration
- sms: callback for new provider
[2.71.0] - 2023-05-04¶
Added¶
- dependencies: update required db pkg version
- chatwoot-service: unit tests
- kapi: refactor -> implementation of ikapi
- reports: add timeRange param to some reports so all reports accept it
- log-docs: save login/logout historic to single doc per event
- reports: return CSV dnd activity times in hhmmss format
- users-cache: add error log when failing to execute user listbyid view
- campaign-service: unit tests
- db-server: add log lines and set http timeout to 300secs
- roles: move roles spec from code to db
- roles: add new admin role
- periodic-tasks: queue outbound cdrs -> upload single json file & csv file
Fixed¶
- storage: recordings -> options -> set directory
- fmfm: panic
- storage: recordings -> backwards compatibility with old document
- sms: push notification
- reports: dnd
- fmfm: profile update
- views: version number
- reports: del log line
- db: GetResultsFromView func
- db-service: validate func args length before accessing it
[2.70.0] - 2023-04-19¶
Added¶
- mfa: whitelist admin user
- userservice: move GetUserNamesByID to userservice
- periodic-tasks: cdrs -> view results multi processing with iterView
- db: database service -> view results processing with iterView
Fixed¶
- mm: access id by value instead of method
- db-service: Try to connect to secondary db. If it is not possible then disable it.
- userservice: check extension legnth before attempting to get user by extension
[2.69.0] - 2023-04-17¶
Added¶
- periodic-tasks: time range -> edit task last execution instantly
- cc-reports: use new csat result fields
- queues: add restrictions to queue name on queue creation
- reports: add answer event to agent history and csat to csv
- queues: api -> configuration -> outbound calls
- queues: api -> csat configuration -> direction
- reports: queue cdrs -> outbound
- callflow-service: unit tests
- calendar-service: unit tests
- accounts-service: unit tests
- reports: api -> cdrs -> ringing seconds
- provisioning: api -> list phones (csv)
Fixed¶
- get-fax-number: not return error in case not exist
- reports: memory pressure issue on GetOutboundCallsCSV endpoint
- callcenter: queues status -> calls listing
[2.68.0] - 2023-04-03¶
Added¶
- queues: api -> csat configuration
- provisioning: list phones -> add device registration info
- msg-load-queues: add ext
- user-login: improve teams update performance
- status: api -> list registrations
Fixed¶
- loop-request-retry: body length
- crm: zoho -> authentication
- status: api -> list registrations
- logging-secrets: remove it
[2.67.0] - 2023-03-16¶
Added¶
- log-docs: save dnd status in new format
- users: api -> get users historical data (csv) -> apply account timezone
- performance: improve /ws/v1/ucp/presence performance -> impacts on UCP sidebar
- cc: allow agent to set status
Fixed¶
- crm: zoho integration -> activation of no-us accounts
[2.66.0] - 2023-03-13¶
Added¶
- users: api -> get users historical data (csv)
- users: api -> get users historical data
- users: creation -> save historical data -> account/user creator
[2.65.0] - 2023-03-13¶
Added¶
- tasks: periodic tasks -> cdrs -> improvements on getting registers from db
- QVOICE Platform-task: service
- users: use views instead of json queries in bulk creation
- tasks: tasks service -> determine time range
- users: add GET all users summary as CSV
Fixed¶
- recordings: retry after getting conflict
- reports: add first and last name to agent history object
- campaigns: get leads history -> get media recording data
- tasks: periodic tasks -> cdrs -> improvements on getting registers from db -> remove logs
- crm: zoho -> call notify -> events filtering
- cache: add mark as dirty method in accounts cache
- tasks: periodic tasks -> restore recordings -> update gorec api
- queues: use media recording id instead of media recordings
- account: check for string length before accessing it
- tasks: restore recordings -> when day is < 10
- users-bulk: don't allow empty extensions
- integrations: panic on Google contacts/calendar integration deletion
- tasks: interval panic due to empty interval
[2.64.0] - 2023-02-28¶
Added¶
- tasks: periodic tasks -> restore recordings -> integration with tasks service
- database: new design doc & view -> QVOICE Platform_recordings -> list_by_call_id
- tasks: periodic tasks -> restore recordings
Fixed¶
- reports: queue calls
[2.63.0] - 2023-02-24¶
Added¶
- users: filter GET all users result using tag restriction
- ci: update linter job to large resource class in config.yml
- users: add endpoint to bulk delete users
Fixed¶
- queues: misconfigured agents - check callflow owner ID
- numbers: panic when number has no previous owner
- campaigns: leads bulk creation response
- lead-edit-event: case bulk
[2.62.0] - 2023-02-22¶
Added¶
- crm: zoho -> call notify -> blind transfers
- crm: zoho integration -> call notify -> improvements and fixes
- omnichannel: improve messaging system between gpbe and routing service
- onboarding-invitations: improvements on API (new statuses, history)
Fixed¶
- queues-status-active-calls: ignore conf calls and use destination
- users: improve user<>tag info merging
- users: improve efficiency getting onboarding status for users
- users: user invite status loop
- view: queue field name case validation
- crm: zoho -> call notify -> blind transfers
- user-getting-disabled: on login to desktop
- queues: do not send empty slice as options if no queues
[2.61.0] - 2023-02-16¶
Added¶
- get-feature-code: voicemail
- vmbox-pin: set
- vmbox-pin: get
- tags: add endpoint to edit tags in bulk via CSV
- users: add 'tag' field to bulk user creation endpoint
- voicemail-endpoint: delete
- queues-status: add internal & external calls
- crm: zoho integration -> call notify
Fixed¶
- crm: zoho integration -> activation
- accounts: creation -> bad request response when required fields are not present
- reports: list user cdrs -> get media recording
- queues: view query when getting queue status for account
- queues: don't allow the same agent to be added more than once when editing the queue
[2.60.0] - 2023-02-09¶
Added¶
- queues: add agent tags to queues status response
- queues-cdrs: list queues cdrs -> media recording data
- queues-stats: make sure user extension exists in callflows
- ci: fix go version for linter job to avoid errors
- omnichannel: assign random agent from on dummy assignment
- cdrs: set abandoned status according to transfered_on_digit value
- docs: add support for autogenerated swagger docs
- queues: add 'In queue' actions: callflow and campaigns
- queues: create views for query selectors in queueservice
- omnichannel: sync Omni inboxes when queue is updated/deleted
- omnichannel: add endpoint to get cw conversation list
- omnichannel: create Omni user when user is created if omni is enabled
- omnichannel: create/update team in CW when queue is created/updated in QVOICE Platform
- omnichannel: improve the way to get user's Omnichannel User ID
- crm: zoho integration API
- queues: refactor -> create queues service
Fixed¶
- reports: match Agents activity (cc) report with users activity
- queues-cdrs: abandoned value
- queue-calls-csv: queue name
- debugging: add log context on get queues
- queues: fix account mapping and queues stats by consulting external queues service
- omnichannel: webhook URL
- queues-service: remove once initialization
- queues-service: remove once initialization
- queues: add retries to queues server; improve logs and error messages
- cdrs: fix migration version
- cdrs: fix setting abandoned according to transfered_on_digit value
- omnichannel: fix handler to get Agent Status For Account
[2.59.0] - 2023-01-17¶
Added¶
- callcenter-status-voicemail: lead and cdr
Fixed¶
- omnichannel: rename some message fields
[2.58.0] - 2023-01-13¶
Added¶
- omnichannel: add conversation routing logic
- tests: various improvements
- metrics: add firehose connection metrics
- inboxes: inboxes api -> register inbox -> sms -> dids assignment
- numbers: numbers api -> check if number is free sms
- omnichannel-account: set enabled receive id
- account-omnichannel: return is enabled
- recordings: return 404 response if recording not found
- omnichannel: associate agents to cw inbox
- omnichannel: add endpoints to manipulate the list of queues associated to cw inbox
- campaigns: add set lead status endpoint
- omnichannel: add conversation webhook for account on omnichannel activation
- omnichannel: propagate chatwoot users creation following fono agents dynamics
- omnichannel: add omnichannel status on account info retrieval
- omnichannel: customize SSO link according to X-User-Agent header
- omnichannel: transfer portal user edition to chatwoot user
- chatwoot: add endpoint to get sso link
- omnichannel: add endpoint to enable/disable omnichannel for account
- chatwoot: add chatwoot service
Changed¶
- onboard: reinvite
Fixed¶
- roles: admin call center reports
- roles: add status permission to callcenter roles
- campaigns: edit queue
- omni: ucp user role
- tests: fix x-account-id header
- metrics: rename firehose metric
- sms: use proper struct to store
- omnichannel-assign: inbox
- accounts: fix bad request message on account creation with existing realm
- firehose: channel bridge event added and events with no owner id not filtered anymore
- omnichannel: email used to create cw users
[2.57.0] - 2022-12-07¶
Added¶
- roles: new role -> admin callcenter, recordings, outbounds and inbounds calls
- leads-status: add cool off
- leads-status: add queue name
- schedule: add logs to schedule task service
- firehose: use userservice
- errors: improve bad request error messages
- onboard-sms: apk beta
- campaigns: send campaign id on lead deletion event
- campaigns: add endpoint to allow lead reset
- campaign: send Account and Queue information on Lead delete event
- reports: use db service for dnd report
- reports: use db service for usage and users charges reports
- reports: use db service for callcenter agent sessions report
- campaigns: send full campaign info on campaign's DELETE event
- campaigns: add endpoint to get leads CSV
- reports: use db service on inbound calls report
- reports: use dbservice for recordings report
- reports: use dbservice for queue calls
- reports: use db service for dids activity reports
- reports: use db service on callers activity report
- reports: use db service for outbound calls report
- reports: use db service for users activity report
- tasks: improvements on canceling
- get-main-numbers: endpoint
- tasks: improvements on scheduling and re-scheduling
- onboard-apk-beta: invitation
- utils: minor code improvements
- tasks: add a flag to enable/disable tasks listener
- users: use cache in userservice.GetUsersDocsById method
- agents: improve agent session save method
- tasks: intervals enums -> strings
- storage: update uploadCDRs endpoint to fit into new tasks logic
- tasks: cdrs -> upload cdrs json documents
- cdrs: don't upload if CDRs file is empty
- cdrs: set the base destination directory to CDR's start date instead of the current date
- cdrs-upload: separate config for cdrs and queue cdrs
- reports: add bleg column to queue calls CSV download
- cdrs: allow to add date prefix to uploading cdr
- cdrs-upload: allow to set a separated directory for queues CDRs
- database: improve load method
- lint: improve coverage
- mobile: use user service
- accounts: allow resellers to deal with numbers
Fixed¶
- cache: map deep copy
- users: username check
- campaigns: add cooloff to new campaign
- campaigns: leads status report response when account has no campaigns
- call-recordings: use userservice
- users-handlers: use userservice
- locations: use userservice
- users: use userservice
- login: use userservice
- campaign: caller id
- users-cache: deadlock in MarkAsDirty func
- debug: change log message
- cdrs-report: return next start key in gregorian
- cache: initialization
- users: add nil check and remove redundant error return
- users: use account id instead of account db name when calling userservice to get docs by id
- metrics: fix panic
- users: check for nil pointer in user doc
- linter: improve code quality
- campaigns: don't allow to change the queue in campaign edition
- cdr-storage: recordings server config GET
- user-cdr: caller id number
- recordings: send doc in struct type to get attachment
- accounts: fix is_reseller value
[2.56.0] - 2022-10-28¶
Added¶
- user: set account name on user context
- ratedecks: fix ratedeck DB name when upgrading an account to reseller
- campaigns: add leads field (total number of leads) to campaigns endpoint
- campaigns: add lead status to campaign call history
- tasks: schedule cdrs upload through new tasks service
Changed¶
- get-user: by username
Fixed¶
- reports: include abandoned calls in queue calls report CSV
- phones: small fixes
- storage: cdrs -> get configuration
- storage: cdrs -> test s3/sftp config (taking into account bucket restrictions)
- campaigns: leads bulk upload
- users: performance issue
- campaigns: report values
- campaign-reports: fix campaign activity history report
[2.55.0] - 2022-10-17¶
Added¶
- campaigns: add Queue-Name field to lead edition events
- campaigns: add scheduled state
- campaigns: add caller_id field to campaigns
- campaigns: historic lead information report
- queues: don't allow deletion if the queue is tied to a campaign
Fixed¶
- campaigns: set status -> scheduled to stopped
- campaigns: allow to change queue associated to campaign and campaign name
- account: add recharge thresholds and amount to account detailed response
- account: return enabled properly
- campaigns: campaigns and leads edit
- sip-trunk: add custom_sip_headers field to sip trunk db struct
[2.54.0] - 2022-10-12¶
Added¶
- campaign: lead-dial-timeout
- campaigns: add lead_dial_timeout field to leads doc
- campaigns: live lead status report
- campaigns: add fields to events
- campaigns: add events for campaigns and leads crud
- campaigns: receive time_range array for campaign
- campaigns: add schedule options to campaigns
- campaigns: add e164 validation
- campaigns: add queue name field to campaign doc
- campaigns: add view to list campaigns by status
- campaigns: add columns to bulk CSV leads creation
- campaigns: move number doc to lead doc, adding fields
- users: move transient data to separate doc
- cdrs: upload cdrs to any storage service listening call events
- users: allow to delete users that belong to a queue
- cdrs: upload api -> add download recording url to json document
- cdrs: upload api -> single csv file
- queues: add agent history to queue report
- accounts: migrate get accounts to v2
- auth: use accounts and users services to gather auth data
Changed¶
- QVOICE Platform-queues: client
Fixed¶
- lead: remove lead dial timeout
- campaign: cooloff
- campaigns: omitemtpy non-essential lead field
- users: improve CSV users upload error response
- campaigns: id field in events
- campaigns: fix events fields values
- campaigns: add missing fields to events
- reports: do not charge calls per extension if call has no extension
- metrics: remove unused metrics
- queues: active calls data
- users: move transient data to separate doc
- call-events: unmarshal
- campaigns: bulk upload form field name numbers -> leads
- campaigns: naming convention change: number -> lead
- did-report: inbound stats always 0
- calls: hangup -> try with inbound/outbound leg uuid
- users-activity: inbound talked average
- cdrs: upload api -> all cdrs
- cache: services -> enums definition
- add-remove-credit: http error code
- reports: filter offnet inbound calls in internal calls
- onboard-login: case user deleted
- auth: case user deleted
[2.53.0] - 2022-09-16¶
Added¶
- permissions-spy-barge: added
- call-barge-spy: support
- storage: cdrs -> external api -> add sync between auth and upload process of multiple accounts
- storage: cdrs -> external api -> get document by interaction_id and direction
- campaigns: set campaign status
- storage: cdrs -> external api -> retry to get document before upload
- storage: cdrs -> external api -> improvement in authentication process
- storage: cdrs -> external api -> improvements on upload process
- storage: storage api -> remove configuration
- storage: cdrs -> add support for an external api (send documents by listening call events)
- cache: new service -> storage configuration per account
Changed¶
- pivot-port: var
Fixed¶
- access-token: expiration time
- download-recordings: permission
- cache: invalidation
- views: create security views on account creation
- storage: cdrs -> external api -> retry to get document before upload
- cdr-upload: register metrics
- faxes: response error
- reports: complete empty doc.to value in users activity internal
- queues: edition payload validation
- storage: cdrs -> external api -> remove sleep
[2.52.0] - 2022-09-01¶
Added¶
- cdrs: upload cdrs -> direction
- cdrs: upload cdrs -> separated json files for all and queue cdrs
- campaigns: crud
Fixed¶
- cache: invalidation policy
[2.51.0] - 2022-08-19¶
Added¶
- cache: move logs to level debug
- sms: sms providers -> message bird
Fixed¶
- login: check security MFA nil pointer
[2.50.0] - 2022-08-09¶
Added¶
- reports: add internal calls param to users activity report
- admin-role: callcenter, recordings and outbound calls
- security-policies: multi factor authentication
- users: add is_callcenter_agent flag to users response and prevent agent's deletion
Fixed¶
- events: access to nil slice
- users: view
[2.49.0] - 2022-07-28¶
Added¶
- users: add endpoint to set fmfm for user
- cache: index users by username
Fixed¶
- faxes: get all faxes
[2.48.0] - 2022-07-22¶
Added¶
- callcenter-reports-role: added
- queues: add incoming call pop up config to queues
- presence: use accounts and users services
- event-registration: add user agent
- presence: add endpoint to reset user presence
- faxes: improve fax error messages
- callcenter: detect transferred queues calls in supervisor view
- devices: add media audio codecs field to devices creation endpoint
- crossbar: propagate bad request info
- reports: add tags to rates reports
Changed¶
- userservice: remove accountDB param
- crossbarservice: accounts
- crossbarservice: device
- crossbarservice: vmbox
- crossbarservice: media
- crossbarservice: tasks
- crossbarservice: users
- crossbarservice: calls
- crossbarservice: apps
- crossbarservice: groups
- crossbarservice: rest -> new metrics
- crossbarservice: reports
Fixed¶
- callcenter: send agent event just when call is answered
- Build
- command: start
- cache: invalidation on callflow edition
- users: nil presence_id on edit
[2.47.0] - 2022-07-05¶
Added¶
- cache: cache users docs
Changed¶
- crossbarservice: conferences
- crossbarservice: callflows
- crossbarservice: trunks
- crossbarservice: ratedecks
Fixed¶
- numbers: move numbers to previous account
[2.46.0] - 2022-07-01¶
Added¶
- numbers: move numbers to previous account when account is deleted
[2.45.0] - 2022-06-30¶
Added¶
- reports: do not return LOSE_RACE records in users activity report
- get-user-cdr: add page size param
- cache: add accounts to cache service
- storage: storage api -> recordings
- presence: add callcenter_presence_enabled field to login/refresh response
- provisioning: migrate devices endpoints
- callcenter: add agent events
- ucp: add event to propagate agent login/logout status
Fixed¶
- accounts: account creation -> realm validation
- events: propagate login/logout event
- account-creation: check that account name doesn't finish with a dot
- events: make unregistration events re-appear
- tests: fix reports tests using timeRange instead of start and end dates params
[2.44.0] - 2022-06-23¶
Added¶
- callcenter: save sessions config
- callcenter: save sessions config
- crossbar-service: migrate accounts related methods
- dbviews: add devices views
- cdrs: upload cdrs -> file improvements
- provisioning: migrate phones endpoints
- provisioning: migrate template endpoints
- queues: add wait time field to call center load data
- storage: storage api -> storage configuration of a specified resource
Fixed¶
- queues: nil check and view creation
[2.43.0] - 2022-06-17¶
Added¶
- fax: return fax filename and type on response headers
- metrics: add metrics to the new crossbar pkg
- queues: Add Queue calls events to WS
- cdrs: upload cdrs -> major improvements
Fixed¶
- faxes: notifications email send to can be slice or string
[2.42.0] - 2022-06-10¶
Added¶
- account: add endpoint to return credit for account in xml format
Fixed¶
- cc-reports: queue cdrs order
[2.41.0] - 2022-06-09¶
Added¶
- linter: enable bug-catching linters
- gorec: trigger gorec recordings server config reload on config change
- cdrs: upload api -> single json file
Fixed¶
- queues: fix panic on pointer deref
- documentation: reports api
[2.40.0] - 2022-06-08¶
Added¶
- cc-reports: add endpoint to download queue calls in a csv file
- ratedecks: add check for case insesitiveness to avoid unwanted behaviour from kazoo
- cdrs: upload api -> external storage service
Fixed¶
- queues: allow only positive numbers for max time in queue field
- users: update login/logout status from queue
- users: fix user patch setting User Onboarding Invited State
- queues-status: fix logged in agents status info
- bulk-users-creation: fix number already in use check
[2.39.0] - 2022-06-02¶
Added¶
- reports: use cc records for queue stats
- callcenter: get callflows using views for queue status
- get-users: add presence id
- reports: add pagination to queue cdrs endpoint
- new-admin-type: callcenter and recordings
- devices: add get device endpoint
- rates: add direction to ratedeck CSV download and rate edition
- reports: add all users activity detailed report
Fixed¶
- test: dates
- queues: get queue -> next actions
- callcenter: check for sessions length to avoid panic
- queues: invalid access
- bulk-users-creation: assign phone number to user
- get-users: remove admin constraint
[2.38.0] - 2022-05-16¶
Added¶
- callcenter: add queue id to agent login logout data
- queues: use views instead of mango queries on getqueues
- users: propagate Crossbar error when failing creating user
- agent-history: add event
- report-queue-calls: add caller_id_name
- mobile: allow to overwrite cloud id
- report-views: success and answer disposition are normal_clearing
- reports: support predefined periods
- signup: signup api -> support for otp sms config (unique cellphone validation)
- ratedecks: add error log
Fixed¶
- queues: views execution
- commands: log sup cmd output
- goportal-template: remove customers_api_server
- goportal-template: add customers_api_servers
- tests: rates reports range
- cache: concurrent map access
[2.37.0] - 2022-04-28¶
Added¶
- users: add parallelization param to config file
- moh: MOHs API -> upload, set as default, get, delete
Fixed¶
- users: parallelize bulk user creation
- caller-id: User outbound Caller ID
- queues: return agent.connected as bool
[2.36.0] - 2022-04-26¶
Added¶
- periodic-tasks: Add metrics
- fax: allow to send fax only from a valid number
- main-company-number: get, update and assign main company number
- caller-id: endpoint to update account caller id
- callflows: callflows api -> create and update
- assign-number: update user external and emergency caller id
Fixed¶
- billing: payment methods -> validation
- route: set route to trunk to local if new account is reseller
- ratedecks: response
[2.35.0] - 2022-04-13¶
Added¶
- queues: improve queues status response
- linter: improve linter coverage
- cdrs: add fax_id and fax_info to cdrs
- recordings-server: test recordings server doing a upload to server
- periodic-tasks: add logs
- couchdb: add client metrics
- queues: add endpoint to return queues active calls
- signup: account creation -> set trunk configuration based on free numbers
- callcenter-call-spy: instead whisper
- callcenter: add endpoint for Whisper and Barge actions
Changed¶
- billing: check signup status to run periodic tasks
Fixed¶
- conferences: fix conferences results
- conference-struct: type
- conferences: data decode error
- call-actions: spy method
- queues: use working account for spy/barge actions
- queues-status: avoid panic
- mobile-provisioning: decode domain for own customer
- mobile-login: sanitize account
- billing: monthly billing -> accounts without a payment method
- tests: fix failing tests
- credit: add credit to specified account
- add-numbers: validation
- number-creation: return 500 when fail
- auth: improve decode domain to allow account name with dots
- users: revert concurrency in bulk users creation
[2.34.0] - 2022-03-29¶
Added¶
- users: add concurrency to bulk user creation
- presence-firehose: allow firehose and presence to be globally disabled
- presence: configurable
- docs: improve docs according to client's requirements
- docs: improve docs according to client's requirements
- billing: billing of free numbers (monthly and service plan update)
- numbers: list numbers -> evaluate free numbers
- numbers: assign free number
- signup: settings api -> free numbers configuration
- views: create new numbers view to count free of charge numbers
- linter: improve linter coverage
- queues-cdrs: add field to response
- doc: document APIs for client integration
Fixed¶
- callcenter: queues status
- users: bulk creation
- views: protect splits
- views: protect splits
- views: e164_destination field
- views: check valid QVOICE Platform struct
- views: check valid cdr QVOICE Platform struct
- users: avoid problems with users whose names contain special chars
- firehose: check valid token struct
[2.33.0] - 2022-03-14¶
Added¶
- queues: add talk_time startegy and wrap_up field
- outobund-calls: add user caller id fields
- linter: improve linter coverage
- queues: add disposition field to queues response
- callflow-path-log: response
- queues: add QVOICE Platform.strategy
- cdrs-report: add recording filename
- ci: add linters
- recordings-server: support to integrate with a sftp server
- add-park-code: to template
- set-account-realm: on new
- queues: allow to set max time in a queue in seconds
- reports: add csv endpoint for detailed dnd report for user
Fixed¶
- billing: events -> change service plan
- reports: users charges
- billing: monthly suscription
- dnd: fix dnd bug
- billing: set account service plan -> patch account
- billing: autoreconcile account quantities
- DND: new session case
- recordings: error catch
[2.32.0] - 2022-02-24¶
Added¶
- sms: support for a new sms provider -> voip innovations
Changed¶
- assign-number: create func to remove number from user
Fixed¶
- login-by-google: use username instead email
- reports: timezone error in fax csv report
- billing: new user event duplicated
- numbers: return user id instead of name
- numbers: list reseller dids if numbers provider is not configured
- numbers: integration with numbers provider
- assign-number: to user
[2.31.0] - 2022-02-17¶
Added¶
- recordings-server: recordings server api -> bucket directory
- ping-pong: endpoint
- db: add methods to get view results from db as structs
- billing: billing system major improvements
- numbers: add endpoint to allow numbers assignment to users from portal
Fixed¶
- set-invited: user
- users: fix bug in helper func
[2.30.0] - 2022-02-11¶
Added¶
- reports: Add CSV download for Fax activity report
Changed¶
- add-credit: log in error case
Fixed¶
- validate-extension: query
- set-provider: on reseller account
- query-get-user: not deleted
- send-sms: decode body and to
- query-get-user: not deleted
- reports: fix dnd duration calc.
[2.29.0] - 2022-02-02¶
Added¶
- custom_routing: add resources module after pivot
- faxbox: assign callflow to faxbox
- credit: recharge -> prevent fraud
- numbers: purchase dids -> prevent fraud
- numbers: Add endpoint to return account Free numbers
- download-fax: by id
- fax: Add endpoint to return faxes from account
Fixed¶
- dnd: fix dnd end date when dnd started on prev. month
- reports: repeated users in dnd report
- reports: add start and end time in faxes report
- reports: fax reports
- dnd: fix returned dnds in detailed dnd report by user
- faxes: call faxes db views creation in sharded dbs cmd on account creation
- tests: add credit
- security: security policies -> exclude admin and signupreseller accounts
- numbers: error log
[2.28.0] - 2022-01-21¶
Added¶
- cdrs: implement handlers to get queues cdrs
- queues: Add view to return Queue CDRs
- reports: add csv report for calls summary for all children
- reports: add endpoint for recordings report as csv
Fixed¶
- reports: Total charges per account returns
[2.27.0] - 2022-01-18¶
Added¶
- start: use mutexes to sync services start
- cors: allow requests only from domain
- devices: create gs_wave device when user log in
Fixed¶
- faxbox: fix working accont on faxbox endpoints
- user: request to crossbar has no response
[2.26.0] - 2022-01-17¶
Added¶
- billing: add support for payhost payments gateway
Fixed¶
- rates: fix rates list as csv endpoint
- faxbox: Fix account id in faxboxes endpoint
- faxbox: fix account id in faxboxes endpoint
- mattermost: creation of teams with accounts that contains _
- logging: remove log
[2.25.0] - 2022-01-12¶
Added¶
- reports: add csv endpoint for external callers activity report
- reports: add endpoint to access csv for DIDs activity report
Fixed¶
- collaboration: generate password if team user doc does not exist
- billing-events: service plan -> update in account doc
[2.24.0] - 2022-01-11¶
Added¶
- reports: add endpoint to access csv for users activity report
[2.23.0] - 2022-01-11¶
Added¶
- fax: add tx_result to ws event
- ratedecks: add ratedeck rates csv download
- fax: add direction to fax ws event
- fax: Expose faxbox config endpoints
- fax: propagate fax events via ws
- metrics: add system-wide metrics
Fixed¶
- auth: check param length before slicing
- users: lowercase email and username on user creation to match kazoo restrictions
- auth: add accountname to userdoc on auth to context
- reports: include outbound fax calls in interaction list
- faxes-view: range
- fax: add tx and rx data to response
- fax: update view to query to get faxes outbox
- fax: fix multipart formation func
- fax-event-propagation: query typo
- fax: fix ws event filter
- accounts: Delete account if creation fails. Added error messages
[2.22.0] - 2021-12-29¶
Added¶
- payments-gateway: store currency in configuration document and do payments using currency set
- payments-gateway: endpoint to list available currencies
Fixed¶
- user-faxing: struct
- providers: fix panic on getting numbers providers
- fax: return if db is not found
[2.21.0] - 2021-12-27¶
Added¶
- reports: get recording storage servers (local, refract or amazon s3)
- recordings-server: recordings server api
- fax: Add endpoints to send fax and get fax status
[2.20.0] - 2021-12-21¶
Added¶
- queues: add callflow next actions
Fixed¶
- users: fix panic getting custom callerid
[2.19.0] - 2021-12-13¶
Added¶
- security-policies: check for password security requirements
Fixed¶
- ratedecks: allow to upload 20000+ rates ratedecks
- reports: solve timezone related issue
- dnd: remove user id and improve duration formatting in csv report
- ratedecks: fix admin ratedeck creation
- ratedecks: log error
- dnd: report per user
- enable-fmfm: when profile active don't have devices
- dnd: response code when the response is ok
- teams: sync
- dnd-report: fix date management bug
[2.18.0] - 2021-11-28¶
Added¶
- sms-inbound-outbound: add to / from
- numbers: client for integration with voip innovations provider
[2.17.0] - 2021-11-24¶
Added¶
- firehose: add accounts and events filtering
- dnd: add csv report endpoint
- db: optimize db access
- firehose: add token expiration time
- firehose: add filtering account and duplicated events
- dnd: add detailed per user report
- firehose: add firehose WS initial API
Changed¶
- firehose: not on dev env
Fixed¶
- teams: sync
- device-creation: complete struct
- queues: add some error checking
[2.16.0] - 2021-11-16¶
Added¶
- tests: improve api testing infrastructure
- sms: add ucp support
- user-service: get as interface
Changed¶
- get-user: view use user id
- get-user: use userservice
- get-user: use view instead query
Fixed¶
- password-age: disable it
- magic-link: mobile
- account-create: call recording
- tests: add explicit pin log when pin parsing fails to understand why it failed.
- tests: make sure random extension is between 100 and 99999 on user creation test
[2.15.0] - 2021-11-05¶
Added¶
- security-policies: implementation of password age
Fixed¶
- security-policies: implementation of password age
[2.14.0] - 2021-11-05¶
Added¶
- ratedecks: when a reseller account is deleted, delete its associated ratedecks, too
- security-policies: implementation of password history
- tests: add tests for ratedecks
Fixed¶
- migration: avoid sharded db loop
- security-policies: inactivity period -> periodic task
- user-patch: retry on 409
- security-policies: implementation of password history
- user: retry patch if 409
[2.13.0] - 2021-11-02¶
Added¶
- ratedeck: Resellers can create their own ratedecks
- accounts: add Patch method to accountservices
Fixed¶
- views: loop when creating views on a non existent sharded db
- Account: add enabled flag to account patch methods
- mobile: login context user
- ratedecks: base ratedeck creation on reseller account creation
[2.12.0] - 2021-10-26¶
Added¶
- security-policies: endpoint for get password length security policy configuration
[2.11.0] - 2021-10-25¶
Added¶
- security: authentication -> check if user is enabled
- security-policies: security policies configuration api and implementation of inactivity period and lockout threshold
Fixed¶
- tests: credit
- config: Fix ucp download recordings endpoint
- get-usernames: by presence id
- get-accounts: using admin credentials
[2.10.0] - 2021-10-22¶
Added¶
- kazoo: add endpoint to easily access kazoo task status
- provisioning: add support for new button types (xml_browser and custom)
- accounts: migrate api/v1/config/account/{id}
Fixed¶
- portal: ucp dashboard preferences toggle
- tags: update tags bulk edition for smoother integration with FE
- provisioning: line keys definition for yealink templates
- accounts: remove return on views creation error
[2.9.0] - 2021-10-18¶
Added¶
- google-integration: support staging and ucp
Changed¶
- auth: refactor of auth pkg and login endpoints
Fixed¶
- google-integration: add logic to convert env in path
- calendar: list calendar events without datetime
- readme: document additional env var needed for tests to run properly
- operator: re-add flag is_operator to login response
- tests: set reseller account token automaticall
- tests: fix query dates.
[2.8.0] - 2021-10-11¶
Added¶
- webchat: webchat configuration api
[2.7.0] - 2021-10-11¶
Added¶
- image-mail-onboard: per account
- google-calendar: google calendar api and service
- users: add
is_operatorflag to refresh and login response - users: set is operator boolean to user creation/edition.
- users: Add endpoint for tags bulk action
Fixed¶
- login: get account info from accounts db
- account-images: endpoint
- signup: view creation error handling
- signup: return forbidden instead of unauthorized on get payment methods
- Test
- ldap: add api tests for ldap
- user-get: return is operator
- numbers: enable adding numbers to grandchildren accounts
- numbers: enable adding numbers to grandchildren accounts
[2.6.0] - 2021-10-01¶
Fixed¶
- tests: fix CI pipeline
[2.5.0] - 2021-09-30¶
Added¶
- tags: add restrictions by tag policy to recordings
- dnd: add endpoint to get users who currently have dnd enabled
[2.4.0] - 2021-09-28¶
Added¶
- dnd-presence: enable / disable
- profiling: add scripts to obtain metrics from cpu, memory and goroutines profiling
- reports: add DND Report
Changed¶
- use-account-service: in reports
Fixed¶
- payments: get payment methods -> check pgw provider doc account creation -> check pgw provider type
- outbound-report: get caller id from other leg
- metrics: add path prefix to paths in subrouters
- usage-charges report: set extension and username from other leg cdr
- tests: fix new user creation api testing
- reports: set user name based on presence_id
- callcenter: return all agents when call goes to all agents callflow
- check-error: marshal
[2.3.0] - 2021-09-20¶
Added¶
- billing: add custom payment gateway client into billing pkg
Fixed¶
- payment-gateway: return publishable_key if account is not admin
[2.2.0] - 2021-09-17¶
Added¶
- registration-user-agent: add
- reports: make default page size configurable via config file
- contacts: do not use get directory function anymore
- last-login: ignore ips configurable
- provisioning: accept handset option for new yealink model (w60p)
Changed¶
- account-service: get by id
- update-last-login: in a new thread
Fixed¶
- http-error-code: empty -> 500
- provisioning: use directory view to build directory
- validation: check marshall error
- provisioning: do not validate source IP on locked state
- fmfm: nil pointer
- dnd: in load msg ws conn
[2.1.0] - 2021-09-07¶
Added¶
- provisioning: make locked time period configurable
- provisioning: add locked time and source_ip fields to phone
- tags: add tags to ucp response
- user: save last login data
- get-devices: endpoint
- tags: return tags field on config/users and config/users/{id} endpoints
- endpoint-callflow-faxing: added
- tags: add endpoint to get tags by type
- user-creation: validations
- tags: add tags endpoints.
- users: add users by presence id view
- billing: billing of phone numbers and service plan change
- script: add run script for go 1.17
Changed¶
- login-log: when load user fail
Fixed¶
- provisioning: add locked state ip check
- fix-enable-fmfm: when no profiles
- fmfm-edit-profile: able disable when is not active
- fmfm: nil pointer check
- ucp-contacts-tags: load
- provisioning: locked when perm uuid exists
- users: user doc edition
- reports: check rated calls len
- fmfm: instance empty struct
- get-number-db: validation
- tags: remove ids field from all tag-related docs. Tests and docu updated accordingly.
- call-center: delete invalid struct
[2.0.0] - 2021-08-24¶
Added¶
- accounts: use admin from working account when creating accounts
- reports: Add new report to see all customers minutes
- fmfm: logic
- ucp-api: UCP V1 -> API New Endpoints & Billing of Signup Accounts
Changed¶
- dashboard-prefs: remove duplicate routes
Fixed¶
- billing: stripe client -> duplication of customers
- credit: set account name on working user doc
- reports: use pointer as param
- custom-routing: configuration for signup and portal accounts
- fmfm: validation
- fmfm: add profile
- fmfm-struct: types
- doc: re-arrange documentation which got messed up in a merge
- fmfm-disable: endpoint
- fmfm: set slice profiles to an empty slice
- fmfm-sync: with monster
- billing: event listener -> service plan edition
- credit: ucp api -> get credit balance
- queues: valid cdr
[1.53.0] - 2021-08-02¶
Added¶
- download-recording-by-user: enable / disable
Fixed¶
- add-encode-error: validation
- numbers: handle error in numbers
[1.52.0] - 2021-07-29¶
Added¶
- numbers: execute sup kupps_config flush when number manager edited
- cdr: Do not use caller ID number on inbound Calls
- credit: Allow to add/remove credit to grandchildren accounts
- secure-edition: user and account admin
- cdrs: add check recordings sanity
- new-admin-type: inviter
Fixed¶
- credit: if account is admin then return context user
- fatal-logs: replace fatal logs with error ones to avoid server restart when this was clearly not intended
- cdr: desination out of order hang up cause
- cdr: ignore lose_race disposition docs
- realm: not edit realm on edition
- user-delete: fix callflows and conferences cleanup
- reports: cdrs pagination and check that call recording exists
- recordings: add pvt_attachments to recordings query
[1.51.0] - 2021-07-06¶
Added¶
- gsm-prefix: mobile
Fixed¶
- template: toml
[1.50.0] - 2021-07-02¶
Fixed¶
- reports-amount: calculation
[1.49.0] - 2021-06-30¶
Added¶
- summary: run account summary calculation once a day in maintenance window
Fixed¶
- provisioning: check user transport for mobile
[1.48.0] - 2021-06-24¶
Added¶
- reports: create reports views if they do not exist
Fixed¶
- addressbook: get account id from header insteado f param
- docs: fix verb used on deletion in docs: get -> delete. Code was ok, so only doc change was needed; theres no risk of breaking functionality
[1.47.0] - 2021-06-20¶
Added¶
- upload-addressbook: endpoint
Changed¶
- addressbook: change pvt type and id to QVOICE Platform_directory
Fixed¶
- get-addressbook: case when no exist
- reload-ucp: using rabbit
[1.46.0] - 2021-06-17¶
Added¶
- dnd: propagate user dnd state changes
- accounts: listen for account created event and create database views
Fixed¶
- autoprovisioning: ucp preferences struct validator
- rates: read rates cost and prefix as interface from db
- users: accept charges when creating users
[1.45.0] - 2021-06-11¶
Added¶
- endpoint-reload-ucp: send msg by ws
- ucp preferences: add endpoint to enable/disable ucp preferences
- users: set user email always to lowercase
Fixed¶
- sms: use timestamp on messages views keys
- sms: return first last sms message
- realm: create realm from info provided by name + domain; ignore realm provided by fe
- log-msg: delete google account
[1.44.0] - 2021-06-03¶
Added¶
- get-registrations: endpoint
- sms: new sms provider integration -> MySMS (Ixica)
Fixed¶
- user: add attributes missing on google contacts integration.
[1.43.0] - 2021-05-28¶
Added¶
- users: support for bulk users creation
- cdrs: set page size to 1000
- signup: modifications on some handlers and create new endpoints for signup
- user-cdr-endpoint: migration from python
- queues-status: endpoint
Changed¶
- log: remove unless log
Fixed¶
- call-recordings: update per user mode
- usage-charge-cdr-duration: function by increment value
- users: creation
- callcenter: change callcenter admin login route
- ratedeck-edition: rate_cost and prefix
- cdrs: do not return next start key if it is out of date range
- cdrs: return always last key
- numbers: own account
- user-report: user activity names including user_
- cdrs: return just inbound cdr legs
- users-reports: look all records to find user name for report
- cdrs: only return startkey if len is greater than pagesize
[1.42.0] - 2021-05-11¶
Added¶
- cdrs: add cdrs endpoints
Fixed¶
- mobile-collect: user QVOICE Platform section is nil
[1.41.0] - 2021-05-05¶
Added¶
- collect: mobile data
Fixed¶
- views: QVOICE Platform views creation in account db
- Swagger doc: fix and update swagger documentation
[1.40.0] - 2021-04-22¶
[1.39.0] - 2021-04-20¶
Fixed¶
- twilio: twilio webhook error
[1.38.0] - 2021-04-08¶
Added¶
- locations: add access_list field in location struct
- location: get location of authenticated user
- queues: new flag call_only_if_registered_agents
- gorec: add gorec struct to account doc as map string interface
- download-recording-permission: for users
Changed¶
- exec-view: change logs in executeview func
Fixed¶
- command: hangup call using callctl
- device-sip-uri: when enable / disable user
- reports: list order of outbound, inbound calls, call recordings & usage charges
[1.37.0] - 2021-03-24¶
Added¶
- queues: support for multiple extensions, support for multiple dids, add pre connect actions for queue
- google-contacts: delete google contacts from db
- integrations: add endpoints to get/set integrations status
- contacts: return user info on set contacts integration
- contacts: Store user info associated with token
- contacts: change source param in get contacts
- contacts: add get contacts endpoint
Fixed¶
- reports: order (desc) response list
- listing: undefined main numbers
- queues: check if queue exists in next action type queue
- call-recording: check for nil pointers
- login: super admin condition
[1.36.0] - 2021-03-11¶
Added¶
-
- Add endpoint to get devices for a user base on username and account name
- : change deeplink format
- : return server name in teams deeplink
- : add missing account fields
- (add-role): admin callcenter
- (get-did-numbers): endpoint
- : set user as invited when onboarding invitation sent by email
- : add acount_name field on user creation
- : add mobile struct to user doc
- : add stub 3way call endpoint
- : use account doc as interface to update it
Changed¶
- (.ds_store-ignore): git ignore
Fixed¶
- Roles: set cdrs delete permission to false for admin read only role
- fmfm-profiles: in login / refresh endpoints
- conference-array-access: check array len before access
- billing-rate: int to string
- disable-account: feat
-
- crossbar sometimes do not return all account numbers, do not use it anymore
- : add music_on_hold to account doc
- : call recording limits update
- : own is logged in account
- : add account and user fields
- : set accepted when getting deeplink
- : set user as invitation accepted for mobile
- : billing rate is string
- : add missing sip fields when creating a device
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