น้อมถวายความอาลัยอย่างสุดซึ้ง และน้อมรำลึกในพระมหากรุณาธิคุณอันหาที่สุดมิได้
กลับไปหน้า Blog

AITelesale — แพลตฟอร์ม AI Telesale สำหรับโทรขายอัตโนมัติแบบ Real-time

AITelesale — แพลตฟอร์ม AI Telesale สำหรับโทรขายอัตโนมัติแบบ Real-time

AITelesale เป็นระบบโทรศัพท์ขายอัตโนมัติด้วย AI ที่ออกแบบให้ทีมขายและทีมปฏิบัติการควบคุมได้ครบวงจร — ตั้งแต่จัดการแคมเปญและลีด ไปจนถึงฟังบทสนทนาแบบ live, ตรวจ QA, ดึงความรู้สินค้าแบบ RAG และติดตามต้นทุน AI ต่อสายโทร


ภาพรวมสถาปัตยกรรม

ระบบเป็น Monorepo จัดการด้วย pnpm แบ่งเป็น 2 แอปหลัก:

ชั้น เทคโนโลยี บทบาท
Backend API
NestJS 11 + TypeScript
REST API, WebSocket, ARI listener, background workers
Admin Console
Nuxt 4 + Vue 3 + Vuetify (Vuexy)
Dashboard สำหรับ operator และ admin
Database
PostgreSQL 16 + Prisma 7
ข้อมูลธุรกิจ, call session, leads, usage
Vector Search
Qdrant
Embeddings และ semantic retrieval
Queue / Cache
Redis 7 + BullMQ
Background jobs, async processing
Object Storage
MinIO (S3-compatible)
ไฟล์ knowledge, recordings, uploads
Infrastructure
Docker Compose
PostgreSQL, Redis, Qdrant, MinIO

Backend รองรับการ scale แบบแยก role:

  • all — monolith (API + telephony ร่วมกัน)
  • api — HTTP API อย่างเดียว
  • telephony — live call workers + ARI WebSocket อย่างเดียว

Telephony Layer — Asterisk + ARI

ใช้ Asterisk เป็น PBX หลัก ผ่าน ARI (Asterisk REST Interface) สำหรับ:

  • Outbound dialing ตามแคมเปญ
  • รับ/ส่ง event ของสาย (ringing, answered, hangup)
  • External Media + RTP bridge เชื่อมเสียงกับ AI
  • Warm transfer ให้เซลเมื่อลูกค้าสนใจ
  • รองรับ หลาย ARI server (multi-site / multi-PBX)

รองรับ Issabel 5 และ codec ที่ใช้งานจริง เช่น G.711 (alaw/ulaw) พร้อม RTP mode แบบ direct หรือ TURN relay สำหรับสภาพแวดล้อมที่ Asterisk กับ AI worker อยู่คนละ network


Voice AI Layer — Gemini Live

Primary: Google Gemini Live API (gemini-2.5-flash-native-audio)
Fallback: ElevenLabs (ทางเลือกด้านเสียง/persona)

ความสามารถหลัก:

  • Speech-to-Text / Text-to-Speech แบบ streaming ต่ำ latency
  • Voice Activity Detection (VAD) และ barge-in (ลูกค้าขัดจังหวะ AI ได้)
  • รองรับภาษาไทย (th-TH) และ speech adaptation phrases
  • แปลง audio events เป็น normalized transcript สำหรับ admin dashboard

Knowledge & RAG Layer

  • อัปโหลดเอกสาร PDF, รูปภาพ, URL, ข้อความ
  • Chunking + embedding ด้วย Gemini Embedding
  • เก็บ vector ใน Qdrant, metadata ใน PostgreSQL
  • ผูก knowledge กับแคมเปญ (campaign-scoped หรือ global)
  • ดึง context แบบ grounded ใส่ system prompt ระหว่างสาย — ลดการตอบนอกข้อมูล

ฟีเจอร์หลักใน Admin Console

โมดูล รายละเอียด
Dashboard
ภาพรวมการโทร, สถานะระบบ
Campaigns
สร้าง/จัดการแคมเปญ, เลือก ARI server เริ่มต้น
Leads
จัดการลีด, สถานะ, consent
Call Sessions
รายการสาย, live transcript, extracted fields, transfer state
Knowledge
จัดการเอกสารความรู้, ingestion pipeline
QA Review
ตรวจทานบทสนทนา, approve/reject/flag
Analytics
สรุปผลแคมเปญ, usage breakdown
Settings
ARI servers, telephony config, system settings

Call Flow (MVP)

Lead Queue → Asterisk Dial → AI Greeting
→ Qualification → Objection Handling
→ สนใจ → Warm Transfer ให้เซล
→ ไม่สนใจ → บันทึก Disposition + Follow-up

สถานะสายที่ติดตามได้: queued → dialing → connected → in_progress → transferring → completed


Authentication & Security

  • JWT-first auth — short-lived access token + refresh token ที่ revoke ได้
  • Role-based access ผ่าน CASL บน frontend
  • รหัสผ่าน ARI server เข้ารหัสใน database
  • Secrets และ provider config อยู่ใน environment variables ไม่ hardcode ใน source

Usage & Cost Tracking

ทุก interaction ของ AI/STT/TTS/telephony บันทึกเป็น usage events แบบ normalized:

  • หน่วย: tokens, audio tokens, seconds, minutes, characters, requests
  • Roll-up ต่อ call sessioncampaignprovider
  • คำนวณ estimated cost เป็น THB (ปรับ pricing metadata ได้โดยไม่ต้องแก้ logic)
  • ตรวจสอบย้อนหลังได้ว่าสายไหน/โมเดลไหน/ฟีเจอร์ไหนกินต้นทุนเท่าไร

Tech Stack Summary

Frontend: Nuxt 4 · Vue 3 · Vuetify · Pinia · TypeScript
Backend: NestJS 11 · Prisma 7 · BullMQ · Passport JWT
Database: PostgreSQL 16
Vector DB: Qdrant
Cache/Queue: Redis 7
Storage: MinIO / AWS S3 SDK
Telephony: Asterisk ARI · RTP · TURN
Voice AI: Gemini Live API · ElevenLabs (fallback)
Embeddings: Gemini Embedding
DevOps: Docker Compose · pnpm monorepo
Language: TypeScript (ทั้ง stack)

จุดเด่นที่แตกต่างจาก Chatbot ทั่วไป

  1. Real-time voice — ไม่ใช่แค่ text chat แต่คุยทางโทรศัพท์จริงผ่าน Asterisk
  2. Grounded answers — RAG จาก knowledge base ของแคมเปญ ไม่ตอบมั่ว
  3. Structured extraction — ดึง field สำคัญจากบทสนทนา (ความสนใจ, งบ, นัดหมาย)
  4. Operational-ready — QA review, analytics, cost tracking ในตัว
  5. Production architecture — แยก API/telephony workers scale ได้, multi-ARI รองรับหลาย PBX

สรุป

AITelesale รวม telephony ระดับ enterprise (Asterisk), voice AI รุ่นล่าสุด (Gemini Live), knowledge retrieval (Qdrant + RAG) และ operational tooling (admin, QA, cost) ไว้ในแพลตฟอร์มเดียว — เหมาะสำหรับทีมที่ต้องการ scale outbound telesale ด้วย AI โดยยังควบคุมคุณภาพและต้นทุนได้