---
id: "freeswitch"
type: "component"
kind: "contact-center"
provider: "default"
category: "messaging"
docs: "https://developer.signalwire.com/freeswitch/applications/call-queues/"
url: "https://localhost:3000/catalogue/components/freeswitch"
---

# FreeSWITCH

Open source softswitch for voice, video and messaging with optional call center queues.

| | |
|---|---|
| Provider | [default](https://localhost:3000/catalogue?provider=default) |
| Kind | [Contact center](https://localhost:3000/catalogue/kinds/contact-center) |
| Category | Messaging |
| Official docs | [https://developer.signalwire.com/freeswitch/applications/call-queues/](https://developer.signalwire.com/freeswitch/applications/call-queues/) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `callCenterModule` | boolean | — | no | false | inherited |
| `callRecording` | boolean | — | no | false | **false** |
| `channelChat` | boolean | — | no | false | **false** |
| `channelVoice` | boolean | — | no | true | **true** |
| `emergencyCalling` | boolean | — | no | false | inherited |
| `managed` | boolean | — | no | false | **false** |
| `maxConcurrentContacts` | integer | — | no | — | inherited |
| `outboundDialing` | boolean | — | no | false | **false** |
| `queueStrategy` | enum | `longest-idle-agent`, `round-robin`, `top-down`, `agent-with-least-talk-time`, `agent-with-fewest-calls`, `sequentially-by-agent-order`, `random`, `ring-all` | no | "longest-idle-agent" | inherited |
| `recordingRetentionDays` | integer | — | no | — | inherited |
| `routing` | enum | `fifo`, `skills-based`, `attribute-based` | no | "fifo" | **"fifo"** |
| `videoSupport` | boolean | — | no | true | inherited |
| `webrtc` | boolean | — | no | false | inherited |

Bold values are the ones this component pins.

## Rules that apply · 0

No rule selects this kind or its category.

## Other products of the same kind · 13

- [Cloud Call Center](https://localhost:3000/catalogue/components/alibaba-cloud-call-center.md) `alibaba-cloud-call-center` — alibabacloud
- [Amazon Connect](https://localhost:3000/catalogue/components/aws-connect.md) `aws-connect` — aws
- [Asterisk](https://localhost:3000/catalogue/components/asterisk.md) `asterisk` — default
- [Generic contact center](https://localhost:3000/catalogue/components/contact-center.md) `contact-center` — default
- [Five9](https://localhost:3000/catalogue/components/five9.md) `five9` — default
- [FreePBX](https://localhost:3000/catalogue/components/freepbx.md) `freepbx` — default
- [Genesys Cloud CX](https://localhost:3000/catalogue/components/genesys-cloud.md) `genesys-cloud` — default
- [Kamailio](https://localhost:3000/catalogue/components/kamailio.md) `kamailio` — default
- [OpenSIPS](https://localhost:3000/catalogue/components/opensips.md) `opensips` — default
- [Talkdesk CX Cloud](https://localhost:3000/catalogue/components/talkdesk.md) `talkdesk` — default
- [3CX](https://localhost:3000/catalogue/components/threecx.md) `threecx` — default
- [Twilio Flex](https://localhost:3000/catalogue/components/twilio-flex.md) `twilio-flex` — default
- [Google Cloud CCaaS](https://localhost:3000/catalogue/components/google-ccaas.md) `google-ccaas` — gcp

## Use it in a design

```yaml
nodes:
  - { id: "freeswitch", component: "freeswitch" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# FreeSWITCH: self-hosted "open source platform for voice, video, and messaging", configured
# through SIP profiles, with WebRTC and call recording covered by the manual ("FreeSWITCH Users
# Manual"). Queueing is the optional mod_callcenter module, whose queue strategy defaults to
# longest-idle-agent and which rings agents through tiers ("Chapter 22: Queues: FIFO and Call
# Center"); recording of queue calls is not on unless the dialplan records the leg.
schemaVersion: "1"
type: "component"
id: "freeswitch"
kind: "contact-center"
provider: "default"
docs: "https://developer.signalwire.com/freeswitch/applications/call-queues/"
defaults:
  managed: false
  channelVoice: true
  channelChat: false
  routing: "fifo"
  callRecording: false
  outboundDialing: false
properties:
  queueStrategy:
    type: "enum"
    values: ["longest-idle-agent", "round-robin", "top-down", "agent-with-least-talk-time", "agent-with-fewest-calls", "sequentially-by-agent-order", "random", "ring-all"]
    default: "longest-idle-agent"
  callCenterModule:
    type: "boolean"
    default: false
  webrtc:
    type: "boolean"
    default: false
  videoSupport:
    type: "boolean"
    default: true
```

Human page: https://localhost:3000/catalogue/components/freeswitch
