Ctrl K
ring2all.com

Announcements Module Documentation

Table of Contents

  1. Module Overview (Technical)
  2. Module Overview (Commercial/Business)
  3. Module Overview (End User/Administrator)
  4. Configuration Fields Reference
  5. Destination Routing
  6. Common Scenarios & Examples
  7. Limitations & Important Notes
  8. Troubleshooting Tips
  9. Glossary

---

1. Module Overview (Technical)

What Are Announcements?

Announcements are audio playback elements that play a recorded message to callers and then optionally route to a destination. They're used for greetings, information messages, hold messages, or any pre-recorded content.

Architecture

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│                  Announcement Flow                              │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Call enters (via inbound route, IVR, etc.)                     │
│       │                                                         │
│       ▼                                                         │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │                 announcement.lua                         │   │
│  │                                                          │   │
│  │  1. Lookup announcement in public.announcements          │   │
│  │  2. Get recording path from public.voice_recordings      │   │
│  │  3. Answer call                                          │   │
│  │  4. Play audio (streamFile)                              │   │
│  │  5. Route to destination or hangup                       │   │
│  │                                                          │   │
│  └──────────────────────────────────────────────────────────┘   │
│       │                                                         │
│       ├── Has Destination? ────────────────────────────────►    │
│       │       Yes → Route to extension/IVR/queue/etc.          │
│       │                                                         │
│       └── No Destination ──────────────────────────────────►    │
│               Hangup (NORMAL_CLEARING)                          │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Key Tables

TablePurpose
public.announcementsAnnouncement definitions
public.voice_recordingsAudio file references

Key Files

FileDescription
admin/apps/web/src/modules/announcements/Frontend module
admin/apps/web/src/i18n/en/announcements.jsonTranslations
telephony/freeswitch/lua/main/xml_handlers/routing/announcement.luaMain handler
---

2. Module Overview (Commercial/Business)

Business Value

Announcements enable professional audio messaging:

Without AnnouncementsWith Announcements
No welcome messageProfessional greeting
Manual informationAutomated notices
No after-hours messageAfter-hours recording
Generic experienceBranded audio experience

Use Cases

  1. Welcome Greeting
- "Thank you for calling ABC Company"

- Play before IVR or queue

  1. After-Hours Message
- "Our office is closed. Leave a message..."

- Route to voicemail

  1. Holiday Notice
- "We are closed for the holiday..."

- Hangup or route to on-call

  1. Queue Position
- "You are caller #3 in line..."

- Continue to hold

  1. Legal Disclaimers
- "This call may be recorded..."

- Route to agent

Feature Highlights

FeatureBenefit
Audio PlaybackPlay any recording
Optional DestinationRoute after playback
Multiple ModulesRoute to extension, IVR, queue, etc.
Repeat OptionPlay multiple times
Interrupt OptionAllow DTMF skip
Post-DelayPause before routing
---

3. Module Overview (End User/Administrator)

What Can You Do?

  • Create named announcements
  • Link to audio recordings
  • Configure optional destination
  • Set playback options (repeat, interrupt)
  • Add post-playback delay
  • Choose transfer behavior

Administrator Workflow

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│              Creating an Announcement                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Tab: General                                                   │
│  ├─ Name: "Welcome Message"                                    │
│  ├─ Description: "Main greeting for callers"                   │
│  ├─ Recording: [Select] welcome.wav                            │
│  ├─ Destination Type: IVR                                      │
│  ├─ Destination: Main Menu                                     │
│  └─ Enabled: ✓                                                 │
│                                                                 │
│  Tab: Advanced Settings                                         │
│  ├─ Allow Interrupt with Keypress: Off                         │
│  ├─ Terminator Key: #                                          │
│  ├─ Pause After Playback (ms): 500                             │
│  ├─ Repeat Announcement: 1                                     │
│  ├─ Transfer Behavior: Immediate                               │
│  ├─ Announcement Mode: Play Once                               │
│  ├─ Play Beep Before Message: Off                              │
│  └─ Record Call: Off                                           │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Quick Tips

TIP
Short Messages: Keep announcements under 30 seconds for best experience.
TIP
Allow Skip: Enable keypress interrupt for returning callers.
CAUTION
Recording Required: Announcement must have a linked audio file.

---

4. Configuration Fields Reference

General Fields

FieldDescriptionExample
NameUnique identifierWelcome Message
DescriptionOptional notesMain greeting
RecordingAudio filewelcome.wav
EnabledAnnouncement activeOn/Off

Destination Fields

FieldDescription
Destination TypeModule to route to
Destination ValueSpecific target

Destination Types

TypeDescription
ExtensionRoute to extension
VoicemailRoute to voicemail
IVRRoute to IVR menu
ConferenceRoute to conference
QueueRoute to call queue
HangupTerminate call
ParkPark the call

Advanced Settings

FieldDescriptionDefault
Allow InterruptDTMF skip enabledOff
Terminator KeyKey to skip (# or )#
Pause After PlaybackDelay in ms0
Repeat AnnouncementTimes to play (1-5)1
Transfer BehaviorWhen to routeImmediate
Announcement ModePlay Once/Loop/BackgroundOnce
Beep Before MessageAlert beepOff
Record CallRecord sessionOff
---

5. Destination Routing

How Routing Works

After the announcement plays, the handler routes based on destination_module:

Lua
if destination_module == 'extension' then
    execute routing/extension.lua
elseif destination_module == 'ivr' then
    transfer to IVR
elseif destination_module == 'queue' then
    execute routing/queue.lua
elseif destination_module == 'voicemail' then
    transfer to voicemail
-- ... etc
else
    hangup
end

Supported Modules

ModuleHandler
extensionrouting/extension.lua
ivrTransfer to IVR
conferencerouting/conference.lua
ring_grouprouting/ring_group.lua
queuerouting/queue.lua
voicemailTransfer
direct_routeTransfer (public)
announcementrouting/announcement.lua
call_flowrouting/call_flow.lua
time_conditionrouting/time_condition.lua
languagerouting/language.lua
direct_dialrouting/direct_dial.lua
---

6. Common Scenarios & Examples

Scenario 1: Welcome + IVR

Announcement: "Welcome"
SettingValue
Recordingwelcome.wav
Destination TypeIVR
DestinationMain Menu
Flow:
  1. "Thank you for calling ABC Company"
  2. → Route to Main Menu IVR

Scenario 2: After-Hours + Voicemail

Announcement: "After Hours"
SettingValue
Recordingafter-hours.wav
Destination TypeVoicemail
DestinationGeneral Mailbox
Flow:
  1. "Our office is closed. Please leave a message..."
  2. → Route to General Voicemail

Scenario 3: Holiday Closure (No Destination)

Announcement: "Holiday"
SettingValue
Recordingholiday.wav
Destination TypeHangup
DestinationNORMAL_CLEARING
Flow:
  1. "We are closed for the holiday..."
  2. → Hangup

Announcement: "Recording Notice"
SettingValue
Recordingrecording-notice.wav
Destination TypeQueue
DestinationSupport Queue
Allow InterruptOff
Flow:
  1. "This call may be recorded for quality assurance..."
  2. → Route to Support Queue

---

7. Limitations & Important Notes

Technical Notes

NOTE
Case-Insensitive: Announcement lookup is case-insensitive.
WARNING
Recording Required: Without recording, playback is skipped.
WARNING
Call Must Be Answered: Audio requires answered call.

Best Practices

  1. Short Audio: Keep under 30 seconds
  2. Professional Quality: Use clear, well-recorded audio
  3. Always Test: Verify playback works correctly
  4. Set Destination: Configure where to route after
  5. Use Categories: Organize by purpose (greeting, info, legal)

---

8. Troubleshooting Tips

Common Issues

SymptomPossible CauseSolution
No audioMissing recordingUpload audio file
Wrong destinationModule misconfiguredCheck destination settings
Audio cut offCall not answeredEnsure call is answered
Not foundName mismatchVerify announcement name
No routingEmpty destinationSet destination or hangup

Diagnostic SQL

List announcements:

Sql
SELECT a.id, a.name, a.enabled, 
       a.destination_module, a.destination_data,
       r.file_path
FROM public.announcements a
LEFT JOIN public.voice_recordings r ON r.id = a.recording_id
WHERE a.domain_id = [domain_id];

FreeSWITCH Logs

Bash
# Check announcement playback
grep "announcement" /var/log/freeswitch/freeswitch.log
grep "streamFile" /var/log/freeswitch/freeswitch.log

---

9. Glossary

TermDefinition
AnnouncementAudio message playback element
RecordingAudio file to play
DestinationWhere to route after playback
TerminatorDTMF key to skip audio
Post-DelayPause after playback
Loop ModeContinuous repeat
---

Lua Script Status ✅

Already Correct

ScriptStatus
routing/announcement.lua✅ Uses public.announcements, public.voice_recordings
No Lua fixes needed!

---

Documentation last updated: January 2026*

AI Assistant

👋 Hello! I'm your Ring2All documentation assistant. I can help you find information about configuring and using the Ring2All PBX platform.

How can I help you today?