Skip to content

Stadiul implementării ​

Directiva §188: o funcționalitate e implementată, e în spatele unui feature flag sau nu e implementată, iar documentația spune care. Pagina asta acoperă suprafața de API și de module: ce endpoint-uri există, ce module sunt conectate, care sunt parțiale.

Golurile de comportament au pagina lor

Lucrurile care arată terminate și nu sunt — predarea media pe SIP, speech-to-speech, analiza de după apel, verificarea furnizorilor, consimțământul la înregistrare, hook-urile de asistent, Stripe — sunt pe Ce nu este construit, cu codul din spatele fiecărei afirmații. Citește-o întâi pe aia dacă decizi dacă să construiești pe o funcționalitate.

Verificat față de repository — tabela de rute, clasele de serviciu, feature flag-urile din seed — la momentul scrierii. Dacă o găsești contrazicând codul, pagina e bug-ul.

Legendă ​

Înseamnă
worksImplementat și accesibil prin interfața documentată.
flaggedImplementat, în spatele unui feature flag per organizație.
partialO parte funcționează; rândul spune care parte nu.
not builtDoar specificat. Nu-ți face planuri pe el.

API-ul REST ​

305 operații pe 221 de căi sub /api/v1, toate autentificate cu cheie de API, toate delimitate pe tenant din cheie. Verificat cu php artisan route:list --path=api/v1 și față de docs/api/openapi.json, pe care callagent:openapi:export --check îl ține cinstit.

DomeniuOperații
Asistenți + versiuni14works
Structured outputs7works
Tools + versiuni11works
Squads9works
Knowledge bases + documente11works
Servere MCP10works
Apeluri, transcrieri, evenimente, metrici, costuri, artefacte16works
Telefonie: numere, conturi, trunk-uri, gateways, DID-uri, rute, ieșire47works
Contact center: cozi, operatori, supervizor, transferuri, extensii, catalog60works
Campanii + liste de suprimare24works
Analytics, board-uri, monitoare, eval-uri, simulări, incidente31works
Facturare: sold, ledger, consum, credite, facturi, metode de plată, planuri17works
Webhooks + jurnal de livrare11works
Platformă: api-keys, client-tokens, clienți, integrări, credențiale, registry41works

Două afirmații corectate

Versiuni anterioare ale paginii spuneau că nu există endpoint-uri REST pentru campanii și pentru contact center. Există — 24, respectiv 60 — iar paginile au fost rescrise.

Endpoint-uri care nu există ​

AșteptatRealitate
POST /api/v1/client/callsnot built Pornirea unui apel din browser prin API. Schimbul de token (POST /client-tokens) e viu; ăsta nu.
/api/v1/policiesnot built CLI-ul validează policies/ local și spune că nu le poate trimite.
/api/v1/files, /api/v1/storagenot built Destinațiile de storage se configurează doar din dashboard. Scope-ul storage.write există fără nimic în spate.
/api/v1/chatnot built Există un ChatController în arbore, dar niciun fișier de rute nu îl referă. Scope-urile chat.read / chat.write sunt inaccesibile.
/api/v1/smsnot built Tipul de tool sms și contractul de trimitere există; nu există endpoint REST.

Endpoint-uri în afara lui /api/v1 ​

