Open Bug 1903659 Opened 2 years ago Updated 11 days ago

web.telegram.org - Can't make video and voice calls (see comment 14 for status)

Categories

(Web Compatibility :: Site Reports, defect, P2)

Tracking

(Webcompat Priority:P1, Webcompat Score:9, firefox138 affected, firefox139 affected, firefox143 affected, firefox144 affected, firefox145 affected, firefox146 affected, firefox147 affected, firefox148 affected, firefox149 affected)

ASSIGNED
Webcompat Priority P1
Webcompat Score 9
Tracking Status
firefox138 --- affected
firefox139 --- affected
firefox143 --- affected
firefox144 --- affected
firefox145 --- affected
firefox146 --- affected
firefox147 --- affected
firefox148 --- affected
firefox149 --- affected

People

(Reporter: ksenia, Assigned: twisniewski)

References

(Regressed 1 open bug, )

Details

(4 keywords, Whiteboard: [webcompat-source:web-bugs])

User Story

platform:windows,mac,linux,android
impact:workflow-broken
configuration:general
affects:all
branch:release
diagnosis-team:video-conferencing
user-impact-score:1200

Attachments

(2 files)

Environment:
Operating system: Android 13
Originally reported Firefox version: Firefox Mobile 116.0
Last reproduced with the following UA: Mozilla/5.0 (Android 14; Mobile; rv:126.0) Gecko/126.0 Firefox/126.0
Platforms reproduced on: android

Steps to reproduce:
I can make call through telegram web with chrome.
But there's no option in Firefox

Actual Behavior:
can't make call

Created from https://github.com/webcompat/web-bugs/issues/124957

Reproducible on desktop as well.

User Story: (updated)
Summary: web.telegram.org - Buttons for calling and making video calls are missing → web.telegram.org - Can't make video and voice calls
No longer depends on: firefox-not-supported

I tried making a call with Chrome user agent and it failed. The option to make a call does work in Safari

User Story: (updated)
Flags: needinfo?(jib)

I believe Daniel was going to look at this

Assignee: nobody → dbaker
Flags: needinfo?(dbaker)

I'm currently debugging this, there might be an issue with the signaling specifically with how ports are being signaled and bundling.

For Telegram when using the website they have the option to choose an A version or K version. For the A version if we change the check here to check if the msection is disabled in the answer instead of port == 0 the call and media works. For the K version of the app there are different ICE issues I am still debugging.

Depends on: 1923416

For the K version of the app a big problem with calls being placed from Firefox is their app does some SDP parsing. An issue with this is when they perform the following for extmap https://github.com/morethanwords/tweb/blob/master/src/lib/calls/helpers/parseSignalingData.ts#L43 :

    const rtpExtensions: P2PVideoCodec['rtpExtensions'] = codec.rtpExtensions = [];
    section.attributes.get('extmap').forEach((attribute) => {
      rtpExtensions.push({
        id: +attribute.key,
        uri: attribute.value
      });
    });

The issue is with id: +attribute.key which works on an extmap with no directionality specified such as a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level it will properly convert the id to be 1. However if directionality is present such as you would see in Firefox 2/recvonly urn:ietf:params:rtp-hdrext:csrc-audio-level you end up with null for the id and send and SDP with a=extmap:null urn:ietf:params:rtp-hdrext:csrc-audio-level. This causes a parsing error in other browsers and the telegram app preventing the call from working.

Doing something like id: +attribute.key.split('/', 1)[0], instead would resolve this issue on their end.

Webcompat Priority: --- → P1
Webcompat Score: --- → 9

Dan, what's next here?

Attached image FF Nightly (v138).png β€”

This is still an issue on the latest Nightly.

The site is not allowing for the calling option for Firefox. In order to test you need to override your UA to mimic Chrome or Safari. A site intervention that spoofed the Chrome UA may work if that's something that can be done.

Calls into Firefox should work from the site. However per comment 6 there are changes the app needs to make in how it parses SDP to make calls from Firefox work, as their current implementation causes them to munge an invalid SDP that ends up being rejected. Maybe this can be solved by a site intervention.

It would be best if we could make contact with the app developers for assistance in resolving these two main blockers and providing us with additional information on issues that we may need to resolve on our end.

Flags: needinfo?(dbaker)
Flags: needinfo?(jmuizelaar)

From https://www.linkedin.com/company/telegram-messenger/people/: "Telegram has a "No LinkedIn" policy. Accounts claiming to be past or present employees never worked at Telegram."

That helps explain why we haven't been able to make contact with them so far and why making contact is probably going to be hard.

Dan, is it possible to make our SDP look more like Chrome and Safari's to avoid the parsing problem?

Flags: needinfo?(jmuizelaar) → needinfo?(dbaker)

