De ce self-hosted în 2026?
Platformele SaaS de agenți vocali AI — ElevenLabs, Vapi, Retell AI — sunt excelente pentru prototipuri și volume mici. Dar când intri în producție cu mii de minute pe zi, calculul se schimbă radical.
Un agent vocal SaaS costă între $0.05 și $0.20 per minut în funcție de platformă și modele folosite. La 10.000 de minute pe lună, ești la $500–$2.000/lună doar pentru inference — fără SIP trunk, fără infrastructură.
Self-hosted rezolvă trei probleme simultan:
Cost: plătești hardware-ul o singură dată (sau lunar dacă e VM). Indiferent că procesezi 1.000 sau 100.000 de minute, costul nu crește.
GDPR și confidențialitate: vocea clienților tăi nu iese niciodată din server. Totul — transcriere, procesare, sinteză — se întâmplă local, în România. Zero date în cloud US.
Control total: poți apela orice API, integra orice sistem intern, customiza comportamentul agentului la nivel de cod, nu la nivel de UI. Cu un LLM local și Claude ca asistent de programare, implementezi funcționalități complexe în ore, nu săptămâni.
Stack-ul complet
| Componentă | Tehnologie | Rol |
|---|---|---|
| PBX | FusionPBX | Rutare apeluri, IVR, dialplan, numere DID |
| SIP Trunk | Voxbee | Conectare la rețeaua telefonică publică |
| Media server | LiveKit SIP Gateway | Bridge SIP ↔ AI pipeline, WebRTC |
| STT | Whisper large-v3 | Transcriere audio → text, pe GPU |
| LLM | Ollama (Llama 3 / Mistral / Gemma) | Procesare intenție, generare răspuns, apeluri API |
| TTS | Piper | Sinteză vocală text → audio, pe GPU |
| GPU | NVIDIA RTX 6000 Ada 48GB | Inference local pentru toate cele 3 modele AI |
Arhitectura
Fluxul unui apel inbound:
- •Apelantul sună un număr DID românesc
- •Apelul ajunge la SIP Trunk Voxbee și este transmis serverului tău
- •FusionPBX primește apelul, aplică regulile de dialplan și îl direcționează către LiveKit
- •LiveKit SIP Gateway preia media stream-ul audio
- •Audio-ul este trimis în timp real către Whisper care transcrie vorbirea în text
- •Textul ajunge la Ollama LLM care procesează intenția, generează răspunsul și poate apela API-uri externe (CRM, ERP, baze de date)
- •Răspunsul text este trimis la Piper TTS care sintetizează vocea
- •Audio-ul sintetizat este returnat prin LiveKit → FusionPBX → SIP Trunk → apelant
Întreaga buclă — de la sfârșitul propoziției apelantului la primul sunet al răspunsului — se desfășoară în sub 600ms pe GPU dedicat.
Hardware: NVIDIA RTX 6000 Ada — 48 GB VRAM
Alegerea GPU-ului nu e întâmplătoare. Un agent vocal AI rulează trei modele simultan: Whisper (STT), un LLM (Ollama) și Piper (TTS). Fiecare model consumă VRAM și trebuie să răspundă în timp real.
NVIDIA RTX 6000 Ada oferă 48 GB VRAM — suficient să încarci toate trei modele concomitent, cu headroom pentru mai mulți agenți paraleli:
| Model | VRAM necesar |
|---|---|
| Whisper large-v3 | ~3 GB |
| Llama 3 8B (Q4) | ~5 GB |
| Llama 3 70B (Q4) | ~40 GB |
| Piper TTS | ~0.5 GB |
Cu 48 GB poți rula Llama 3 70B complet în VRAM — modelul care face diferența în calitatea răspunsurilor față de versiunile 7B/8B. Alternativ, poți rula Llama 3 8B și scala orizontal cu zeci de agenți paraleli pe același GPU.
Latența de inference pe RTX 6000 Ada:
- •Whisper large-v3: ~0.3s pentru 5 secunde de audio
- •Llama 3 8B la 30 tok/s: ~0.5s pentru un răspuns de 15 cuvinte
- •Piper TTS: ~0.1s pentru o propoziție
FusionPBX — PBX-ul care controlează tot
FusionPBX este un PBX open-source bazat pe FreeSWITCH, mai flexibil decât FreePBX și mai potrivit pentru scenarii complexe cu agenți AI și call centere hibride.
În acest stack, FusionPBX are roluri multiple:
Rutare inteligentă: poți decide la nivel de dialplan dacă un apel merge la un agent AI, la un operator uman sau la un IVR clasic — în funcție de numărul apelat, ora din zi, coada de așteptare sau orice altă condiție.
Numere DID multiple: un singur server poate gestiona zeci de numere de telefon, fiecare cu comportament diferit. Numărul de suport merge la un agent AI specializat pe întrebări tehnice; numărul de vânzări merge la un alt agent configurat pentru calificarea lead-urilor.
Cozi ACD și extensii pentru agenți umani: FusionPBX gestionează extensiile SIP ale operatorilor umani și cozile de așteptare ACD (Automatic Call Distribution). Când AI-ul transferă un apel, FusionPBX îl pune în coada corectă — iar primul agent uman disponibil îl preia automat, exact ca într-un call center clasic.
Înregistrare apeluri: toate conversațiile — atât cele gestionate de AI cât și cele transferate la om — pot fi înregistrate și stocate local, cu acces prin interfața web FusionPBX.
Fallback la operator uman — modelul hibrid AI + om
Niciun agent AI nu poate rezolva 100% din cazuri. Există întotdeauna situații care necesită judecată umană: reclamații complexe, clienți agitați, cazuri excepționale, negocieri. Un sistem de producție serios trebuie să gestioneze această realitate elegant.
Cum funcționează transferul:
Agentul Ollama are acces la un tool (funcție) transfer_to_human() pe care îl poate apela oricând în conversație. LiveKit primește semnalul și inițiază un transfer SIP înapoi către FusionPBX. FusionPBX plasează apelul în coada de agenți umani configurată pentru tipul respectiv de solicitare.
tools = [
{
"name": "transfer_to_human",
"description": "Transferă apelul la un agent uman când situația depășește capabilitățile AI",
"parameters": {
"type": "object",
"properties": {
"motiv": {
"type": "string",
"description": "Motivul transferului (ex: reclamatie_complexa, client_agitat, aprobare_management)"
},
"coada": {
"type": "string",
"description": "Coada FusionPBX de destinație (ex: suport_senior, vanzari, management)"
}
}
}
}
]
Transferul poate fi declanșat în trei moduri:
- •Automat de AI — Ollama detectează că solicitarea depășește parametrii configurați și apelează
transfer_to_human()fără intervenție umană - •La cererea clientului — clientul spune "vreau să vorbesc cu un om" sau "dați-mi un operator" — LLM-ul recunoaște intenția și inițiază transferul
- •Bazat pe reguli — dacă clientul repetă aceeași întrebare de 3 ori, dacă tonul vocii indică frustrare (analiză sentiment), sau dacă s-a atins un timeout configurabil
Ce vede apelantul:
Tranziția este transparentă. Apelantul aude un mesaj scurt ("Vă conectez cu un specialist, vă rugăm așteptați") și muzică de așteptare standard — exact ca la orice transfer în call center. Agentul uman care preia vede în interfața sa FusionPBX contextul conversației și motivul transferului.
Avantajul față de sisteme SaaS:
Cu un stack self-hosted, poți configura câte cozi vrei, cu ce reguli vrei, fără să plătești per seat sau per transfer. Agenții umani folosesc orice telefon SIP sau softphone — pot lucra de acasă, din birou sau în regim hibrid.
LiveKit SIP — Bridge-ul dintre telefonie și AI
LiveKit este un media server open-source (WebRTC) folosit de companii precum OpenAI Voice Mode, Perplexity AI și zeci de alte platforme vocale. Modulul LiveKit SIP adaugă suport nativ pentru protocolul SIP, transformând LiveKit într-un gateway între lumea telefoniei clasice și pipeline-ul AI.
Rolul LiveKit în acest stack:
- •Primește apelul SIP de la FusionPBX
- •Extrage stream-ul audio și îl trimite către Whisper
- •Primește audio-ul sintetizat de Piper și îl injectează înapoi în apel
- •Gestionează codec negotiation (G.711, G.722, Opus)
- •Permite conectarea simultană a mai multor agenți AI pe apeluri separate
Agenții LiveKit sunt procese Python sau Node.js care se conectează la un room LiveKit, primesc audio în timp real și returnează audio generat. Scriptul agentului tău este locul unde conectezi Whisper, Ollama și Piper — și locul unde implementezi logica de business specifică.
Whisper — Transcriere în timp real pe GPU
Whisper este modelul open-source de speech-to-text dezvoltat de OpenAI și lansat public în 2022. Versiunea large-v3 oferă acuratețe apropiată de serviciile cloud comerciale, cu suport excelent pentru limba română.
Pe GPU, Whisper large-v3 transcrie în timp real sau mai rapid — un segment de 5 secunde de audio se procesează în ~300ms. Această latență face Whisper viabil pentru conversații telefonice reale, nu doar pentru transcrieri asincrone.
Implementarea în agentul LiveKit folosește streaming VAD (Voice Activity Detection): Whisper transcrie doar când detectează voce activă, evitând procesarea zgomotului de fundal sau a tăcerilor.
Ollama — Creierul sistemului
Ollama este runtime-ul care servește modele LLM local, cu o interfață API compatibilă cu OpenAI. Asta înseamnă că orice cod scris pentru GPT-4 funcționează cu Ollama fără modificări, înlocuind API calls cloud cu inference local.
Flexibilitate de model: poți schimba modelul fără să modifici codul agentului. Llama 3 70B pentru calitate maximă, Mistral 7B pentru latență minimă, Gemma pentru un echilibru între cele două.
System prompt personalizat: definești personalitatea și cunoștințele agentului printr-un system prompt. Agentul de recepție al unei clinici știe programul, serviciile și cum să programeze o consultație. Agentul de colectare creanțe știe ce să întrebe și cum să escaladeze.
Function calling și apeluri API: Ollama suportă function calling (tool use), ceea ce înseamnă că agentul poate apela API-uri externe în mijlocul conversației:
tools = [
{
"name": "verifica_programare",
"description": "Verifică programările existente ale unui pacient",
"parameters": {
"type": "object",
"properties": {
"telefon": {"type": "string"}
}
}
},
{
"name": "creaza_programare",
"description": "Creează o programare nouă",
"parameters": {
"type": "object",
"properties": {
"telefon": {"type": "string"},
"data": {"type": "string"},
"serviciu": {"type": "string"}
}
}
}
]
Agentul decide singur când să apeleze aceste funcții bazându-se pe contextul conversației. Nu trebuie să scrii logică explicită de tip if client spune "programare" then apelează API — LLM-ul face această inferență.
Piper TTS — Vocea agentului
Piper este un motor text-to-speech open-source optimizat pentru inferență rapidă pe CPU și GPU. Spre deosebire de motoarele TTS mai vechi (Festival, eSpeak), Piper folosește modele neurale care produc voce naturală, cu intonație corectă și ritm conversațional.
Pe NVIDIA RTX 6000 Ada, Piper sintetizează o propoziție de 10 cuvinte în ~100ms — imperceptibil pentru un ascultător uman.
Voci în română: Piper are modele antrenate pentru limba română, cu opțiuni pentru voce feminină și masculină. Calitatea este comparabilă cu servicii cloud ca Google TTS sau AWS Polly, cu avantajul că totul rulează local.
Ce poți construi cu acest stack
Agent recepție / IVR inteligent: în loc de „Apăsați 1 pentru... Apăsați 2 pentru...", clientul spune direct ce vrea. Agentul înțelege, răspunde și direcționează — sau rezolvă pe loc.
Outbound sales și calificare lead-uri: agentul sună lista de lead-uri, prezintă oferta, răspunde la întrebări, califică interesul și programează un follow-up cu un agent uman doar pentru lead-urile calificate.
Colectare creanțe: agentul contactează debitorii, verifică situația în CRM, prezintă opțiunile de plată, acceptă promisiuni de plată și actualizează CRM-ul automat — fără operator uman implicat.
Suport tehnic tier 1: agentul rezolvă problemele comune (resetare parolă, status comandă, întrebări FAQ) și escaladează la uman doar cazurile care depășesc baza sa de cunoștințe.
Sondaje și cercetare: apeluri outbound automatizate, colectare răspunsuri structurate, export direct în CRM sau Google Sheets.
GDPR și conformitate
Aceasta este diferența fundamentală față de orice soluție cloud.
Cu un stack self-hosted pe infrastructura Voxbee din România:
- •Nicio voce nu iese din server
- •Nicio transcriere nu ajunge la un furnizor extern
- •Niciun răspuns generat nu trece prin API-uri US sau EU externe
- •Datele conversațiilor rămân în jurisdicția română / UE
Dacă activezi înregistrarea apelurilor, fișierele audio sunt stocate pe același server, accesibile doar prin FusionPBX. Poți configura ștergere automată după N zile, conform politicii interne de retenție.
De ce infrastructura Voxbee pentru acest stack
Voxbee oferă toate componentele necesare dintr-un singur loc:
VM cu GPU dedicat — servere cu NVIDIA RTX 6000 Ada disponibile în România, configurate cu driverele și runtimeurile necesare (CUDA, PyTorch, Ollama).
SIP Trunk — numere DID românești, tarife la secundă, redundanță activă. Conectezi FusionPBX-ul la trunk-ul Voxbee în câteva minute.
FusionPBX preinstalat — la cerere, livrăm VM-ul cu FusionPBX deja configurat și conectat la SIP trunk — zero timp pierdut pe instalare și depanare.
Suport tehnic specializat — echipa Voxbee cunoaște acest stack din interior. Dacă ai întrebări despre configurarea LiveKit, optimizarea Ollama sau integrarea cu un CRM specific, suntem disponibili.
Ai un caz de utilizare concret și vrei să discuți arhitectura?
Vrei SIP Trunk pentru a conecta stack-ul la rețeaua telefonică?