Ticketing

L'outil de ticketing fonctionne au dessus de l'outil de diagnostic.

Un ticket de type service référence un diagnostic run dont le statut est completed ou error.

Types de tickets

Pour l'instant, un seul type de ticket est supporté :

Type name

Description

service

Ticket ouvert sur un service

Catégories de tickets

Il y a 9 catégories de tickets représentant les types de problèmes pouvant être rencontrés.

Category name

Description

moving_otp

Le diagnostic révèle un problème d' OTP déplacé

generic_incident

Le diagnostic révèle un problème d' incident générique

synchro

Le diagnostic révèle un problème de synchronisation

packet_loss

Le diagnostic révèle un problème de perte de paquets

low_rate

Le diagnostic révèle un problème de débit réduit

authentication

Le diagnostic révèle un problème d'authentification

slamming

Le diagnostic révèle un problème d' écrasement de la ligne

post_prod

Le diagnostic révèle un problème après la mise en service de la ligne

other

Autre

État d'un ticket

Un ticket peut être dans l'un des trois états suivants :

Nom du statut

Description

Action possible

open

Le ticket a été ouvert et l'équipe Covage est en train de s'en occuper.

N/A

deferred

Covage a besoin de plus d'information pour continuer à traiter le ticket.

open

cleared

Le ticket a été traité par le support.

closed

closed

Le ticket a été fermé par l'opérateur ou par Covage.

N/A

Création d'un ticket

Pour créer un nouveau ticket, vous devez effectuer un POST sur l'url /api/tickets/.

Exemple de création d'un ticket de type service:

POST /api/tickets/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json

{
    "diagnostic_run_id": "D170403_001",
    "type": "service",
    "service_uuid": "8ccc5104-a7d3-4be3-8108-cf9641cb1fe6",
    "operator_ticket_ref": "PB12_32",
    "description": "Customer complains about low rate",
    "initial_comment": "Hello, customer complains about a low bitrate issue.\n\nCould you check please?",
    "category": "low_rate",
    "priority": "low",
    "owner_contact":{
            "first_name":"John",
            "last_name":"Doe",
            "email":"john@doe.com",
            "phone_number":"0123456789"

            }
}

La création d'un ticket est acceptée par l'API si les conditions suivantes sont respectées :

  • Un identifiant de diagnostic run a été fourni et il correspond à un diagnostic de type standard.
    • Si le ticket se trouve dans l'une des catégories suivants:

    ["moving_otp","slamming","other"] Alors le champs diagnostic_run_id peut être soit null ou vide(""), mais est toujours obligatoire.

  • Il n'y a pas d'autres tickets ouvert sur le service.

  • Il n'y a pas d'autre ticket ouvert sur le même diagnostic run.

La création d'un ticket :

  • Envoie une réponse contenant le ticket (voir Récupérer un ticket pour plus d'info),

  • Déclenche l'envoi d'un résumé par email à son auteur et à une liste prédéfinie de destinataires.

Récupérer un ticket

Pour récupérer des informations détaillées sur un ticket, vous pouvez effectuer un GET sur l'URL /api/tickets/{id}/ ou /api/tickets/{alias}/ or /api/tickets/{uuid}/.

GET /api/tickets/989/ 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
}

Cet appel renvoie le ticket quel que soit son statut.

Lister les tickets

Pour récupérer la liste des tickets, vour pouvez effectuer un GET sur l'url /api/tickets/.

Tri

Le paramètre ?sort=<champ> permet de trier les résultats. Pour inverser l'ordre du tri, le nom du champ peut être préfixé par le caractère -.

Filtre

Il est possible de récupérer une partie des résultats en utilisant une combinaison de paramètres <champ>=<valeur>.

Pagination

Les paramètres limit et offset permettent de ne récupérer qu'une partie des résultats. Le paramètre limit donne le nombre maximum de résultats à retourner tandis que offset est l'indice de départ des résultats (calculé sur l'ensemble des résultats).

L'entête X-Total-Count retourne de manière indicative le nombre total de résultats (hors pagination).

Champs disponibles

Les champs disponibles pour le filtre et le tri sont les suivants :

Paramètre

Tri ou filtre

Description

status

F

Statut du ticket : open, deferred, cleared, closed

category

F

Liste des catégories : synchro, other, authentication, packet_loss, generic_incident, low_rate, moving_otp, slamming, post_prod

grt

F

Liste des GRT : standard, 4h_bhbd, d_plus_1, 4h_24_7

alias

F

C'est la référence du ticket

service_alias

F

C'est la référence du service lié au ticket

service_uuid

F

C'est l'uuid du service lié au ticket

product_line

F

Le product line du service

product_family

F

Le product family du service

creation_date

T

Date de création de la commande

submission_date

T

Date de soumission de la commande

Requête :

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"
  }
]

