Arxivga qaytish
IV. Mijoz loyihalari va logistika platformalariqo'shimchayakka

Asterisk qo'ng'iroq sampleri → Telegram QA

Nomiga qaramay — bu aslida QA uchun Asterisk qo'ng'iroq yozuvlarini tanlab oluvchi vosita: u PBX serverga SSH orqali kiradi, MySQL'dan (asteriskcdrdb) CDR o'qiydi, oxirgi N soat ichida javob berilgan qo'ng'iroqlar yozuvlaridan tasodifiy 10–15 tasini tanlaydi, ularni SCP orqali yuklab oladi va audio'ni izohlar bilan (vaqt, src→dst, davomiylik) Telegram'ga joylaydi. Bun/TS'da bitta fayl, hech qanday bog'liqliksiz.

Holat
prototip
Davr
2026-04-18 → 2026-04-18
AI sessiyalar
Stek
Tillar
TypeScript
Freymvorklar · Infra
Bun
§01

Umumiy ko'rinish

  • Bu nima: Asterisk'dagi qo'ng'iroq markazi qo'ng'iroqlarini tanlab QA qilish uchun kichik ops-utilita. tg_invoice_listener nomi chalg'ituvchi (ehtimol bun init merosi yoki qayta nomlash natijasi) — kodga ko'ra bu "qo'ng'iroq yozuvlarini QA uchun tanlovchi → Telegram".
  • Turi / holati / roli: cli / ops-skript · prototype · solo (foydalanuvchi tomonidan 1 ta kommit).
  • Faollik davri: 2026-04-18 (bir kun, 1 ta kommit).
§02

Stek

  • Bun + TypeScript, TASHQI bog'liqliklarsiz — faqat Bun'ning ichki vositalari: Bun.$ (shell), Bun.file, Bun.env, native fetch/FormData. Parol orqali SSH/SCP uchun tizim sshpass.
  • Ma'lumot manbai: Asterisk CDR (asteriskcdrdb MySQL), yozuv fayllari /var/spool/asterisk/monitor/YYYY/MM/DD/ ostida.
  • Yetkazib berish: Telegram Bot API (sendAudio, multipart FormData).
  • Konfiguratsiya env orqali (SSH host/user/password, TG token/chat, lookback/sampling parametrlari).
§03

Nima qilindi

  • Bitta kommit (2026-04-18): to'liq ishlaydigan index.ts skript (176 satr).
  • Mantiq: fetchCandidates() (CDR bo'yicha SQL: ANSWERED, billsec ≥ chegara, yozuv mavjud, GROUP BY recordingfile, ORDER BY RAND() LIMIT), pickCount() (tasodifiy 10–15), vaqtinchalik papkaga SCP orqali yuklab olish, formatlangan izohli sendAudio(), finally'da tmp tozalash, natijaga asoslangan chiqish kodi.
§04

Texnik chellenjlar

index.ts bilan tasdiqlangan:

  • Parol orqali SSH/SCP avtomatlashtirish (sshpass -e + qat'iy -o opsiyalar: host-key tekshiruvi o'chirilgan, faqat parol-autentifikatsiya, timeout): kalitlarsiz masofaviy PBX'ga kirish. → amaliy ops-integratsiya.
  • QA uchun tasodifiy sampling (ORDER BY RAND() + pickCount 10–15): barcha yozuvlar o'rniga vakillik namunasi. → puxta o'ylangan QA yondashuvi.
  • Bun'ning ichki vositalarida zero-dependency (Bun.$, Bun.file, native fetch/FormData): node_modules bog'liqliklarisiz, barcha I/O Bun runtime orqali. → zamonaviy, yengil uslub.
  • Resurslar va xatolarga ehtiyotkorlik: PID+timestamp bilan vaqtinchalik papka, finally'da kafolatlangan tozalash, har bir fayl uchun try/catch, mazmunli chiqish kodi (agar hech narsa yuborilmasa — fail). → cron ishga tushishlar uchun ishonchlilik.
  • `requireEnv` yo'q o'zgaruvchida aniq xato bilan. → fail-fast konfiguratsiya.
§05

AI yordamida ishlab chiqish

  • Topilgan sessiyalar: 0. Repo'da .claude/ (CLAUDE.md'da Bun bo'yicha qo'llanma bilan) va .cursor/ bor — AI vositalari ishlatilgan, ammo Claude Code transkriptlari yo'q.
  • AI bilan nima qilingan: ehtimol Cursor/Claude bilan yaratilgan/sayqallangan (CLAUDE.md standart Bun qo'llanmasi).
  • AI-vorkflow patternlari: minimal ma'lumot.
§06

Yutuqlar va metrikalar

  • Ishlaydigan ops-utilita: Asterisk CDR → SCP → Telegram, ~176 satr, zero deps.
  • Sozlanadigan sampling, xavfsiz tozalash, cron uchun tayyorlik.
§07

Hissa qo'shganlar

git shortlog · barcha branchlar

  1. Dave931
1 hissadorjami 1 ta kommit
Hozirda

Senior / Staff muhandis rollari va tanlab olingan frilansga ochiqman — prodakshn AI, platforma va full-stack ishlar.

Bog'lanish