Queue (Navbat)
Queue (Navbat) — bu qo'ng'iroqlarni tartibli boshqarish uchun mo'ljallangan modul. Barcha operatorlar band bo'lsa, qo'ng'iroqchi navbatda kutadi va kutish jarayonida musiqali kuting audiosi eshitiriladi. Operator bo'shashi bilan qo'ng'iroq unga yo'naltiriladi.
Misol: Call-markaz uchun 5400 navbat raqami. Mijoz qo'ng'iroq qilsa, "Siz navbatdasiz, kutishni so'raymiz" degan xabar eshitilib, birinchi bo'sh operatorga ulanadi.
Modul diapazoni
Queue raqamlari 5400 dan 5599 gacha bo'lishi mumkin.
Asosiy tushunchalar
| Atama | Izoh |
|---|---|
Foydalanuvchilar (users) | Navbatga kiruvchi operatorlar (vergul bilan ajratilgan modullar) |
Chalinish vaqti (ring_time) | Har bir operatorda qo'ng'iroq necha soniya chalinadisi (soniya) |
Tur (type) | Operatorni tanlash tartibini belgilaydi |
| Muzika audio | Kutish jarayonida eshitiladigan audio fayl |
Navbat o'rnini aytish (say_position) | Mijozga navbatdagi o'rnini aytadimi |
Kechikish (delay) | Navbat kutish vaqti (soniya). Shu vaqtdan keyin output ga yo'naltiriladi |
Standart chiqish (output) | Navbat tugaganda yo'naltiriladigan modul |
Queue turlari
| Tur | Qiymat | Izoh |
|---|---|---|
| Ring all | 1 | Barcha operatorlar bir vaqtda chalinadi |
| Linear | 2 | Operatorlar tartib bilan chalinadi (1→2→3→...) |
| Least recent | 3 | Eng uzoq vaqt oldin qo'ng'iroq qabul qilgan operator birinchi chalinadi |
| Random | 4 | Tasodifiy operator tanlanadi |
Turlar ro'yxatini API orqali ham olish mumkin: GET /ats/queue/types
Navbat o'rnini aytish tillari
say_position maydoni quyidagi qiymatlarni qabul qiladi:
| Qiymat | Til |
|---|---|
1 | O'zbekcha |
2 | Ruscha |
3 | Inglizcha |
null | O'chiriq |
API
Ogohlantirish
Barcha endpointlar Bearer token talab qiladi. Batafsil: Auth
Ro'yxat olish
Endpoint
GET /ats/queue
Response
| Field | Type | Description |
|---|---|---|
status | string | success yoki error |
code | int | HTTP status kodi |
result | array of QueueResource | Navbatlar ro'yxati |
message | string | Xabar |
Example
{
"status": "success",
"code": 200,
"result": [
{
"id": 5400,
"title": "Asosiy navbat",
"file_url": "https://api.cc999.utel.uz/storage/queue/abc_music.mp3",
"filename": "music.mp3",
"ring_time": 20,
"users": "101,102,103",
"type": 1,
"ring_in_use": false,
"say_position": 1,
"say_when_change": true,
"say_freq": 30,
"skip_if_offline": true,
"skip_if_in_use": false,
"delay": 300,
"output": 5000
}
],
"message": "Ok"
}Turlar ro'yxati
Endpoint
GET /ats/queue/types
Response
| Field | Type | Description |
|---|---|---|
status | string | success yoki error |
code | int | HTTP status kodi |
result | array of QueueTypeItem | Queue turlari |
Example
{
"status": "success",
"code": 200,
"result": [
{ "name": "Ring all", "value": 1 },
{ "name": "Linear", "value": 2 },
{ "name": "Least recent", "value": 3 },
{ "name": "Random", "value": 4 }
],
"message": "Ok"
}Yaratish
Endpoint
POST /ats/queue
Request
| Field | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Queue raqami (5400–5599, unikal) |
title | string|null | No | Queue nomi (max 255 belgi) |
ring_time | integer | Yes | Chalinish vaqti (soniya, min: 1) |
users | string|null | No | Operatorlar (vergul bilan, max 4095 belgi) |
type | integer | Yes | Queue turi (1–4). Qarang: Queue turlari |
ring_in_use | boolean | Yes | Band operator ham chalsinmi |
say_position | integer|null | No | Navbat o'rnini aytish tili (1=uz, 2=ru, 3=en) |
say_when_change | boolean | Yes | Navbat o'zgarganda aytsinmi |
say_freq | integer | Yes | Navbat o'rnini necha soniyada bir aytish (min: 10) |
skip_if_offline | boolean | Yes | Offline operatorlarni o'tkazib yuborishmi |
skip_if_in_use | boolean | Yes | Band operatorlarni o'tkazib yuborishmi |
delay | integer | Yes | Navbat kutish vaqti — shu vaqtdan keyin output ga (soniya, min: 10) |
output | integer|null | No | Vaqt tugaganda yo'naltirish moduli |
Example
{
"id": 5400,
"title": "Asosiy navbat",
"ring_time": 20,
"users": "101,102,103",
"type": 1,
"ring_in_use": false,
"say_position": 1,
"say_when_change": true,
"say_freq": 30,
"skip_if_offline": true,
"skip_if_in_use": false,
"delay": 300,
"output": 5000
}Yangilash
Endpoint
PUT /ats/queue/{id}
Request
Store bilan bir xil maydonlar.
Audio yuklash
Endpoint
POST /ats/queue/{id}/audio
Muhim
Ushbu endpoint multipart/form-data formatida yuborilishi kerak.
Request
| Field | Type | Required | Description |
|---|---|---|---|
audio | file | Yes | Audio fayl (mp3, wav, ogg; max 20 MB) |
O'chirish
Endpoint
DELETE /ats/queue/{id}
Response
| Field | Type | Description |
|---|---|---|
status | string | success yoki error |
code | int | HTTP status kodi |
result | array | Bo'sh array |
message | string | Queue deleted successfully. |