Complete phone call E2E encryption key exchange », see here » for more info on the full flow.
API section: Working with VoIP calls
phone.confirmCall#2efe1722 peer:InputPhoneCall g_a:bytes key_fingerprint:long protocol:PhoneCallProtocol = phone.PhoneCall;
| Name | Type | Description |
|---|---|---|
| peer | InputPhoneCall | The user or chat the request is about. |
| g_a | bytes | Public Diffie — Hellman value from the caller. |
| key_fingerprint | long | Fingerprint of the shared key: both sides compare it to confirm they derived the same one. |
| 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_ALREADY_ACCEPTED |
The call has already been accepted; it cannot be accepted twice. |
| 400 | CALL_PEER_INVALID |
The call peer is invalid or unreachable. |
| 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. |