1. Agents
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:
- Add only one Member: https://swagger.webitel.com/#/MemberService/CreateMember
- Add an array of Members: https://swagger.webitel.com/#/MemberService/CreateMemberBulk
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:
{ "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" } } ] }
{ "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" } } ] }
Add Comment