---
title: 'AI agents (Famulor)'
summary: 'An autonomous voice assistant on the Famulor platform that answers calls, qualifies leads, books appointments, handles support. Called "Advanced assistants" in the UI - more configurable than Smart Assistants.'
section: features
tags:
  - crud
  - telephony
  - ai
  - beta
updated: '2026-08-12'
related_forms:
  - famulor_call_logs
---

> A **Famulor AI agent** is an autonomous voice assistant that answers calls, qualifies leads, books appointments, and handles support without a human on the line. The agent lives on the [Famulor platform](https://www.famulor.io) and this page configures and syncs one from inside Cockpit. Called *"Advanced assistants"* in the UI sidebar.

## Overview

A Famulor agent record in Cockpit mirrors a real assistant on the Famulor platform. When you save, Cockpit calls the Famulor API to provision or update the assistant there, and the **Sync status** column shows whether your local config matches. You assign an agent to an extension, a call flow step, or a Famulor-provisioned number, and the AI then answers those calls.

Famulor agents are deeper than [Smart Assistants](smart_assistants.md). If you just want an AI on an extension following a prompt without much tuning, a Smart Assistant is the right starting point.

| Aspect | Famulor agents ("Advanced") | Smart assistants ("Basic") |
|---|---|---|
| Where the AI runs | Famulor's platform (external) | Voxbi's own infrastructure (internal) |
| Configuration depth | Deep - 6 tabs, fine-grained voice / model / tool settings | Lighter - 2-step wizard |
| Engine choices | Pipeline / Speech-to-speech / Dualplex | OpenAI Realtime (one option) |
| Best for | Sophisticated use cases needing voice tuning, multilingual switching, advanced tool chains | Quick setup, simple flows, single-language assistants |

> [!NOTE]
> Famulor agents are a **Beta** feature, shown with a *Beta* badge next to "Advanced assistants". Functional and customer-ready, with the badge signaling rapid iteration.

## What it does

A caller is answered immediately by the AI. The agent speaks an opening message, converses guided by the system prompt and any enabled tools, and either completes the call or transfers when the prompt rules trigger it. The experience is shaped by three things working together: the **engine** (how speech is processed), the **voice** (how it sounds), and the **system prompt** (what it does and says). These plus transfer rules are the fields that matter most.

A common deployment is a single all-in-one agent on the main inbound extension with a prompt covering every department. Split into a receptionist agent plus per-department specialist agents only when you have several departments needing different knowledge bases or prompts.

> [!TIP]
> Start with the **Dualplex** engine and the built-in *AI Receptionist* prompt template.

## See also

- [Smart assistants](smart_assistants.md) - the in-house alternative, simpler and built on Voxbi infrastructure.
- [AI IVRs](ai_ivrs.md) - the lightest AI option, built on the Smart Assistants infrastructure.
- [Famulor call logs](famulor_call_logs.md) - the transcript + outcome record of each Famulor call.
- [Extensions](extensions.md) - the typical assignment target.
- [Call flows](call_flows.md) - the *AI Assistant (Famulor)* step type.
- [SIP carriers](sip_carriers.md) - the carrier configuration the agent's SIP trunk uses.
- [Famulor platform](https://www.famulor.io) (external) - where the AI actually runs.

```yaml fields
name:
  label: Name
  tab: General
  hint: 'Identifies the agent in Cockpit lists and on Famulor (auto-prefixed with your PBX tag).'
type:
  label: 'Call direction'
  tab: General
  hint: 'Whether this agent answers inbound calls or places outbound calls.'
  values:
    -
      value: inbound
      label: 'Receive phone calls'
      text: 'The agent answers calls from customers.'
    -
      value: outbound
      label: 'Make phone calls'
      text: 'The agent dials leads or customers for qualification, follow-ups, or confirmations.'
mode:
  label: 'Engine type'
  tab: 'Engine & voice'
  hint: 'The speech-processing engine - the most consequential field on the form.'
  values:
    -
      value: pipeline
      label: Pipeline
      text: 'Speech recognition -> language model -> speech output. Most configurable, best for complex reasoning, precise voice control, and many tool integrations.'
    -
      value: multimodal
      label: Speech-to-speech
      text: 'Direct speech-to-speech processing without intermediate text. Fastest and most natural turn-taking, with less granular control.'
    -
      value: dualplex
      label: Dualplex
      text: 'Combined multimodal approach with high-quality voices. Recommended default for most assistants and handles language switching best.'
famulor_language_id:
  label: 'Primary language'
  tab: 'Engine & voice'
  hint: 'Primary language for speech recognition, available voices, filler phrases, and model selection.'
secondary_language_ids:
  label: 'Secondary languages'
  tab: 'Engine & voice'
  hint: 'Additional languages the assistant understands and responds in - useful for multilingual callers who switch language mid-call.'
synthesizer_provider_id:
  label: 'TTS provider'
  tab: 'Engine & voice'
  hint: "Text-to-speech provider for the assistant's voice. Premium providers offer higher quality, fast providers offer lower latency."
famulor_voice_id:
  label: 'AI voice'
  tab: 'Engine & voice'
  hint: 'Voice the assistant speaks with. Green-highlighted voices match the primary language for best quality. Use Preview to listen before choosing.'
timezone:
  label: Timezone
  tab: General
  hint: 'Governs how the assistant interprets time references ("today", "3pm"), scheduling logic, and call log timestamps.'
description:
  label: Description
  tab: General
  hint: 'Internal note about this agent - visible and editable from the list view.'
sip_trunk_type:
  label: 'SIP trunk type'
  tab: 'SIP integration'
  hint: 'How the SIP trunk is identified on Famulor: by extension or by a direct E.164 phone number.'
  values:
    -
      value: extension
      label: Extension
      text: 'Reuses the extension selected below as the SIP trunk. Use when the agent should answer an internal extension.'
    -
      value: number
      label: 'Phone number (DID)'
      text: 'Uses a separate E.164 number. Use when routing through a direct inward dialing number.'
extension:
  label: Extension
  tab: 'SIP integration'
  hint: 'The extension callers dial to reach this agent. Only unassigned extensions are listed.'
  when: 'SIP trunk type is Extension'
sip_trunk_phone_number:
  label: 'SIP trunk phone number'
  tab: 'SIP integration'
  hint: 'E.164 DID number (e.g. +14155551234). Only used when trunk type is Phone number (DID).'
  when: 'SIP trunk type is Phone number (DID)'
sipCarrier:
  label: 'SIP carrier'
  tab: 'SIP integration'
  hint: 'Carrier whose credentials are used to create the SIP trunk on Famulor. Must already be configured on this PBX.'
sip_country:
  label: 'SIP trunk country'
  tab: 'SIP integration'
  hint: 'ISO 3166-2 country code for the SIP trunk on Famulor. Determines carrier routing and rate plans.'
sip_calling_format:
  label: 'Outbound calling format'
  tab: 'SIP integration'
  hint: 'Number format for outbound calls on the wire. Match the format your SIP carrier requires.'
  values:
    -
      value: +e164
      label: 'International with +'
      text: 'e.g. +12025550123'
    -
      value: e164
      label: 'International without +'
      text: 'e.g. 12025550123'
    -
      value: national
      label: National
      text: 'e.g. 0741926265'
ambient_sound:
  label: 'Ambient sound'
  tab: 'Engine & voice'
  hint: 'Optional background noise mixed under the voice to make conversations feel more natural. Disable if speech recognition is affected.'
ambient_sound_volume:
  label: 'Ambient sound volume'
  tab: 'Engine & voice'
  hint: 'Volume of the ambient sound from 0.0 (silent) to 1.0 (loudest). Start low.'
  when: 'Ambient sound is not Off'
tts_emotion_enabled:
  label: 'Emotional modulation'
  tab: 'Engine & voice'
  hint: 'Adjusts tone and emphasis based on conversation context to sound more natural and empathetic.'
voice_stability:
  label: 'Voice stability'
  tab: 'Engine & voice'
  hint: 'Consistency of voice across the call. Lower for livelier speech, higher for calmer, even speech. Range 0.0-1.0.'
voice_similarity:
  label: 'Voice similarity'
  tab: 'Engine & voice'
  hint: 'How closely output matches the source voice recording. Most relevant for cloned voices. Range 0.0-1.0.'
speech_speed:
  label: 'Speech speed'
  tab: 'Engine & voice'
  hint: 'How fast the assistant speaks. Slower (0.7-0.9) for complex content, faster (1.1-1.2) for short operational calls. Range 0.7-1.2, default 1.0.'
transcriber_provider_id:
  label: 'Transcriber provider'
  tab: 'Engine & voice'
  hint: "Speech-to-text provider for transcribing the caller's voice. Choose accuracy vs latency based on your use case. Pipeline mode only."
  when: 'Engine type is Pipeline'
endpoint_type:
  label: 'Endpoint type'
  tab: 'Engine & voice'
  hint: 'How the assistant detects when the caller has finished speaking.'
  when: 'Engine type is Pipeline'
  values:
    -
      value: vad
      label: 'Voice activity detection'
      text: 'Detects silence to determine when the caller has stopped speaking.'
    -
      value: ai
      label: 'AI turn detection'
      text: 'Uses AI to understand when the caller has finished their thought, even during brief pauses.'
endpoint_sensitivity:
  label: 'Endpoint sensitivity (s)'
  tab: 'Engine & voice'
  hint: 'Pause after the last word before the assistant responds. Lower = faster, higher = more patience for natural pauses. Range 0-5, default 0.5.'
  when: 'Engine type is Pipeline'
enable_noise_cancellation:
  label: 'Noise cancellation'
  tab: 'Engine & voice'
  hint: "Filters the caller's background noise for clearer transcription. Disable if voices sound cut off or distorted."
famulor_model_id:
  label: 'LLM model'
  tab: 'Engine & voice'
  hint: "AI language model powering the assistant's responses. Fast models suit high-volume calls, reasoning models suit complex decisions."
fillers:
  label: 'Filler audios'
  tab: Behavior
  hint: 'Short sounds ("mhm", "okay") played while the AI processes a response, preventing unnatural silence. Pipeline mode only.'
  when: 'Engine type is Pipeline'
llm_temperature:
  label: 'LLM temperature'
  tab: Behavior
  hint: 'How varied the responses are. Low (0.0-0.3) for stable, predictable business calls. High (0.7-1.0) for more creative conversations. Default 0.1.'
allow_interruptions:
  label: 'Allow interruptions'
  tab: Behavior
  hint: 'When on, the assistant stops speaking the moment the caller starts. Cannot be disabled in Speech-to-speech and Dualplex modes.'
interrupt_sensitivity:
  label: 'Interrupt sensitivity (s)'
  tab: Behavior
  hint: 'How easily the assistant stops when interrupted. Lower = harder to interrupt, higher = more responsive. Range 0-5, default 0.5.'
  when: 'Engine type is Pipeline'
min_interrupt_words:
  label: 'Min interrupt words'
  tab: Behavior
  hint: 'Minimum caller words to register as an interruption, preventing background noise from cutting off the assistant. Range 0-10. Leave empty to disable.'
  when: 'Engine type is Pipeline'
reengagement_interval:
  label: 'Re-engagement interval (s)'
  tab: Behavior
  hint: 'Seconds of caller silence before the assistant prompts again (e.g. "Are you still there?"). Range 7-600, default 8.'
reengagement_prompt:
  label: 'Re-engagement prompt'
  tab: Behavior
  hint: 'Custom re-engagement text. Leave empty to use the language default.'
max_duration:
  label: 'Max call duration (s)'
  tab: Behavior
  hint: 'Hard limit on call length. The call ends automatically at this point. Range 20-1200, default 300 (5 minutes).'
max_silence_duration:
  label: 'Max silence duration (s)'
  tab: Behavior
  hint: 'Call ends if the caller is silent for this long. Range 1-360, default 30.'
ringing_time:
  label: 'Ringing time (s)'
  tab: Behavior
  hint: 'How long the phone rings before the call is marked unanswered. Keep low to avoid hitting voicemail on outbound calls. Range 1-60, default 30.'
end_call_on_voicemail:
  label: 'End call on voicemail'
  tab: Behavior
  hint: 'Ends the call automatically when an answering machine is detected, avoiding unnecessary AI processing costs. Recommended for outbound agents.'
record:
  label: 'Record calls'
  tab: Behavior
  hint: 'Records calls for quality and analysis. Ensure compliance with local consent regulations before enabling.'
max_initial_silence_duration:
  label: 'Max initial silence (s)'
  tab: Behavior
  hint: 'Ends the call if nobody speaks at the start - prevents the agent talking to voicemail. Leave empty to disable. Range 1-120.'
voice_mail_message:
  label: 'Voicemail message'
  tab: Behavior
  hint: 'Message left when the agent reaches voicemail (e.g. company name + callback request). Leave empty to hang up silently. Max 1000 characters.'
  when: 'End call on voicemail is on'
call_transfers:
  label: 'Call transfers'
  tab: Tools
  hint: 'Define when the AI assistant should transfer a call to a real person. Each rule specifies a trigger condition and a destination.'
warm_call_transfers:
  label: 'Warm call transfers'
  tab: Tools
  hint: 'Warm transfers keep the caller on hold while the assistant briefs a supervisor, then connects the two. Use this when the supervisor needs context before taking the call.'
end_call_enabled:
  label: 'Allow the assistant to end calls'
  tab: Tools
  hint: 'Let the assistant hang up on its own when the conversation is complete. Describe the exact conditions so it neither lingers nor cuts the caller off too early.'
end_call_description:
  label: 'When to end the call'
  tab: Tools
  hint: 'Instructions for the assistant describing the conditions under which it should end the call.'
  when: 'Allow the assistant to end calls is on'
appointment_scheduling:
  label: 'Appointment scheduling'
  tab: Tools
  hint: 'Let the assistant book meetings on your calendar during the call. Add one entry per calendar - describe when each should be used.'
wait_for_customer:
  label: 'Wait for customer to speak first'
  tab: 'Prompt & tools'
  hint: 'When on, the assistant waits silently after connect for the customer to speak first. Use for inbound support and reception scenarios.'
initial_message:
  label: 'Initial message'
  tab: 'Prompt & tools'
  hint: 'Opening line the assistant says when answering. Keep brief, introduce purpose, and support {variable_name} tokens. Max 200 characters.'
system_prompt:
  label: 'System prompt'
  tab: 'Prompt & tools'
  hint: "Defines the assistant's role, goals, and rules. Built-in templates are available via the ? icon. Be specific and concise - clear rules outperform long essays."
variables:
  label: 'Call variables'
  tab: 'Prompt & tools'
  hint: 'Pre-call data injected into the prompt and initial message via {variable_name} tokens - enables personalization (customer name, account number, etc.).'
post_call_evaluation:
  label: 'Post-call evaluation'
  tab: 'Post-call & chat'
  hint: 'When on, the AI analyzes the transcript after each call and extracts structured data for the webhook payload.'
post_call_schema:
  label: 'Post-call variables'
  tab: 'Post-call & chat'
  hint: 'Variables the AI extracts from each transcript. Each has a name (webhook key), type (String / True-False / Number), and a description guiding extraction.'
  when: 'Post-call evaluation is on'
is_webhook_active:
  label: 'Webhook enabled'
  tab: 'Post-call & chat'
  hint: 'Sends extracted call data to an external URL after each call. Use the magic-wand button to auto-fill the Cockpit webhook URL.'
webhook_url:
  label: 'Webhook URL'
  tab: 'Post-call & chat'
  hint: 'Endpoint that receives the post-call payload (extracted variables, transcript, optionally the recording URL).'
  when: 'Webhook enabled is on'
send_webhook_only_on_completed:
  label: 'Send only on completed'
  tab: 'Post-call & chat'
  hint: 'When on, skips the webhook for missed, abandoned, or timed-out calls - only fully completed calls trigger it.'
  when: 'Webhook enabled is on'
include_recording_in_webhook:
  label: 'Include recording'
  tab: 'Post-call & chat'
  hint: 'Adds the call recording URL to the webhook payload. Requires Record calls to be enabled.'
  when: 'Webhook enabled is on'
```
