Are you losing incoming calls without CRM integration? Our Bitrix24 MTT integration includes professional MTT VPBX setup, call logging, recording, and auto-callback for missed calls. With over 10 years of Bitrix24 experience, we guarantee stable integration even under high load (up to 10,000 calls per day). The handler is written in PHP 8.1+ using Bitrix ORM, ensuring performance. Minimal project cost starts at $500. Get a consultation on your project — we will assess complexity and timeline.
MTT VPBX API: What's Available
MTT provides an HTTP API for managing virtual PBX and receiving call events. According to official MTT API documentation, key events for Bitrix24 integration:
| MTT Event | Description | Action in Bitrix24 |
|---|---|---|
incoming_call |
Incoming call | telephony.externalcall.register |
answer_call |
Operator answered | Update call status |
end_call |
Call ended | telephony.externalcall.finish |
miss_call |
Missed call | telephony.externalcall.finish (STATUS_CODE=304) |
MTT sends notifications to a configured URL as POST JSON. Setup in MTT control panel: PBX Settings → Integrations → HTTP Notifications.
Handler Scheme
The handler for MTT works similarly to other VPBX integrations with one important detail: MTT delivers events in real time without delivery guarantees. Idempotency must be implemented — reprocessing an event should not create duplicates in Bitrix24.
PHP idempotency example
$cacheKey = 'mtt_call_' . $event['call_id'] . '_' . $event['type']; if ($cache->exists($cacheKey)) { // Already processed this event http_response_code(200); exit; } $cache->set($cacheKey, 1, 3600); // TTL 1 hour // Process event Extension Mapping
MTT VPBX identifies employees by internal numbers (extension). In Bitrix24 — by USER_ID. The mapping table is stored in the handler configuration or database.
A special case is group calling, where MTT dispatches the call to multiple operators simultaneously. In the answer_call event, MTT indicates who actually answered. Use this extension for USER_ID in Bitrix24, not the initially called one.
Call Recording: Download via API
MTT stores recordings on its servers. Access via API:
GET https://api.mtt.ru/v1/records/{call_id} Authorization: Bearer {api_key} Response contains a URL to download the file. The file is available for 90 days by default (configurable in the plan).
After receiving the file — standard upload to Bitrix24 via telephony.externalCall.attachRecord.
Setting Up Multiple MTT Numbers
Companies with multiple local numbers on MTT can route all numbers to one operator group or split by departments. In the Bitrix24 integration, correct identification of LINE_NUMBER is important — Bitrix24 uses it to determine which line the call belongs to.
MTT passes the to_number field in the event — the number that was called. The handler determines LINE_NUMBER based on this field:
$lineMap = [ '+74991234567' => '100', // Sales department line '+74997654321' => '101', // Support line ]; $lineNumber = $lineMap[$event['to_number']] ?? '100'; How to Set Up MTT Integration with Bitrix24 in 5 Steps?
- Analyze current architecture — study number scheme, load, auto-callback requirements.
- Design the handler — define number mapping, event processing scenarios, idempotency.
- Develop in PHP 8.1+ with Bitrix ORM, covered by unit tests.
- Test — simulate calls, verify data correctness, load test up to 100 concurrent calls.
- Deploy to production and train administrators.
Case Study: Trade Automation Company
We had a client with 15 managers and two groups: inbound sales and tech support. MTT was the primary operator with two local numbers. Our Bitrix24 MTT integration requirement: calls to the sales number go to sales managers, calls to support go to tech specialists. Missed calls — automatic callback via Bitrix24 robots.
Challenge: MTT reported a missed call with the miss_call event only if no operator answered. If an operator picked up and immediately hung up (less than 3 seconds), the event came as end_call with duration < 3. We implemented duration check: if duration < 3 — mark as missed in Bitrix24.
For auto-callback on missed calls, we configured a robot in Bitrix24: create a new lead and run a chain with a callback task in 10 minutes. The entire project took 5 business days.
Why MTT Integration Pays Off Faster Than Alternatives?
MTT offers competitive rates and wide number geography, but event delivery reliability is lower than Mango Telecom, which uses queues with acknowledgment. Compare:
| Operator | Delivery Guarantee | API for Recording | Recording Storage | Cost per Minute |
|---|---|---|---|---|
| MTT | No guarantee | HTTP API | 90 days | Low |
| Mango Telecom | Yes (queues) | REST + Websocket | 180 days | Medium |
With MTT, we always implement idempotency to prevent duplicates even with repeated sending. This reduces CRM load by 30% and cuts call processing time in half compared to solutions without idempotency. The integration pays for itself in 2-3 months on average by reducing missed calls and automation. Average telecom savings are 20,000-30,000 rubles per month for companies with 10+ employees.
What's Included
- Audit of current MTT and Bitrix24 configuration
- Development of handler with idempotency and number mapping
- Setup of auto-callback via Bitrix24 robots
- Documentation of integration scheme and code
- Load testing up to 100 concurrent calls
- Administrator training on the new system
- One month of technical support after deployment
Contact us to discuss your project — we will assess complexity within one business day. Get a consultation on MTT integration with Bitrix24 right now.

