# Public API FAQ

## Jakými stavy sezení prochází? Jak zjistit dobu, po kterou bylo sezení v určitém stavu?

Obecně pro zjištění informací o sezení slouží Public API `GET ​/api​/v1​/Sessions​/{id}`, v něm také naleznete veškeré informace o změně stavu sezení a o době setrvání v jednotlivých stavech. Další informace poskytuje také služba `GET /api/v1/Sessions/{id}/routingHistory`&#x20;

**Doby trvání vybraných stavů a fází:**

* CREATED (od vytvoření sezení do zahájení routování):

```
 Common.RoutingTimeLine[activityType="RoutingRequestCreated"].First().timestamp - Sessions.SessionModel.created
```

* IN\_QUEUE (od zahájení routování po vybrání prvního vhodného operátora):

```
 Common.RoutingTimeLine[activityType="AssignedToOperator"].First().timestamp - Common.RoutingTimeLine[activityType="RoutingRequestCreated"].First().timestamp
```

* WAITING (od vybrání prvního vhodného operátora do přijetí sezení):

```
 Common.RoutingTimeLine[activityType="AcceptedByOperator"].First().timestamp - Common.RoutingTimeLine[activityType="AssignedToOperator"].First().timestamp
```

* BCW (before call work; od přijetí sezení po spojení s klientem):

```
 Sessions.SessionModel.guestJoined - Sessions.SessionModel.started (jen je-li výsledek kladný)
```

* ACTIVE (po dobu oboustranné komunikace):

```
 Sessions.SessionModel.length
```

* ACW (after call work; od ukončení oboustranné komunikace po uzavření sezení posledním operátorem):

```
 Sessions.SessionModel.operators.Max(concluded) - Sessions.SessionModel.operators.Max(left)
```

* Doba ve frontě konkrétního operátora s userId = X:

```
 Common.RoutingTimeLine[activityType="AcceptedByOperator"].First().timestamp - Common.RoutingTimeLine[activityType="AssignedToOperator" & operator.userId=X].First().timestamp
```

* Doba ACW konkrétního operátora s userId = X:

```
 Sessions.SessionModel.operators[userId=X].concluded - Sessions.SessionModel.operators[userId=X].left
```

* Doba vyzvánění:

```
 Sessions.SessionModel.guestJoined - Sessions.SessionModel.created (neplatí u náhledové kampaně)
```

* Doba od spojení s ústřednou po spojení s operátorem:

```
 Sessions.SessionModel.waited
```

Některé druhy sezení neprochází všemi stavy, ale některé stavy přeskakují.

### Vysvětlení některých položek v odpovědi na GET /api/v1/Sessions/{id}

| Položka                                   | Vysvětlení                                                                                                                                                 |
| ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Sessions.SessionModel.directCallNumber    | Číslo, které klient zadal pro vytvoření sezení, např. číslo pozvánky.                                                                                      |
| Sessions.SessionModel.phoneCallbackNumber | Číslo, které např. zadal operátor nebo bylo vybráno v rámci kampaně pro spojení s klientem.                                                                |
| Sessions.SessionModel.operators.left      | Okamžik, kdy operátor opustil přímou komunikaci s klientem. Poté má v rámci ACW možnost vyplnit k sezení své poznámky.                                     |
| Sessions.SessionModel.operators.concluded | Okamžik, kdy operátor uzavřel ACW. Platí, že Sessions.SessionModel.operators.left <= Sessions.SessionModel.operators.concluded                             |
| Sessions.SessionModel.started             | Okamžik, kdy první operátor sezení přijal nebo vytvořil.                                                                                                   |
| Sessions.SessionModel.ended               | Okamžik, kdy poslední operátor opustil přímou komunikaci s klientem. Poté již není možné znovu obnovit přímou komunikaci s klientem v rámci tohoto sezení. |
| Sessions.SessionModel.waited              | Doba, po kterou klient čekal na spojení s operátorem.                                                                                                      |
| Sessions.SessionModel.length              | Doba přímé oboustranné komunikace.                                                                                                                         |

### Jak stáhnout nahrávky a soubory ze sezení?

Adresu souboru získáte např. z&#x20;

```
Sessions.SessionModel.recordings.downloadUrl
```

&#x20;nebo&#x20;

```
Sessions.SessionModel.activities.file.downloadUrl 
```

{% hint style="info" %}
*Soubor získáte z této adresy stejným způsobem, jako komunikujete s Public API, tedy že hlavičku GET požadavku doplníte o Authorization (viz* [*sekce autentizace*](https://docs.mluvii.com/pro-it-specialisty/public-api/autentizace)*).*
{% endhint %}
