Skip to content

feat(call): start 1-1 call from anywhere#17205

Merged
Antreesy merged 7 commits intomainfrom
feat/15416/call-from-anywhere
May 4, 2026
Merged

feat(call): start 1-1 call from anywhere#17205
Antreesy merged 7 commits intomainfrom
feat/15416/call-from-anywhere

Conversation

@Antreesy
Copy link
Copy Markdown
Contributor

@Antreesy Antreesy commented Feb 24, 2026

☑️ Resolves

🖌️ UI Checklist

🖼️ Screenshots / Screencasts

Entry points 🚧 WIP Integration 🚧 WIP
2026-04-22_14h52_01 image 2026-04-22_14h40_46

🚧 Tasks

Feature related:

  • Integration app:

    • Drag-n-drop
    • Drop some features (see light-weight) -> follow-up
    • z-index on top of Viewer / Text / Office / other integrations ⚠️
    • Open 'call to' in new tab always
    • Open in separate window
    • Do not intercept notification links, only callee should join via integration from ?callUser=
    • Survive/reconnect after page-reload
      • local storage flag?
      • Or keep warn leaving, like in full app?
    • Check two instances on the tab - blocked
    • Top-right button - open full Talk in a new tab
      • should close the integration, if call joined from a full app? -> follow-up
    • WebRTC / signaling / instance - proper kill after leaving the call
      • should join second time without reload as if it's the first time -> not relevant for marketing?
      • WebRTC -> diconnect() ???? ⚠️
      • signaling -> kill()
      • instance -> unmount()
  • Contacts app:

    • Check implementation, why actions aren't used -> upstream in Contacts app -> not relevant for marketing?
  • Files app:

    • Allow to join if file conversation wasn't joined from Sidebar
    • Need to initialize OCA.Talk later, not when tab is mounted
  • Design (cc @nimishavijay):

    • warn leaving: suggest 'leave call and navigate' or 'open call separately in Talk'
    • inform about 'opening in a new tab'?
  • Addressed in separate PR: fix(sidebar): rework call UI in Talk integrations #17860

    • Phone icon -> video icon
    • round up corners for local video
    • hide reactions button
    • hide live translations? a11y concerns?
    • blur background -> device checker
    • show screenshare button 🖥️

Technical:

  • Lazy load
    • interceptor/trigger is ~9 kB
    • integration ~ 1.25 Mb
  • Reduce size (where seems possible)
    • Light-weight versions of existing components? -> follow-up
    • Do not use TopBar - keep name and timer only
  • Limit PR changes to relevant
    • Split unrelated changes to pre-requisites
    • Split design / general components changes to pre-requisites

🏁 Checklist

  • 🌏 Tested with different browsers / clients:
    • Chromium (Chrome / Edge / Opera / Brave)
    • Firefox
    • Safari
    • Talk Desktop
    • Integrations with Files sidebar and other apps
    • Not risky to browser differences / client
  • 🖌️ Design was reviewed, approved or inspired by the design team
  • ⛑️ Tests are included or not possible
  • 📗 User documentation in https://github.com/nextcloud/documentation/tree/master/user_manual/talk has been updated or is not required

🛠️ API Checklist

🚧 Tasks

  • Abstract profile actions
  • New entry points
  • Set high priority to call action

🏁 Checklist

  • ⛑️ Tests (unit and/or integration) are included or not possible
  • 📘 API documentation in docs/ has been updated or is not required
  • 🔖 Capability is added or not needed

