Connect your voice assistant to contact centers running InfoServ CRM

InfoServ CRM handles telephony, routing, monitoring and reporting. Your assistant handles the conversation. The integration needs a SIP trunk and one API call per conversation.

Running a contact center? See what the integration gives you.

Caller to InfoServ CRM Calls the customer's usual number
InfoServ CRM to your assistant A second call over the SIP trunk, with the token in X-vb-token
Caller and your assistant The conversation
InfoServ CRM connects the two calls and stays on the line
Your assistant to InfoServ CRM API call vbcallend with getagent or hangup, then BYE
InfoServ CRM to caller Connects an agent, or ends the call
Your assistant to InfoServ CRM, optional Within 24 hoursAPI call vbcallsummary with transcript and summary
One call through the integration. The caller never calls your assistant directly.

What the integration requires

Four things, in the order they happen on every call. Only the first three are mandatory.

  1. Receive calls over a SIP 2.0 trunk

    InfoServ PhoneServer calls your assistant over a dedicated SIP 2.0 trunk and connects that call to the caller inside InfoServ CRM. No public phone numbers or carriers are involved on your side.

  2. Read the SIP headers

    Every call carries a unique token in X-vb-token. The caller's number and other details come in From and X-vb-info, if the InfoServ CRM customer enables them.

  3. Call vbcallend, then send BYE

    Send the token and the action: getagent to pass the caller to an agent, or hangup to end the call. Only then end your call; InfoServ CRM does the rest.

  4. Send vbcallsummary after the call Optional

    When your transcript and summary are ready, send them with the same token, within 24 hours. The caller isn't kept waiting while you prepare them.

The SIP connection at a glance

The trunk runs between the customer's InfoServ PhoneServer and your assistant. Addresses, ports and the trunk number are agreed with each customer.

Transport
UDP or TLS. With TLS, your side provides the certificate; the TLS port is set per trunk.
Media encryption
SRTP with SDES key exchange, used together with TLS.
Audio
PCMA by default, PCMU if that's what your side supports. 20 ms packets.
DTMF
RFC 2833.
Authentication
By source IP address. Username and password are also supported if your side challenges with 401 or 407.
Where calls arrive
The trunk number agreed with the customer, for example sip:1111@your-address. Different numbers can separate lines or services.
Concurrent calls
Many calls run over the same trunk at once. Each has its own token.
Call transfer
Not used. The call with your assistant ends with vbcallend and BYE; InfoServ CRM handles the rest.

What arrives with each call

The InfoServ CRM customer decides what your assistant receives, and each item is switched on separately. Build your assistant to work with the token alone, and use more data when the customer turns it on.

X-vb-tokenAlways

Unique for each call and valid for 24 hours. You need it for both API calls. Treat it as an opaque string: it's currently 128 lowercase letters.

FromCaller's number, if enabled

The number as it came from the carrier or PBX. When the customer hasn't enabled it, From carries the trunk number instead. Withheld numbers arrive as the carrier sends them.

X-vb-infoDetails, if enabled

Comma-separated key=value pairs. Values are percent-encoded UTF-8. A key without a value isn't sent.

KeyValue
langThe language the caller chose in the IVR, as configured by the customer, for example en or bg
cyes or no: whether the contact was identified
fyes or no: whether the company was identified
c_idThe contact's ID in InfoServ CRM
f_idThe company's ID in InfoServ CRM
Example
X-vb-token: kqzfh… (128 letters)
X-vb-info: c=yes,lang=en,f=yes,c_id=CUST00000011,f_id=FRM00000036

Decode each value once, after splitting. Don't rely on the order or number of keys, and ignore keys you don't know. The full parsing rules are in the specification.

The two API calls

Both are HTTPS POST requests with a JSON body in UTF-8, sent to the InfoServ API of the customer's installation and matched to the call by the token. The customer gives you the API address and its API key from their InfoServ CRM settings. A request can be up to 1 MB, and fields InfoServ CRM doesn't use are ignored. Response codes are in the specification.

Content-Type: application/json
Authorization: Bearer <API key of the customer's installation>

vbcallend

Mandatory. Sent once, before your assistant sends BYE.
FieldRequiredTypeWhat it's for
tokenYesstringThe token from X-vb-token. Identifies the call.
eventYesstringAlways "vbcallend".
actionYesstring"getagent" to pass the call to an agent, "hangup" to end it.
reasonNostringWhy you chose the action, in plain words. Shown to the agent. Up to 50 characters; longer text is cut.
tagsNoarray of stringsClassifies the call for search, reports and the customer's routing rules. No limit.
flowNoarray of stringsThe steps the caller went through, in order. Builds the Flow Report. Each step up to 50 characters; longer steps are cut.
param1 to param5NostringDetails you collected, such as a customer code or booking number. The customer can use them to identify the caller or route the call.
Example: the caller wants a person
{
                            "token": "kqzfh...",
                            "event": "vbcallend",
                            "action": "getagent",
                            "reason": "Wants to change a booking date",
                            "tags": ["booking", "date change"],
                            "flow": ["greeting", "identification",
                            "booking", "handover to agent"],
                            "param1": "RES-48213"
}
Only the first valid vbcallend counts.

Any later vbcallend for the same call is ignored. Send it before BYE. By default, InfoServ CRM doesn't wait for vbcallend after BYE at all; a customer can enable a short wait of up to 5 seconds as a safety measure, but an integration that relies on it won't pass testing.

You never transfer the call yourself.

InfoServ CRM connects two separate calls, one with the caller and one with your assistant. With getagent, the customer's own rules route the caller to an agent, who sees your reason, tags and parameters. Everything you send, including flow, is stored with the call, where the customer's routing rules, identification settings and Automatic Actions can use it.

