Telephone is a free, open source messaging & event streaming project written in Swift and released under GPL-3.0. It has 1,169 GitHub stars, 233 forks and 132 open issues, and was last pushed 12 days ago. On this registry it ranks #14 of 16 tracked projects in Messaging & Event Streaming, with 5 head-to-head comparisons available.

What is Telephone?

Telephone is a GPL-3.0 licensed VoIP SIP softphone for macOS, written in Swift, that lets anyone whose phone line speaks SIP place and answer calls over the Internet or a company network from a Mac instead of a physical phone.

What it is

Telephone is a native Mac application that acts as a softphone for the SIP protocol. It is filed in this registry under Infrastructure & Operations / Messaging & Event Streaming, tagged with mac-app, phone-calls, sip, softphone and voip, and distributed as source from a repository written in Swift under the GPL-3.0 licence. The project has 1169 stars, 233 forks and 132 open issues, with its most recent push on 2026-09-09. It is developed behind a project homepage at 64characters.com/telephone.

The concrete problem it solves is hardware. If a phone line supports SIP, the user does not need a desk phone at all: the same line can be driven from a Mac anywhere there is a decent network connection. That replaces the physical handset on the desk with an application, which matters for people who move between offices, work from home, or simply do not want a second device sitting on the desk for voice traffic.

Key capabilities

  • Places and receives calls over SIP on the Internet or on a company network, using a Mac in place of a physical phone.
  • Ships as a native macOS application, matching the mac-app topic rather than a web or terminal client.
  • Supports the Opus codec optionally: it is built separately from opus-1.3.1 and passed to the SIP stack through the --with-opus configure flag, and can be omitted entirely.
  • Runs on the PJSIP stack built from pjproject-2.10, with three project-supplied patches applied before compilation: sock_qos_darwin.patch, os_core_unix.patch and coreaudio_dev.patch.
  • Uses LibreSSL 3.1.5 for TLS, fetched from the OpenBSD FTP archive together with a .asc signature that is checked with gpg --verify before extraction.
  • Exposes compile-time behaviour through pjlib/include/pj/config_site.h, including PJSUA_MAX_ACC 32, PJMEDIA_RTP_PT_TELEPHONE_EVENTS 101, PJ_DNS_MAX_IP_IN_A_REC 32, PJ_DNS_SRV_MAX_ADDR 32, PJSIP_MAX_RESOLVED_ADDRESSES 32, PJ_HAS_IPV6 1 and PJSIP_DONT_SWITCH_TO_TCP.
  • Builds as a universal binary targeting both arm64 and x86_64, with -mmacosx-version-min=15.6.

Who uses it and how

  • Individuals with a SIP-capable line who want to call from a Mac wherever a decent network connection exists, instead of carrying or maintaining a handset.
  • Staff on a company network, where the README explicitly names calls over the company network as a supported path alongside the public Internet.
  • Remote or home-office users on macOS who already have a SIP line provisioned by a provider and need only a client to drive it.
  • Builders who are willing to compile the third-party stack themselves, which allows tuning the Opus and PJSIP build, or dropping Opus if the codec is not needed.

Getting started

There is no package manager or image here: the documented route is to download and build the three dependencies — Opus, LibreSSL and PJSIP into ThirdParty/Opus, ThirdParty/LibreSSL and ThirdParty/PJSIP — apply the PJSIP patches, then build Telephone itself. A hosted project page is available at https://www.64characters.com/telephone.

How it compares

No list of paid products this project replaces is provided in the facts, and no comparable tools are named either. It therefore stands alone in this registry as the SIP softphone entry, with its nearest named neighbours being the libraries it links against — PJSIP, Opus and LibreSSL — rather than alternative applications.

When to use it — and when not to

A self-hoster must operate a full source build: Opus, LibreSSL and patched PJSIP, compiled with a minimum macOS version of 15.6, so anyone wanting a drop-in binary or a managed service should look elsewhere. The project explicitly does not accept pull requests for legal reasons, so contributing means commenting on issues rather than submitting patches, and with 132 open issues the tracker is the only visible support channel. Video is disabled at build time, so this is a voice client, not a conferencing tool.

project readme (upstream, from github) — read inline

Telephone is a VoIP SIP softphone for Mac. It allows you to make phone calls over the Internet or your company network. If your phone line supports SIP protocol, you can use it on your Mac instead of a physical phone anywhere you have a decent network connection.

Building

Opus

Opus codec is optional.

Download:

$ curl -O https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
$ tar xzvf opus-1.3.1.tar.gz
$ cd opus-1.3.1

Build and install:

$ ./configure --prefix=/path/to/Telephone/ThirdParty/Opus --disable-shared CFLAGS='-arch arm64 -arch x86_64 -Os -mmacosx-version-min=15.6'
$ make
$ make install

LibreSSL

Download:

$ curl -O https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.1.5.tar.gz
$ curl -O https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.1.5.tar.gz.asc
$ gpg --verify libressl-3.1.5.tar.gz.asc
$ tar xzvf libressl-3.1.5.tar.gz
$ cd libressl-3.1.5

Build and install:

$ ./configure --prefix=/path/to/Telephone/ThirdParty/LibreSSL --disable-shared CFLAGS='-arch arm64 -arch x86_64 -Os -mmacosx-version-min=15.6'
$ make
$ make install

PJSIP

Download:

$ curl -o pjproject-2.10.tar.gz https://codeload.github.com/pjsip/pjproject/tar.gz/2.10
$ tar xzvf pjproject-2.10.tar.gz
$ cd pjproject-2.10

Create pjlib/include/pj/config_site.h:

#define PJSIP_DONT_SWITCH_TO_TCP 1
#define PJSUA_MAX_ACC 32
#define PJMEDIA_RTP_PT_TELEPHONE_EVENTS 101
#define PJ_DNS_MAX_IP_IN_A_REC 32
#define PJ_DNS_SRV_MAX_ADDR 32
#define PJSIP_MAX_RESOLVED_ADDRESSES 32
#define PJ_HAS_IPV6 1

Patch:

$ patch -p0 -i /path/to/Telephone/ThirdParty/PJSIP/patches/sock_qos_darwin.patch
$ patch -p0 -i /path/to/Telephone/ThirdParty/PJSIP/patches/os_core_unix.patch
$ patch -p0 -i /path/to/Telephone/ThirdParty/PJSIP/patches/coreaudio_dev.patch

Build and install (remove --with-opus option if you don’t need Opus):

$ ./configure --prefix=/path/to/Telephone/ThirdParty/PJSIP --with-opus=/path/to/Telephone/ThirdParty/Opus --with-ssl=/path/to/Telephone/ThirdParty/LibreSSL --disable-video --disable-libyuv --disable-libwebrtc --host=arm-apple-darwin CFLAGS='-arch arm64 -arch x86_64 -Os -DNDEBUG -mmacosx-version-min=15.6' CXXFLAGS='-arch arm64 -arch x86_64 -Os -DNDEBUG -mmacosx-version-min=15.6'
$ make lib
$ make install

Build Telephone.

Contribution

For the legal reasons, pull requests are not accepted. Please feel free to share your thoughts and ideas by commenting on the issues.

Frequently asked questions

Is Telephone free to use?

Telephone is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Telephone do?

SIP softphone for Mac

What is Telephone written in?

Telephone is primarily written in Swift. Its source is publicly available at https://github.com/64characters/Telephone, and it has 1,169 GitHub stars.