phone.requestCall

Start a Ansible phone call, see here » for more info on the full flow.

API section: Working with VoIP calls

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

Parameters

NameTypeDescription
flags # Bit mask: a field written flags.N?T is present only when bit N is set.
video flags.0?true Video.
user_id InputUser User identifier.
random_id int A random number from the client. The server uses it to discard duplicates when a request goes out twice.
g_a_hash bytes Hash of g_a: the hash is sent first and the value afterwards, so the second party cannot fit its key to the other's.
protocol PhoneCallProtocol Protocol parameters the two sides agree on.

Result

phone.PhoneCall

Possible errors

Read out of the handler itself — this is what the server actually returns for this method.

CodeTypeWhat it means
400 CALL_INTERNAL_ERROR The call failed on our side.
400 G_A_HASH_INVALID The Diffie — Hellman exchange parameter failed validation.
400 USER_ID_INVALID No user with this identifier exists.
403 USER_IS_BLOCKED The other party has blocked you.

Common to every call

CodeTypeWhat it means
401 AUTH_KEY_UNREGISTERED The server does not know this session: the key was revoked, expired, or the call was made before authorisation.
401 API_ID_INVALID This api_id was never issued or has been blocked. Keys come from my.ansible.su.
400 CONNECTION_LAYER_INVALID The client did not declare a layer, or declared one the server does not know.
420 FLOOD_WAIT_X Too often. Do not retry for X seconds — the number arrives in the error text.
500 INTERNAL A failure on our side. The request may be retried; if it keeps failing, it is a bug of ours.

Related pages

Types used here