Skip to content

Update macOS wiki to add Apple Silicon info and bring up to date and new macFI installer. #268

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 28 commits into from
Jun 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
dde66c6
Update index.mdx macOS wiki updates
MarioG-X Jun 18, 2025
a8ea46f
Update macOS-Testing-and-Diagnostics_13174550.mdx
MarioG-X Jun 18, 2025
0743ac6
Update macOS-24x7-Preparation_13174585.mdx
MarioG-X Jun 18, 2025
bdf7e52
Update macOS-Customization_9634513.mdx
MarioG-X Jun 18, 2025
0b1e3c5
Update macOS-Testing-and-Diagnostics_13174550.mdx
MarioG-X Jun 18, 2025
ad6ff06
Update macOS-Homebrew-Installation_72253508.mdx
MarioG-X Jun 18, 2025
e54baad
Update macOS-Homebrew-Installation_72253508.mdx
MarioG-X Jun 18, 2025
7979e82
Update macOS-Homebrew-Installation_72253508.mdx
MarioG-X Jun 18, 2025
2d9d2c6
Update macOS-Homebrew-Installation_72253508.mdx
MarioG-X Jun 18, 2025
35ea80e
Update index.mdx installation
MarioG-X Jun 19, 2025
0a820ea
Update macOS-Homebrew-Installation_72253508.mdx
MarioG-X Jun 19, 2025
3bbb618
Update macOS-Manual-Installation_13174557.mdx
MarioG-X Jun 19, 2025
41c9521
Update index.mdx
MarioG-X Jun 19, 2025
c1ee1c5
Update macOS-24x7-Preparation_13174585.mdx
MarioG-X Jun 19, 2025
0c4ffa0
Update macOS-Customization_9634513.mdx
MarioG-X Jun 19, 2025
7d1ad02
Update macOS-Testing-and-Diagnostics_13174550.mdx
MarioG-X Jun 19, 2025
a9df961
Update macOS-Email-Voicemail_13174591.mdx
MarioG-X Jun 19, 2025
9ec0c8c
Add files via upload
MarioG-X Jun 19, 2025
f5b92d6
Rename macOS FreeSWITCH Installer.zip to macOS-FreeSWITCH-Installer.zip
MarioG-X Jun 19, 2025
2749689
Update macOS-macFI-Installation_1966731.mdx
MarioG-X Jun 19, 2025
4dce7df
Merge branch 'main' into main
Devon-White Jun 20, 2025
4b4dbde
Update index.mdx install fix <br />
MarioG-X Jun 20, 2025
e52de60
Update index.mdx fix <br> to <br/>
MarioG-X Jun 20, 2025
21a8231
Update index.mdx Fix heading
MarioG-X Jun 21, 2025
69a7b82
Update index.mdx change title from options to methods
MarioG-X Jun 21, 2025
0a4c407
Update macOS-Email-Voicemail_13174591.mdx add xml
MarioG-X Jun 22, 2025
b063d58
Update macOS-24x7-Preparation_13174585.mdx fix numbers
MarioG-X Jun 23, 2025
71667b7
Update macOS-Manual-Installation_13174557.mdx missing /opt etc.
MarioG-X Jun 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions docs/FreeSWITCH-Explained/Installation/macOS/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@

## About

This is a complete guide for installing FreeSWITCH™ and its prerequisites on macOS, and for establishing 24x7 operation.
This is a complete guide for installing FreeSWITCH™ on macOS, and for establishing 24x7 operation.

****What Is FreeSWITCH™?**
**[FreeSWITCH™](http://en.wikipedia.org/wiki/FreeSWITCH)** is an **[application](https://en.wikipedia.org/wiki/Application%5Fsoftware)** that manages **[VOIP](http://en.wikipedia.org/wiki/Voip)** phones and connections to **[ITSPs (Internet Telephony Service Providers)](http://en.wikipedia.org/wiki/ITSP).**

**What Can You Do With FreeSWITCH™?**
It's powerful customization provides our incoming calls to do this: Normal ringing is replaced by: “Hi Pam, hold on while our phones ring", phones ring and Pam hears music, after 25 seconds: “hold on Pam while our iPhones ring", internal phones keep ringing and multiple iPhones ring, if no answer: “sorry we missed you Pam, please leave a message", Pam’s voicemail is taken and emailed to multiple iPhones!
It's powerful customization provides our system to do this: Incoming callers normal ringing is replaced by: “Hi Pam, hold on while our phones ring", phones ring and Pam hears music, after 25 seconds: “hold on Pam while our iPhones ring", internal phones keep ringing and multiple iPhones ring, if no answer: “sorry we missed you Pam, please leave a message", Pam’s voicemail is taken and emailed to multiple iPhones!

**Who Are These Pages For?**
This document is for people who want to install FreeSWITCH™ on macOS and are not familiar with Linux/Unix commands and directories.
Expand All @@ -20,7 +20,7 @@ Here is a list of the macOS Wiki pages:

| Description | Page |
| -- | -- |
| FreeSWITCH™ macOS Installation options | [macOS Installation](./macOS-Installation/index.mdx#about)|
| FreeSWITCH™ macOS Installation methods | [macOS Installation](./macOS-Installation/index.mdx#about)|
| Automated installation utility|[macOS macFI Installation](./macOS-Installation/macOS-macFI-Installation_1966731.mdx#about)|
| Manual installation using Terminal | [macOS Manual Installation](./macOS-Installation/macOS-Manual-Installation_13174557.mdx#about)|
| Install Homebrew FreeSWITCH version | [macOS Homebrew Installation](./macOS-Installation/macOS-Homebrew-Installation_72253508.mdx#about)|
Expand All @@ -43,6 +43,7 @@ FreeSWITCH™ is tested and runs 24x7 on a [headless](macOS-Customization_963451
**macOS Wiki History**
Major changes occurred:

* June 19, 2025 - All pages updated to add Apple Silicon information
* May 14, 2022 - Created "macOS Homebrew Installation" page
* March 12, 2017 - Created "Manual Installation", "Testing and Diagnosis", "24x7 Preparation", "Email Voicemails" split from other pages
* October 18, 2015 - Split installation and customization pages, combine installation sections, updated for FreeSWITCH™ 1.6, OS X 10.11 and Xcode 7, archive OS X 10.6, 10.7 and 10.8
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@

# macOS 24x7 Preparation


## About

This section describes how to prepare macOS for running FreeSWITCH™ 24x7\. It is part of the FreeSWITCH™ [macOS](./index.mdx#about) documentation.
This section describes how to prepare macOS for running [FreeSWITCH](https://en.wikipedia.org/wiki/FreeSWITCH)™ 24x7\. It is part of the FreeSWITCH™ [macOS](./index.mdx#about) documentation.

* 1 [Why 24x7 Operation?](#why-24x7-operation)
* 2 [Create Dummy Command File](#create-dummy-command-file)
Expand Down Expand Up @@ -45,11 +43,13 @@ You can perform all editing using Textedit, however, you should become familiar

Some steps in this section require a command script file. This is a file that you can double click to run in the Terminal application. More importantly, these files are also used for automatic startup functions.

Command files are text files containing Terminal commands with the file's permission changed to become executable. Rather than repeat this process for each file, create a dummy command file that will serve as a skeleton and retain its permissions when copied. The files are saved in /usr/local/freeswitch-scripts but you can place them anywhere. Once a command text file is created it can be opened and saved in Textedit or Xcode, whatever is your preference, without any extra steps.
Command files are text files containing Terminal commands with the file's permission changed to become executable. Rather than repeat this process for each file, create a dummy command file that will serve as a skeleton and retain its permissions when copied. The files are saved in /opt or /usr/local/ but you can place them anywhere. Once a command text file is created it can be opened and saved in Textedit or Xcode, whatever is your preference, without any extra steps.

* Create the /usr/local/freeswitch-scripts directory:
* Create the freeswitch-scripts directory:
```xml
mkdir /usr/local/freeswitch-scripts
mkdir /opt/freeswitch-scripts # On Apple Silicon
or
mkdir /usr/local/freeswitch-scripts # On x86
```
1. Start Textedit
2. Paste the two lines below into the empty document:
Expand All @@ -62,20 +62,22 @@ Make sure they are saved as text:

1. Pull down the Format menu
2. Select Make Plain Text, if the default for saving text is already Plain Text, this step is not needed.
3. Save the file in /usr/local/freeswitch-scripts as dummy.command. While the file window is open press command+shift+.(period) to view hidden files.
3. Save the file in /opt/freeswitch-scripts or /usr/local/freeswitch-scripts as dummy.command. While the file window is open press command+shift+.(period) to view hidden files.
4. You may see examples with #!/bin/sh as the first line, either will work in any of these scripts.


Start the Terminal application, switch to the new directory and enter the chmod command to make the file executable:

```xml
cd /usr/local/freeswitch-scripts
cd /opt/freeswitch-scripts # On Apple Silicon
or
cd /usr/local/freeswitch-scripts # On x86
chmod +x dummy.command
```

## Create the FreeSWITCH™ Command Script

The command to start FreeSWITCH™ is /usr/local/freeswitch/bin/freeswitch -parm1 -parm2…. You can start the freeswitch program using this command. However, it's much better to use a [bash](http://en.wikipedia.org/wiki/Bash%5F%28Unix%5Fshell%29) [script](http://en.wikipedia.org/wiki/Script%5F%28computing%29) which starts FreeSWITCH™.
The command to start FreeSWITCH™ is /opt/freeswitch/bin/freeswitch or /usr/local/freeswitch/bin/freeswitch -parm1 -parm2…. You can start the freeswitch program using this command. However, it's much better to use a [bash](http://en.wikipedia.org/wiki/Bash%5F%28Unix%5Fshell%29) [script](http://en.wikipedia.org/wiki/Script%5F%28computing%29) which starts FreeSWITCH™.

Consider these requirements for a 24x7 phone system:

Expand Down Expand Up @@ -175,6 +177,8 @@ if [[ $\{OS_Version} == 10.7 ]] | [[ $\{OS_Version} == 10.8 ]] | [[ $\{OS_Versio
fi
# Start freeswitch - do NOT use nohup and & since FS starts a new pid and the wrong one would be returned in check_fs
writelog "freeswitch-startup - FreeSwitch is being started, script will wait until FreeSwitch is stopped"
/opt/freeswitch/bin/freeswitch -nc -nonat
-----OR-----OR-----OR----->
/usr/local/freeswitch/bin/freeswitch -nc -nonat
# Now wait for freeswitch to end, otherwise Launchd will restart this script when it ends
check_fs
Expand Down Expand Up @@ -241,6 +245,8 @@ First, we create a "property list" file, also known as a ["plist"](http://en.wik
<string>org.freeswitch.freeswitch</string>
<key>ProgramArguments</key>
<array>
<string>/opt/freeswitch-scripts/fs-startup.command</string>
-----OR-----OR-----OR----->
<string>/usr/local/freeswitch-scripts/fs-startup.command</string>
</array>
</dict>
Expand All @@ -263,7 +269,7 @@ Now check if FreeSWITCH™ is running by either:

1. Test your phones
2. Launch Activity Monitor
3. In Terminal, run /usr/local/freeswitch/bin/freeswitch-cli
3. In Terminal, run /opt/freeswitch/bin/freeswitch-cli or /usr/local/freeswitch/bin/freeswitch-cli

If FreeSWITCH™ is running, you can shut it down by issuing:

Expand Down Expand Up @@ -295,6 +301,8 @@ Start Terminal and enter this command to create the freeswitch-shutdown.command
Open the file in the editor and add the following line as the second line of the file (between the existing two lines):

```xml
/opt/freeswitch/bin/freeswitch-cli -x "shutdown"
or
/usr/local/freeswitch/bin/freeswitch-cli -x "shutdown"
```

Expand Down Expand Up @@ -328,6 +336,8 @@ Next, create the plist file for Launchd:
<string>org.freeswitch.shutdown</string>
<key>ProgramArguments</key>
<array>
<string>/opt/freeswitch-scripts/freeswitch-shutdown.command</string>
-----OR-----OR-----OR----->
<string>/usr/local/freeswitch-scripts/freeswitch-shutdown.command</string>
</array>
<key>RunAtLoad</key>
Expand Down Expand Up @@ -371,6 +381,8 @@ Create the freeswitch-cli.command file in directory freeswitch-scripts:
Next, add a line containing the command needed to start freeswitch-cli. Edit the new file and add the following line as the second line of the file (between the existing two lines):

```xml
/opt/freeswitch/bin/freeswitch-cli
or
/usr/local/freeswitch/bin/freeswitch-cli
```

Expand Down Expand Up @@ -401,12 +413,14 @@ Start Terminal and enter this command to create the freeswitch-logseg.command fi
Open the file in the editor and add the following line as the second line of the file (between the existing two lines).

```xml
kill -HUP `cat /opt/freeswitch/run/freeswitch.pid`
or
kill -HUP `cat /usr/local/freeswitch/run/freeswitch.pid`
```

Save the file, remember it's already executable.

Make sure FreeSWITCH™ is up and double click the file to test it. View the /usr/local/freeswitch/log directory, if the log was segmented proceed with the next steps.
Make sure FreeSWITCH™ is up and double click the file to test it. View the /opt/freeswitch/log or /usr/local/freeswitch/log directory, if the log was segmented proceed with the next steps.

Set Security and Test

Expand Down Expand Up @@ -434,7 +448,9 @@ Next, the plist file Launchd requires is created:
<string>org.freeswitch.logseg</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/freeswitch-scripts/freeswitch-logseg.command</string>
<string>/opt/freeswitch-scripts/freeswitch-logseg.command</string>
-----OR-----OR-----OR----->
<string>/usr/local/freeswitch-scripts/freeswitch-logseg.command</string>
</array>
<key>RunAtLoad</key>
<false/>
Expand Down Expand Up @@ -473,6 +489,8 @@ Start Terminal and enter this command to create the freeswitch-logclr.command fi
Open the file in the editor and add the following line as the second line of the file (between the existing two lines). Notice that mtime is set so files older than 14 days are deleted. You can change this to any valid mtime value.

```xml
/usr/bin/find /opt/freeswitch/log -name "freeswitch.log.*" -mtime +14 -delete
or
/usr/bin/find /usr/local/freeswitch/log -name "freeswitch.log.*" -mtime +14 -delete
```

Expand Down Expand Up @@ -506,7 +524,9 @@ Next, the plist file Launchd requires is created:
<string>org.freeswitch.logclr</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/freeswitch-scripts/freeswitch-logclr.command</string>
<string>/opt/freeswitch-scripts/freeswitch-logclr.command</string>
-----OR-----OR-----OR----->
<string>/usr/local/freeswitch-scripts/freeswitch-logclr.command</string>
</array>
<key>RunAtLoad</key>
<false/>
Expand Down Expand Up @@ -549,6 +569,8 @@ Open the file in an editor and replace the text with the following lines that wi

```xml
#!/bin/sh
logfile="/opt/freeswitch/log/freeswitch.log"
or
logfile="/usr/local/freeswitch/log/freeswitch.log"
mdate=$(GetFileInfo -m $logfile)
newname=$logfile"-"${mdate:6:4}"-"${mdate:0:2}"-"${mdate:3:2}"-"${mdate:11:2}"-"${mdate:14:2}"-last"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@

# macOS Customization



## About

This section describes how to customize macOS and FreeSWITCH™ to provide additional benefits. It is part of the FreeSWITCH™ [macOS](./index.mdx#about) documentation.
This section describes how to customize macOS and [FreeSWITCH](https://en.wikipedia.org/wiki/FreeSWITCH)™ to provide additional benefits. It is part of the FreeSWITCH™ [macOS](./index.mdx#about) documentation.

* 1 [Configuration Introduction](#configuration-introduction)
* 2 [24x7 Operation](#24x7-operation)
Expand All @@ -22,7 +20,7 @@ This section describes how to customize macOS and FreeSWITCH™ to provide addit

## Configuration Introduction

Read [Configuring FreeSWITCH](../../Configuration/Configuring-FreeSWITCH/index.mdx#set) to learn about the various configuration files and "poke around" the sample configuration in the /usr/local/freeswitch/conf folder. To setup the gateway to your ITSP and dialplans so you can make and receive calls these files require changing:
Read [Configuring FreeSWITCH](../../Configuration/Configuring-FreeSWITCH/index.mdx#set) to learn about the various configuration files and "poke around" the sample configuration in the /opt/freeswitch/conf or /usr/local/freeswitch/conf folder. To setup the gateway to your ITSP and dialplans so you can make and receive calls these files require changing:

* Gateway to your ITSP in conf/sip\_profiles
* User extensions in conf/directory/default
Expand Down Expand Up @@ -99,7 +97,7 @@ If you have a headless Mac but don't have another one to use for screen or file

## Invisible Files and Directories

macOS hides many Unix directories and files from the finder and Terminal app. You won't be able to view /usr or other hidden directories without special commands or extra steps. Here are some options to allow you to see hidden files:
macOS hides many Unix directories and files from the finder and Terminal app. You won't be able to view /opt, /usr or other hidden directories without special commands or extra steps. Here are some options to allow you to see hidden files:

### Scripts and Widgets

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@

# macOS Email Voicemail



## About

This section describes how to customize macOS and FreeSWITCH™ to send voicemail files as emails automatically. It is part of the FreeSWITCH™ [macOS](./index.mdx#about) documentation.
This section describes how to customize macOS and [FreeSWITCH](https://en.wikipedia.org/wiki/FreeSWITCH)™ to send voicemail files as emails automatically. It is part of the FreeSWITCH™ [macOS](./index.mdx#about) documentation.

* 1 [Email Voicemail to an iPhone](#email-voicemail-to-an-iphone)
* 2 [How This Works](#how-this-works)
Expand Down Expand Up @@ -44,7 +41,7 @@ Before editing files the correct parameters must be determined. The process is n

**fromname** - The email account name of fromdomain the email is sent from. The example uses "freeswitch".

**frompw **- The password for the fromname email account. The example uses "SECRET".
**frompw** - The password for the fromname email account. The example uses "SECRET".

**toemail** - The target complete email address the email to be sent to. The example uses [email protected].

Expand Down Expand Up @@ -170,10 +167,21 @@ If everyones voicemail are to go to a single common email, you can optionally ma

Edit voicemail.xml and change the line below, make sure to use the valid email account used in the passwords file above:

Original: \<param name="email-from" value="\$\{voicemail_account}@$\{voicemail_domain}"/>
Replacement: \<param name="email-from" value="[email protected]"/>

**Original**:
```xml
<param name="email-from" value="${voicemail_account}@${voicemail_domain}"/>
```
**Replacement**:
```xml
<param name="email-from" value="[email protected]"/>
```
This voicemail templates also required editing. Change the first line in the conf/voicemail.tpl and notify-voicemail.tpl templates:

Original: From: "\$\{voicemail_caller_id_name}" \<\$\{voicemail_caller_id_number}@\$\{voicemail_domain}>
Replacement: From: "$\{voicemail_caller_id_name}" \<[email protected]>
**Original**:
```xml
From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}@${voicemail_domain}>
```
**Replacement**:
```xml
From: "${voicemail_caller_id_name}" <[email protected]>
```
Loading