Les tickets sont listés dans le sens inverse de modification_date (les plus récents en premier).

Pour récupérer la liste des tickets ayant un statut particulier, veuiller effectuer un GET sur l'url /api/tickets/?status={status}.

Vous pouvez spécifier le nombre de tickets que vous voulez récupérer en précisant le paramètre limit (maximum 100).

Vous pouvez obtenir plus de tickets en précisant le paramètre after avec la valeur du champ sort_value du dernier élément de la liste précédemment obtenue.

Éditer un ticket

Un ticket n'est pas éditable.

Supprimer un ticket

Un ticket ne peut pas être supprimé, mais vous pouvez le fermer (voir ci-dessous).

Les différents status des événements d'un ticket

Nom du status

Description

Action faite par

open

Le ticket a été ouvert et l'équipe Covage est en train de s'en occuper.

Covage

cleared

Le ticket a été traité par le support.

Covage

deferred

Covage a besoin de plus d'information pour continuer à traiter le ticket.

open

reopen

Le ticket a été réouvert après être passé en cleared (le ticket n'est pas encore corrigé).

Covage

closed

Le ticket a été fermé par le client ou par Covage.

Opérateur

canceled

Le ticket a été fermé avant d'être traitré.

Covage

Liste des clear code

Clear Code

Signification

Responsabilité

synchronization

Coupure physique du lien, problème de position sur réglette (défaut alignement)

Covage

modem

Modem client défectueux, modem client non branché

Customer

provisionning

Problème de configuration

Covage

authentication_cust

Login / Mdp client incorrect (Config)

Customer

authentication_kosc

Problème sur Radius / Routeur

Covage

throughput_packet_loss

Problème sur la qualité de la ligne impactant le débit ou amenant des pertes de paquet

Covage

major_network_incident

DSLAM / Switch / Routeur coupé

Covage

ticket_cancelation_cust

Abandon du ticket par le client

Customer

other_cust

Autres raisons, responsabilité client

Customer

other_kosc

Autres raisons, responsabilité Covage

Covage

Note

Les champs clear_code et responsability sont renseignés uniquement lorsque le ticket est a l'état cleared

Ajouter un évenement à un ticket

Un évenement est un dictionnaire contenant un ou plusieurs des champs suivants :

Champ

Description

status

Le statut du ticket a changé

comment

Un commentaire a été ajouté au ticket

Pour ajouter un évenement à un ticket, vous pouvez faire un POST sur l'url /api/tickets/{id_or_alias}/events/ avec un ou plus des champs autorisés.

La création d'un évenement sur un ticket renvoie l'évenement créé.

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"
}

Pour l'instant le seul changement d'état autorisé est la fermeture d'un ticket actif.

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

Un ticket ne peut être fermé que si son status est à cleared.

Pour ajouter un commenaire à un ticket, faites l'appel suivant :

POST /api/tickets/1234/events/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json

{
    "comment": "this is a comment"
}

Résponse du serveur:

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

Un évenement de type comment sera automatiquement créé si le champ initial_comment est précisé à la création du ticket.

Pour commenter et fermer un ticket en même temps, vous pouvez faire l'appel suivant :

POST /api/tickets/1234/events/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json

{
    "status": "closed",
    "comment": "issue resolved"
}

Réponse du serveur:

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

Un ticket ne peut être fermé que si son status est à cleared.

Pour faire sortir un ticket de son status deferred, vous pouvez faire l'appel suivant :

POST /api/tickets/1234/events/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json

{
    "status": "open",
    "comment": "some information"
}

Réponse du serveur:

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

Vous pouvez sortir du status dans poster de commentaire, pour cela, enlever simplement la ligne "comment" de votre requête

Lister les événements d'un ticket

Pour récupérer la liste des événements liés à un ticket, vous pouvez faire un GET sur l'url /api/tickets/{id_or_alias}/events/.

GET /api/tickets/988/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"
    }
]

Les événements sont listés dans l'ordre inverse de leurs dates de création (les plus récents en premier).