To use Verimor telephony in Mavibot, you need to obtain an API key from your Verimor account and enter it in the integration settings.

Verimor is a Turkish telecommunications provider. Its Bulut Santralim product is a cloud PBX: employees work with internal extensions, and calls are routed through those extensions.

The bot can connect an employee with a client, transfer and end calls, retrieve recordings, and send call events to the conversation.

Getting the required data

  1. Activate the Bulut Santralim service with Verimor and create internal extensions for your employees.
  2. Open Online İşlem Merkezi → Bulut Santralim → Santral Ayarlarım and copy the API key. It looks like this:
K12345678-1234-5678-4321-123456789012
  1. Write down the employees' internal extensions. You will need to specify them in the access settings.

The API key is shared across the entire PBX and is used both for calls and for receiving events. If you regenerate it in the Verimor dashboard, make sure to save the connection form again. Otherwise, both calls and conversation events will stop working.

Connection

In the telephony tab, select Verimor and enter:

  • API key — the key from the Santral Ayarlarım section.
  • Outgoing number — the external number that the client will see, in the format 908505320000. This field is optional. If left empty, the number assigned to the employee's internal extension will be used.


The integration is now connected.

To disconnect the integration, clear the API key field and save the settings.

You do not need to configure the notification URL manually. Mavibot sets it automatically in your PBX when the API key is saved.

Employees

In the employee settings, fill in the employee's internal extension (dahili) — usually 3–4 digits, for example 1001.

Enter the internal PBX extension, not the employee's mobile phone number. Without it, the call button in the client card will not work for that employee.

Calling from the client card

A call button will appear next to the client's phone number in the conversation card.

The PBX first calls the employee's internal extension. Only after the employee answers does it call the client.

This order is intentional: the client will not hear silence on the line because the employee is already connected when the client's phone starts ringing.

Calculator Functions

Employee-to-Client Call

verimor_employee_call(client_phone, employee_extension, caller_id)

Parameters:

  • client_phone — the client's phone number. Required. Use the Turkish format 908505320000, or 00493027590915 for international calls.
  • employee_extension — the internal extension of the employee whose phone will ring. Required.
  • caller_id — the number that the client will see. Optional. If omitted, the outgoing number from the connection settings is used.

The function returns call_uuid — the call identifier. It is also saved to the verimor_call_uuid variable.

Transfer Call

verimor_transfer_call(employee_extension, call_uuid)

Transfers the current call to another internal extension.

Parameters:

  • employee_extension — the internal extension to which the call will be transferred. Required.
  • call_uuid — the call identifier. Optional. If omitted, the client's most recent call is used.

End Call

verimor_hangup_call(call_uuid)

Parameters:

  • call_uuid — the call identifier. Optional. If omitted, the client's most recent call is used.
verimor_get_record_link(call_uuid)

Requests a fresh link to the call recording.

Parameters:

  • call_uuid — the call identifier. Optional. If omitted, the client's most recent call is used.

Callbacks During a Call

As the call progresses, callbacks are sent to the conversation in the following format:

verimor_call_event answer

Possible events:

Event When it is triggered
ringing The call is ringing
answer The call has been answered
hangup The call has ended
user_hangup The employee ended the call

Calls between employees do not appear in the conversation.

A typical "no answer → send a message in the messenger" scenario can be triggered by hangup and checking the verimor_call_answered variable.

Client Variables After a Call

Variable Value
verimor_call_uuid Call identifier
verimor_call_direction Direction: inbound — the client calls you, outbound — you call the client
verimor_call_extension Internal extension of the employee who handled the call
verimor_call_duration Call duration in seconds
verimor_call_answered 1 — the call was answered, 0 — it was not
verimor_hangup_cause Code indicating why the call ended
verimor_has_record 1 — a recording exists, 0 — no recording exists
verimor_record_link Link to the call recording after calling verimor_get_record_link()

Hangup Cause Codes

The most common values of verimor_hangup_cause are:

Code Meaning
NORMAL_CLEARING The call was completed and ended normally
USER_BUSY Busy
NO_ANSWER No answer
ORIGINATOR_CANCEL The caller hung up before the call was answered
CALL_REJECTED The call was rejected
UNALLOCATED_NUMBER Invalid number
NO_USER_RESPONSE The subscriber is unavailable
NOT_ALLOWED_BY_IYS No permission in İYS, the Turkish consent registry for commercial calls

Call Recordings

Call recording must be enabled in your Verimor PBX settings. Recordings are stored in your Verimor account.

Recording links remain valid for 60 minutes from the moment they are requested. After that, they stop working. Verimor also allows no more than five recording-link requests per minute per API key.

What this means:

  • The verimor_record_link variable is not populated automatically. You must first call verimor_get_record_link().
  • In a scenario that sends a recording, call verimor_get_record_link() at the moment the recording is sent, not in advance.
  • Check verimor_has_record first so you do not waste the request limit on calls that have no recording.
  • If you need to keep a recording permanently, save the file to your own storage immediately after the call.
  • The recording archive remains available in the Verimor dashboard, where recordings can be played and downloaded later.

Call recording is regulated by law. In Turkey, it is subject to KVKK requirements: the client must be informed about the recording, and the storage of personal data must have a lawful basis. The Verimor account owner is responsible for complying with applicable requirements.

Troubleshooting

Error Cause / Solution
Gecersiz anahtar Invalid API key. Get the current key from the Santral Ayarlarım section.
extension 1005 not found The internal extension does not exist in your PBX. Make sure the employee settings contain an existing dahili.
"Verimor internal extension is not specified" The employee settings are empty or contain a mobile phone number instead of an internal extension.
Calls work, but no callbacks appear in the conversation The notification URL was not configured. Save the connection form again.
Calls stopped working after changing the API key The key was regenerated in the Verimor dashboard. Enter the new key in the connection form and save it.
Recording link does not open The link has expired. Request a fresh one with verimor_get_record_link() or open the recording in the Verimor dashboard.
Recording link is not returned The limit of five requests per minute has been reached, or the call has no recording. Check verimor_has_record.