VOICE.INS takes calls in Egyptian Arabic, Gulf Arabic, English, French and six more. An agent that will say anything is not deployable in a bank, so what it says is screened twice — once before the model reads the caller, and once before a word is spoken aloud.
The demo is a read-only workspace on sample calls. No sign-up, nothing to install.
10
Dialects
5 of them right-to-left
10
Constraint rules
Across both screening stages
Twice
Every utterance screened
Inbound, then before synthesis
Per dialect
Refusals translated
Every rule, every language
Two stages, doing genuinely different jobs.
Stage one · inbound
Before the model reads the caller
Prompt injection, requests outside the agent’s scope, and anything that has to reach a person rather than an answer. Caught here, none of it ever becomes context.
Prompt injectionlocked
Out of scope
Abuse and threatslocked
Distress and vulnerabilitylocked
Stage two · outbound
Before a word is spoken
What the model produced is read before it is synthesised. This is the stage people skip, and skipping it means the first time anyone hears the bad sentence is the customer.
Unsourced figureslocked
Commitments and guaranteeslocked
Regulated advicelocked
Personal data read-backlocked
Competitor comparison
Hedged speculation
Dialects, not languages.
“Arabic” is not a setting. A Cairo customer and a Riyadh customer are not speaking the same language, and an agent that treats them as though they are sounds foreign to both.
العربية المصرية
Arabic · Egyptian
ar-EGRTL
العربية السعودية
Arabic · Saudi (Najdi)
ar-SARTL
العربية الإماراتية
Arabic · Emirati (Gulf)
ar-AERTL
العربية الفصحى
Arabic · Modern Standard
ar-SA-MSARTL
English (UK)
English · British
en-GB
English (US)
English · American
en-US
Français
French · Metropolitan
fr-FR
اردو
Urdu · Pakistan
ur-PKRTL
हिन्दी
Hindi · India
hi-IN
Türkçe
Turkish · Istanbul
tr-TR
What that buys an operations team.
Screened before the model, and again before it speaks
Inbound screening reads the caller before a model is reached at all. Outbound screening reads what the model produced before it is synthesised — because screening after synthesis is not screening. The caller has already heard it.
A refusal in the wrong language is still a failure
Every rule carries its lines translated into each dialect it can fire in. An agent that can only decline in English is an agent that breaks the call in Cairo, which is precisely where it will be needed.
Some rules cannot be switched off
Rules that exist for a contract or a regulator are marked locked and stay on. A policy a local admin can quietly disable on a bad afternoon is not a policy, it is a suggestion.
Chosen per job, not per vendor
Recognition, reasoning and synthesis are separate concerns with separate providers, and each declares the dialects it genuinely supports — so a dialect the configured provider cannot handle is a visible gap rather than a bad call.
Watch a live call as it happens
Live transcript, the rules that fired on it, and where it went. Reviewing a call after the customer has hung up tells you what went wrong; watching one tells you it is going wrong.
It answers from your material
Agents draw on the knowledge base you give them rather than whatever the model absorbed in training, so a policy change lands the moment you publish it rather than at the next model release.
Retail, banking, fintech, pharma, industry.
Each is a separate tenant with its own agents, channels, constraint policy and audit trail. None can see another.
Al Othaim MarketsRetailCrédit Agricole EgyptBankingMODONIndustrial AuthorityRowad Modern EngineeringConstructionFawryFintechEVA PharmaPharmaceuticals
Listen to one before you commit to anything.
The demo workspace is read-only and runs on sample calls — the same screens, the same constraint engine, none of your customers involved.