vbcallsummary

Optional. Sent after the call, within 24 hours.
FieldRequiredTypeWhat it's for
tokenYesstringThe same token as in vbcallend.
eventYesstringAlways "vbcallsummary".
transcriptNostringThe transcript of the conversation, in the format you agree with the customer. No limit.
summaryNostringA summary of the conversation. No limit.
param1 to param5NostringAny other results of your analysis, such as suggested next steps.
Example: transcript and summary, sent after the call
{
                            "token": "kqzfh...",
                            "event": "vbcallsummary",
                            "transcript": "Assistant: Good afternoon... ",
                            "summary": "Customer asked to move booking
    RES-48213 to a later date.",
                            "param1": "Offer alternative dates"
}
Each vbcallsummary replaces the previous one.

If you send it more than once, the last one wins completely: a field missing from it is removed. Always include every field you want to keep.

When something goes wrong

InfoServ CRM watches every call it sends to your assistant. Here's what happens in each situation. Where a fallback action runs, it's the one the customer has chosen: end the call, send it to a queue without voice assistants, or route it again.

Your assistant doesn't answer
The call can't be connected, or isn't answered within the customer's ringing time, 20 seconds by default.
No result
Your assistant ends the call without a valid vbcallend.
Invalid result
A required field is missing, or action isn't getagent or hangup.
Too long or too short
The call with your assistant goes past the maximum or ends before the minimum time the customer set.

If an agent takes over the call, the agent sees which situation occurred, and the customer's call reports show which calls ended with a fallback action. When a call passes the maximum time, still send vbcallend: your data is recorded and the call appears in the Flow Report, but the fallback action has already decided what happens to the caller. Calls with no valid vbcallend don't appear in the Flow Report, because it's built from your flow.

Send a flow your customer can read

Your customer judges your assistant by the Flow Report, and the Flow Report is only as clear as the steps you send in flow.

  • Use exactly the same name for the same step, every time. Steps are grouped by their exact text, so "Booking" and "booking" become two branches.
  • Name steps by what happened in the conversation, not by internal state names. The customer's managers read these.
  • Keep each step under 50 characters. Longer steps are cut.
  • Write steps in the customer's working language. InfoServ CRM shows them exactly as you send them.
  • Record the steps where the conversation went wrong too, such as "not understood". That's where the report helps you improve.
  • Keep steps and tags apart. flow is the order of the conversation; tags say what the call was about.
Clear
["greeting", "identification", "booking", "handover to agent"]

Every call with the same path lands on the same branch.

Hard to read
["start", "node_7", "ident_ok", "bookingFlow", "esc"]

Internal names mean nothing to the customer, and "esc" will be counted apart from "escalation" on other calls.

See a Flow Report on the main page

What you get

No telephony work for each customer
Calls come from InfoServ PhoneServer over SIP. The customer keeps their carrier and numbers, so there's no number porting or call forwarding to set up.
A safe handover
Send getagent and InfoServ CRM routes the caller to an agent, together with your reason. The caller never hangs up, so a handover never costs you a customer.
Your results, visible to the customer
The flow you send becomes a Flow Report in the customer's own reports. A well-performing assistant earns more calls when the numbers show it.
Contact centers that are ready to buy
InfoServ CRM runs contact centers in finance, insurance, courier services, travel and e-commerce. Their infrastructure is already in place for your assistant.
A place on the partner list
Once your integration has been tested, you're listed with the tested vendors on the InfoServ CRM voice assistant page.
You stay the customer's assistant vendor
The customer contracts your assistant with you directly. InfoServ CRM provides the connection, not a competing assistant.

How to get started

  1. Request the specification

    The full technical details, including response codes and parsing rules.

  2. Connect to a test setup

    We provide a test setup with a SIP trunk and API access.

  3. Pass the tests

    Answering calls, reading the headers, vbcallend before BYE and a correct vbcallsummary.

  4. Get listed

    You're listed with the tested vendors and receive support contacts.

Questions from vendors

Common questions about connecting a voice assistant to InfoServ CRM.

No. The customer keeps their phone provider and numbers. Calls reach your assistant from InfoServ PhoneServer over a dedicated SIP 2.0 trunk.

No. InfoServ CRM connects two separate calls, one with the caller and one with your assistant. You send vbcallend with the action getagent, then end your call. InfoServ CRM connects the caller to the right agent; the caller stays on the line.

Always a unique call token in the X-vb-token header. The caller's number in the From header and the IVR language, identification status, contact ID and company ID in the X-vb-info header are each sent only if the InfoServ CRM customer enables them.

For vbcallend: token, event and action. For vbcallsummary: token and event. All other fields are optional.

Yes. Send vbcallsummary within 24 hours after the call, while the call token is valid. Each vbcallsummary replaces the previous one completely, so always include every field you want to keep.

InfoServ CRM runs the fallback action the customer has set: if your assistant doesn't answer within the ringing time, ends a call without vbcallend, sends a result without a required field or an invalid action, or goes past the time limits the customer set. The customer's call reports show these calls.

Yes. An agent can send the caller back to your assistant, for example for another booking. Each time is a separate call with its own token, and your assistant isn't told about earlier calls. Time limits, fallback actions and the Flow Report treat each call separately.

In the language your customer works in. InfoServ CRM stores tags and step names exactly as you send them and uses them in search, reports and the Flow Report.

Request the integration specification

Tell us about your assistant. We'll send the full specification and arrange a test setup.

Do you have a question?

+359 2 426 61 62

Monday to Friday, 9 AM - 6 PM UTC+3

Request the specification

Do you already work with an InfoServ CRM customer?

By requesting the specification, you agree to our Privacy Policy

Please verify that you are not a robot.