Ring an available operator for an incoming twilio call

For a call to a Twilio number, the platform answers Twilio's incoming-call request with instructions: it applies the blocked list, working hours, greeting and recording notice, then rings eligible operators in the order the routing mode defines.

When this happens: Twilio posts its incoming-call request for +373 22 123 456.

How it works

  • Calls +373 22 123 456 (Vânzări).
  • EasyCRM posts the voice request to the connection's route; the system verifies X-Twilio-Signature.
  • Identifies the caller, checks the blocked list, and checks working hours.
  • EasyCRM builds the instructions: the greeting (in the conversation's language when known, else the company default), the recording notice when Record calls is on, then the dial.
  • Picks who rings. In Automatic mode it takes the first eligible user in distribution order: Online, holds EasyCrm.Inbox, EasyCrm.Conversations.Reply and EasyCrm.Calls, is not deactivated, has an active device on this connection and is not on another call. Routing only chooses whose phone rings; nobody is assigned yet.
  • Responds to Twilio within 10 seconds, instructing it to ring Maria Popescu's device for 20 seconds. Her device is a phone number, so her leg first says Call for Vânzări. Press 1 to accept ().
  • Maria answers, presses 1 and Twilio connects the customer; Twilio posts the status events.
  • Handles the call as in UC-29.5, with Maria as the answering user: only now is the conversation assigned to her.

Other paths

Manual mode

If rings every eligible user with a device on this connection at once. The first to answer (and accept) takes the call and becomes responsible; the others' cards close.

Automatic mode, first operator does not answer

After RingTimeoutSeconds (20) without an answer, tries the next eligible user, up to MaxRingAttempts (3). A user who did not answer is not assigned. The card of you whose phone stopped ringing closes.

Rule-based mode

A rule matching the Voice channel (or this connection) selects its target users, ordered as in automatic distribution.

Returning customer

The customer's conversation was reopened and return to previous operator is on: the previous responsible user, Ion Rusu, is tried first.

Outside working hours

The company is closed. Speaks the Voice out-of-hours text (Biroul este închis. Lăsați un mesaj după semnal) and records a voicemail when enabled, otherwise hangs up. The call is recorded as missed.

Nobody answers

After all attempts, offers voicemail when enabled (maximum 3 minutes), otherwise speaks the no one is available text. The call is missed. The conversation is then routed as a new inbound conversation would be. In Automatic or RuleBased mode it may be assigned to an eligible operator, who gets the callback follow-up (UC-29.7 ). In Manual mode, or when no operator is eligible, it stays Unassigned in the shared Inbox marked Missed call — call back (UC-29.7 ).

Blocked number

Instructs Twilio to reject the call as busy without ringing anyone; the call is kept flagged Blocked.

Device is a phone number — "press 1 to accept"

The candidate's device is an E.164 number, not a sip: address. When the phone is picked up, the platform's leg says Call for Vânzări. Press 1 to accept in en, ro-RO or ru (the conversation's language when known, else the company default). Presses 1. Connects the customer to the Operator. Only now is the call answered; the Operator's card becomes the on-call bar. A sip: device skips this step and connects directly.

No key pressed

The phone is picked up (or goes to its personal voicemail) but 1 is not pressed within RingTimeoutSeconds. The attempt counts as not answered, so a personal voicemail never answers the customer's call. Tries the next eligible user (), or, when none is left, offers voicemail or speaks the no one is available text ().

If something goes wrong

Decision takes too long or fails

If the system cannot decide within the time limit, or errors, it instructs Twilio to ring every active device of the connection at once (fail open). A call is never dropped by a platform error.

Nobody eligible

Everyone is Offline, on a call, without a device or without EasyCrm.Inbox. Goes straight to voicemail or the no one is available text, and the call is missed ().

Signature invalid

Rejects the request with 400, records WebhookSignatureInvalid and does not route the call.

Good to know

  • The decision is returned synchronously within 10 seconds, and fails open to ringing everyone.
  • The order is: identify, blocked, working hours, greeting, recording notice, ring.
  • To be rung a you must be eligible per FR-24-004 AC #1 (Online, EasyCrm.Inbox and EasyCrm.Conversations.Reply, not deactivated), hold EasyCrm.Calls, have an active device on the connection and not be on a call.
  • Routing only chooses whose phone rings; the conversation is assigned only when someone answers. After a missed call it is routed as a new inbound conversation.
  • A device that is a phone number is screened with "Call for {line label}. Press 1 to accept."; no key press counts as not answered; a sip: device connects directly.
  • Voicemail is on by default (maximum 3 minutes); spoken texts use the conversation's language, else the company default.
  • Provider-routed systems do not use this flow; their own queues decide.