phone.joinGroupCall

Join any group call type ». Conference calls additionally require the E2E joining 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:

{
  "ssrc": 123456789,
  "ufrag": "...",
  "pwd": "...",
  "fingerprints": [{
    "hash": "sha-256",
    "fingerprint": "...",
    "setup": "passive"
  }]
}

When joining an RTMP-mode call, generate the payload without published video source groups.

updatesTooLong#e317af7e = Updates;
updateShortMessage#313bc7f8 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int user_id:long message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
updateShortChatMessage#4d6deea5 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int from_id:long chat_id:long message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
updateShort#78d4dec1 update:Update date:int = Updates;
updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
updateShortSentMessage#9015e101 flags:# out:flags.1?true id:int pts:int pts_count:int date:int media:flags.9?MessageMedia entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
---functions---
phone.joinGroupCall#8fb53057 flags:# muted:flags.0?true video_stopped:flags.2?true call:InputGroupCall join_as:InputPeer invite_hash:flags.1?string public_key:flags.3?int256 block:flags.3?bytes params:DataJSON = Updates;

Parameters

Name Type Description
flags # Flags, see TL conditional fields
muted flags.0?true Join muted; required for live story listeners and RTMP-mode viewers
video_stopped flags.2?true Join with video disabled; required for live story listeners and RTMP-mode viewers
call InputGroupCall Group call to join
join_as InputPeer 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 ».
invite_hash flags.1?string 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 »).
public_key flags.3?int256 For conference calls » only, your public key.
block flags.3?bytes The main-chain block that adds the joining user », only for conference calls ».
params DataJSON Join payload generated by the local tgcalls group-call engine, as described above

Result

Updates

Only users can use this method

Possible errors

Code Type Description
400 CHAT_ADMIN_REQUIRED You must be an admin in this chat to do this.
403 CHAT_WRITE_FORBIDDEN You can't write in this chat.
400 DATA_JSON_INVALID The provided JSON data is invalid.
500 GROUPCALL_ADD_PARTICIPANTS_FAILED  
403 GROUPCALL_FORBIDDEN The group call has already ended.
400 GROUPCALL_INVALID The specified group call is invalid.
400 GROUPCALL_SSRC_DUPLICATE_MUCH The app needs to retry joining the group call with a new SSRC value.
400 JOIN_AS_PEER_INVALID The specified peer cannot be used to join a group call.

Related pages

inputPeerSelf

Defines the current user.

Group calls

Deep links

Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers.

E2E Group Calls