Il test di carico dell'IA vocale che quasi tutti dimenticano: la chiusura delle chiamate


La maggior parte dei test di carico dell'IA vocale risponde a una sola domanda: nei picchi di volume, le chiamate si collegano? Una seconda domanda conta altrettanto: quando una chiamata è finita, termina davvero?
Una chiamata che non si chiude continua a occupare uno slot di concorrenza sulla piattaforma di IA vocale, un canale sul tuo SIP trunk e spesso una porta o una licenza sulla tua piattaforma di contact center. Nessuno sta parlando. Nei picchi, qualche decina di chiamate di questo tipo può spingerti ai tuoi limiti mentre il volume di chiamate sembra normale.
Questa guida tratta il lato della chiusura nei test di carico. Per latenza, accuratezza e throughput sotto carico, consulta la nostra guida al test di carico degli agenti vocali.
Una chiamata è chiusa quando ogni sua tratta è stata rilasciata da tutti i sistemi che ha attraversato: la tratta di chi chiama, l'eventuale tratta di trasferimento e la sessione dell'agente IA.
In una chiamata SIP, la chiusura è un evento di segnalazione. Una parte invia un messaggio BYE, l'altra risponde 200 OK e ogni sistema libera il canale. Una tratta che ha squillato ma non ha mai ricevuto risposta viene chiusa con un CANCEL.
In un'implementazione di IA vocale, devono verificarsi tre condizioni:
In Retell, una chiamata terminata ha lo stato ended e un motivo di disconnessione come user_hangup, agent_hangup o call_transfer. Una chiamata ancora in corso ha lo stato ongoing, e sono le chiamate in corso a contare per la tua concorrenza attuale.
Un trasferimento trasforma una chiamata in due o più tratte, spesso su due piattaforme diverse, e il riaggancio su una tratta deve raggiungere le altre. Quando quel segnale si perde o viene ignorato, una tratta resta attiva senza nessuno dall'altra parte.
Gli schemi da verificare nella tua configurazione:
Per l'esperienza di chi chiama con ciascun tipo, leggi come funzionano i trasferimenti di chiamata tra agenti vocali con IA e team umani e la nostra guida al trasferimento assistito.
Uno slot di concorrenza per tutto il tempo in cui resta aperta. La concorrenza conta le chiamate attive simultanee, e una chiamata vuota conta quanto una reale.
Il calcolo è semplice: chiamate aperte in più in ogni momento = chiamate all'ora che non si chiudono × ore in cui ciascuna resta aperta.
| Scenario (esempio illustrativo, non una misurazione) | Chiusure fallite all'ora | Per quanto tempo resta aperta ciascuna | Chiamate aperte in più in ogni momento |
|---|---|---|---|
| Problema occasionale, timeout di silenzio breve | 6 | 10 minuti | 1 |
| Problema occasionale, solo il limite di durata di 1 ora | 6 | 60 minuti | 6 |
| Un percorso di trasferimento configurato male che gestisce 60 trasferimenti all'ora | 60 | 60 minuti | 60 |
La terza riga mostra come i team si ritrovano con decine di chiamate fantasma nei picchi: un unico problema di configurazione, come i riagganci non propagati attraverso un trasferimento, applicato a ogni chiamata trasferita.
Quella capacità non è gratuita. Su Retell, le prime 20 chiamate simultanee sono incluse e la capacità aggiuntiva costa $8 per chiamata simultanea al mese (vedi i prezzi). Quando un workspace raggiunge il limite, le nuove chiamate in entrata attendono circa 40 secondi che si liberi uno slot, poi vengono inoltrate al numero di fallback del numero di telefono, se impostato, oppure terminano con concurrency_limit_reached. Le nuove chiamate in uscita vengono rifiutate, a meno che non sia attivato il concurrency burst. Nei picchi, le chiamate bloccate respingono chi chiama davvero.
Lo stesso calcolo vale per i canali del trunk e le licenze del contact center, che la piattaforma di IA vocale non può vedere.
Termina ogni chiamata intenzionalmente, attraverso ogni modalità di chiusura, al tuo ritmo di picco, poi dimostra che il conteggio delle chiamate attive di ogni sistema torna a zero.
| Modalità di chiusura | Come attivarla nel test | Risultato atteso lato IA | Verifica anche |
|---|---|---|---|
| Chi chiama riaggancia a metà conversazione | Il chiamante di test si disconnette in un punto casuale | ended, user_hangup | Canale dell'operatore e del contact center rilasciato |
| L'agente termina la chiamata | Prevedi nello script un saluto che soddisfi la condizione dello strumento End Call | ended, agent_hangup | La tua piattaforma riceve il BYE e libera la porta |
| Trasferimento a freddo, poi chi chiama riaggancia | Trasferisci, poi disconnetti il chiamante | ended, call_transfer | Anche la tratta verso la destinazione viene rilasciata |
| Trasferimento a freddo, poi la destinazione riaggancia | Trasferisci, poi disconnetti la destinazione | ended, call_transfer | Anche la tratta del chiamante viene rilasciata |
| Il trasferimento assistito si collega, poi una delle due parti riaggancia | Rispondi alla destinazione, poi disconnetti una delle parti | Webhook transfer_bridged, poi transfer_ended | Nessuna tratta lasciata in attesa |
| Trasferimento senza risposta | Lascia squillare la destinazione oltre la durata dello squillo del trasferimento | Webhook transfer_cancelled | CANCEL inviato; nessuna tratta che squilla rimasta aperta |
| Chi chiama riaggancia mentre è in attesa | Disconnetti il chiamante durante un trasferimento assistito | La chiamata termina | Tratta di consultazione verso la destinazione chiusa |
| Linea silenziosa | Il chiamante di test resta in silenzio | ended, inactivity | Il tempo di chiusura corrisponde alla tua impostazione sul silenzio |
I webhook di trasferimento sono disattivati per impostazione predefinita. Aggiungi transfer_started, transfer_bridged, transfer_cancelled e transfer_ended agli eventi webhook dell'agente per il test.
Dopo la rampa di picco, smetti di avviare nuove chiamate e osserva i contatori scendere. Interroga ogni pochi secondi l'API Get Concurrency di Retell, che restituisce current_concurrency (il numero di chiamate in corso). Dovrebbe arrivare a zero entro la durata della tua chiamata di test più lunga. Controlla negli stessi momenti i conteggi di SBC, contact center e trunk. Qualsiasi contatore che resta alto è la perdita, e il sistema che la trattiene ti dice quale lato non sta rilasciando.
call_started dovrebbe avere un call_ended corrispondente. Ogni transfer_started dovrebbe avere un transfer_ended o un transfer_cancelled.call_status impostato su ongoing per trovare le chiamate rimaste aperte.Tieni d'occhio una concorrenza che resta alta quando il volume cala, un aumento delle chiamate chiuse per timeout e i trasferimenti falliti.
concurrency_used (picco di chiamate simultanee in una finestra temporale) insieme a call_count (chiamate terminate nella finestra). Se la concorrenza sale mentre le chiamate terminate restano stabili, le chiamate non si stanno chiudendo.transfer_call_failure_count.inactivity o max_duration_reached dopo i trasferimenti significa che a chiudere le tue chiamate sono le misure di sicurezza, non i riagganci.I timeout. Non risolvono una segnalazione difettosa, ma limitano per quanto tempo una chiamata bloccata può occupare uno slot.
| Impostazione | Valore predefinito di Retell | Intervallo | Perché conta per la chiusura |
|---|---|---|---|
| Strumento End Call | Disattivato: l'agente non termina le chiamate in autonomia | Condizioni definite da te | Senza di esso, le chiamate terminano solo quando chi chiama riaggancia o scatta un timeout |
| Termina la chiamata in caso di silenzio | 10 minuti | Minimo 10 secondi | Una tratta morta e silenziosa viene chiusa dopo questo intervallo |
| Durata massima della chiamata | 1 ora | Da 1 minuto a 2 ore | Il limite di ultima istanza per qualsiasi chiamata |
| Durata dello squillo del trasferimento | Durata dello squillo dell'agente, 30 secondi | Da 5 a 90 secondi per trasferimento | I tentativi di trasferimento senza risposta vengono abbandonati |
| Attesa della risposta dell'operatore nel trasferimento assistito | 30 secondi | Configurabile | Limita il tempo trascorso ad attendere un operatore umano in coda |
Imposta i limiti di silenzio e di durata vicini alla durata reale delle tue chiamate. Con i valori predefiniti, una tratta morta che resta silenziosa può occupare uno slot per 10 minuti, e una che il timer del silenzio non intercetta può occuparlo fino a un'ora.
Ottieni risposte scritte prima del lancio:
Considera "la concorrenza torna a zero dopo il test" come un criterio superato/non superato. Esegui la matrice di chiusura e il test di svuotamento prima del lancio e di nuovo dopo ogni modifica alle impostazioni di trasferimento, ai numeri o all'instradamento delle chiamate.
Retell ti offre tutti gli strumenti: trasferimento di chiamata a freddo, assistito e assistito agentico con timeout di squillo e di attesa, webhook di trasferimento, motivi di disconnessione per ogni chiamata, packet capture, un'API di concorrenza in tempo reale e avvisi su concorrenza e trasferimenti falliti. Se stai pianificando un rollout nel contact center con un'elevata concorrenza nei picchi, il piano Enterprise di Retell aggiunge un limite elevato di chiamate simultanee e supporto dedicato.
Letture correlate: Perché i test di carico devono seguire il percorso reale della chiamata, la checklist dei numeri di telefono per le chiamate in uscita e altre guide nel Retell Learn hub.
See how much your business could save by switching to AI-powered voice agents.
Total Human Agent Cost
AI Agent Cost
Estimated Savings
Un numero di telefono demo di Retell Clinic Office

Start building smarter conversations today.