Cale
GET /api/health, /api/health/readyworks neautentificate, prin design
POST /mcpworks CallAgent ca server MCP — autentificat cu cheie de API
/api/internal/v1/*works doar pentru gateway, autentificare separată
/scim/v2/*partial doar provizionare de utilizatori; provizionarea de grupuri lipsește
/telephony/*, /webhooks/billing/stripeworks callback-uri de furnizor

Lucruri construite, dar neconectate ​

Cea mai importantă secțiune din pagină. Fiecare dintre ele are cod care arată complet și pe care nu îl apelează nimic, deci funcționalitatea nu se întâmplă la runtime.

FuncționalitateStare
Analiza de după apel — rezumat, sentiment, subiecte, evaluare de succesnot built Pipeline-ul și clasa lui de job există, iar finalizatorul rulează redactarea, artefactele, transcrierea și retenția — dar nu dispecerizează niciodată job-ul de analiză, și nu există niciun test care să îl acopere. calls.summary se populează doar dacă gateway-ul îl furnizează în payload-ul de finalizare. Vezi Analytics.
Speech to speechnot built speech_to_speech_model e validat, salvat, versionat, publicat și trimis gateway-ului. Sesiunea live de apel nu îl citește niciodată. Există un S2sPipeline complet și nimeni nu construiește vreodată unul. Detalii.
Media pe trunk SIPnot built Registration-ul trunk-ului, autentificarea pe IP și admiterea prin ACL sunt dovedite pe un peer SIP real. Predarea media de la FreeSWITCH la gateway nu e construită, deci niciun apel pe trunk nu a ajuns vreodată la un asistent. Detalii.
Hook-uri de asistentpartial Sunt declarate paisprezece triggere, convertite și trimise gateway-ului. Sursa gateway-ului nu conține nicio referință la hooks. Rulează doar handoff, în control plane. Detalii.
Cinci tipuri de toolnot built bash, computer, text_editor, client_side și custom_provider nu au nicio intrare în maparea către formatul de fir și sunt aruncate în tăcere din fiecare apel. Detalii.
Extragerea de structured outputsnot built Aceeași cauză: definițiile, versionarea și stocarea funcționează; extragerea o face pipeline-ul de analiză de mai sus. Vezi Structured outputs.
Scorecards pe apeluri viipartial Motorul de scoring e real și e exersat de simulări. Scorarea unui apel viu depinde de pipeline-ul de analiză.
Export de trace-uri de observabilitate (Langfuse, OTLP)not built Exporterele există; nu le invocă nimic. Gateway-ul o scrie pe față: „tag-urile și sampling-ul se aplică, span-urile nu sunt trimise." Nu-ți face o integrare pe asta.

Implementări parțiale ​

FuncționalitateCe merge, ce nu
Transcrierea de după apelpartial Lista de furnizori vine din registry, dar Sonix e singurul adaptor. Orice altă alegere nu are niciun client în spate, iar interfața o spune, în loc să eșueze mai târziu.
Vector stores pentru knowledgepartial pgvector și custom sunt implementate. Qdrant, Pinecone și Weaviate există ca valori de enum, ca interfața să poată spune „încă nu" cinstit.
Embeddingspartial OpenAI e singurul furnizor de embeddings implementat.
Protocolul de sesiune din browserpartial Audio-ul și barge-in-ul funcționează cap-coadă. Evenimentele de conversație (transcript, message, state, tool_call, ended …) încă aterizează în gateway. Vezi Browserul.
Capabilități de telefonie per carrierpartial Fiecare furnizor își declară propria matrice de capabilități — Twilio marchează trunking-ul SIP partial, furnizorul SIP custom marchează listarea numerelor partial, DIDWW declară trei capabilități. Citește matricea, nu numele furnizorului.
SCIMpartial Utilizatorii se provizionează; grupurile nu.
Catalogul de integrăripartial Galeria arată doar conectorii a căror maturitate e implemented; restul sunt înregistrați ca neimplementați și ascunși.

Neimplementat ​

FuncționalitateNotă
Telefonul web al operatorului (module.web_phone)Arhitectura e decisă — refolosește transportul WebRTC al Web SDK-ului. Neconstruit. Operatorii înregistrează un dispozitiv SIP.
SAML SSOServiciul de SSO întoarce „SAML is not implemented in this build" și, intenționat, nu există nicio rută. Blocat pe o bibliotecă de XML-DSig.
Provizionare de grupuri SCIMVezi mai sus.
SMSContractul și tipul de tool există; niciun endpoint, niciun adaptor.
Canal de chatControllerul există, fără rută.

Implementat ​

FuncționalitateNotă
OIDC SSOworks
Webhooksworks Singurul modul pe care registrul de flag-uri îl marchează implemented. Semnare, suprapunere la rotire, livrare cel puțin o dată cu id de eveniment stabil, reîncercare programată, jurnal de livrare, retrimitere.
Chei de APIworks Chei private stocate ca hash, dezvăluire o singură dată, scope-uri, origin-uri, restricții pe asistent și pe IP, rotire cu suprapunere.
Storage deținut de clientworks S3, R2, Azure Blob, compatibil S3, platformă. Validare reală de scriere/citire/ștergere; custodie per artefact; job de relocare.
Înregistrare pe două canaleworks Conectată la carrier — RecordingChannels la Twilio, record_stereo la FreeSWITCH.
Consimțământ la înregistrarepartial Se poate reda un anunț și starea se reține. Înregistrarea pornește înainte ca anunțul să fie rostit, iar gateway-ul poate raporta doar announced — niciodată granted sau denied, pentru că nimic nu colectează o confirmare. Un refuz nu poate fi respectat. Detalii.
Dezvăluire AI (art. 50 din EU AI Act)not built compliance_plan ajunge la gateway și nu e citit niciodată. Nimic nu face un asistent să spună că e un AI. Pune-o singur în first_message — vezi Dezvăluire AI și consimțământ.
Adaptoare de furnizorpartial verified înseamnă că formatul de pe fir a fost revizuit față de documentația vendorului. Niciun adaptor nu a fost rulat pe un vendor live în CI. 19 id-uri de voce, 16 adaptoare, 2 marcate verified. Detalii.
Carrieri de telefoniepartial Nouă id-uri, șase adaptoare, și doar Twilio are o cale de media funcțională către pipeline-ul AI. Telnyx declară media_streams și nu are niciun constructor de media stream. Matrice.
Contabilitate de costuriworks …și cinstită: un preț neverificat produce un rând cu cost = 0 și priced: false, nu o ghiceală.
Depozit de analyticsworks Rollup-uri materializate plus o cale brută pentru percentile, funnels și filtre pe mai multe dimensiuni. percentile_cont real.
Monitoare și incidenteworks Evaluate din cinci în cinci minute.
Workbench de furnizoriworks …cu cifrele marcate: latența e valoarea tipică publicată de vendor, calitatea e un indice editorial, costul e derivat. Vezi Furnizori.
Jurnal de auditworks Doar cu inserări, cu o listă de excludere, ca să nu se scrie niciodată credențiale.
Multi-tenancyworks Scope global plus un deținător explicit de context; trait-ul aruncă în loc să scrie un rând fără organizație.

Despre registrul de feature flags ​

FeatureFlagSeeder reține o maturitate pentru fiecare modul și e cel mai apropiat lucru de o listă oficială. Tratează-l ca documentație a intenției, nu ca pe un comutator impus — nimic din afara resursei de flag-uri nu citește tabela ca să restricționeze navigația. E și în urma realității pe alocuri: module.mcp_server, module.web_sdk și module.cli sunt toate marcate not_implemented și toate trei sunt construite.

Blocat pe credențiale, nu pe cod ​

Complet în cod, așteaptă doar conturi:

  • Un cont Twilio, un număr cumpărat și un URL public de tunel — apeluri PSTN reale.
  • Chei Deepgram / OpenAI / ElevenLabs — măsurarea reală a latenței furnizorilor.
  • Chei de test Stripe — fluxul de cumpărare pay-as-you-go. Stripe nu a fost contactat deloc, nici live, nici test: fiecare test de Stripe conduce SDK-ul real pe fixture-uri conservate.
  • Un trunk SIP sau un PBX de test — calea de acceptanță SIP.
  • Un cont Sonix — transcrierea de după apel.

Setul ăsta de documentație ​

BucatăCum e produsă
Ghiduri, concepte și pagini de platformăScrise de mână, cu codul în față.
Referință APIGenerată din docs/api/openapi.json de scripts/generate-api-reference.mjs. 305 operații, 39 de resurse, 63 de scheme.
SchemeGenerate din același document.
Referință CLIGenerată din manifestul de comenzi din care e construit binarul.
Tipuri SDKGenerate din apps/web-sdk/src cu TypeDoc.
Coduri de eroare · Tipuri de evenimentTranscrise din @callagent/contracts, oglindit în PHP cu un test de drift.

Scrisă după cod. Ce nu este încă implementat este marcat ca atare, niciodată descris ca funcțional.