Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

1. Agents

  1. Get a List of Agents;
  2. Get information about a particular Agent.

2. Inbound calls

Upon an incoming call, Webitel sends an HTTP request to the Customer's web service, where the GET request (parameter cid-CallerID Number) contains the client's number if defined. In response, we receive JSON with the parameters necessary for routing:

  • Number found / not found;
  • The client has a debt / no deb.

When a call is assigned to an employee (Agent), Webitel sends an HTTP request to the Customer's web service, wherein the body of the POST request passes the parameters necessary to display information about the call in the Customer's system:

  • event - information about the event:
    • offering - distribution per Agent, 
    • bridged - Agent answer;
  • direction - direction of the call: 
    • inbound - incoming, 
    • outbound - outgoing or dialer call; 
  • queue - identifier of the incoming Queue or dialer;
  • member - subscriber identifier ( needed for postprocessing);
  • attempt - identifier of the dialer's dialing attempt (required for postprocessing);
  • uuid - call identifier;
  • agent - identifier of the Agent or his extension number (need to agree on the format);
  • cid - client's telephone number.

3. Outgoing call

To make an outgoing call from the Customer's system, the Agent must have a registered SIP phone (software or hardware) and a token to fulfill requests.

An example of a POST request to initiate a call:

http://swagger.webitel.com/#/CallService/CreateCall

Outgoing call

{
	"destination": "Destination number", // required
		"from": {
		"extension": "Agent's Extension" // required
	},
	"params": {
		"audio": true,
		"auto_answer": true,
		"record": true,
		"variables": {
			"additionalProp1": "string", // Additional variables for the client can be used for statistics and outgoing call routing.
			"additionalProp2": "string",
			"additionalProp3": "string"
		}
	}
}

4. Dialer

4.1. Download Members to the Dialer

Lists of Members are loaded into each Dialer separately.

To download Members to the Dialer, you must have the identifier of the Dialer and the administrator's token key.

POST request examples:

To load Members into the Dialer concerning a particular Agent, you must use the Bucket. A Bucket is created for each Agent for which a Member must be bound. Thus, when downloading a Member, the Bucket of the responsible Agent is indicated. To do this, use the POST request block:

4.1.1. An example of Soft and Precollection dialers


An example of Soft and Precollection dialers
{
	"items": [
		{
			"communications": [
				{
					"description": "Description1", //a field to which you can pass data on a particular destination. This description can be sent in hooks when calling.
					"destination": "Destination", //number or another edition means of communication 
					"priority": 0, // the priority of the destination within the Member. Works when there are several numbers within one communications array
					"type": {
						"id": "1"
					}
				}
			],
					"expire_at": "string", // dialer termination time for this Member, timestamp (end of the current day) 
				"name": "Member1",
				"priority": 1,  // Member priority within the same Queue.
				"variables": {
					"additionalProp1": "string", // additional variables for the client, which can be used for statistics and are available for sending to a third-party system by event
					"additionalProp2": "string",
					"additionalProp3": "string"
				}
			},
				{
					"communications": [
					{
						"description": "Description1",
						"destination": "Destination",
						"priority": 0,
						"type": {
						"id": "1"
						}
					},
		{
					"description": "Description1",
					"destination": "Destination",
					"priority": 0,
					"type": {
						"id": "1"
					}
				},
	{
					"description": "Description2",
					"destination": "Destination",
					"priority": 10, 
					"type": {
						"id": "2"
					}
				}
			],
				"expire_at": "string",
			"name": "Member2",
			"priority": 100,
			"variables": {
				"additionalProp1": "string",
				"additionalProp2": "string",
				"additionalProp3": "string"
			}
		}
	]
}

4.1.2. An example of a dialer with binding to an Agent

An example of a dialer with binding to an Agent:
{
	"items": [
		{  "bucket": {
				"id": "1" // The ID of the Bucket through which the agent and client are linked. 
			}, 
			"communications": [
				{
					"description": "Description1", // a field to which you can pass data on a particular destination. This description can be sent in hooks when calling.
					"destination": "Destination", //number or another edition means of communication  
					"priority": 0, // The priority of destination within the Member. It works when there are several numbers within one communications array
					"type": {
						"id": "1" 
					}
				}
			],
				"expire_at": "string", 
			"name": "Member1",
			"priority": 1,  // Member priority within the same Queue
			"variables": {
			"additionalProp1": "string", // additional variables for the client, which can be used for statistics and are available for sending to a third-party system by event
			"additionalProp2": "string",
			"additionalProp3": "string"
			}
		},
		{  "bucket": {
			"id": "2"
		}, 
		"communications": [
			{
				"description": "Description1",
				"destination": "Destination",
				"priority":0,
				"type": {
					"id": "1"
				}
			},
	{
			"description": "Description1",
			"destination": "Destination",
			"priority": 0,
			"type": {
				"id": "1"
			}
		},
	{
			"description": "Description2", 
			"destination": "Destination",
			"priority": 10, 
			"type": {
				"id": "2" 
				}
			}
		],
			"expire_at": "string",
		"name": "Member2",
		"priority": 100,
		"variables": {
			"additionalProp1": "string",
			"additionalProp2": "string",
			"additionalProp3": "string"
			}
		}
	]
}

1.3. Example for dialer Outbound IVR:

  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.