RequestCallRequest

Only users can use this request. See code examples.

---functions---
phone.requestCall#42ff96ed flags:# video:flags.0?true user_id:InputUser random_id:int g_a_hash:bytes protocol:PhoneCallProtocol = phone.PhoneCall

Returns

phone.PhoneCall

This type can only be an instance of:

PhoneCall

Parameters

user_idInputUserAnything entity-like will work if the library can find its Input version (e.g., usernames, Peer, User or Channel objects, etc.).
g_a_hashbytes
protocolPhoneCallProtocol
videoflagThis argument defaults to None and can be omitted.
random_idintIf left unspecified, it will be inferred automatically.

Known RPC errors

This request can cause 6 known errors:

CallProtocolFlagsInvalidErrorCall protocol flags invalid.
ParticipantCallFailedErrorFailure while making call.
ParticipantVersionOutdatedErrorThe other participant does not use an up to date telegram client with support for calls.
UserIdInvalidErrorInvalid object ID for a user. Make sure to pass the right types, for instance making sure that the request is designed for users or otherwise look for a different one more suited.
UserIsBlockedErrorUser is blocked.
UserPrivacyRestrictedErrorThe user's privacy settings do not allow you to do this.

You can import these from telethon.errors.

Example

from telethon.sync import TelegramClient
from telethon import functions, types

with TelegramClient(name, api_id, api_hash) as client:
    result = client(functions.phone.RequestCallRequest(
        user_id='username',
        g_a_hash=b'arbitrary\x7f data \xfa here',
        protocol=types.PhoneCallProtocol(
            min_layer=42,
            max_layer=42,
            library_versions=['some string here'],
            udp_p2p=True,
            udp_reflector=True
        ),
        video=True
    ))
    print(result.stringify())