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;
| Name | Type | Description |
|---|---|---|
| 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. |
Read out of the handler itself — this is what the server actually returns for this method.
| Code | Type | What 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. |
| Code | Type | What 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. |