Check out our latest project ✨ OpenChapter.io: free ebooks the way its meant to be 📖

Godot SIP

An asset by oceancucumber
The page banner background of a mountain and forest
Godot SIP hero image

Quick Information

0 ratings
Godot SIP icon image
oceancucumber
Godot SIP

Godot SIP is a native GDExtension addon that brings SIP VoIP calling to Godot projects using pjproject (PJSIP). It supports account registration, outgoing and incoming calls, call state events, and audio routing with configurable SIP transports (UDP/TCP/TLS).Built binaries are provided for desktop and Android (arm64), so you can integrate real-time voice calling into games and apps without maintaining your own SIP stack. The addon includes a demo scene/script to help you get connected quickly and adapt the flow to your own UI.Use cases include in-game voice dialing, secure support/call-center experiences, social communication features, and VoIP-enabled utility apps built with Godot. It is open source under the GPL-2.0 license.

Supported Engine Version
4.5
Version String
1.0.3
License Version
GPLv2
Support Level
community
Modified Date
2 hours ago
Git URL
Issue URL

Godot SIP GDExtension (Godot 4.x)

This repository scaffolds a GDExtension that will embed SIP calling via PJSIP.

Status

  • GDExtension skeleton is in place.
  • PJSIP (pjsua) integration is wired for init, registration, calls, and audio device selection.
  • Godot-facing API is active (SIPClient, SIPCall) with async signals from native callbacks.

License

This repository distributes binaries that link against pjproject (PJSIP).

  • Distributed addon binaries and releases are licensed under GPL-2.0-or-later.
  • The top-level LICENSE file contains the GNU GPL v2 text.
  • pjproject is included as a submodule in thirdparty/pjsip/pjproject and keeps its own upstream licensing and notices.

If you need non-GPL distribution terms, use an appropriate commercial licensing path for pjproject and adjust this repository's distribution model accordingly.

Build prerequisites

  • Godot 4.x headers via godot-cpp.
  • PJSIP built for your target platform(s).
  • CMake 3.22+ and a C++17 compiler.

Clone with submodules

This repository uses a git submodule for pjproject.

git clone --recurse-submodules <repo-url>

If you already cloned without submodules:

git submodule update --init --recursive

Quick build (all platforms)

  1. Build godot-cpp for your target platform and note its path.
  2. Build PJSIP and note its root path (contains pjlib/include).
  3. Configure + build this project:
cmake -S . -B build \
  -DGODOT_CPP_PATH=/path/to/godot-cpp \
  -DPJSIP_PATH=/path/to/pjsip
cmake --build build --config Debug

The build outputs to build/bin/ with Godot-style names like:

  • godot_sip.windows.debug.x86_64.dll
  • godot_sip.linux.release.x86_64.so
  • godot_sip.macos.release.arm64.dylib

Copy the resulting library to your Godot project bin/ folder and add godot_sip.gdextension to the project root.

Godot API

  • SIPClient
    • initialize(user_agent: String) -> bool
    • register_account(sip_uri, username, password, registrar) -> bool
    • make_call(destination_uri: String) -> SIPCall
    • hangup_call(call: SIPCall)
    • answer_call(call: SIPCall)
    • reject_call(call: SIPCall)
    • get_audio_input_devices() -> PackedStringArray
    • get_audio_output_devices() -> PackedStringArray
    • select_audio_input_device(name: String) -> bool
    • select_audio_output_device(name: String) -> bool
    • registration_state_changed(state) signal
    • incoming_call(call) signal
    • call_state_changed(call, state) signal

Demo Scene

  • Open demo/sip_demo.tscn in Godot.
  • Fill account fields, then click Register.
  • Enter destination URI and click Call.
  • Use Answer, Reject, Hang Up for active/incoming calls.
  • Pick audio devices from the dropdowns or refresh with Refresh Audio Devices.

Next steps

  • Add call hold/resume, transfer, and DTMF APIs.
  • Add transport options (TCP/TLS, custom SIP port, ICE/STUN/TURN config).
  • Add platform packaging scripts to copy the right .dll/.so/.dylib into a Godot project automatically.

Godot SIP is a native GDExtension addon that brings SIP VoIP calling to Godot projects using pjproject (PJSIP). It supports account registration, outgoing and incoming calls, call state events, and audio routing with configurable SIP transports (UDP/TCP/TLS).

Built binaries are provided for desktop and Android (arm64), so you can integrate real-time voice calling into games and apps without maintaining your own SIP stack. The addon includes a demo scene/script to help you get connected quickly and adapt the flow to your own UI.

Use cases include in-game voice dialing, secure support/call-center experiences, social communication features, and VoIP-enabled utility apps built with Godot. It is open source under the GPL-2.0 license.

Reviews

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
Godot SIP icon image
oceancucumber
Godot SIP

Godot SIP is a native GDExtension addon that brings SIP VoIP calling to Godot projects using pjproject (PJSIP). It supports account registration, outgoing and incoming calls, call state events, and audio routing with configurable SIP transports (UDP/TCP/TLS).Built binaries are provided for desktop and Android (arm64), so you can integrate real-time voice calling into games and apps without maintaining your own SIP stack. The addon includes a demo scene/script to help you get connected quickly and adapt the flow to your own UI.Use cases include in-game voice dialing, secure support/call-center experiences, social communication features, and VoIP-enabled utility apps built with Godot. It is open source under the GPL-2.0 license.

Supported Engine Version
4.5
Version String
1.0.3
License Version
GPLv2
Support Level
community
Modified Date
2 hours ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers