Butler Use Case

Reading the documentation in your own language

The ProSBC knowledge base is written and indexed in English. Ask Butler a configuration question in French, Spanish or Portuguese and you get the answer in the language you asked it.

The Situation

There is an engineer on most teams who knows voice networks perfectly well and does not read English. They can hear a one-way audio fault and tell you it is a NAT problem before they open anything. What they cannot do is read the documentation for the session border controller in front of them, because it only exists in English.

The workaround costs an hour. Find the right page without being able to skim it, paste it through a translator, and then judge whether a machine translation of a technical document got the field names right. Most people give up and ask a colleague, which turns one person’s question into two people’s afternoon.

How It Works

Translating the question, not the page

This part is worth a paragraph, because the obvious approach does not work. A knowledge base indexed in English returns nothing useful for a query typed in Portuguese; the words simply do not match. Translating the retrieved page afterwards does not help either, since you have to find the right page first, and finding it was the hard part.

Butler goes the other way round. It reads the intent of your question, composes its search in English, retrieves the English source, and renders the answer back into the language you wrote in. You never see the English and you never have to guess at the search term. Every question below was asked in a fresh session so no language could carry over, every answer came back in the language it was asked in, and every underlying search was issued in English.

The Answers

Pick a question, read the whole exchange

Every one of these ran against synthetic demo data, and every checkable claim in them has been verified against the product documentation.

#voice-opsChat
EN

Engineer FR 10:14
@VI - Butler Bonjour. Je dois raccorder un nouveau fournisseur SIP qui exige une authentification par REGISTER. Quelles sont les étapes sur le ProSBC, et quels champs du NAP faut-il remplir ?
Hello. I need to connect a new SIP provider that requires REGISTER authentication. What are the steps on the ProSBC, and which NAP fields do I need to fill in?
B

VI - Butler APP 10:14
lookup_knowledge  query=“SIP provider REGISTER authentication outbound registration NAP”
Le produit distingue trois fonctionnalités différentes. La vôtre est l’enregistrement sortant : le SBC s’enregistre lui-même auprès de l’opérateur.
sip_cfg.registration_parametersregister_to_proxy trueaddress_to_register sip:username@hostname sip_cfg.authentication_parametersuser nom d’utilisateurpassword mot de passerealm optionnelignore_realm false par défaut
Souhaitez-vous que je récupère la configuration actuelle d’un NAP spécifique pour vous montrer les champs exacts disponibles sur votre ProSBC ?
Would you like me to fetch the current configuration of a specific NAP, so I can show you the exact fields available on your own ProSBC?

Read the last message rather than the code block. Butler names a configuration field only where it has actually seen that field, and a walk-me-through question is exactly where the temptation to fill a gap with something plausible would otherwise sit. Where the concept is clear but the precise fields are not, it offers to go and read the real NAP on your own box and show you what is genuinely on it. In a language where checking the documentation yourself is the hard part, that offer is the safeguard.

#voice-opsChat
EN

Engineer ES 16:18
@VI - Butler Tengo que abrir el ProSBC a una IP nueva de un cliente. ¿Dónde se configura la lista de control de acceso del NAP, y hace falta activar la configuración después?
I need to open the ProSBC to a customer’s new IP. Where is the NAP access control list configured, and does the configuration need activating afterwards?
B

VI - Butler APP 16:18
lookup_knowledge  query=“NAP access control list ACL whitelist IP configuration”
Señor, la lista de control de acceso se configura en el propio NAP, en la sección SIP, como una lista de rangos CIDR (IP/máscara).
Panel de navegación → NAPsConfigure the Access Control List 203.0.113.10/32 una sola IP 198.51.100.0/24 una subred 0.0.0.0/0 cualquiera
Sobre la activación: sí, absolutamente necesario. Después de cualquier cambio debe ejecutar activate_config para que surta efecto. Edite el NAP directamente y use Configure the Access Control List en la sección SIP.
On activation: yes, absolutely required. After any change you must run activate_config for it to take effect. Edit the NAP directly and use Configure the Access Control List in the SIP section.

One tool call, seven seconds, and a complete answer: where the list lives, the format it wants, and the fact that nothing takes effect until you activate. Note the last line, too. Nobody asked for the portal route, and it offered one anyway, for whoever would rather click than call an API.

#voice-opsChat
EN

Engineer FR 11:02
@VI - Butler Quelle est la différence exacte entre un NAP et une route sur le ProSBC ? Dans quel ordre le SBC les évalue-t-il quand un appel entrant arrive ?
What exactly is the difference between a NAP and a route on the ProSBC? In what order does the SBC evaluate them when an inbound call arrives?
B

VI - Butler APP 11:02
lookup_knowledge  query=“NAP vs route difference ProSBC”lookup_knowledge  query=“route evaluation order incoming call matching priority”
NAP et route

  • NAP est un point d’interconnexion SIP, le “qui” à qui on parle. Il définit une destination SIP : IP proxy, ports, transports, ACLs.
  • Route est une règle de routage d’appel, le “comment” et le “où”. Elle décide quel NAP de sortie reçoit l’appel et applique les transformations de numéros.
Ordre d’évaluation1. NAP d’entrée déterminé par IP / port / ACL2. Routes évaluées simple_routing_sbc.rb tri par priorité croissante 0 = la plus haute puis poids (weight) pour la répartition3. NAP de sortie choisi4. Appel transmis avec transformations
En résumé : NAP d’abord (entrée), puis Routes (matching et sélection), puis NAP (sortie). Les NAP sont les extrémités du dialogue SIP ; les routes sont la logique qui décide par quelle extrémité sortante passer.
In short: ingress NAP first, then routes for matching and selection, then the egress NAP. NAPs are the endpoints of the SIP dialogue; routes are the logic deciding which one the call leaves by.

The priority and weight ordering and the default routing script both check out against the knowledge base. This is a question that takes a new engineer the better part of a week to assemble from the documentation, answered in one paragraph, in French.

#voice-opsChat
EN

Engineer PT 14:07
@VI - Butler Preciso configurar transcoding no ProSBC entre G.711 e G.729. O que preciso habilitar e existe limite de licença para isso?
I need to configure transcoding on the ProSBC between G.711 and G.729. What do I need to enable, and is there a licence limit for it?
B

VI - Butler APP 14:07
lookup_knowledge  query=“configure transcoding G.711 G.729 codec license”lookup_knowledge  query=“hardware transcoding license limit capacity”
Precisa habilitar Hardware audio transcoding no perfil de media. O transcoding de G.711 para G.729 não é possível em software, apenas por hardware.
Requisitos de licença

  • O transcoding é capado pela licença, portanto a capacidade disponível depende do que está licenciado.
  • Software transcoding cobre só G.711 a-law para u-law (PCMA para PCMU).
  • Para verificar a capacidade atual, use get_license_status. Posso consultar a licença do seu equipamento se me indicar o host_id.
Transcoding is licence-capped. Software transcoding covers only G.711 a-law to u-law. I can check your actual licence if you give me the host id.

This is the commercially inconvenient one. The honest answer is that this conversion needs the hardware transcoding unit, and that is what came back rather than the answer the customer was hoping for. Correct as of September 2026. Software G.729 is on the roadmap, so check the current position before you budget for hardware.

#voice-opsChat
EN

Engineer ES 08:57
@VI - Butler Buenos días. Nuestro operador cambió ayer la IP detrás de su hostname SIP y actualizó el DNS, pero nuestro SBC sigue enviando las llamadas a la dirección antigua. ¿Qué habría que hacer? No ejecute nada todavía, solo explíqueme el procedimiento.
Good morning. Our carrier changed the IP behind their SIP hostname yesterday and updated DNS, but our SBC is still sending calls to the old address. What should be done? Do not execute anything yet, just explain the procedure to me.
B

VI - Butler APP 08:57
lookup_knowledge  query=“DNS cache refresh SBC name resolution”list_available_actions  query=“dns cache”
Buenos días. Esto es un problema clásico de caché DNS en el SBC.
El problema

  • Su SBC tiene en caché la dirección IP antigua del hostname SIP de su operador. Los registros DNS en el SBC no se actualizan automáticamente cuando cambia un registro externo.
La solución es ejecutar la acción clear_dns_cache en el SBC. Vacía globalmente todas las entradas en caché (A, SRV, NAPTR, LOCSRV, MCAST), mantiene las entradas locales estáticas configuradas manualmente, y no requiere activación de configuración posterior.
The fix is the clear_dns_cache action. It flushes every cached DNS entry globally, keeps any static local entries you configured by hand, and needs no configuration activation afterwards.
¿Tiene acceso al WebGUI para verificar el nombre del grupo DNS, o prefiere que liste primero los grupos disponibles?
Do you have WebGUI access to check the DNS group name, or would you rather I listed the available groups first?

Two things happened here that are easy to miss. The engineer said not to execute anything, and Butler stopped at the explanation, which is the whole of what was asked for. Then, rather than guessing at a name it did not have, it offered to go and list the real ones. A VoIP engineer who cannot read the English documentation got the concept, the exact action name and an offer to find the missing detail, without leaving the chat.

Working With It

How it stays accurate

Accuracy carries more weight here than anywhere else in the product. A reader working in English can check a field name against the documentation in thirty seconds, and the whole point of this page is that you should not have to. Butler is held to a stricter standard in these languages for exactly that reason, and the rule below is how it is enforced.
Ask it to fetch the real object when you want certainty. Butler names a configuration field only where it has seen that field, and where the concept is clear but the exact names are not, it will read the live object off your own device and show you what is genuinely on it.
The answers come from the English source, rendered for you. Anything the documentation covers is answerable in any of these languages, and Butler will say when a question falls outside it rather than filling the space.
Switch language whenever it suits you. Answers stay in the language you asked in and do not drift back to English part way through a thread, and you can ask for the same answer again in your customer’s language when you need something to forward.
Butler Use Cases

One number and maybe a time. Butler finds the call and says whose side ended it.

Counts, groupings, thresholds and KPIs across a population of calls.

Routing tables, regex and SDP profiles in plain English.

A knowledge base in your language

Ask in French, Spanish or Portuguese, get the answer from the English documentation.

Changes, reports, files and email, each one waiting for your yes.

Paste the complaint in the customer’s own words and let Butler find the call.

All Butler use cases

Ask Butler in the language you think in

Deployed in 48 hours, month to month, in the chat app your team already has open.

By submitting this form, your information will be processed in accordance with our Privacy Policy.