(In reply to Jeff Muizelaar [:jrmuizel] from comment #10)

From https://www.linkedin.com/company/telegram-messenger/people/: "Telegram has a "No LinkedIn" policy. Accounts claiming to be past or present employees never worked at Telegram."

That helps explain why we haven't been able to make contact with them so far and why making contact is probably going to be hard.

Dan, is it possible to make our SDP look more like Chrome and Safari's to avoid the parsing problem?

We aren't doing anything wrong we are specifying that we only wish to receive a specific header extension and we are doing so according to spec. I don't know our reasoning behind this or who to ask if we are able to switch from receive only to send and receive on that header extension.

Flags: needinfo?(dbaker)

The option is still missing on the latest Nightly

(In reply to Dan Baker[:dbaker] from comment #11)

I don't know our reasoning behind this or who to ask if we are able to switch from receive only to send and receive on that header extension.

Let's ask nico as author of bug 1439076.

We could also just send them a PR and see what happens.

Flags: needinfo?(ngrunbaum)

So The A version should work fine with the changes that landed in the parent, and with a user agent spoof.

The K version would require changes to our spec handling, which historically has caused all sort of issues (see Google Voice changes for an example). That said we can look at modifying this (NI to Nico on that.) What we can also do here is submit a PR for changes to their code base, which is hosted on Github.

Flags: needinfo?(jib)

NI to Dan for the PR.

Flags: needinfo?(dbaker)

The issue is still reproducible

Tested with:

Browser / Version: Firefox Nightly 141.0a1 (2016095847-🦎141.0a1-20250609095449🦎)
Operating System: Google Pixel 3 (Android 12) -1080 x 2160 pixels, 18:9 ratio (~443 ppi density)
Operating System: Oppo Find X5 (Android 13) - 1080 x 2400 pixels, 20:9 ratio (~402 ppi density)

Summary: web.telegram.org - Can't make video and voice calls → web.telegram.org - Can't make video and voice calls (see comment 14 for status)

The issue is still reproducible using the latest Nightly.

User Story: (updated)

The issue is still reproducible using the latest Nightly.

User Story: (updated)
  • Does this break if you change the UA on the browser to match Chrome? (I don't believe any changes have been made by telegram to present the calling option to Firefox.)
    • Is it broken for inbound and outbound calls?
      • For all versions of the telegram app (A, K, etc.)?
Flags: needinfo?(rbucata)
  1. If I spoof as Chrome, everything works ok.
    • K version does not have the options at all
    • A version has the same outcome as Chrome, or when spoofing as Chrome. (as observed in comment 14 - options are available and working
Flags: needinfo?(rbucata)
Assignee: dbaker → nobody
Flags: needinfo?(ngrunbaum)
Flags: needinfo?(dbaker)

Since nightly and release are affected, beta will likely be affected too.
For more information, please visit BugBot documentation.

As noted in previous comments, this issue remains reproducible.

The issue is still reproducible using the latest Nightly.

Let's do a nightly only intervention for this for a while and see how it goes.

Keywords: leave-open
Assignee: nobody → twisniewski
Status: NEW → ASSIGNED

I'm currently on Nightly 2025-11-25 (desktop) and for me https://web.telegram.org/a/ does show the "start call" button in one to one chats without any user agent overrides (or at least without any extensions intended for that). Is this expected or does it mean the problem might have been fixed on Telegram side?

Thanks for the report, Denis. I'll skip shipping an intervention here for now. Dan, do you know the current status of both versions here?

Flags: needinfo?(dbaker)
Attachment #9530152 - Attachment description: Bug 1903659 - add a UA override for web.telegram.org/a; r?ksenia → WIP: Bug 1903659 - add a UA override for web.telegram.org/a; r?ksenia

I have no new information on this issue at this time. Did the call work or just that we see the option to start call now?

Flags: needinfo?(dbaker)

This is still an issue on the latest Nightly (v148) on Android.

There is an r+ patch which didn't land and no activity in this bug for 2 weeks.
:twisniewski, could you have a look please?
If you still have some work to do, you can add an action "Plan Changes" in Phabricator.
For more information, please visit BugBot documentation.

Flags: needinfo?(twisniewski)
Flags: needinfo?(kberezina)
Flags: needinfo?(twisniewski)
User Story: (updated)

Since Calin was still able to still reproduce, let's ship the intervention on nightly builds and see if that helps.

User Story: (updated)
Flags: needinfo?(kberezina)
Attachment #9530152 - Attachment description: WIP: Bug 1903659 - add a UA override for web.telegram.org/a; r?ksenia → Bug 1903659 - add a UA override for web.telegram.org/a; r?ksenia
Regressions: 2050400
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: