Repository navigation
Audio
Everything on this page lives in Settings › Audio, Settings › Codecs and Settings › Network. Changes apply immediately; a few network values need an engine restart and say so.
| Row | Meaning |
|---|---|
| Microphone | Popup with every input device plus System default; a live level meter next to it (green segments, the top one yellow near clipping) shows that the right microphone is picked. |
| Speaker | Popup with every output device plus System default. The test tone is in the Audio test group below. |
| Ringtone device | Output for the ringtone only: "Ring through the speakers even when a headset is used for calls." |
| Switch to a headset when it is connected | On by default. "Uses a newly connected headset for calls until it is unplugged." |
| Headset buttons | On by default. Answer, hang up, hold, mute and redial from the call controls of a USB headset; the secondary text reads "Connected: Jabra Evolve2 65" or "No headset with call controls". Details below. |
"System default" follows macOS Sound settings. If a chosen device is unplugged, MacroSIP falls back to the system default and switches back when it returns. The device list updates live.
When a device with both input and output appears (a USB or Bluetooth headset, AirPods), it becomes the microphone and the speaker for calls and a banner says "Switched to AirPods Pro" for four seconds. When it is removed the chosen devices come back ("Back to MacBook Pro Speakers", or "Back to the system default"). Picking a microphone or speaker by hand, or turning the switch off, ends the following. The ringtone device is never changed, and devices already present at start are not followed.
With Headset buttons on, a USB headset that exposes HID telephony controls drives the calls; the row names the connected device ("Connected: Jabra Evolve2 65") or reads "No headset with call controls". Turning the switch off releases the device.
| Control on the headset | Does |
|---|---|
| Hook (answer / end) | Answers the ringing call (the active one goes on hold); ends the active call. A plain hook button answers if a call rings, otherwise hangs up the current call. |
| Flash | Answers the waiting call, or swaps the held call in. |
| Hold | Holds or resumes the current call. |
| Mute | Toggles your microphone, like Mute in the call panel. |
| Redial | Calls the last outgoing number when no call is in progress. |
The headset's indicator lights follow the call when the device has them: off-hook while a call is answered or being placed, ring while one rings, mute while the microphone is off. A long first press cannot answer and hang up in one go.
Limitations: Bluetooth headsets whose buttons speak the hands-free profile (HFP) rather than HID are handled by macOS itself and are not supported; they never appear in this row. The media keys of a keyboard and a headset on the 3.5 mm jack have no telephony controls and are ignored. A headset that offers its controls only inside a consumer-control device may be refused by macOS; the log then reads "headset buttons: cannot open …" (see Troubleshooting).
Sound: Classic, Digital, Soft (built in) or Custom file… (WAV, AIFF, M4A, MP3); the popup then shows "Custom: office-bell.m4a". Play previews it. Volume is a slider from 0 to 100 %, applied live and used by the preview. Call waiting uses a short tone in the earpiece instead of the ringtone; see Calls.
Source in Settings › Audio › Hold music is what the caller hears while you hold the call: Built-in (a short looping melody, the default), Custom file… (WAV, AIFF, M4A, MP3 and anything else macOS can read; the popup then shows "Custom: office-hold.m4a") or Off (silence). "The caller hears this while on hold." A change applies at once, also to calls already on hold. A file that cannot be read keeps the previous source; the group footer and a banner say "The file could not be used: …". The music goes to the held call only: you do not hear it, and it is not written into recordings. See also Calls and, if the caller hears something else, Troubleshooting.
Four switches in Settings › Audio › Sound events, all off by default. "Short beeps on the speaker; the other side never hears them." The beeps play on the speaker chosen for calls and never reach a call or a recording.
| Switch | When the sound plays |
|---|---|
| Call connected and ended | Two rising beeps when a call connects (not after a resume from hold); two falling beeps when a call ends. Only for calls that were established: a missed or declined call and a failed outgoing attempt make no sound. |
| Dial pad key presses | The DTMF tone of the key pressed on the dial pad while no call is active ("+" has no tone). During a call the keypad sends DTMF to the other side instead. |
| New voicemail | Three beeps when an account's voicemail indicator reports more new messages than before (see Incoming calls). |
| Registration error and lost network | Two low beeps when a registration fails or the network path goes away, at most once every 10 seconds. |
Settings › Audio › Audio test has one row, Speaker and microphone: "Test plays two notes on the speaker for 2 seconds; the meter shows the microphone." Test plays two notes (660 and 880 Hz) on the speaker chosen in Devices (System default is the call output); a second press restarts it. If the chosen speaker has been unplugged, the tone plays on the system default instead. The meter beside the button is the live microphone level, the same as in the Microphone row. The tone never reaches a call or a recording.
Echo cancellation is on by default: "Turn off only when using a headset with its own echo cancellation."
With the default input and output devices the audio runs through the system.s voice-processing unit, which adds noise suppression and automatic gain control; there is no switch for it. When you choose a non-default device by hand the engine.s built-in echo canceller is used instead.
Settings › Codecs lists the codecs in order of preference; the order is what is offered in SDP. Drag rows or use Move up / Move down; unchecked codecs are never offered; at least one must stay enabled. Restore Defaults restores the order and turns on Opus, G.722 and PCMU only.
| Codec | Default | Sample rate | Bitrate |
|---|---|---|---|
| Opus | on | 48 kHz | 6–510 kbit/s |
| G.722 | on | 16 kHz | 64 kbit/s |
| PCMU (G.711 µ-law) | on | 8 kHz | 64 kbit/s |
| PCMA (G.711 A-law) | off | 8 kHz | 64 kbit/s |
| G.722.1 (Siren 7), G.722.1C (Siren 14) | off | 16 / 32 kHz | 16–32 / 24–48 kbit/s |
| GSM | off | 8 kHz | 13 kbit/s |
| iLBC | off | 8 kHz | 13–15 kbit/s |
| Speex 8 / 16 / 32 kHz | off | 8 / 16 / 32 kHz | 2–44 kbit/s |
"Wideband codecs (Opus, G.722, G.722.1, Speex 16 and 32 kHz) work only if the PBX supports them." There is no G.729. If your PBX offers only G.711 A-law, turn PCMA on.
- Packet-loss correction (FEC), on: "adds a little data so lost packets can be repaired; keep it on for Wi-Fi and mobile networks."
- Silence suppression (DTX), off: "sends nothing during pauses to save bandwidth, but can clip the start of a word; turn it on only when bandwidth is tight."
Both are disabled while Opus is unchecked and apply at once to new and renegotiated streams.
| Setting (Settings › Network) | Default | Why it matters for audio |
|---|---|---|
| STUN server | empty | Lets the engine learn its public address behind NAT. "Leave empty if you are not behind NAT." |
| Use ICE | on | "Finds a working media path through NAT. Uses the STUN server above." |
| Use rport | on | "Asks the server to reply to the address and port it sees. Helps behind NAT." |
| Keep-alive interval | 15 s | "Keeps NAT bindings open between registrations." |
| Port range (RTP) | start 4000, 1000 ports | "Audio uses this range. Each call needs two ports; 1024–65535." Open or forward this range on a firewall. Applies after the engine restart offered in the pane. |
| Local SIP port | 5060 | 0 picks a free port. Changing it re-registers all accounts. |
Transport (UDP/TCP/TLS) and SRTP are per account; see Accounts.
One-way audio almost always means RTP packets do not find their way back through a NAT or firewall while SIP signalling works.
- Check the microphone permission. If the call panel says "Microphone access is off", allow MacroSIP in System Settings › Privacy & Security › Microphone. After an update the permission is asked again (Installation).
- Check the devices. Watch the level meter in Settings › Audio while you speak; pick the device explicitly if "System default" points at the wrong one.
-
Behind NAT: set a STUN server (your provider's, or a public one such as
stun.example.org:3478) and keep Use ICE on, so the media is sent to an address the far side can reach. - Keep rport on so the server answers to the address and port it actually sees.
- Firewall: allow UDP on the local SIP port and on the RTP port range (4000–4999 by default).
- VPN or several interfaces: the engine re-registers and re-INVITEs calls on a network change; if audio still drops, lower the keep-alive interval.
Red quality bars and the "Poor connection" banner point at loss or jitter rather than NAT (Calls). The log file (Troubleshooting) shows the addresses and ports negotiated for each call.
User guide
- Installation
- Accounts
- Calls
- Incoming calls
- Contacts and call log
- Directory
- Quick keys
- Audio
- Settings
- Menu bar
- Troubleshooting
For developers
Русский
中文