# Hang up

**Call handling - Hang up** is when the agent is *done*. When a human should take over, that is [Transfer](https://docs.voicelogica.ai/telephony/transfer/). Mixing the two is how callers get cut off instead of handed off.

The page explains it as: when and how calls end - a question fully answered, silence from the caller, or a hard time limit.

  <ShotPlaceholder
    src="/assets/agent-configuration/hang-up.png"
    name="hang-up"
    alt="Hang up with automatic ending, reasons, and duration limit"
    capture="Call handling - Hang up overview."
  />

Automatic ending uses **End Call Reasons**. **Call Duration Limit** is a separate safety net with its own toggle and a **Maximum call duration** control (a duration picker, not a free slider).

## First setup - a clean goodbye

1. **Turn Enable Automatic Call Ending on**

   When on: "The agent ends calls automatically based on the conditions below."
   When off: End Call Reasons are hidden and calls will not end from those reasons. Your reasons stay saved and come back when you turn this on again. **Call Duration Limit** can still stay on as a hard cap.

2. **Keep or rewrite the onboarding reasons**

   Onboarding already adds several reasons (for example `call_completed`, `no_additional_help`, `issue_resolved`). Each row shows whether the farewell is **AI Generated** and how many **interruption(s) allowed**.

   Open the pencil on a reason. A good reason matches something a caller *says or confirms* - they confirm they do not need anything else. A bad reason is a vibe - "when done," "when it feels finished." Vague reasons hang up on a pause.

   Empty list + automatic ending on = **Required** will stop you. Add one specific reason with **+ Add reason**, or turn the master switch off.

     <ShotPlaceholder
       src="/assets/agent-configuration/hang-up-reason.png"
       name="hang-up-reason"
       alt="Manage End Call Reasons editor"
       capture="Hang up reason editor modal."
     />

3. **Edit the reason fields**

   The editor is **Manage End Call Reasons**:

- **Reason** (required) — The reason name (for example call_completed).
- **AI Generated** — When checked, the farewell is generated from your prompt. Right for almost every reception line.
- **Static Farewell Message** — Use the exact same sentence every time - only when legal or brand needs a fixed script.
- **Farewell prompt** — The prompt (or static text) used when ending the call. Keep it short.
- **Goodbye interruptions allowed** — How many times the caller can interrupt the goodbye and keep the call going before the agent hangs up anyway. **0** hangs up immediately even if the caller speaks. Default is **1**.

   Click **Update** to save the reason, or **Cancel** to close without changing it.

4. **Set Call Duration Limit as a ceiling, not a target**

   Turn **Call Duration Limit** on. Set **Maximum call duration** (for example **5 minutes**). The call ends after this time even if they are still talking.

   Demo plans show: **Demo plans are capped at 5 minutes. You can set a longer limit - the backend will still end the call at 5 minutes.**

5. **Try this agent**

   Ask one question, say you are done, and listen. If it cuts you off mid-thought, the reason is too loose - rewrite it. If it chats forever after goodbye, the reason never matched - add the phrase you actually used.

## Add a reason later

**+ Add reason** when a real call ended badly (agent stayed on after "thanks, bye," or hung up during a long name). Name the reason after the situation, write the prompt in the language of your calls, save with **Update**, then replay that scenario.

Delete a reason that fires on pauses. Do not delete every reason and leave automatic ending on.

## Troubleshooting

**Required wants end-call reasons**

Automatic ending is on and the list is empty. Add one specific reason, or turn **Enable Automatic Call Ending** off (keep **Call Duration Limit** on if you still want a hard cap).

**The call died at five minutes**

You are on Demo, or **Maximum call duration** is five minutes. On Demo the backend still ends at five minutes even if you pick a longer value. Upgrade if you need longer live calls; for tests, wrap up sooner.

**The agent hung up instead of transferring**

The wrap-up reason matched before Transfer did. Make the hang-up reason require a confirmed "nothing else," and put transfer phrases on [Transfer](https://docs.voicelogica.ai/telephony/transfer/), not here.

## Next Steps

[Transfer](https://docs.voicelogica.ai/telephony/transfer/) - [Advanced](https://docs.voicelogica.ai/agent-configuration/advanced-config/) (talk-over / silence) - [Call results](https://docs.voicelogica.ai/agent-configuration/call-results/)
