Ticketing¶
Ticketing system is working on top of diagnostic system.
A ticket refers to a diagnostic run that has either a completed
or an error
status.
Ticket types¶
For now, there is only one type of ticket:
Type name |
Description |
---|---|
|
Ticket opened on a service |
Ticket categories¶
There are 9 categories of tickets representing the type of the issue.
Category name |
Description |
---|---|
|
The diagnostic reveals a problem of moved OTP |
|
The diagnostic reveals a problem of generic incident |
|
The diagnostic reveals a problem of synchronisation |
|
The diagnostic reveals a loss of packets |
|
The diagnostic reveals a low rate |
|
The diagnostic reveals a problem of authentication |
|
The diagnostic reveals a problem of slammed ligne |
|
The diagnostic reveals a problem after the completion of the service |
|
Other |
Ticket status and lifecycle¶
For now, only 5 status are available:
Status name |
Description |
Possible action |
---|---|---|
|
Ticket has been successfully submitted and Covage team is processing it. |
N/A |
|
Covage need more information to keep processing the ticket |
|
|
Ticket has been processed by Covage. |
|
|
Ticket has been closed by the operator or by Covage. |
N/A |
Creating a Ticket¶
To create a new ticket, launch a POST
to url /api/tickets/
.
Example of a service
ticket creation:
POST /api/tickets/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json
{
"diagnostic_run_id": "D170403_001",
"type": "service",
"service_uuid": "t5y7r8ut",
"operator_ticket_ref": "PB12_32",
"description": "Customer complains about low rate",
"initial_comment": "Hello, customer plains about a low bitrate issue.\n\nCould you check please?",
"category": "low_rate",
"priority": "low",
"owner_contact":{
"first_name":"Patrick",
"last_name":"Bousso",
"email":"patrick.bousso@colibrix.fr",
"phone_number":"0785655656"
}
}
The creation of a ticket is accepted if these conditions are respected:
- A diagnostic_run id is given and the corresponding diagnostic is a standard diagnostic.
If the ticket is in one of the following category :
[“moving_otp”,”slamming”,”other”] Then the field diagnostic_run_id field can be either
null
or empty (""
) but always required.There is no other ticket opened on the service.
There is no other ticket opened with same diagnostic run.
The successful creation of a ticket will:
Return a response containing the ticket itself (see Fetching a ticket for more info).
Result in the emission of an email to it’s author and a predefined (per operator) list of recipients. This email contains all the data contained in the ticket, except
modification_date
, plus some data from the related diagnostic.
Fetching a Ticket¶
To retrieve detailed information about a ticket from its id, launch a GET
to url /api/tickets/{id}/
or /api/tickets/{alias}/
or /api/tickets/{uuid}/
.
GET /api/tickets/1234/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json
{
"id": 989,
"alias": "T190517_08006",
"creation_date": "2019-05-17T08:51:23.185722Z",
"modification_date": "2019-05-17T08:51:23.186087Z",
"type": "service",
"status": "open",
"category": "synchro",
"priority": "low",
"author": "test",
"operator_ticket_ref": "779b14bd-d9e9-48e5-9ad1-86929c4d5890",
"description": "Customer complains about low rate",
"service_uuid": "8ccc5104-a7d3-4be3-8108-cf9641cb1fe6",
"service_alias": "S190322_11001",
"product_name": "ADSL-Max_shared_BE_KOSC",
"grt": "standard",
"diagnostic_run_id": 18956,
"diagnostic_run_alias": "D190425_12001",
"initial_comment": "Hello, customer complains about a low bitrate issue",
"last_comment": {
"comment": "Hello, customer complains about a low bitrate issue",
"author": "test"
},
"last_comment_author": "test operator",
"owner": "Untel",
"owner_contact": {
"first_name":"John",
"last_name":"Doe",
"email":"john@doe.com",
"phone_number":"0123456789"
},
"operator_contact_uuid": "zitjrmff",
"last_update_author": "TEST_PRE",
"next_available_status": [],
"clear_code": null,
"responsability": null
}
This call shows any ticket regardless of its status.
Listing all Tickets¶
To retrieve the list of tickets, launch a GET
to url /api/tickets/
.
Example: listing all tickets:
GET /api/tickets/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json
[
{
"id": 989,
"alias": "T190517_08006",
"creation_date": "2019-05-17T08:51:23.185722Z",
"modification_date": "2019-05-17T08:51:23.186087Z",
"type": "service",
"status": "open",
"category": "synchro",
"priority": "low",
"author": "test",
"operator_ticket_ref": "779b14bd-d9e9-48e5-9ad1-86929c4d5890",
"description": "Customer complains about low rate",
"service_uuid": "cgjcbeva",
"service_alias": "S190322_11001",
"product_name": "ADSL-Max_shared_BE_KOSC",
"grt": "standard",
"diagnostic_run_id": 18956,
"diagnostic_run_alias": "D190425_12001",
"initial_comment": "Hello, customer plains about a low bitrate issue",
"last_comment": {
"comment": "Hello, customer complains about a low bitrate issue",
"author": "test"
},
"last_comment_author": "test operator",
"owner": "Untel",
"owner_contact": {
"first_name":"John",
"last_name":"Doe",
"email":"john@doe.com",
"phone_number":"0123456789"
},
"operator_contact_uuid": "zitjrmff",
"last_update_author": "TEST_PRE",
"next_available_status": [],
"clear_code": null,
"responsability": null,
"sort_value": "cD0yMDE5LTA1LTE3VDA4JTNBNTElM0EyMy4xODYwODda"
}
]
Tickets are listed in reverse order of modification_date
(most recently updated first).
To get the tickets list of a chosen status via the API call GET
to url /api/tickets/?status={status}
.
You can specify the number of tickets you want to retreive by giving the limit
query parameter (maximum 100).
You can get more tickets by giving the after
query parameter with the sort_value
field value found on last element of the previous call.
Editing a Ticket¶
You cannot edit a ticket.
Deleting a Ticket¶
You cannot delete a ticket, but you can close it (see below).
The status of a Ticket Event¶
Status Name |
Description |
Action by |
---|---|---|
|
The ticket has been successfully submitted and Covage team is processing it. |
Opérateur |
|
Covage need more information to keep processing the ticket |
Covage |
|
The ticket has been processed by Covage. |
Covage |
|
The ticket has been reopened after being |
Covage |
|
The ticket has been closed by the operator or by Covage. |
Opérateur |
|
The ticket has been closed before being processed. |
Covage |
Clear code list¶
Clear Code |
Signification |
Responsability |
---|---|---|
|
Physical disconnection of the link, position problem on ruler (alignment fault) |
Covage |
|
Defective client modem, client modem not connected |
Customer |
|
Configuration problem |
Covage |
|
Incorrect client Login / Password (Config) |
Customer |
|
Radius / Router problem |
Covage |
|
Line quality degradation impacting throughput or causing package losses |
Covage |
|
DSLAM / Switch / Router disconnected |
Covage |
|
Ticket cancellation by the customer |
Customer |
|
Other reasons, Customer responsability |
Customer |
|
Other reasons, Kosc responsability |
Covage |
Note
clear_code
and responsability
fields are only set when the ticket is cleared
Adding an Event to a Ticket¶
An event is a dictionary containing one or more of the following fiels:
Field |
Description |
---|---|
status |
New ticket status |
comment |
A comment has been add to the ticket |
To add an event to a ticket, launch a POST
to url /api/tickets/{id_or_alias}/events/
with one or more of the allowed fields.
The successful creation of a ticket event will return the event created.
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 3826,
"status": "open",
"comment": "Hello, customer plains about a low bitrate issue",
"author": "test",
"creation_date": "2019-05-17T12:15:17.871750Z",
"clear_code": null,
"responsability": null,
"sort_value": "cD0yMDE5LTA1LTE3VDEyJTNBMTUlM0ExNy44NzE3NTBa"
}
Close a ticket¶
For now, the only allowed status change is to close an active ticket.
POST /api/tickets/1234/events/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json
{
"status": "closed"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 3806,
"status": "closed",
"comment": null,
"author": "test",
"creation_date": "2019-05-17T11:50:53.366966Z",
"clear_code": null,
"responsability": null
}
Note
The operator can only closed a cleared
ticket.
Add comment to ticket¶
To add a comment to a ticket, call:
POST /api/tickets/1234/events/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json
{
"comment": "this is a comment"
}
Server response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 3807,
"status": null,
"comment": "this is a comment",
"author": "test",
"creation_date": "2019-05-17T11:53:11.738648Z",
"clear_code": null,
"responsability": null
}
Note
A comment
event will automatically be created if the initial_comment
field was provided during creating ticket.
Add comment and change status¶
To close and add a comment to a ticket, call:
POST /api/tickets/1234/events/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json
{
"status": "closed",
"comment": "issue resolved"
}
Server response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 3809,
"status": "closed",
"comment": "issue resolved",
"author": "test",
"creation_date": "2019-05-17T11:55:23.925132Z",
"clear_code": null,
"responsability": null
}
Note
The operator can only closed a cleared
ticket.
Stop the deferred status on a ticket¶
To end the deferred
status on a ticket, call:
POST /api/tickets/1234/events/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json
{
"status": "open",
"comment": "some information"
}
Server response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 3809,
"status": "open",
"comment": "some information",
"author": "test",
"creation_date": "2019-05-17T11:55:23.925132Z",
"clear_code": null,
"responsability": null
}
Note
You can end the status without posting a comment, by simply removing the “comment” line from the payload.
Listing events of a ticket¶
To retrieve the list of events attached to a ticket, launch a GET
to url /api/tickets/{id_or_alias}/events/
.
GET /api/tickets/1234/events/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json
[
{
"id": 3809,
"status": "closed",
"comment": "issue resolved",
"author": "test",
"creation_date": "2019-05-17T11:55:23.925132Z",
"clear_code": null,
"responsability": null,
"sort_value": "cD0yMDE5LTA1LTE3VDExJTNBNTUlM0EyMy45MjUxMzJa"
},
{
"id": 3808,
"status": "cleared",
"comment": null,
"author": "Kosc",
"creation_date": "2019-05-17T11:54:27.224833Z",
"clear_code": "modem",
"responsability": "Customer",
"sort_value": "cD0yMDE5LTA1LTE3VDExJTNBNTQlM0EyNy4yMjQ4MzNa"
},
{
"id": 3807,
"status": null,
"comment": "this is a comment",
"author": "test",
"creation_date": "2019-05-17T11:53:11.738648Z",
"clear_code": null,
"responsability": null,
"sort_value": "cD0yMDE5LTA1LTE3VDExJTNBNTMlM0ExMS43Mzg2NDha"
},
{
"id": 3783,
"status": "open",
"comment": "Hello, customer plains about a low bitrate issue",
"author": "test",
"creation_date": "2019-05-17T08:51:22.608964Z",
"clear_code": null,
"responsability": null,
"sort_value": "cD0yMDE5LTA1LTE3VDA4JTNBNTElM0EyMi42MDg5NjRa"
}
]
Events are listed in reverse order of creation date (most recent first, oldest last).