From 5456392f5efc8d7b7872149bc954bbe8f7e8b3e6 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 15 Jun 2026 13:32:08 +0000 Subject: [PATCH] feat(schema): update documentation to the latest layer --- _schema/223.json | 275 ++++++++++++++++++++++++----------------- _schema/latest.json | 291 ++++++++++++++++++++++++++------------------ 2 files changed, 340 insertions(+), 226 deletions(-) diff --git a/_schema/223.json b/_schema/223.json index aedcc13..6f89387 100644 --- a/_schema/223.json +++ b/_schema/223.json @@ -12944,6 +12944,12 @@ }, "groupCallMessage": { "name": "groupCallMessage", + "description": [ + "Represents a transient in-call message, emoji reaction »¹, paid live story comment or standalone paid live story donation." + ], + "links": [ + "https://core.telegram.org/api/group-calls#in-call-reactions" + ], "fields": { "date": { "name": "date", @@ -12970,11 +12976,11 @@ }, "message": { "name": "message", - "description": " " + "description": "Message text or emoji reaction; empty for standalone paid live story donations" }, "paid_message_stars": { "name": "paid_message_stars", - "description": " " + "description": "Number of Telegram Stars donated with the message or standalone donation" } } }, @@ -13070,7 +13076,7 @@ }, "volume": { "name": "volume", - "description": "Volume, if not set the volume is set to 100%." + "description": "Volume, between 1 and 20000; 10000 represents 100% volume. If not set, the volume is set to 100%." }, "volume_by_admin": { "name": "volume_by_admin", @@ -13128,7 +13134,7 @@ "groupCallStreamChannel": { "name": "groupCallStreamChannel", "description": [ - "Info about an RTMP stream in a group call or livestream" + "Info about an available stream channel in a group call or livestream" ], "fields": { "channel": { @@ -13144,7 +13150,7 @@ }, "scale": { "name": "scale", - "description": "Specifies the duration of the video segment to fetch in milliseconds, by bitshifting 1000 to the right scale times: duration_ms := 1000 \u003e\u003e scale." + "description": "Specifies the duration of the media segment to fetch. To obtain this value in milliseconds, bitshift 1000 to the right scale times: duration_ms := 1000 \u003e\u003e scale." } } }, @@ -15454,10 +15460,11 @@ "inputGroupCallSlug": { "name": "inputGroupCallSlug", "description": [ - "Join a conference call through an invitation link »¹." + "Identify a conference call »¹ using the slug from its invitation link.", + "This constructor can only be used for conference calls. It cannot be used for video chats/livestreams, live stories or any other group call type." ], "links": [ - "https://core.telegram.org/api/links#conference-links" + "https://core.telegram.org/api/group-calls#conference-calls" ], "fields": { "slug": { @@ -15488,7 +15495,7 @@ }, "scale": { "name": "scale", - "description": "Specifies the duration of the video segment to fetch in milliseconds, by bitshifting 1000 to the right scale times: duration_ms := 1000 \u003e\u003e scale" + "description": "Specifies the duration of the media segment to fetch in milliseconds, by bitshifting 1000 to the right scale times: duration_ms := 1000 \u003e\u003e scale" }, "time_ms": { "name": "time_ms", @@ -15496,7 +15503,7 @@ }, "video_channel": { "name": "video_channel", - "description": "Selected video channel" + "description": "Selected video or unified stream channel; omit together with video_quality to fetch a separate audio stream in non-unified broadcast mode" }, "video_quality": { "name": "video_quality", @@ -38754,10 +38761,16 @@ "updateGroupCallConnection": { "name": "updateGroupCallConnection", "description": [ - "New WebRTC connection parameters for the currently joined group call¹." + "Connection parameters returned after joining a group call¹.", + "If presentation is set, the parameters belong to the separate presentation connection¹; otherwise they belong to the main connection.", + "For a normal WebRTC connection, pass params to the local tgcalls group-call engine as its join response payload.", + "For RTMP-mode calls¹, params instead has the following shape:", + "The optional rtmp_stream_url and rtmp_stream_key fields, available only to admins in RTMP mode, contain publishing credentials and must be kept secret." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls", + "https://core.telegram.org/api/group-calls#presentations", + "https://core.telegram.org/api/group-calls#rtmp-livestreams" ], "fields": { "flags": { @@ -38769,35 +38782,34 @@ }, "params": { "name": "params", - "description": "WebRTC parameters" + "description": "RTC join response parameters or broadcast-stream metadata, as described above" }, "presentation": { "name": "presentation", - "description": "Are these parameters related to the screen capture session currently in progress?" + "description": "Whether these parameters belong to the separate presentation connection instead of the main connection" } } }, "updateGroupCallEncryptedMessage": { "name": "updateGroupCallEncryptedMessage", "description": [ - "A new E2E-encrypted message was received in a conference call¹, sent using phone.sendGroupCallEncryptedMessage²." + "A new E2E-encrypted message or emoji reaction was received in a conference call, see here »¹ for the decryption process." ], "links": [ - "https://core.telegram.org/api/group-calls#conference-calls", - "https://core.telegram.org/method/phone.sendGroupCallEncryptedMessage" + "https://core.telegram.org/api/end-to-end/group-calls#receiving-and-decrypting-a-message" ], "fields": { "call": { "name": "call", - "description": " " + "description": "Conference call" }, "encrypted_message": { "name": "encrypted_message", - "description": " " + "description": "Complete encrypted packet" }, "from_id": { "name": "from_id", - "description": " " + "description": "Sender whose blockchain public key must be used to verify the encrypted packet" } } }, @@ -44252,7 +44264,13 @@ "name": "GroupCallDonor" }, "GroupCallMessage": { - "name": "GroupCallMessage" + "name": "GroupCallMessage", + "description": [ + "Represents a transient in-call message, emoji reaction »¹, paid live story comment or standalone paid live story donation." + ], + "links": [ + "https://core.telegram.org/api/group-calls#in-call-reactions" + ] }, "GroupCallParticipant": { "name": "GroupCallParticipant", @@ -54512,7 +54530,7 @@ "channels.getSendAs": { "name": "channels.getSendAs", "description": [ - "Obtains a list of peers that can be used to send messages in a specific group" + "Obtains a list of peers that can be displayed as the sender in a specific context." ], "parameters": { "flags": { @@ -54524,7 +54542,11 @@ }, "for_live_stories": { "name": "for_live_stories", - "description": " " + "description": "Fetch the peers that may be passed to phone.sendGroupCallMessage¹.send_as to comment or react in a live story »².", + "links": [ + "https://core.telegram.org/method/phone.sendGroupCallMessage", + "https://core.telegram.org/api/group-calls#in-call-messages" + ] }, "for_paid_reactions": { "name": "for_paid_reactions", @@ -54535,7 +54557,7 @@ }, "peer": { "name": "peer", - "description": "The group where we intend to send messages" + "description": "The target peer; when for_live_stories is set, the peer that owns the live story." } }, "errors": [ @@ -73815,11 +73837,14 @@ "phone.checkGroupCall": { "name": "phone.checkGroupCall", "description": [ - "Check whether the group call¹ Server Forwarding Unit is currently receiving the streams with the specified WebRTC source IDs.", - "Returns an intersection of the source IDs specified in sources, and the source IDs currently being forwarded by the SFU." + "Check which of the specified source IDs the server still recognizes as joined to a group call. This method can be used with all group call types, see here »¹ for more info.", + "After joining the main connection with phone.joinGroupCall¹, pass its non-zero SSRC/source ID to this method periodically. If a presentation connection is also active, include the separate source registered using phone.joinGroupCallPresentation².", + "The method returns the subset of the supplied sources that are still joined. A missing source means that the corresponding connection must be recreated and joined again; it does not indicate whether media packets are currently flowing. If the method returns GROUPCALL_JOIN_MISSING, the main connection must be rejoined." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#maintaining-group-call-connections", + "https://core.telegram.org/method/phone.joinGroupCall", + "https://core.telegram.org/method/phone.joinGroupCallPresentation" ], "parameters": { "call": { @@ -73828,7 +73853,7 @@ }, "sources": { "name": "sources", - "description": "Source IDs" + "description": "Non-zero SSRC/source IDs of the caller's main and presentation connections" } }, "errors": [ @@ -73936,7 +73961,7 @@ "phone.createGroupCall": { "name": "phone.createGroupCall", "description": [ - "Create a group call or livestream¹." + "Create a video chat or livestream, see here »¹ for the full flow." ], "links": [ "https://core.telegram.org/api/group-calls#video-chats-livestreams" @@ -73962,9 +73987,9 @@ }, "rtmp_stream": { "name": "rtmp_stream", - "description": "Whether RTMP stream support should be enabled: only the group/supergroup/channel¹ owner can use this flag.", + "description": "Create the call in RTMP livestream mode »¹, where one external streamer publishes all audio and video; only the group/supergroup/channel owner can use this flag", "links": [ - "https://core.telegram.org/api/channel" + "https://core.telegram.org/api/group-calls#rtmp-livestreams" ] }, "schedule_date": { @@ -74086,15 +74111,16 @@ "phone.deleteGroupCallMessages": { "name": "phone.deleteGroupCallMessages", "description": [ - "Delete messages from the in-call message overlay of a group call or livestream¹." + "Delete specific messages from a live story's in-call message overlay »¹.", + "Non-admin participants may delete messages they sent; admins may delete any message." ], "links": [ - "https://core.telegram.org/api/group-calls#conference-calls" + "https://core.telegram.org/api/group-calls#in-call-messages" ], "parameters": { "call": { "name": "call", - "description": " " + "description": "The live story's group call" }, "flags": { "name": "flags", @@ -74105,11 +74131,11 @@ }, "messages": { "name": "messages", - "description": " " + "description": "IDs of the messages to delete" }, "report_spam": { "name": "report_spam", - "description": " " + "description": "When moderating another participant's messages, also report them as spam" } }, "errors": [ @@ -74123,15 +74149,15 @@ "phone.deleteGroupCallParticipantMessages": { "name": "phone.deleteGroupCallParticipantMessages", "description": [ - "Delete all messages from a specific participant in the in-call message overlay of a group call or livestream¹." + "As an admin, delete all messages from a specific participant in a live story's in-call message overlay »¹." ], "links": [ - "https://core.telegram.org/api/group-calls#conference-calls" + "https://core.telegram.org/api/group-calls#in-call-messages" ], "parameters": { "call": { "name": "call", - "description": " " + "description": "The live story's group call" }, "flags": { "name": "flags", @@ -74142,11 +74168,11 @@ }, "participant": { "name": "participant", - "description": " " + "description": "The participant whose messages should be deleted" }, "report_spam": { "name": "report_spam", - "description": " " + "description": "Also report the participant's messages as spam" } }, "errors": [ @@ -74215,10 +74241,10 @@ "phone.discardGroupCall": { "name": "phone.discardGroupCall", "description": [ - "Terminate a group call¹, ending the room for all participants." + "Terminate a group call, ending the room for all participants. This method can be used with all group call types, see here »¹ for more info." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#managing-an-active-group-call" ], "parameters": { "call": { @@ -74247,11 +74273,11 @@ "phone.editGroupCallParticipant": { "name": "phone.editGroupCallParticipant", "description": [ - "Edit information about a given group call¹ participant.", + "Edit information about a participant of a non-RTMP video chat/livestream or conference. The raise_hand field is only supported in video chats/livestreams, see here »¹ for more info.", "Note: flags¹.N?Bool² parameters can have three possible values:" ], "links": [ - "https://core.telegram.org/api/group-calls", + "https://core.telegram.org/api/group-calls#managing-an-active-group-call", "https://core.telegram.org/mtproto/TL-combinators#conditional-fields", "https://core.telegram.org/type/Bool" ], @@ -74281,7 +74307,7 @@ }, "raise_hand": { "name": "raise_hand", - "description": "Raise or lower hand" + "description": "Raise or lower hand; only supported in video chats/livestreams" }, "video_paused": { "name": "video_paused", @@ -74293,7 +74319,7 @@ }, "volume": { "name": "volume", - "description": "New volume" + "description": "New volume, between 1 and 20000; 10000 represents 100% volume" } }, "errors": [ @@ -74337,10 +74363,10 @@ "phone.editGroupCallTitle": { "name": "phone.editGroupCallTitle", "description": [ - "Edit the title of a group call or livestream¹." + "Edit the title of a video chat or livestream. This method cannot be used with live stories or conferences, see here »¹ for more info." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#video-chats-livestreams" ], "parameters": { "call": { @@ -74368,25 +74394,26 @@ "phone.exportGroupCallInvite": { "name": "phone.exportGroupCallInvite", "description": [ - "Get an invite link¹ for a video chat/livestream »²; cannot be used for live stories »³ or conference calls »⁴." + "Get an invite link for a public video chat/livestream »¹.", + "Non-admin members or subscribers may export a link with can_self_unmute omitted. Only group call admins may set can_self_unmute to export a link that allows users to speak.", + "Cannot be used for video chats/livestreams associated with private groups/channels, conference calls »¹ or live stories »²." ], "links": [ - "https://core.telegram.org/api/links#video-chat-livestream-links", - "https://core.telegram.org/api/group-calls#video-chatslivestreams", - "https://core.telegram.org/api/group-calls#live-stories", - "https://core.telegram.org/api/group-calls#conference-calls" + "https://core.telegram.org/api/group-calls#video-chats-livestreams", + "https://core.telegram.org/api/group-calls#conference-calls", + "https://core.telegram.org/api/group-calls#live-stories" ], "parameters": { "call": { "name": "call", - "description": "The video chat/livestream »¹", + "description": "The public video chat/livestream »¹", "links": [ - "https://core.telegram.org/api/group-calls#video-chatslivestreams" + "https://core.telegram.org/api/group-calls#video-chats-livestreams" ] }, "can_self_unmute": { "name": "can_self_unmute", - "description": "For livestreams or muted group chats, if set, users that join using this link will be able to speak without explicitly requesting permission, for example by raising their hand." + "description": "For public video chats/livestreams, group call admins only: allow users that join using this link to speak without explicitly requesting permission, for example by raising their hand." }, "flags": { "name": "flags", @@ -74497,15 +74524,18 @@ "phone.getGroupCallJoinAs": { "name": "phone.getGroupCallJoinAs", "description": [ - "Get a list of peers that can be used to join a group call¹, presenting yourself as a specific user/channel." + "Get a list of peers that can be used to join a video chat or livestream »¹, presenting yourself as a specific user/channel.", + "This method cannot be used for live stories or conference calls. To comment or react in a live story as another peer, use channels.getSendAs¹ with for_live_stories set and pass one of the returned peers to phone.sendGroupCallMessage².send_as." ], "links": [ - "https://core.telegram.org/api/group-calls#creating-joining-a-group-call-on-behalf-of-owned-channels" + "https://core.telegram.org/api/group-calls#joining-a-group-call-on-behalf-of-owned-channels", + "https://core.telegram.org/method/channels.getSendAs", + "https://core.telegram.org/method/phone.sendGroupCallMessage" ], "parameters": { "peer": { "name": "peer", - "description": "The dialog whose group call or livestream we're trying to join" + "description": "The basic group, supergroup or channel whose video chat/livestream we're trying to join; cannot target a live story." } }, "errors": [ @@ -74524,10 +74554,10 @@ "phone.getGroupCallStars": { "name": "phone.getGroupCallStars", "description": [ - "Fetch the livestream¹ donor and paid-message leaderboard." + "Fetch the donor and paid-message leaderboard of a live story. This method can only be used with live stories, see here »¹ for more info." ], "links": [ - "https://core.telegram.org/api/group-calls#livestreams" + "https://core.telegram.org/api/group-calls#live-stories" ], "parameters": { "call": { @@ -74546,17 +74576,17 @@ "phone.getGroupCallStreamChannels": { "name": "phone.getGroupCallStreamChannels", "description": [ - "Get info about RTMP streams in a group call or livestream.", - "This method should be invoked to the same group/channel-related DC used for downloading livestream chunks¹.", - "As usual, the media DC is preferred, if available." + "Get the available stream channels and current playback timestamp of an RTMP-mode video chat, livestream or live story, see here »¹ for the full flow.", + "The group call must be joined before invoking this method. Send the request to the media DC specified by groupCall².stream_dc_id." ], "links": [ - "https://core.telegram.org/api/files#downloading-files" + "https://core.telegram.org/api/group-calls#playing-an-rtmp-livestream", + "https://core.telegram.org/constructor/groupCall" ], "parameters": { "call": { "name": "call", - "description": "Group call or livestream" + "description": "RTMP-mode video chat, livestream or live story" } }, "errors": [ @@ -74575,10 +74605,11 @@ "phone.getGroupCallStreamRtmpUrl": { "name": "phone.getGroupCallStreamRtmpUrl", "description": [ - "Get RTMP URL and stream key for RTMP livestreams. Can be used even before creating the actual RTMP livestream with phone.createGroupCall¹ (the rtmp_stream flag must be set)." + "Group call admins only: get the RTMP URL and stream key used by the single external streamer that publishes all audio and video for an RTMP-mode video chat, livestream or live story.", + "See here »¹ for the full flow." ], "links": [ - "https://core.telegram.org/method/phone.createGroupCall" + "https://core.telegram.org/api/group-calls#creating-and-publishing-an-rtmp-livestream" ], "parameters": { "flags": { @@ -74590,15 +74621,15 @@ }, "live_story": { "name": "live_story", - "description": " " + "description": "Obtain credentials for an RTMP live story instead of a video chat/livestream" }, "peer": { "name": "peer", - "description": "Peer to livestream into" + "description": "Peer that will host the RTMP video chat, livestream or live story" }, "revoke": { "name": "revoke", - "description": "Whether to revoke the previous stream key or simply return the existing one" + "description": "Whether to invalidate the previous stream key and generate a new one, instead of returning the existing key" } }, "errors": [ @@ -74703,7 +74734,7 @@ "Invite a set of users to a video chat/livestream »¹; cannot be used for live stories »² or conference calls »³." ], "links": [ - "https://core.telegram.org/api/group-calls#video-chatslivestreams", + "https://core.telegram.org/api/group-calls#video-chats-livestreams", "https://core.telegram.org/api/group-calls#live-stories", "https://core.telegram.org/api/group-calls#conference-calls" ], @@ -74712,7 +74743,7 @@ "name": "call", "description": "The video chat/livestream »¹", "links": [ - "https://core.telegram.org/api/group-calls#video-chatslivestreams" + "https://core.telegram.org/api/group-calls#video-chats-livestreams" ] }, "users": { @@ -74756,7 +74787,10 @@ "phone.joinGroupCall": { "name": "phone.joinGroupCall", "description": [ - "Join a group call¹, see here »² for the full flow." + "Join a group call¹, see here »² for the full flow.", + "The params field must contain a join payload generated by the local tgcalls group-call engine. It contains a random non-zero audio ssrc, ICE ufrag and pwd, DTLS fingerprints, and, when publishing video, ssrc-groups.", + "For example, a join payload without published video has the following shape:", + "When joining an RTMP-mode call, generate the payload without published video source groups." ], "links": [ "https://core.telegram.org/api/group-calls", @@ -74787,16 +74821,15 @@ "description": "The invitation hash from the invite link »¹, if provided allows speaking in a livestream or muted group call (video chats/livestreams »² only, cannot be used by live stories »³ or conference calls »⁴).", "links": [ "https://core.telegram.org/api/links#video-chat-livestream-links", - "https://core.telegram.org/api/group-calls#video-chatslivestreams", + "https://core.telegram.org/api/group-calls#video-chats-livestreams", "https://core.telegram.org/api/group-calls#live-stories", "https://core.telegram.org/api/group-calls#conference-calls" ] }, "join_as": { "name": "join_as", - "description": "Join the group call, presenting yourself as the specified user/channel (video chats/livestreams »¹ only, must be equal to inputPeerSelf² when joining live stories »³ or conference calls »⁴).", + "description": "Join the group call, presenting yourself as the specified user/channel; this peer is also used as the author of in-call messages in normal video chats/livestreams. Only video chats/livestreams may use another peer; this field must be equal to inputPeerSelf¹ when joining live stories »² or conference calls »³.", "links": [ - "https://core.telegram.org/api/group-calls#video-chatslivestreams", "https://core.telegram.org/constructor/inputPeerSelf", "https://core.telegram.org/api/group-calls#live-stories", "https://core.telegram.org/api/group-calls#conference-calls" @@ -74808,7 +74841,7 @@ }, "params": { "name": "params", - "description": "WebRTC parameters" + "description": "Join payload generated by the local tgcalls group-call engine, as described above" }, "public_key": { "name": "public_key", @@ -74867,10 +74900,10 @@ "phone.joinGroupCallPresentation": { "name": "phone.joinGroupCallPresentation", "description": [ - "Start screen sharing in a group call¹." + "Start screen sharing in a non-RTMP video chat/livestream or conference. Presentations are not supported in live stories or RTMP-mode video chats/livestreams, see here »¹ for more info." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#presentations" ], "parameters": { "call": { @@ -74898,10 +74931,10 @@ "phone.leaveGroupCall": { "name": "phone.leaveGroupCall", "description": [ - "Leave a group call¹." + "Leave a group call without ending it for other participants. This method can be used with all group call types, see here »¹ for more info." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#managing-an-active-group-call" ], "parameters": { "call": { @@ -74924,10 +74957,10 @@ "phone.leaveGroupCallPresentation": { "name": "phone.leaveGroupCallPresentation", "description": [ - "Stop screen sharing in a group call¹." + "Stop screen sharing in a non-RTMP video chat/livestream or conference. Presentations are not supported in live stories or RTMP-mode video chats/livestreams, see here »¹ for more info." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#presentations" ], "parameters": { "call": { @@ -75144,14 +75177,21 @@ }, "phone.saveDefaultSendAs": { "name": "phone.saveDefaultSendAs", + "description": [ + "Save the default peer to display as the author of comments and reactions in a live story. This method can only be used with live stories, see here »¹ for more info.", + "It cannot be used for normal video chats/livestreams, where in-call messages are sent as the peer used to join the call (join_as)." + ], + "links": [ + "https://core.telegram.org/api/group-calls#paid-live-story-comments" + ], "parameters": { "call": { "name": "call", - "description": " " + "description": "Live story group call" }, "send_as": { "name": "send_as", - "description": " " + "description": "Peer to display as the author of subsequent comments and reactions" } }, "errors": [ @@ -75191,20 +75231,22 @@ "phone.sendGroupCallEncryptedMessage": { "name": "phone.sendGroupCallEncryptedMessage", "description": [ - "Send an E2E-encrypted message to all participants of a conference call¹, using the E2E encryption protocol²." + "Send an E2E-encrypted message or emoji reaction to all participants of a conference call. This method can only be used with conferences; see here »¹ for the serialization and encryption process." ], "links": [ - "https://core.telegram.org/api/group-calls#conference-calls", - "https://core.telegram.org/api/end-to-end/group-calls#encryption-protocol" + "https://core.telegram.org/api/end-to-end/group-calls#conference-in-call-messages" ], "parameters": { "call": { "name": "call", - "description": " " + "description": "Conference call" }, "encrypted_message": { "name": "encrypted_message", - "description": " " + "description": "Complete encrypted message or reaction packet produced as specified here »¹", + "links": [ + "https://core.telegram.org/api/end-to-end/group-calls#encrypting-and-sending-a-message" + ] } }, "errors": [ @@ -75218,19 +75260,25 @@ "phone.sendGroupCallMessage": { "name": "phone.sendGroupCallMessage", "description": [ - "Send a transient in-call message to all participants of a group call or livestream¹." + "Send a transient in-call message to all participants of a non-RTMP video chat/livestream or live story, see here »¹ for more info.", + "The send_as field can only be populated for live stories, where it optionally selects the displayed author. If omitted, the server automatically selects the appropriate author. Do not populate it for video chats/livestreams.", + "Video chats/livestreams and live stories support animated emoji reactions »¹, encoded as messages containing only a standard available reaction emoji or a single custom emoji entity.", + "For a paid live story comment, pass the user-confirmed donation amount in allow_paid_stars. For commenters other than the live story owner, this amount must be at least the current groupCall¹.send_paid_messages_stars minimum. A higher amount may be donated to highlight the comment. The live story owner may comment without populating allow_paid_stars. To send a standalone paid live story donation, pass a positive allow_paid_stars value and an empty message, see here »² for the full flow." ], "links": [ - "https://core.telegram.org/api/group-calls#conference-calls" + "https://core.telegram.org/api/group-calls#in-call-messages", + "https://core.telegram.org/api/group-calls#in-call-reactions", + "https://core.telegram.org/constructor/groupCall", + "https://core.telegram.org/api/group-calls#paid-live-story-donations" ], "parameters": { "allow_paid_stars": { "name": "allow_paid_stars", - "description": " " + "description": "User-confirmed number of Telegram Stars to donate with a live story comment or standalone donation" }, "call": { "name": "call", - "description": " " + "description": "Group call" }, "flags": { "name": "flags", @@ -75241,15 +75289,15 @@ }, "message": { "name": "message", - "description": " " + "description": "Message text or emoji reaction; pass an empty value when sending a standalone paid live story donation" }, "random_id": { "name": "random_id", - "description": " " + "description": "Client-generated random ID used to deduplicate the message" }, "send_as": { "name": "send_as", - "description": " " + "description": "Optional peer to display as the author of a live story message or reaction; can only be used for live stories" } }, "errors": [ @@ -75363,10 +75411,10 @@ "phone.toggleGroupCallRecord": { "name": "phone.toggleGroupCallRecord", "description": [ - "Start or stop recording a group call¹: the recorded audio and video streams will be automatically sent to Saved messages (the chat with ourselves)." + "Start or stop recording a video chat/livestream, see here »¹ for more info. The recorded audio and video streams will be automatically sent to Saved Messages (the chat with ourselves)." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#video-chats-livestreams" ], "parameters": { "call": { @@ -75418,10 +75466,10 @@ "phone.toggleGroupCallSettings": { "name": "phone.toggleGroupCallSettings", "description": [ - "Change group call¹ settings." + "Change group call settings. Each setting supports different group call types, see here »¹ for more info." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#managing-an-active-group-call" ], "parameters": { "call": { @@ -75437,19 +75485,19 @@ }, "join_muted": { "name": "join_muted", - "description": "Whether all users will that join this group call are muted by default upon joining the group call" + "description": "Whether users joining a video chat or livestream should be muted by default" }, "messages_enabled": { "name": "messages_enabled", - "description": " " + "description": "Enable or disable the in-call message overlay in non-RTMP video chats/livestreams and live stories" }, "reset_invite_hash": { "name": "reset_invite_hash", - "description": "Invalidate existing invite links" + "description": "Invalidate existing invite links for video chats, livestreams and conferences" }, "send_paid_messages_stars": { "name": "send_paid_messages_stars", - "description": " " + "description": "Set the minimum Telegram Stars donation required from users other than the live story owner for each comment; the owner may always comment without donating, and 0 allows free comments for everyone" } }, "errors": [ @@ -78121,6 +78169,12 @@ }, "stories.startLive": { "name": "stories.startLive", + "description": [ + "Start a live story, optionally using RTMP livestream mode, see here »¹ for the full flow." + ], + "links": [ + "https://core.telegram.org/api/group-calls#live-stories" + ], "parameters": { "caption": { "name": "caption", @@ -78142,7 +78196,7 @@ }, "messages_enabled": { "name": "messages_enabled", - "description": " " + "description": "Whether the in-call message overlay should be enabled" }, "noforwards": { "name": "noforwards", @@ -78166,11 +78220,14 @@ }, "rtmp_stream": { "name": "rtmp_stream", - "description": " " + "description": "Create the live story in RTMP livestream mode »¹, where one external streamer publishes all audio and video", + "links": [ + "https://core.telegram.org/api/group-calls#rtmp-livestreams" + ] }, "send_paid_messages_stars": { "name": "send_paid_messages_stars", - "description": " " + "description": "Minimum Telegram Stars donation required from users other than the live story owner for each comment; the owner may always comment without donating, and 0 allows free comments for everyone" } }, "errors": [ diff --git a/_schema/latest.json b/_schema/latest.json index b9bdfe1..998b3b9 100644 --- a/_schema/latest.json +++ b/_schema/latest.json @@ -12944,6 +12944,12 @@ }, "groupCallMessage": { "name": "groupCallMessage", + "description": [ + "Represents a transient in-call message, emoji reaction »¹, paid live story comment or standalone paid live story donation." + ], + "links": [ + "https://core.telegram.org/api/group-calls#in-call-reactions" + ], "fields": { "date": { "name": "date", @@ -12970,11 +12976,11 @@ }, "message": { "name": "message", - "description": " " + "description": "Message text or emoji reaction; empty for standalone paid live story donations" }, "paid_message_stars": { "name": "paid_message_stars", - "description": " " + "description": "Number of Telegram Stars donated with the message or standalone donation" } } }, @@ -13070,7 +13076,7 @@ }, "volume": { "name": "volume", - "description": "Volume, if not set the volume is set to 100%." + "description": "Volume, between 1 and 20000; 10000 represents 100% volume. If not set, the volume is set to 100%." }, "volume_by_admin": { "name": "volume_by_admin", @@ -13128,7 +13134,7 @@ "groupCallStreamChannel": { "name": "groupCallStreamChannel", "description": [ - "Info about an RTMP stream in a group call or livestream" + "Info about an available stream channel in a group call or livestream" ], "fields": { "channel": { @@ -13144,7 +13150,7 @@ }, "scale": { "name": "scale", - "description": "Specifies the duration of the video segment to fetch in milliseconds, by bitshifting 1000 to the right scale times: duration_ms := 1000 \u003e\u003e scale." + "description": "Specifies the duration of the media segment to fetch. To obtain this value in milliseconds, bitshift 1000 to the right scale times: duration_ms := 1000 \u003e\u003e scale." } } }, @@ -15454,10 +15460,11 @@ "inputGroupCallSlug": { "name": "inputGroupCallSlug", "description": [ - "Join a conference call through an invitation link »¹." + "Identify a conference call »¹ using the slug from its invitation link.", + "This constructor can only be used for conference calls. It cannot be used for video chats/livestreams, live stories or any other group call type." ], "links": [ - "https://core.telegram.org/api/links#conference-links" + "https://core.telegram.org/api/group-calls#conference-calls" ], "fields": { "slug": { @@ -15488,7 +15495,7 @@ }, "scale": { "name": "scale", - "description": "Specifies the duration of the video segment to fetch in milliseconds, by bitshifting 1000 to the right scale times: duration_ms := 1000 \u003e\u003e scale" + "description": "Specifies the duration of the media segment to fetch in milliseconds, by bitshifting 1000 to the right scale times: duration_ms := 1000 \u003e\u003e scale" }, "time_ms": { "name": "time_ms", @@ -15496,7 +15503,7 @@ }, "video_channel": { "name": "video_channel", - "description": "Selected video channel" + "description": "Selected video or unified stream channel; omit together with video_quality to fetch a separate audio stream in non-unified broadcast mode" }, "video_quality": { "name": "video_quality", @@ -38754,10 +38761,16 @@ "updateGroupCallConnection": { "name": "updateGroupCallConnection", "description": [ - "New WebRTC connection parameters for the currently joined group call¹." + "Connection parameters returned after joining a group call¹.", + "If presentation is set, the parameters belong to the separate presentation connection¹; otherwise they belong to the main connection.", + "For a normal WebRTC connection, pass params to the local tgcalls group-call engine as its join response payload.", + "For RTMP-mode calls¹, params instead has the following shape:", + "The optional rtmp_stream_url and rtmp_stream_key fields, available only to admins in RTMP mode, contain publishing credentials and must be kept secret." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls", + "https://core.telegram.org/api/group-calls#presentations", + "https://core.telegram.org/api/group-calls#rtmp-livestreams" ], "fields": { "flags": { @@ -38769,35 +38782,34 @@ }, "params": { "name": "params", - "description": "WebRTC parameters" + "description": "RTC join response parameters or broadcast-stream metadata, as described above" }, "presentation": { "name": "presentation", - "description": "Are these parameters related to the screen capture session currently in progress?" + "description": "Whether these parameters belong to the separate presentation connection instead of the main connection" } } }, "updateGroupCallEncryptedMessage": { "name": "updateGroupCallEncryptedMessage", "description": [ - "A new E2E-encrypted message was received in a conference call¹, sent using phone.sendGroupCallEncryptedMessage²." + "A new E2E-encrypted message or emoji reaction was received in a conference call, see here »¹ for the decryption process." ], "links": [ - "https://core.telegram.org/api/group-calls#conference-calls", - "https://core.telegram.org/method/phone.sendGroupCallEncryptedMessage" + "https://core.telegram.org/api/end-to-end/group-calls#receiving-and-decrypting-a-message" ], "fields": { "call": { "name": "call", - "description": " " + "description": "Conference call" }, "encrypted_message": { "name": "encrypted_message", - "description": " " + "description": "Complete encrypted packet" }, "from_id": { "name": "from_id", - "description": " " + "description": "Sender whose blockchain public key must be used to verify the encrypted packet" } } }, @@ -44252,7 +44264,13 @@ "name": "GroupCallDonor" }, "GroupCallMessage": { - "name": "GroupCallMessage" + "name": "GroupCallMessage", + "description": [ + "Represents a transient in-call message, emoji reaction »¹, paid live story comment or standalone paid live story donation." + ], + "links": [ + "https://core.telegram.org/api/group-calls#in-call-reactions" + ] }, "GroupCallParticipant": { "name": "GroupCallParticipant", @@ -54512,7 +54530,7 @@ "channels.getSendAs": { "name": "channels.getSendAs", "description": [ - "Obtains a list of peers that can be used to send messages in a specific group" + "Obtains a list of peers that can be displayed as the sender in a specific context." ], "parameters": { "flags": { @@ -54524,7 +54542,11 @@ }, "for_live_stories": { "name": "for_live_stories", - "description": " " + "description": "Fetch the peers that may be passed to phone.sendGroupCallMessage¹.send_as to comment or react in a live story »².", + "links": [ + "https://core.telegram.org/method/phone.sendGroupCallMessage", + "https://core.telegram.org/api/group-calls#in-call-messages" + ] }, "for_paid_reactions": { "name": "for_paid_reactions", @@ -54535,7 +54557,7 @@ }, "peer": { "name": "peer", - "description": "The group where we intend to send messages" + "description": "The target peer; when for_live_stories is set, the peer that owns the live story." } }, "errors": [ @@ -73815,11 +73837,14 @@ "phone.checkGroupCall": { "name": "phone.checkGroupCall", "description": [ - "Check whether the group call¹ Server Forwarding Unit is currently receiving the streams with the specified WebRTC source IDs.", - "Returns an intersection of the source IDs specified in sources, and the source IDs currently being forwarded by the SFU." + "Check which of the specified source IDs the server still recognizes as joined to a group call. This method can be used with all group call types, see here »¹ for more info.", + "After joining the main connection with phone.joinGroupCall¹, pass its non-zero SSRC/source ID to this method periodically. If a presentation connection is also active, include the separate source registered using phone.joinGroupCallPresentation².", + "The method returns the subset of the supplied sources that are still joined. A missing source means that the corresponding connection must be recreated and joined again; it does not indicate whether media packets are currently flowing. If the method returns GROUPCALL_JOIN_MISSING, the main connection must be rejoined." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#maintaining-group-call-connections", + "https://core.telegram.org/method/phone.joinGroupCall", + "https://core.telegram.org/method/phone.joinGroupCallPresentation" ], "parameters": { "call": { @@ -73828,7 +73853,7 @@ }, "sources": { "name": "sources", - "description": "Source IDs" + "description": "Non-zero SSRC/source IDs of the caller's main and presentation connections" } }, "errors": [ @@ -73936,7 +73961,7 @@ "phone.createGroupCall": { "name": "phone.createGroupCall", "description": [ - "Create a group call or livestream¹." + "Create a video chat or livestream, see here »¹ for the full flow." ], "links": [ "https://core.telegram.org/api/group-calls#video-chats-livestreams" @@ -73962,9 +73987,9 @@ }, "rtmp_stream": { "name": "rtmp_stream", - "description": "Whether RTMP stream support should be enabled: only the group/supergroup/channel¹ owner can use this flag.", + "description": "Create the call in RTMP livestream mode »¹, where one external streamer publishes all audio and video; only the group/supergroup/channel owner can use this flag", "links": [ - "https://core.telegram.org/api/channel" + "https://core.telegram.org/api/group-calls#rtmp-livestreams" ] }, "schedule_date": { @@ -74086,15 +74111,16 @@ "phone.deleteGroupCallMessages": { "name": "phone.deleteGroupCallMessages", "description": [ - "Delete messages from the in-call message overlay of a group call or livestream¹." + "Delete specific messages from a live story's in-call message overlay »¹.", + "Non-admin participants may delete messages they sent; admins may delete any message." ], "links": [ - "https://core.telegram.org/api/group-calls#conference-calls" + "https://core.telegram.org/api/group-calls#in-call-messages" ], "parameters": { "call": { "name": "call", - "description": " " + "description": "The live story's group call" }, "flags": { "name": "flags", @@ -74105,11 +74131,11 @@ }, "messages": { "name": "messages", - "description": " " + "description": "IDs of the messages to delete" }, "report_spam": { "name": "report_spam", - "description": " " + "description": "When moderating another participant's messages, also report them as spam" } }, "errors": [ @@ -74123,15 +74149,15 @@ "phone.deleteGroupCallParticipantMessages": { "name": "phone.deleteGroupCallParticipantMessages", "description": [ - "Delete all messages from a specific participant in the in-call message overlay of a group call or livestream¹." + "As an admin, delete all messages from a specific participant in a live story's in-call message overlay »¹." ], "links": [ - "https://core.telegram.org/api/group-calls#conference-calls" + "https://core.telegram.org/api/group-calls#in-call-messages" ], "parameters": { "call": { "name": "call", - "description": " " + "description": "The live story's group call" }, "flags": { "name": "flags", @@ -74142,11 +74168,11 @@ }, "participant": { "name": "participant", - "description": " " + "description": "The participant whose messages should be deleted" }, "report_spam": { "name": "report_spam", - "description": " " + "description": "Also report the participant's messages as spam" } }, "errors": [ @@ -74215,10 +74241,10 @@ "phone.discardGroupCall": { "name": "phone.discardGroupCall", "description": [ - "Terminate a group call¹, ending the room for all participants." + "Terminate a group call, ending the room for all participants. This method can be used with all group call types, see here »¹ for more info." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#managing-an-active-group-call" ], "parameters": { "call": { @@ -74247,11 +74273,11 @@ "phone.editGroupCallParticipant": { "name": "phone.editGroupCallParticipant", "description": [ - "Edit information about a given group call¹ participant.", + "Edit information about a participant of a non-RTMP video chat/livestream or conference. The raise_hand field is only supported in video chats/livestreams, see here »¹ for more info.", "Note: flags¹.N?Bool² parameters can have three possible values:" ], "links": [ - "https://core.telegram.org/api/group-calls", + "https://core.telegram.org/api/group-calls#managing-an-active-group-call", "https://core.telegram.org/mtproto/TL-combinators#conditional-fields", "https://core.telegram.org/type/Bool" ], @@ -74281,7 +74307,7 @@ }, "raise_hand": { "name": "raise_hand", - "description": "Raise or lower hand" + "description": "Raise or lower hand; only supported in video chats/livestreams" }, "video_paused": { "name": "video_paused", @@ -74293,7 +74319,7 @@ }, "volume": { "name": "volume", - "description": "New volume" + "description": "New volume, between 1 and 20000; 10000 represents 100% volume" } }, "errors": [ @@ -74337,10 +74363,10 @@ "phone.editGroupCallTitle": { "name": "phone.editGroupCallTitle", "description": [ - "Edit the title of a group call or livestream¹." + "Edit the title of a video chat or livestream. This method cannot be used with live stories or conferences, see here »¹ for more info." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#video-chats-livestreams" ], "parameters": { "call": { @@ -74368,25 +74394,26 @@ "phone.exportGroupCallInvite": { "name": "phone.exportGroupCallInvite", "description": [ - "Get an invite link¹ for a video chat/livestream »²; cannot be used for live stories »³ or conference calls »⁴." + "Get an invite link for a public video chat/livestream »¹.", + "Non-admin members or subscribers may export a link with can_self_unmute omitted. Only group call admins may set can_self_unmute to export a link that allows users to speak.", + "Cannot be used for video chats/livestreams associated with private groups/channels, conference calls »¹ or live stories »²." ], "links": [ - "https://core.telegram.org/api/links#video-chat-livestream-links", - "https://core.telegram.org/api/group-calls#video-chatslivestreams", - "https://core.telegram.org/api/group-calls#live-stories", - "https://core.telegram.org/api/group-calls#conference-calls" + "https://core.telegram.org/api/group-calls#video-chats-livestreams", + "https://core.telegram.org/api/group-calls#conference-calls", + "https://core.telegram.org/api/group-calls#live-stories" ], "parameters": { "call": { "name": "call", - "description": "The video chat/livestream »¹", + "description": "The public video chat/livestream »¹", "links": [ - "https://core.telegram.org/api/group-calls#video-chatslivestreams" + "https://core.telegram.org/api/group-calls#video-chats-livestreams" ] }, "can_self_unmute": { "name": "can_self_unmute", - "description": "For livestreams or muted group chats, if set, users that join using this link will be able to speak without explicitly requesting permission, for example by raising their hand." + "description": "For public video chats/livestreams, group call admins only: allow users that join using this link to speak without explicitly requesting permission, for example by raising their hand." }, "flags": { "name": "flags", @@ -74497,15 +74524,18 @@ "phone.getGroupCallJoinAs": { "name": "phone.getGroupCallJoinAs", "description": [ - "Get a list of peers that can be used to join a group call¹, presenting yourself as a specific user/channel." + "Get a list of peers that can be used to join a video chat or livestream »¹, presenting yourself as a specific user/channel.", + "This method cannot be used for live stories or conference calls. To comment or react in a live story as another peer, use channels.getSendAs¹ with for_live_stories set and pass one of the returned peers to phone.sendGroupCallMessage².send_as." ], "links": [ - "https://core.telegram.org/api/group-calls#creating-joining-a-group-call-on-behalf-of-owned-channels" + "https://core.telegram.org/api/group-calls#joining-a-group-call-on-behalf-of-owned-channels", + "https://core.telegram.org/method/channels.getSendAs", + "https://core.telegram.org/method/phone.sendGroupCallMessage" ], "parameters": { "peer": { "name": "peer", - "description": "The dialog whose group call or livestream we're trying to join" + "description": "The basic group, supergroup or channel whose video chat/livestream we're trying to join; cannot target a live story." } }, "errors": [ @@ -74524,10 +74554,10 @@ "phone.getGroupCallStars": { "name": "phone.getGroupCallStars", "description": [ - "Fetch the livestream¹ donor and paid-message leaderboard." + "Fetch the donor and paid-message leaderboard of a live story. This method can only be used with live stories, see here »¹ for more info." ], "links": [ - "https://core.telegram.org/api/group-calls#livestreams" + "https://core.telegram.org/api/group-calls#live-stories" ], "parameters": { "call": { @@ -74546,17 +74576,17 @@ "phone.getGroupCallStreamChannels": { "name": "phone.getGroupCallStreamChannels", "description": [ - "Get info about RTMP streams in a group call or livestream.", - "This method should be invoked to the same group/channel-related DC used for downloading livestream chunks¹.", - "As usual, the media DC is preferred, if available." + "Get the available stream channels and current playback timestamp of an RTMP-mode video chat, livestream or live story, see here »¹ for the full flow.", + "The group call must be joined before invoking this method. Send the request to the media DC specified by groupCall².stream_dc_id." ], "links": [ - "https://core.telegram.org/api/files#downloading-files" + "https://core.telegram.org/api/group-calls#playing-an-rtmp-livestream", + "https://core.telegram.org/constructor/groupCall" ], "parameters": { "call": { "name": "call", - "description": "Group call or livestream" + "description": "RTMP-mode video chat, livestream or live story" } }, "errors": [ @@ -74575,10 +74605,11 @@ "phone.getGroupCallStreamRtmpUrl": { "name": "phone.getGroupCallStreamRtmpUrl", "description": [ - "Get RTMP URL and stream key for RTMP livestreams. Can be used even before creating the actual RTMP livestream with phone.createGroupCall¹ (the rtmp_stream flag must be set)." + "Group call admins only: get the RTMP URL and stream key used by the single external streamer that publishes all audio and video for an RTMP-mode video chat, livestream or live story.", + "See here »¹ for the full flow." ], "links": [ - "https://core.telegram.org/method/phone.createGroupCall" + "https://core.telegram.org/api/group-calls#creating-and-publishing-an-rtmp-livestream" ], "parameters": { "flags": { @@ -74590,15 +74621,15 @@ }, "live_story": { "name": "live_story", - "description": " " + "description": "Obtain credentials for an RTMP live story instead of a video chat/livestream" }, "peer": { "name": "peer", - "description": "Peer to livestream into" + "description": "Peer that will host the RTMP video chat, livestream or live story" }, "revoke": { "name": "revoke", - "description": "Whether to revoke the previous stream key or simply return the existing one" + "description": "Whether to invalidate the previous stream key and generate a new one, instead of returning the existing key" } }, "errors": [ @@ -74703,7 +74734,7 @@ "Invite a set of users to a video chat/livestream »¹; cannot be used for live stories »² or conference calls »³." ], "links": [ - "https://core.telegram.org/api/group-calls#video-chatslivestreams", + "https://core.telegram.org/api/group-calls#video-chats-livestreams", "https://core.telegram.org/api/group-calls#live-stories", "https://core.telegram.org/api/group-calls#conference-calls" ], @@ -74712,7 +74743,7 @@ "name": "call", "description": "The video chat/livestream »¹", "links": [ - "https://core.telegram.org/api/group-calls#video-chatslivestreams" + "https://core.telegram.org/api/group-calls#video-chats-livestreams" ] }, "users": { @@ -74756,7 +74787,10 @@ "phone.joinGroupCall": { "name": "phone.joinGroupCall", "description": [ - "Join a group call¹, see here »² for the full flow." + "Join a group call¹, see here »² for the full flow.", + "The params field must contain a join payload generated by the local tgcalls group-call engine. It contains a random non-zero audio ssrc, ICE ufrag and pwd, DTLS fingerprints, and, when publishing video, ssrc-groups.", + "For example, a join payload without published video has the following shape:", + "When joining an RTMP-mode call, generate the payload without published video source groups." ], "links": [ "https://core.telegram.org/api/group-calls", @@ -74787,16 +74821,15 @@ "description": "The invitation hash from the invite link »¹, if provided allows speaking in a livestream or muted group call (video chats/livestreams »² only, cannot be used by live stories »³ or conference calls »⁴).", "links": [ "https://core.telegram.org/api/links#video-chat-livestream-links", - "https://core.telegram.org/api/group-calls#video-chatslivestreams", + "https://core.telegram.org/api/group-calls#video-chats-livestreams", "https://core.telegram.org/api/group-calls#live-stories", "https://core.telegram.org/api/group-calls#conference-calls" ] }, "join_as": { "name": "join_as", - "description": "Join the group call, presenting yourself as the specified user/channel (video chats/livestreams »¹ only, must be equal to inputPeerSelf² when joining live stories »³ or conference calls »⁴).", + "description": "Join the group call, presenting yourself as the specified user/channel; this peer is also used as the author of in-call messages in normal video chats/livestreams. Only video chats/livestreams may use another peer; this field must be equal to inputPeerSelf¹ when joining live stories »² or conference calls »³.", "links": [ - "https://core.telegram.org/api/group-calls#video-chatslivestreams", "https://core.telegram.org/constructor/inputPeerSelf", "https://core.telegram.org/api/group-calls#live-stories", "https://core.telegram.org/api/group-calls#conference-calls" @@ -74808,7 +74841,7 @@ }, "params": { "name": "params", - "description": "WebRTC parameters" + "description": "Join payload generated by the local tgcalls group-call engine, as described above" }, "public_key": { "name": "public_key", @@ -74867,10 +74900,10 @@ "phone.joinGroupCallPresentation": { "name": "phone.joinGroupCallPresentation", "description": [ - "Start screen sharing in a group call¹." + "Start screen sharing in a non-RTMP video chat/livestream or conference. Presentations are not supported in live stories or RTMP-mode video chats/livestreams, see here »¹ for more info." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#presentations" ], "parameters": { "call": { @@ -74898,10 +74931,10 @@ "phone.leaveGroupCall": { "name": "phone.leaveGroupCall", "description": [ - "Leave a group call¹." + "Leave a group call without ending it for other participants. This method can be used with all group call types, see here »¹ for more info." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#managing-an-active-group-call" ], "parameters": { "call": { @@ -74924,10 +74957,10 @@ "phone.leaveGroupCallPresentation": { "name": "phone.leaveGroupCallPresentation", "description": [ - "Stop screen sharing in a group call¹." + "Stop screen sharing in a non-RTMP video chat/livestream or conference. Presentations are not supported in live stories or RTMP-mode video chats/livestreams, see here »¹ for more info." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#presentations" ], "parameters": { "call": { @@ -75144,14 +75177,21 @@ }, "phone.saveDefaultSendAs": { "name": "phone.saveDefaultSendAs", + "description": [ + "Save the default peer to display as the author of comments and reactions in a live story. This method can only be used with live stories, see here »¹ for more info.", + "It cannot be used for normal video chats/livestreams, where in-call messages are sent as the peer used to join the call (join_as)." + ], + "links": [ + "https://core.telegram.org/api/group-calls#paid-live-story-comments" + ], "parameters": { "call": { "name": "call", - "description": " " + "description": "Live story group call" }, "send_as": { "name": "send_as", - "description": " " + "description": "Peer to display as the author of subsequent comments and reactions" } }, "errors": [ @@ -75191,20 +75231,22 @@ "phone.sendGroupCallEncryptedMessage": { "name": "phone.sendGroupCallEncryptedMessage", "description": [ - "Send an E2E-encrypted message to all participants of a conference call¹, using the E2E encryption protocol²." + "Send an E2E-encrypted message or emoji reaction to all participants of a conference call. This method can only be used with conferences; see here »¹ for the serialization and encryption process." ], "links": [ - "https://core.telegram.org/api/group-calls#conference-calls", - "https://core.telegram.org/api/end-to-end/group-calls#encryption-protocol" + "https://core.telegram.org/api/end-to-end/group-calls#conference-in-call-messages" ], "parameters": { "call": { "name": "call", - "description": " " + "description": "Conference call" }, "encrypted_message": { "name": "encrypted_message", - "description": " " + "description": "Complete encrypted message or reaction packet produced as specified here »¹", + "links": [ + "https://core.telegram.org/api/end-to-end/group-calls#encrypting-and-sending-a-message" + ] } }, "errors": [ @@ -75218,19 +75260,25 @@ "phone.sendGroupCallMessage": { "name": "phone.sendGroupCallMessage", "description": [ - "Send a transient in-call message to all participants of a group call or livestream¹." + "Send a transient in-call message to all participants of a non-RTMP video chat/livestream or live story, see here »¹ for more info.", + "The send_as field can only be populated for live stories, where it optionally selects the displayed author. If omitted, the server automatically selects the appropriate author. Do not populate it for video chats/livestreams.", + "Video chats/livestreams and live stories support animated emoji reactions »¹, encoded as messages containing only a standard available reaction emoji or a single custom emoji entity.", + "For a paid live story comment, pass the user-confirmed donation amount in allow_paid_stars. For commenters other than the live story owner, this amount must be at least the current groupCall¹.send_paid_messages_stars minimum. A higher amount may be donated to highlight the comment. The live story owner may comment without populating allow_paid_stars. To send a standalone paid live story donation, pass a positive allow_paid_stars value and an empty message, see here »² for the full flow." ], "links": [ - "https://core.telegram.org/api/group-calls#conference-calls" + "https://core.telegram.org/api/group-calls#in-call-messages", + "https://core.telegram.org/api/group-calls#in-call-reactions", + "https://core.telegram.org/constructor/groupCall", + "https://core.telegram.org/api/group-calls#paid-live-story-donations" ], "parameters": { "allow_paid_stars": { "name": "allow_paid_stars", - "description": " " + "description": "User-confirmed number of Telegram Stars to donate with a live story comment or standalone donation" }, "call": { "name": "call", - "description": " " + "description": "Group call" }, "flags": { "name": "flags", @@ -75241,15 +75289,15 @@ }, "message": { "name": "message", - "description": " " + "description": "Message text or emoji reaction; pass an empty value when sending a standalone paid live story donation" }, "random_id": { "name": "random_id", - "description": " " + "description": "Client-generated random ID used to deduplicate the message" }, "send_as": { "name": "send_as", - "description": " " + "description": "Optional peer to display as the author of a live story message or reaction; can only be used for live stories" } }, "errors": [ @@ -75363,10 +75411,10 @@ "phone.toggleGroupCallRecord": { "name": "phone.toggleGroupCallRecord", "description": [ - "Start or stop recording a group call¹: the recorded audio and video streams will be automatically sent to Saved messages (the chat with ourselves)." + "Start or stop recording a video chat/livestream, see here »¹ for more info. The recorded audio and video streams will be automatically sent to Saved Messages (the chat with ourselves)." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#video-chats-livestreams" ], "parameters": { "call": { @@ -75418,10 +75466,10 @@ "phone.toggleGroupCallSettings": { "name": "phone.toggleGroupCallSettings", "description": [ - "Change group call¹ settings." + "Change group call settings. Each setting supports different group call types, see here »¹ for more info." ], "links": [ - "https://core.telegram.org/api/group-calls" + "https://core.telegram.org/api/group-calls#managing-an-active-group-call" ], "parameters": { "call": { @@ -75437,19 +75485,19 @@ }, "join_muted": { "name": "join_muted", - "description": "Whether all users will that join this group call are muted by default upon joining the group call" + "description": "Whether users joining a video chat or livestream should be muted by default" }, "messages_enabled": { "name": "messages_enabled", - "description": " " + "description": "Enable or disable the in-call message overlay in non-RTMP video chats/livestreams and live stories" }, "reset_invite_hash": { "name": "reset_invite_hash", - "description": "Invalidate existing invite links" + "description": "Invalidate existing invite links for video chats, livestreams and conferences" }, "send_paid_messages_stars": { "name": "send_paid_messages_stars", - "description": " " + "description": "Set the minimum Telegram Stars donation required from users other than the live story owner for each comment; the owner may always comment without donating, and 0 allows free comments for everyone" } }, "errors": [ @@ -78121,6 +78169,12 @@ }, "stories.startLive": { "name": "stories.startLive", + "description": [ + "Start a live story, optionally using RTMP livestream mode, see here »¹ for the full flow." + ], + "links": [ + "https://core.telegram.org/api/group-calls#live-stories" + ], "parameters": { "caption": { "name": "caption", @@ -78142,7 +78196,7 @@ }, "messages_enabled": { "name": "messages_enabled", - "description": " " + "description": "Whether the in-call message overlay should be enabled" }, "noforwards": { "name": "noforwards", @@ -78166,11 +78220,14 @@ }, "rtmp_stream": { "name": "rtmp_stream", - "description": " " + "description": "Create the live story in RTMP livestream mode »¹, where one external streamer publishes all audio and video", + "links": [ + "https://core.telegram.org/api/group-calls#rtmp-livestreams" + ] }, "send_paid_messages_stars": { "name": "send_paid_messages_stars", - "description": " " + "description": "Minimum Telegram Stars donation required from users other than the live story owner for each comment; the owner may always comment without donating, and 0 allows free comments for everyone" } }, "errors": [ @@ -80667,7 +80724,7 @@ "description": "The invite hash is empty." }, "INVITE_HASH_EXPIRED": { - "code": 406, + "code": 400, "type": "INVITE_HASH_EXPIRED", "description": "The invite link has expired." }, @@ -80941,7 +80998,7 @@ "description": "The specified message is not a voice message." }, "MSG_WAIT_FAILED": { - "code": 400, + "code": 500, "type": "MSG_WAIT_FAILED", "description": "A waiting call returned an error." }, @@ -81058,7 +81115,7 @@ "description": "The specified participant ID is invalid." }, "PARTICIPANT_JOIN_MISSING": { - "code": 400, + "code": 403, "type": "PARTICIPANT_JOIN_MISSING", "description": "Trying to enable a presentation, when the user hasn't joined the Video Chat with phone.joinGroupCall." }, @@ -81976,7 +82033,7 @@ "description": "There are too many stickers in this stickerpack, you can't add any more." }, "STICKERSET_INVALID": { - "code": 400, + "code": 406, "type": "STICKERSET_INVALID", "description": "The provided sticker set is invalid." }, @@ -82163,7 +82220,7 @@ "TAKEOUT_REQUIRED": { "code": 403, "type": "TAKEOUT_REQUIRED", - "description": "A takeout session needs to be initialized first, see here » for more info." + "description": "A takeout¹ session needs to be initialized first, see here » for more info²." }, "TASK_ALREADY_EXISTS": { "code": 400, @@ -82271,12 +82328,12 @@ "description": "The specified token type is invalid." }, "TOPIC_CLOSED": { - "code": 406, + "code": 400, "type": "TOPIC_CLOSED", "description": "This topic was closed, you can't send messages to it anymore." }, "TOPIC_DELETED": { - "code": 406, + "code": 400, "type": "TOPIC_DELETED", "description": "The specified topic was deleted." }, @@ -82466,7 +82523,7 @@ "description": "This method can only be called by a bot." }, "USER_CHANNELS_TOO_MUCH": { - "code": 400, + "code": 403, "type": "USER_CHANNELS_TOO_MUCH", "description": "One of the users you tried to add is already in too many channels/supergroups." },