; VICIfast Research, Report 01: The Two Bottlenecks Inside a Busy VICIdial Server ; Load rig (ยง7.2). FOR A THROWAWAY TEST SERVER, NOT A LIVE FLOOR. Read it before you run it. ; Dialplan of the fake carrier (a plain Asterisk on another server). Every outcome is a function of the last two digits of the ; number dialled, so what VICIdial records can be checked call by call. It dials nothing. ; Changes the server? It is the carrier; put it on its own throwaway server. ; Load-test fake carrier. Every outcome is a function of the number dialled, so what ; VICIdial records can be audited call by call. Mix = a production outbound floor's peak hour ; (2026-10-14 09:00-10:00 CDT): 6% no answer, 2% congestion, 1% unavailable, 1% busy, ; 90% answered after ringing with early media; of those, 1 in 8 is a person, the rest ; voicemail. ; last two digits 00-05 ring until the dialler gives up (35 s) ; 06-07 503 08 404 09 486 ; 10-99 ring W s then answer; W by band: 10-21 1-3 s, 22-49 3-10 s, ; 50-67 10-19 s, 68-83 20-29 s, 84-99 30-34 s ; code % 8 == 0 -> person ("hello?", silence, then talks until hung up) ; else -> voicemail greeting, beep, silence [general] static=yes writeprotect=yes [from-dialer] exten => _1555XXXXXXX,1,Set(C=$[${EXTEN:-2} + 0]) same => n,Set(TIMEOUT(absolute)=240) same => n,GotoIf($[${C} < 6]?noans) same => n,GotoIf($[${C} < 8]?cong) same => n,GotoIf($[${C} = 8]?unavail) same => n,GotoIf($[${C} = 9]?busy) same => n,Set(W=$[30 + ${C} % 5]) same => n,ExecIf($[${C} < 84]?Set(W=$[20 + ${C} % 10])) same => n,ExecIf($[${C} < 68]?Set(W=$[10 + ${C} % 10])) same => n,ExecIf($[${C} < 50]?Set(W=$[3 + ${C} % 8])) same => n,ExecIf($[${C} < 22]?Set(W=$[1 + ${C} % 3])) same => n,Progress() same => n,Playtones(ring) same => n,Wait(${W}) same => n,StopPlaytones() same => n,Answer() same => n,GotoIf($[${C} % 8 = 0]?human) same => n,Log(NOTICE,LTANS ${EXTEN} M) same => n,Playback(lt/lt-vm) same => n,Playback(beep) same => n,Playback(silence/10) same => n,Playback(silence/10) same => n,Hangup(16) same => n(human),Log(NOTICE,LTANS ${EXTEN} H) same => n,Playback(lt/lt-hello) same => n(talk),Playback(lt/lt-talk) same => n,Goto(talk) same => n(noans),Progress() same => n,Playtones(ring) same => n,Wait(90) same => n,Hangup(19) same => n(cong),Hangup(34) same => n(unavail),Hangup(1) same => n(busy),Hangup(17) exten => _X.,1,Log(WARNING,LTUNEXPECTED ${EXTEN}) same => n,Hangup(1)