@Antreesy Antreesy added this to the 🏖️ Next Major (34) milestone Feb 24, 2026
@Antreesy Antreesy self-assigned this Feb 24, 2026
@Antreesy Antreesy added enhancement feature: frontend 🖌️ "Web UI" client feature: talk-sidebar ⬅️ Sidebar integration of Talk into other apps like sharing and documents feature: call 📹 Voice and video calls labels Feb 24, 2026
@Antreesy Antreesy moved this to 🏗️ In progress in 💬 Talk team Mar 13, 2026
@Antreesy Antreesy force-pushed the feat/15416/call-from-anywhere branch 4 times, most recently from 3d933c2 to 9185c55 Compare April 15, 2026 12:02
Comment thread lib/Profile/TalkCallAction.php
Comment thread lib/Profile/TalkCallAction.php
@Antreesy Antreesy force-pushed the feat/15416/call-from-anywhere branch from 9185c55 to 3104c7f Compare April 21, 2026 17:35
Comment thread lib/ContactsMenu/Providers/CallProvider.php Outdated
@Antreesy Antreesy force-pushed the feat/15416/call-from-anywhere branch 2 times, most recently from 906fffd to a2b7efb Compare April 22, 2026 13:52
@Antreesy Antreesy marked this pull request as ready for review April 22, 2026 13:52
@Antreesy Antreesy requested a review from DorraJaouad April 22, 2026 13:52
@Antreesy Antreesy changed the title feat(call): start 1-1 call from 'Talk to {person}' action feat(call): start 1-1 call from anywhere Apr 22, 2026
Comment thread lib/ContactsMenu/Providers/CallProvider.php Outdated
Comment thread img/icon-phone-dark.svg Outdated
Copy link
Copy Markdown
Contributor

@DorraJaouad DorraJaouad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reviewed based on smoke tests I did manually to address mainstream issues. After this, I will go into more details layer (minor issues)

Comment thread src/mainFloatingCallTrigger.ts
Comment thread src/mainFloatingCall.ts
store.dispatch('addConversation', conversation)
const token = conversation.token

if (!window.OCA.Talk) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about when you already have an instance:

  • Block any second call of the same user
  • Block any other call of another user

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now click has an early return (and warn-leaving for call) if it tries to initiate a second instance

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is still happening

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested for when you have 'call from anywhere' and trying to start a second 'call from anywhere'. Maybe other combinations don't work the same way

Comment thread src/FloatingCallOverlay.vue
Comment thread src/FloatingCallOverlay.vue
Comment thread src/mainFloatingCall.ts
@Antreesy Antreesy force-pushed the feat/15416/call-from-anywhere branch 2 times, most recently from 335dc53 to be1275f Compare April 29, 2026 17:12
Comment thread lib/Profile/TalkAction.php Outdated
Comment thread lib/Profile/TalkCallAction.php Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are so many things redundant from other components, as a follow-up, it would be nice to extract these.

Comment thread src/mainFloatingCallTrigger.ts
Comment thread src/FloatingCallOverlay.vue
Comment thread src/mainFloatingCall.ts
store.dispatch('addConversation', conversation)
const token = conversation.token

if (!window.OCA.Talk) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is still happening

Copy link
Copy Markdown
Member

@nickvergessen nickvergessen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay from backend side

Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
@Antreesy Antreesy force-pushed the feat/15416/call-from-anywhere branch from 328281a to 3140dec Compare April 30, 2026 16:32
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
@Antreesy Antreesy force-pushed the feat/15416/call-from-anywhere branch from 3140dec to 13b531a Compare April 30, 2026 17:13
Copy link
Copy Markdown
Contributor

@DorraJaouad DorraJaouad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All good 🦅

@Antreesy Antreesy merged commit da73576 into main May 4, 2026
79 checks passed
@Antreesy Antreesy deleted the feat/15416/call-from-anywhere branch May 4, 2026 12:31
@github-project-automation github-project-automation Bot moved this from 🏗️ In progress to ☑️ Done in 💬 Talk team May 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement feature: call 📹 Voice and video calls feature: frontend 🖌️ "Web UI" client feature: talk-sidebar ⬅️ Sidebar integration of Talk into other apps like sharing and documents

Projects

Status: ☑️ Done

Development

Successfully merging this pull request may close these issues.

Handle "Can start call => Disabled calls" with "Call from anywhere" 📍 Call from anywhere - Integration of calls into the avatar menu

4 participants