New call

Available attributes and sample data for newCall events

Attribute

Possible value

Description

event

newCall

Tell Zammad there’s a new call

from

e.g. 493055571600, 02214710334, anonymous

Number that initiated the call

to

e.g. 49221470334, 03023125771

Number that is being called

direction

in or out

The call direction - if your agent initiates a call this will be out

callId

e.g. 53ba82e2bd6d12d9fb2d3838f0cfb070, 5fb9532f40da834a, 123456789

An ID that is unique for the call. Zammad will use this ID to identify an existing call with following actions (e.g. like answering or hanging up)

This ID must be unique per call session.

user

e.g. John Doe, [Alice, Bob]

The user(s) real name involved. You may have to provide array style ([]) params depending on the call method you choose.

If the direction is out, this is the name of the calling person(s).
If the direction is in, this is the name of the called person(s).

This value is optional.

queue

e.g. support, sales

An optional queue name, this option is relevant for the Caller Log Filter

There’s two options on how to POST the relevant data to Zammad.

Example:

Below calls have been sent with the following configuration. This is important for you to understand the returns we’re showing here.

Outbound:

  • Destination caller ID 4989* set outbound caller ID 498999998145 with note “All from munich”

  • Destination caller ID 4930* set outbound caller ID 493023125877 “All from Berlin”

Other settings:

  • Default caller ID for outbound calls 496990009111

POST-Request sent: https://{FQDN-Zammad}/api/v1/cti/{instance specific token}

Outbound

Payload:

{
   "event": "newCall",
   "from": "493023125741",
   "to": "492214710334",
   "direction": "out",
   "callId": "f4ebd2be-7b9a-4d58-94c2-eb06a3c2ce76",
   "user": "Christopher Miller"
}

Returns:

{
   "action": "dial",
   "caller_id": "496990009111",
   "number": "492214710334"
}

Sample curl command:

$ curl --request POST 'https://{FQDN-Zammad}/api/v1/cti/{instance specific token}' \
   --header 'Content-Type: application/json' \
   --data-raw '{
      "event": "newCall",
      "from": "493023125741",
      "to": "492214710334",
      "direction": "out",
      "callId": "f4ebd2be-7b9a-4d58-94c2-eb06a3c2ce76",
      "user": "Christopher Miller"
   }'
Inbound

Payload:

{
   "event": "newCall",
   "from": "493023125741",
   "to": "492214710334",
   "direction": "in",
   "callId": "307fa962-de8d-4ffc-817b-7f6993204159",
   "user": ["Christopher Miller", "Emma Taylor"]
}

Response:

{}

Sample curl command:

$ curl --request POST 'https://{FQDN-Zammad}/api/v1/cti/{instance specific token}' \
   --header 'Content-Type: application/json' \
   --data-raw '{
      "event": "newCall",
      "from": "493023125741",
      "to": "492214710334",
      "direction": "in",
      "callId": "307fa962-de8d-4ffc-817b-7f6993204159",
      "user": ["Christopher Miller", "Emma Taylor"]
   }'

Situation specific responses

Depending on the chosen call direction, Zammad will return either a (optionally) configured call ID or (optionally) block a caller. If your Zammad hasn’t configured one or both options, the return will be empty.

Note

This has to be supported by your PBX in order to work.

If an incoming new call matches a to block number, Zammad will return the following.

{
  "action": "reject",
  "reason": "busy"
}

If no to block number matches, Zammad will return the following.

{}

Warning

Your PBX still needs to end the call (hangup event). Other wise the call will not just appear within Zammads caller log but also appear as ringing call.

The next logical steps within call session context would be: