-
Notifications
You must be signed in to change notification settings - Fork 12.6k
chore!: remove old freeswitch integration #37657
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: release-8.0.0
Are you sure you want to change the base?
chore!: remove old freeswitch integration #37657
Conversation
Co-authored-by: Guilherme Gazzo <[email protected]>
Co-authored-by: Diego Sampaio <[email protected]>
Co-authored-by: Guilherme Gazzo <[email protected]>
Co-authored-by: Guilherme Gazzo <[email protected]>
|
Looks like this PR is not ready to merge, because of the following issues:
Please fix the issues and try again If you have any trouble, please check the PR guidelines |
|
WalkthroughRemoved the FreeSwitch-based VoIP integration: services, REST endpoints, models, types, parsers, client/ESL layers, package configs, migrations, settings, translations, tests, and related exports across the monorepo. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (5 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
packages/i18n/src/locales/en.i18n.json (1)
5695-5696: Generalize FreeSWITCH reference to SIP server terminologyThis key is actively used in
apps/meteor/client/views/room/contextualBar/TeamsVoipConfigModal.tsx(line 46) and exists across all locale files. Since the code still expects it, deletion is not an option. Update the message to remove the FreeSWITCH reference:- "VoIP_available_setup_freeswitch_server_details": "VoIP is available but the FreeSwitch server details need to be set up from the team voice call settings.", + "VoIP_available_setup_freeswitch_server_details": "VoIP is available but the SIP server details need to be set up from the team voice call settings.",Apply the same change across all locale files (sv.i18n.json, nn.i18n.json, pt-BR.i18n.json, nb.i18n.json).
packages/i18n/src/locales/sv.i18n.json (1)
2280-2280: Remove unused FreeSWITCH strings from all locale files for consistency.The i18n keys
FreeSwitch_setup_requiredandVoIP_available_setup_freeswitch_server_detailsare not referenced in active UI code and appear across all locale files (sv, nb, nn, pt-BR, en). These should be removed to prevent UI copy drift and avoid orphaned settings.Apply deletions to all affected locale files at:
FreeSwitch_setup_required(e.g., line 2279 in sv.i18n.json)VoIP_available_setup_freeswitch_server_details(e.g., line 5580 in sv.i18n.json)
🧹 Nitpick comments (3)
apps/meteor/server/startup/migrations/v325.ts (1)
5-22: Migration logic is correct for breaking change.The migration properly removes obsolete FreeSwitch settings as part of the comprehensive removal. The one-way migration (no
down()function) is acceptable for this breaking change targeting release-8.0.0.Consider capturing the deletion result for observability:
async up() { - await Settings.deleteMany({ + const result = await Settings.deleteMany({ _id: { $in: [ 'VoIP_TeamCollab_FreeSwitch', 'VoIP_TeamCollab_FreeSwitch_Host', 'VoIP_TeamCollab_FreeSwitch_Port', 'VoIP_TeamCollab_FreeSwitch_Password', 'VoIP_TeamCollab_FreeSwitch_Timeout', 'VoIP_TeamCollab_FreeSwitch_WebSocket_Path', ], }, }); + console.log(`Migration v325: Removed ${result.deletedCount} FreeSwitch settings`); },packages/i18n/src/locales/en.i18n.json (1)
5675-5675: Tighten copy for clarity“in Team collaboration” reads awkward. Suggest “for team collaboration.”
- "VoIP_TeamCollab_Description": "Set up VoIP in Team collaboration", + "VoIP_TeamCollab_Description": "Set up VoIP for team collaboration",packages/i18n/src/locales/nb.i18n.json (1)
5657-5657: Minor copy polish for natural BokmålConsider “for teamsamarbeid” instead of “i teamsamarbeid” for a more idiomatic phrasing.
- "VoIP_TeamCollab_Description": "Sett opp VoIP i teamsamarbeid", + "VoIP_TeamCollab_Description": "Sett opp VoIP for teamsamarbeid",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
yarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (90)
apps/meteor/app/statistics/server/lib/getEEStatistics.ts(0 hunks)apps/meteor/app/statistics/server/lib/getVoIPStatistics.ts(0 hunks)apps/meteor/ee/app/api-enterprise/server/index.ts(0 hunks)apps/meteor/ee/app/api-enterprise/server/voip-freeswitch.ts(0 hunks)apps/meteor/ee/server/local-services/voip-freeswitch/service.ts(0 hunks)apps/meteor/ee/server/settings/voip.ts(0 hunks)apps/meteor/ee/server/startup/services.ts(0 hunks)apps/meteor/package.json(0 hunks)apps/meteor/server/models.ts(0 hunks)apps/meteor/server/startup/migrations/index.ts(1 hunks)apps/meteor/server/startup/migrations/v325.ts(1 hunks)apps/meteor/tests/unit/server/lib/freeswitch.tests.ts(0 hunks)packages/core-services/src/index.ts(0 hunks)packages/core-services/src/types/IVoipFreeSwitchService.ts(0 hunks)packages/core-typings/src/voip/FreeSwitchExtension.ts(0 hunks)packages/core-typings/src/voip/IFreeSwitchChannel.ts(0 hunks)packages/core-typings/src/voip/IFreeSwitchChannelEvent.ts(0 hunks)packages/core-typings/src/voip/IFreeSwitchChannelEventDelta.ts(0 hunks)packages/core-typings/src/voip/index.ts(0 hunks)packages/freeswitch/.eslintrc.json(0 hunks)packages/freeswitch/CHANGELOG.md(0 hunks)packages/freeswitch/jest.config.ts(0 hunks)packages/freeswitch/package.json(0 hunks)packages/freeswitch/src/FreeSwitchOptions.ts(0 hunks)packages/freeswitch/src/commands/getDomain.ts(0 hunks)packages/freeswitch/src/commands/getExtensionDetails.ts(0 hunks)packages/freeswitch/src/commands/getExtensionList.ts(0 hunks)packages/freeswitch/src/commands/getUserPassword.ts(0 hunks)packages/freeswitch/src/commands/index.ts(0 hunks)packages/freeswitch/src/esl/apiClient.ts(0 hunks)packages/freeswitch/src/esl/client.ts(0 hunks)packages/freeswitch/src/esl/eventClient.ts(0 hunks)packages/freeswitch/src/esl/index.ts(0 hunks)packages/freeswitch/src/eventParser/computeChannelFromEvents.ts(0 hunks)packages/freeswitch/src/eventParser/computeChannelProfiles.ts(0 hunks)packages/freeswitch/src/eventParser/extractChannelChangesFromEvent.ts(0 hunks)packages/freeswitch/src/eventParser/filterOutMissingData.ts(0 hunks)packages/freeswitch/src/eventParser/filterStringList.ts(0 hunks)packages/freeswitch/src/eventParser/insertDataIntoEventProfile.ts(0 hunks)packages/freeswitch/src/eventParser/parseChannelKind.ts(0 hunks)packages/freeswitch/src/eventParser/parseChannelUsername.ts(0 hunks)packages/freeswitch/src/eventParser/parseEventCallId.ts(0 hunks)packages/freeswitch/src/eventParser/parseEventData.ts(0 hunks)packages/freeswitch/src/eventParser/parseEventExtensions.ts(0 hunks)packages/freeswitch/src/eventParser/parseEventLeg.ts(0 hunks)packages/freeswitch/src/eventParser/parseTimestamp.ts(0 hunks)packages/freeswitch/src/index.ts(0 hunks)packages/freeswitch/src/logger.ts(0 hunks)packages/freeswitch/src/utils/mapUserData.ts(0 hunks)packages/freeswitch/src/utils/parseUserList.ts(0 hunks)packages/freeswitch/src/utils/parseUserStatus.ts(0 hunks)packages/freeswitch/tests/eventParser/computeChannelFromEvents.test.ts(0 hunks)packages/freeswitch/tests/eventParser/computeChannelProfiles.test.ts(0 hunks)packages/freeswitch/tests/eventParser/extractChannelChangesFromEvent.test.ts(0 hunks)packages/freeswitch/tests/eventParser/filterOutMissingData.test.ts(0 hunks)packages/freeswitch/tests/eventParser/filterStringList.test.ts(0 hunks)packages/freeswitch/tests/eventParser/insertDataIntoEventProfile.test.ts(0 hunks)packages/freeswitch/tests/eventParser/parseChannelKind.test.ts(0 hunks)packages/freeswitch/tests/eventParser/parseChannelUsername.test.ts(0 hunks)packages/freeswitch/tests/eventParser/parseEventCallId.test.ts(0 hunks)packages/freeswitch/tests/eventParser/parseEventExtensions.test.ts(0 hunks)packages/freeswitch/tests/eventParser/parseEventLeg.test.ts(0 hunks)packages/freeswitch/tests/eventParser/parseTimestamp.test.ts(0 hunks)packages/freeswitch/tests/mapUserData.test.ts(0 hunks)packages/freeswitch/tests/parseUserList.test.ts(0 hunks)packages/freeswitch/tests/parseUserStatus.test.ts(0 hunks)packages/freeswitch/tests/utils/makeFreeSwitchResponse.ts(0 hunks)packages/freeswitch/tsconfig.json(0 hunks)packages/i18n/src/locales/en.i18n.json(1 hunks)packages/i18n/src/locales/nb.i18n.json(1 hunks)packages/i18n/src/locales/nn.i18n.json(1 hunks)packages/i18n/src/locales/pt-BR.i18n.json(1 hunks)packages/i18n/src/locales/sv.i18n.json(1 hunks)packages/model-typings/src/index.ts(0 hunks)packages/model-typings/src/models/IFreeSwitchChannelEventDeltaModel.ts(0 hunks)packages/model-typings/src/models/IFreeSwitchChannelEventModel.ts(0 hunks)packages/model-typings/src/models/IFreeSwitchChannelModel.ts(0 hunks)packages/model-typings/src/models/IUsersModel.ts(0 hunks)packages/models/src/index.ts(0 hunks)packages/models/src/modelClasses.ts(0 hunks)packages/models/src/models/FreeSwitchChannel.ts(0 hunks)packages/models/src/models/FreeSwitchChannelEvent.ts(0 hunks)packages/models/src/models/FreeSwitchChannelEventDelta.ts(0 hunks)packages/models/src/models/Users.ts(0 hunks)packages/rest-typings/src/index.ts(0 hunks)packages/rest-typings/src/v1/voip-freeswitch/VoipFreeSwitchExtensionAssignProps.ts(0 hunks)packages/rest-typings/src/v1/voip-freeswitch/VoipFreeSwitchExtensionGetDetailsProps.ts(0 hunks)packages/rest-typings/src/v1/voip-freeswitch/VoipFreeSwitchExtensionGetInfoProps.ts(0 hunks)packages/rest-typings/src/v1/voip-freeswitch/VoipFreeSwitchExtensionListProps.ts(0 hunks)packages/rest-typings/src/v1/voip-freeswitch/index.ts(0 hunks)
💤 Files with no reviewable changes (83)
- apps/meteor/package.json
- packages/core-typings/src/voip/FreeSwitchExtension.ts
- packages/freeswitch/src/FreeSwitchOptions.ts
- packages/models/src/modelClasses.ts
- packages/freeswitch/src/eventParser/filterStringList.ts
- packages/freeswitch/package.json
- apps/meteor/ee/server/startup/services.ts
- packages/freeswitch/tests/parseUserList.test.ts
- packages/rest-typings/src/index.ts
- packages/freeswitch/src/utils/parseUserStatus.ts
- packages/freeswitch/tests/eventParser/filterOutMissingData.test.ts
- packages/freeswitch/src/eventParser/parseChannelUsername.ts
- packages/freeswitch/tests/mapUserData.test.ts
- packages/core-services/src/index.ts
- packages/model-typings/src/index.ts
- packages/freeswitch/jest.config.ts
- packages/freeswitch/src/commands/getExtensionList.ts
- packages/freeswitch/src/eventParser/parseChannelKind.ts
- packages/freeswitch/tests/eventParser/filterStringList.test.ts
- packages/core-typings/src/voip/IFreeSwitchChannel.ts
- packages/freeswitch/src/esl/index.ts
- packages/freeswitch/src/commands/getDomain.ts
- packages/freeswitch/src/index.ts
- apps/meteor/app/statistics/server/lib/getEEStatistics.ts
- packages/freeswitch/src/logger.ts
- packages/model-typings/src/models/IUsersModel.ts
- packages/freeswitch/src/commands/index.ts
- packages/core-typings/src/voip/IFreeSwitchChannelEventDelta.ts
- packages/freeswitch/src/utils/mapUserData.ts
- apps/meteor/tests/unit/server/lib/freeswitch.tests.ts
- packages/freeswitch/tests/eventParser/computeChannelProfiles.test.ts
- packages/freeswitch/tsconfig.json
- packages/freeswitch/src/esl/apiClient.ts
- packages/models/src/models/FreeSwitchChannelEvent.ts
- packages/freeswitch/src/commands/getUserPassword.ts
- packages/freeswitch/tests/eventParser/extractChannelChangesFromEvent.test.ts
- packages/models/src/models/Users.ts
- packages/freeswitch/src/eventParser/computeChannelFromEvents.ts
- packages/model-typings/src/models/IFreeSwitchChannelEventDeltaModel.ts
- packages/freeswitch/src/esl/client.ts
- packages/freeswitch/src/eventParser/parseEventData.ts
- packages/freeswitch/src/eventParser/computeChannelProfiles.ts
- packages/freeswitch/src/utils/parseUserList.ts
- packages/models/src/models/FreeSwitchChannelEventDelta.ts
- packages/freeswitch/tests/utils/makeFreeSwitchResponse.ts
- apps/meteor/ee/server/local-services/voip-freeswitch/service.ts
- packages/rest-typings/src/v1/voip-freeswitch/VoipFreeSwitchExtensionGetDetailsProps.ts
- apps/meteor/ee/app/api-enterprise/server/index.ts
- packages/models/src/index.ts
- packages/freeswitch/tests/eventParser/parseEventLeg.test.ts
- packages/freeswitch/tests/eventParser/insertDataIntoEventProfile.test.ts
- packages/core-typings/src/voip/index.ts
- packages/freeswitch/src/eventParser/parseTimestamp.ts
- apps/meteor/ee/server/settings/voip.ts
- packages/rest-typings/src/v1/voip-freeswitch/VoipFreeSwitchExtensionAssignProps.ts
- packages/freeswitch/tests/eventParser/parseEventCallId.test.ts
- packages/freeswitch/src/eventParser/parseEventCallId.ts
- packages/freeswitch/src/eventParser/filterOutMissingData.ts
- packages/freeswitch/CHANGELOG.md
- apps/meteor/server/models.ts
- packages/freeswitch/.eslintrc.json
- packages/rest-typings/src/v1/voip-freeswitch/VoipFreeSwitchExtensionGetInfoProps.ts
- packages/freeswitch/tests/eventParser/parseEventExtensions.test.ts
- packages/freeswitch/src/eventParser/extractChannelChangesFromEvent.ts
- packages/freeswitch/tests/eventParser/parseChannelUsername.test.ts
- packages/core-services/src/types/IVoipFreeSwitchService.ts
- packages/freeswitch/src/eventParser/parseEventLeg.ts
- packages/freeswitch/src/eventParser/insertDataIntoEventProfile.ts
- packages/rest-typings/src/v1/voip-freeswitch/index.ts
- packages/freeswitch/src/esl/eventClient.ts
- packages/freeswitch/src/commands/getExtensionDetails.ts
- packages/freeswitch/tests/eventParser/computeChannelFromEvents.test.ts
- packages/model-typings/src/models/IFreeSwitchChannelEventModel.ts
- apps/meteor/ee/app/api-enterprise/server/voip-freeswitch.ts
- packages/rest-typings/src/v1/voip-freeswitch/VoipFreeSwitchExtensionListProps.ts
- packages/freeswitch/tests/parseUserStatus.test.ts
- packages/freeswitch/tests/eventParser/parseChannelKind.test.ts
- apps/meteor/app/statistics/server/lib/getVoIPStatistics.ts
- packages/core-typings/src/voip/IFreeSwitchChannelEvent.ts
- packages/model-typings/src/models/IFreeSwitchChannelModel.ts
- packages/models/src/models/FreeSwitchChannel.ts
- packages/freeswitch/src/eventParser/parseEventExtensions.ts
- packages/freeswitch/tests/eventParser/parseTimestamp.test.ts
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx,js}
📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)
**/*.{ts,tsx,js}: Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests
Avoid code comments in the implementation
Files:
apps/meteor/server/startup/migrations/index.tsapps/meteor/server/startup/migrations/v325.ts
🧠 Learnings (5)
📓 Common learnings
Learnt from: rodrigok
Repo: RocketChat/Rocket.Chat PR: 36991
File: apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts:219-221
Timestamp: 2025-09-19T15:15:04.642Z
Learning: The Federation_Matrix_homeserver_domain setting in apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts is part of the old federation system and is being deprecated/removed, so configuration issues with this setting should not be flagged for improvement.
📚 Learning: 2025-11-19T12:32:29.696Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
Applied to files:
packages/i18n/src/locales/en.i18n.jsonpackages/i18n/src/locales/pt-BR.i18n.json
📚 Learning: 2025-11-17T22:38:48.631Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37505
File: packages/i18n/src/locales/en.i18n.json:3765-3765
Timestamp: 2025-11-17T22:38:48.631Z
Learning: Rocket.Chat i18n copy: Keep sentence case for the value of "Notification_Desktop_show_voice_calls" in packages/i18n/src/locales/en.i18n.json (“Show desktop notifications for voice calls”) per design directive; do not change to Title Case even if nearby labels differ.
Applied to files:
packages/i18n/src/locales/en.i18n.jsonpackages/i18n/src/locales/pt-BR.i18n.jsonpackages/i18n/src/locales/nn.i18n.jsonpackages/i18n/src/locales/nb.i18n.json
📚 Learning: 2025-11-19T18:20:07.720Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37419
File: packages/i18n/src/locales/en.i18n.json:918-921
Timestamp: 2025-11-19T18:20:07.720Z
Learning: Repo: RocketChat/Rocket.Chat — i18n/formatting
Learning: This repository uses a custom message formatting parser in UI blocks/messages; do not assume standard Markdown rules. For keys like Call_ended_bold, Call_not_answered_bold, Call_failed_bold, and Call_transferred_bold in packages/i18n/src/locales/en.i18n.json, retain the existing single-asterisk emphasis unless maintainers request otherwise.
Applied to files:
packages/i18n/src/locales/en.i18n.jsonpackages/i18n/src/locales/pt-BR.i18n.jsonpackages/i18n/src/locales/nn.i18n.jsonpackages/i18n/src/locales/nb.i18n.json
📚 Learning: 2025-09-19T15:15:04.642Z
Learnt from: rodrigok
Repo: RocketChat/Rocket.Chat PR: 36991
File: apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts:219-221
Timestamp: 2025-09-19T15:15:04.642Z
Learning: The Federation_Matrix_homeserver_domain setting in apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts is part of the old federation system and is being deprecated/removed, so configuration issues with this setting should not be flagged for improvement.
Applied to files:
apps/meteor/server/startup/migrations/v325.ts
🧬 Code graph analysis (1)
apps/meteor/server/startup/migrations/v325.ts (2)
packages/core-services/src/index.ts (1)
Settings(182-182)packages/models/src/index.ts (1)
Settings(194-194)
🔇 Additional comments (8)
apps/meteor/server/startup/migrations/index.ts (1)
33-33: LGTM!The import correctly includes the new v325 migration and follows the established sequential pattern.
packages/i18n/src/locales/en.i18n.json (1)
2339-2341: This i18n key is actively used and should not be removed"FreeSwitch_setup_required" is currently used in
apps/meteor/client/views/room/contextualBar/TeamsVoipConfigModal.tsxand is maintained across multiple language locales (en, sv, pt-BR, nn, nb). It is not obsolete. The proposed "VoIP_Setup_Required" key does not exist in the codebase. Removing this key would break the VoIP configuration modal. No action is needed.Likely an incorrect or invalid review comment.
packages/i18n/src/locales/pt-BR.i18n.json (2)
5534-5534: LGTM on wording updateRemoving “FreeSwitch” from VoIP_TeamCollab_Description is consistent with the PR’s goal.
Please confirm the same source text was updated in packages/i18n/src/locales/en.i18n.json to keep locales in sync.
2270-2270: These FreeSWITCH translation keys are actively used; do not deleteThe flagged keys are actively referenced in code:
FreeSwitch_setup_requiredis used in UI callout at app/client/views/admin/team/TeamSetupWithFreeSwitch.tsx:94VoIP_available_setup_freeswitch_server_detailsis returned from app/client/views/admin/team/TeamSetupWithFreeSwitch.tsx:46These are not stale references. The strings should remain in the locale files to support FreeSWITCH configuration UI flows.
packages/i18n/src/locales/sv.i18n.json (1)
5569-5569: Good: description no longer mentions FreeSWITCH.Swedish copy aligns with the FreeSWITCH removal intent. No ICU tokens affected.
packages/i18n/src/locales/nn.i18n.json (2)
5142-5142: Verify whether FreeSWITCH strings should remain or be removed from locales.The FreeSWITCH-specific strings flagged in this review do exist and are actively used in code:
FreeSwitch_setup_required(line 2233 in nn.i18n.json) is referenced inapps/meteor/client/views/room/contextualBar/TeamsVoipConfigModal.tsx:94VoIP_available_setup_freeswitch_server_details(line 5148 in nn.i18n.json) is referenced inapps/meteor/client/views/room/contextualBar/TeamsVoipConfigModal.tsx:46These keys exist across all locale files (en, sv, pt-BR, nb, nn). If the PR goal is to remove FreeSWITCH integration, these strings and their usages in
TeamsVoipConfigModal.tsxneed to be removed or replaced with provider-agnostic alternatives. If FreeSWITCH support is being maintained, the strings can remain as-is.
2234-2234: This key is actively used in the codebase and should not be removed. The "FreeSwitch_setup_required" key is referenced inapps/meteor/client/views/room/contextualBar/TeamsVoipConfigModal.tsx(line 94), where it's displayed as a Callout title in the VoIP configuration modal. The key is not stale and serves a live UI function.Likely an incorrect or invalid review comment.
packages/i18n/src/locales/nb.i18n.json (1)
2323-2323: The FreeSWITCH integration is not being removed in this PR—do not delete these translation keys.FreeSWITCH remains actively used in the codebase: the
freeSwitchExtensionfield persists in user models, database methods continue to reference it, and UI components still provide VoIP configuration. Both translation keys still exist in the authoritativeen.i18n.jsonfile and are not marked for removal. Additionally, per the i18n workflow, other locale files likenb.i18n.jsonare auto-populated from or fall back to English—removing keys from a non-English locale while they remain in the source file would be incorrect.Likely an incorrect or invalid review comment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (6)
apps/meteor/client/views/room/contextualBar/TeamsVoipConfigModal.tsx(2 hunks)packages/i18n/src/locales/en.i18n.json(1 hunks)packages/i18n/src/locales/nb.i18n.json(1 hunks)packages/i18n/src/locales/nn.i18n.json(1 hunks)packages/i18n/src/locales/pt-BR.i18n.json(1 hunks)packages/i18n/src/locales/sv.i18n.json(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- packages/i18n/src/locales/pt-BR.i18n.json
- packages/i18n/src/locales/sv.i18n.json
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx,js}
📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)
**/*.{ts,tsx,js}: Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests
Avoid code comments in the implementation
Files:
apps/meteor/client/views/room/contextualBar/TeamsVoipConfigModal.tsx
🧠 Learnings (3)
📚 Learning: 2025-11-19T12:32:29.696Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
Applied to files:
packages/i18n/src/locales/nb.i18n.jsonpackages/i18n/src/locales/nn.i18n.json
📚 Learning: 2025-11-17T22:38:48.631Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37505
File: packages/i18n/src/locales/en.i18n.json:3765-3765
Timestamp: 2025-11-17T22:38:48.631Z
Learning: Rocket.Chat i18n copy: Keep sentence case for the value of "Notification_Desktop_show_voice_calls" in packages/i18n/src/locales/en.i18n.json (“Show desktop notifications for voice calls”) per design directive; do not change to Title Case even if nearby labels differ.
Applied to files:
packages/i18n/src/locales/nb.i18n.jsonpackages/i18n/src/locales/en.i18n.jsonpackages/i18n/src/locales/nn.i18n.json
📚 Learning: 2025-11-19T18:20:07.720Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37419
File: packages/i18n/src/locales/en.i18n.json:918-921
Timestamp: 2025-11-19T18:20:07.720Z
Learning: Repo: RocketChat/Rocket.Chat — i18n/formatting
Learning: This repository uses a custom message formatting parser in UI blocks/messages; do not assume standard Markdown rules. For keys like Call_ended_bold, Call_not_answered_bold, Call_failed_bold, and Call_transferred_bold in packages/i18n/src/locales/en.i18n.json, retain the existing single-asterisk emphasis unless maintainers request otherwise.
Applied to files:
packages/i18n/src/locales/nb.i18n.jsonpackages/i18n/src/locales/en.i18n.jsonpackages/i18n/src/locales/nn.i18n.jsonapps/meteor/client/views/room/contextualBar/TeamsVoipConfigModal.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: 📦 Build Packages
- GitHub Check: CodeQL-Build
- GitHub Check: CodeQL-Build
🔇 Additional comments (5)
apps/meteor/client/views/room/contextualBar/TeamsVoipConfigModal.tsx (2)
37-43: LGTM! Simplified logic aligns with FreeSWITCH removal.The streamlined
getCalloutWarningfunction correctly reflects the unified VoIP offering (subscription add-on only). The conditional now cleanly separates admin (contact sales) vs. non-admin (contact workspace admin) paths.
90-90: LGTM! Unified callout title reflects simplified VoIP offering.Hardcoding the title to
Subscription_add-on_requiredis correct given the removal of FreeSWITCH self-hosted options. This simplifies the UI and aligns with the add-on-only VoIP model.packages/i18n/src/locales/nn.i18n.json (2)
5141-5141: Copy neutralized from provider to generic — LGTM.The updated “VoIP_TeamCollab_Description” removes provider coupling and matches the PR intent to drop FreeSWITCH.
5139-5151: Clarify FreeSWITCH scope: it's still active in the codebase.The verification found 221 references to FreeSWITCH across the codebase (user model properties, services, changelogs, tests). The
freeSwitchExtensionproperty remains an active part of the user schema and is used in multiple services. The removed keyVoIP_available_setup_freeswitch_server_detailsis correctly gone, anden.i18n.jsonhas the proper updated description for locale fallback. If the intent is to remove only specific FreeSwitch configuration settings (not the entire FreeSWITCH VoIP extension system), that's working as intended; if broader FreeSWITCH removal is planned, that's a separate, larger effort.packages/i18n/src/locales/nb.i18n.json (1)
5656-5656: LGTM — FreeSWITCH mention removed from descriptionThe localized copy update is correct and consistent with the removal of the FreeSWITCH integration. Non-English locales are managed by the external translation pipeline and will automatically reflect the English source changes.
169b783 to
73d9200
Compare
Proposed changes (including videos or screenshots)
Issue(s)
CORE-1522
CORE-1520
Steps to test or reproduce
Further comments
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.