Jigasi SIP and PSTN Gateway Configuration: Complete Guide to Jigasi Telephony Gateway
Jitsi Meet works very well for browser-based video meetings, but sometimes you also need people to join a meeting using a normal telephone or SIP client. This is where a Jigasi telephony gateway becomes useful. Jigasi connects Jitsi Meet with SIP-based telephone systems, allowing users to make or receive audio calls through a SIP server. Jigasi is not itself a SIP server; it acts as a connector between Jitsi Meet and an existing SIP server or PBX.
For organizations already using VoIP, SIP trunks, PBX systems, or telephone numbers, this can make Jitsi Meet much more flexible. A user can stay in a Jitsi meeting while another participant joins through a phone call.
In this guide, we will explain how Jigasi works, what you need before installation, how to configure SIP, how PSTN connectivity fits into the setup, and how to troubleshoot common problems.
What Is a Jigasi Telephony Gateway?
Jigasi is a server-side application developed for connecting Jitsi Meet conferences with SIP clients.
In a normal Jitsi meeting, participants usually connect through a web browser or the Jitsi mobile application. With Jigasi, a telephone participant can also become part of the meeting.
A simple setup looks like this:
Telephone/PSTN → SIP Provider or PBX → Jigasi → Jitsi Meet → Meeting Participants
For example, imagine that your company has a Jitsi Meet server at:
https://meet.example.comYou also have a SIP account from your VoIP provider:
conference@example-sip.comJigasi registers that SIP account with the SIP server. When a Jitsi user makes an outgoing call, Jigasi handles the SIP side of the connection and connects the call to the Jitsi conference.
The official Jigasi project describes it as a gateway that connects SIP clients to Jitsi Meet conferences hosted by Jitsi Videobridge.
Jigasi Is Not a SIP Server
This is an important point.
Jigasi does not replace your PBX, SIP provider, or telephone network.
Instead, it works as a connector.
You normally need:
- Jitsi Meet
- Jitsi Videobridge
- Prosody/XMPP
- Jigasi
- A SIP server, PBX, or SIP provider
- A SIP account
- PSTN service if you want calls to normal telephone numbers
Your SIP provider or PBX is responsible for the connection to the telephone network.
How the Jigasi SIP Gateway Works
The easiest way to understand Jigasi is to look at the call flow.
Outgoing Call
Suppose a Jitsi participant wants to call:
+1 555 123 4567The process is roughly:
Jitsi Meet
↓
Jigasi
↓
SIP Server / PBX
↓
SIP Provider
↓
PSTN
↓
TelephoneJigasi receives the call request from the Jitsi environment and uses the configured SIP account to place the call.
Incoming Call
Incoming calls work in the opposite direction:
Telephone
↓
PSTN
↓
SIP Provider / PBX
↓
Jigasi
↓
Jitsi Meet ConferenceFor incoming calls, Jigasi can use information in the SIP INVITE to determine which Jitsi conference should receive the call. The Jigasi documentation also describes a default room setting that can be used when the incoming SIP request does not contain the expected conference header.
SIP vs PSTN: What Is the Difference?
Before configuring Jigasi, it helps to understand these two terms.
SIP
SIP stands for Session Initiation Protocol.
It is commonly used to start and manage VoIP calls.
A SIP account may look something like:
user123@example.comA SIP server or PBX can manage these calls.
PSTN
PSTN stands for Public Switched Telephone Network.
This is the traditional telephone network used to call normal phone numbers.
When you want a Jitsi user to call a mobile or landline number, you normally need a SIP provider or PBX that provides access to the PSTN.
So Jigasi itself does not magically provide telephone numbers.
A typical PSTN setup is:
Jitsi Meet
↓
Jigasi
↓
PBX / SIP Provider
↓
PSTN
↓
Phone NumberWhat You Need Before Configuring Jigasi
A working setup requires more than installing one package.
Before configuring Jigasi, prepare the following.
1. A Working Jitsi Meet Server
Your Jitsi Meet installation should already be working correctly.
For example:
https://meet.example.comTest normal browser-to-browser meetings before adding telephony.
This makes troubleshooting much easier.
2. A SIP Account
You need a SIP account from your SIP provider or PBX.
For example:
SIP Username: 1001@example-sip.com
Password: ********
SIP Server: example-sip.com
Port: 5060
Transport: UDPThe exact values depend on your provider.
3. PSTN Service
If you want to call regular telephone numbers, your SIP provider needs to support PSTN connectivity.
Your provider may give you:
- SIP credentials
- DID numbers
- Outbound calling
- Inbound calling
- SIP trunk information
- Supported codecs
- Authentication details
4. Network Access
Jigasi needs to communicate with:
- Jitsi/XMPP services
- SIP server
- SIP/RTP endpoints
Firewall and NAT configuration can have a major impact on call quality.
Jigasi Telephony Gateway Configuration
Now let’s look at the basic configuration.
The main configuration file used by Jigasi is:
/etc/jitsi/jigasi/sip-communicator.propertiesThe Jigasi project also provides a sample sip-communicator.properties file containing SIP account settings and other options.
Your exact installation path can vary depending on whether you installed Jigasi from packages, source, or a container.
Configure the SIP Account
A basic SIP account configuration looks like this:
net.java.sip.communicator.impl.protocol.sip.acc123456789=acc123456789
net.java.sip.communicator.impl.protocol.sip.acc123456789.ACCOUNT_UID=SIP\:user123@example.com
net.java.sip.communicator.impl.protocol.sip.acc123456789.PASSWORD=YOUR_PASSWORD
net.java.sip.communicator.impl.protocol.sip.acc123456789.PROTOCOL_NAME=SIP
net.java.sip.communicator.impl.protocol.sip.acc123456789.SERVER_ADDRESS=sip.example.com
net.java.sip.communicator.impl.protocol.sip.acc123456789.USER_ID=user123@example.com
net.java.sip.communicator.impl.protocol.sip.acc123456789.KEEP_ALIVE_INTERVAL=25
net.java.sip.communicator.impl.protocol.sip.acc123456789.KEEP_ALIVE_METHOD=OPTIONSThe official sample configuration uses the same basic fields for the SIP account, including account UID, password, protocol, server address, user ID, and keep-alive settings.
Replace the example values with the information supplied by your SIP provider.
Configure the Jitsi Conference Connection
Jigasi also needs to know which XMPP conference service it should use.
For example:
org.jitsi.jigasi.MUC_SERVICE_ADDRESS=conference.meet.example.comThis connects Jigasi with the conference component used by your Jitsi deployment.
Your exact XMPP and MUC configuration depends on your Jitsi domain and Prosody setup.
The official Jigasi setup instructions also require configuring a MUC component for the Jigasi brewery/control system.
Configure a Default Jitsi Room
For incoming SIP calls, you can configure a default room:
org.jitsi.jigasi.DEFAULT_JVB_ROOM_NAME=siptest@conference.meet.example.comThis can be useful when an incoming SIP request does not contain a Jitsi-Conference-Room header.
Jigasi’s documentation explains that an incoming SIP INVITE can contain this header to identify the Jitsi conference. If it is missing, Jigasi can use the configured default room instead.
Enable SIP in Jigasi
Jigasi supports SIP and transcription functions.
For a normal SIP gateway setup, SIP should be enabled:
org.jitsi.jigasi.ENABLE_SIP=trueIf you are not using Jigasi for transcription, you can leave transcription disabled:
org.jitsi.jigasi.ENABLE_TRANSCRIPTION=falseThese are also the default SIP/transcription settings described in the current Jigasi documentation.
Configure Jigasi for Outgoing Calls
One of the most useful features is dial-out.
A Jitsi participant can invite a telephone participant from the meeting interface when Jigasi is correctly configured.
The flow is:
Jitsi Participant
↓
Dial telephone number
↓
Jigasi
↓
SIP Server
↓
PSTN
↓
TelephoneThe SIP provider must allow outbound calls.
If your provider blocks international or premium numbers, Jigasi cannot bypass those restrictions.
This is controlled by your SIP provider or PBX.
SIP Dial-Out Example
Imagine your SIP provider gives you:
SIP User:
1001@sip.example.com
SIP Password:
your-password
SIP Server:
sip.example.comYour Jigasi configuration would contain values similar to:
net.java.sip.communicator.impl.protocol.sip.acc1001=acc1001
net.java.sip.communicator.impl.protocol.sip.acc1001.ACCOUNT_UID=SIP\:1001@sip.example.com
net.java.sip.communicator.impl.protocol.sip.acc1001.PASSWORD=your-password
net.java.sip.communicator.impl.protocol.sip.acc1001.PROTOCOL_NAME=SIP
net.java.sip.communicator.impl.protocol.sip.acc1001.SERVER_ADDRESS=sip.example.com
net.java.sip.communicator.impl.protocol.sip.acc1001.USER_ID=1001@sip.example.comDo not copy these values directly into production. Replace them with the credentials supplied by your provider.
Configure Incoming SIP Calls
Jigasi can also accept incoming SIP calls.
For example:
Customer
↓
Telephone
↓
SIP Provider
↓
Jigasi
↓
Jitsi MeetingThe incoming SIP request needs to tell Jigasi which conference the caller should join.
The official documentation describes the use of:
Jitsi-Conference-Roomin the SIP INVITE.
For example, a SIP system may send a room value corresponding to:
room1234@conference.meet.example.comJigasi can then connect the caller to the related Jitsi meeting.
PSTN Gateway Setup With Jigasi
Jigasi is often called a PSTN gateway because it can connect Jitsi to telephone networks through SIP.
However, the actual PSTN connection usually comes from your SIP provider or PBX.
A common architecture looks like this:
┌───────────────┐
│ Jitsi Meet │
└───────┬───────┘
│
XMPP
│
┌───────▼───────┐
│ Jigasi │
└───────┬───────┘
│
SIP
│
┌───────▼───────┐
│ PBX / SIP │
│ Provider │
└───────┬───────┘
│
PSTN
│
┌───────▼───────┐
│ Telephone │
└───────────────┘This separation is important when troubleshooting.
If Jigasi registers successfully but a phone number cannot be reached, the problem may be with the PBX, SIP trunk, routing, or PSTN provider rather than Jitsi itself.
SIP Transport: UDP, TCP or TLS
Your SIP provider may support different transports.
Common options include:
- UDP
- TCP
- TLS
The correct choice depends on your SIP provider.
For example, the current Jitsi Docker documentation exposes SIP server, port, and transport settings such as:
JIGASI_SIP_SERVER
JIGASI_SIP_PORT
JIGASI_SIP_TRANSPORTwith UDP shown as an example transport.
Do not select a transport simply because it is common. Use the settings required by your SIP service.
SIP Port and Firewall Configuration
A common SIP port is:
5060SIP over TLS commonly uses:
5061But the actual ports depend on your provider.
You also need to think about RTP.
SIP handles call signaling, while RTP carries the actual audio.
This means a configuration can look correct while the call still has:
- No audio
- One-way audio
- Broken audio
- Random disconnections
Firewall and NAT rules are therefore very important.
NAT Problems With Jigasi
NAT is one of the common causes of SIP audio problems.
For example:
Internet
↓
Router / NAT
↓
JigasiThe SIP signaling may reach Jigasi, but RTP packets may not return correctly.
This can create situations where:
The phone rings, the call connects, but nobody can hear anything.
If you see this behavior, do not only check the SIP username and password.
Also check:
- Public IP
- NAT rules
- Firewall
- RTP ports
- SIP provider requirements
- Server routing
- Docker networking, if applicable
Codec Configuration
Audio codecs are another important part of a telephony setup.
Your SIP provider may support codecs such as:
- Opus
- G.711
- G.722
- AMR-WB
The supported codecs depend on your provider and PBX.
Do not disable codecs without knowing what the other side supports.
A codec mismatch can prevent a call from establishing correctly or can result in poor audio.
Jigasi Brewery and XMPP Configuration
Jigasi also communicates with the Jitsi environment through XMPP.
The official Jigasi setup includes a brewery MUC used by Jigasi instances and requires an XMPP account for the control connection.
A typical setup includes:
Jitsi Meet
↓
Prosody / XMPP
↓
Jigasi Brewery
↓
JigasiFor larger deployments, the brewery mechanism becomes useful because multiple Jigasi instances can participate in the same environment.
Multiple Jigasi Instances
If your service receives many telephone calls, one Jigasi instance may not be enough.
You can run multiple Jigasi instances.
For example:
Jitsi Meet
|
┌────────┴────────┐
↓ ↓
Jigasi 1 Jigasi 2
| |
└────────┬────────┘
↓
SIP / PBXThis can help distribute calls across multiple Jigasi servers.
However, scaling Jigasi is not simply a matter of adding servers.
You should also consider:
- SIP account design
- Concurrent calls
- CPU usage
- Network capacity
- RTP traffic
- PBX capacity
- SIP provider limits
- Monitoring
- Failover
Test your expected call volume before moving the setup into production.
How to Test Your Jigasi Configuration
After configuration, test one feature at a time.
Test 1: Check the Jigasi Service
On a package-based installation:
sudo systemctl status jigasiIf it is not running, check the logs before testing calls.
Test 2: Check SIP Registration
Your SIP provider should show the account as registered.
If it is not registered, check:
- SIP username
- Password
- SIP server
- Port
- Transport
- DNS
- Firewall
Test 3: Test an Outgoing Call
Start a Jitsi meeting and try a telephone dial-out.
Use a test number that you control.
Test 4: Test Incoming Calls
Call the configured SIP number and verify that Jigasi connects the caller to the expected Jitsi meeting.
Test 5: Check Audio
Test both directions:
Jitsi → Phone
Phone → JitsiDo not assume that working signaling means working audio.
Common Jigasi SIP Problems and Solutions
1. Jigasi Is Not Starting
First check the service:
sudo systemctl status jigasiThen check the logs:
sudo journalctl -u jigasiLook for configuration or authentication errors.
2. SIP Account Is Not Registering
Check:
- SIP username
- SIP password
- SIP server
- SIP port
- SIP transport
Also confirm that the provider allows registration from your server’s IP address.
3. Call Connects but There Is No Audio
This is often related to RTP or NAT.
Check:
- Firewall
- RTP port range
- NAT
- Public IP configuration
- SIP provider settings
- Codec support
A SIP registration test alone does not prove that RTP is working.
4. Incoming Calls Do Not Reach the Meeting
Check the incoming SIP INVITE.
Make sure the conference information is being provided correctly.
The Jitsi-Conference-Room header is particularly important when you want Jigasi to route an incoming call to a specific Jitsi conference.
5. Outgoing Calls Fail
If Jigasi is registered but outgoing calls fail, check the SIP provider.
Possible reasons include:
- Outbound calling is disabled
- Destination is blocked
- International calls are disabled
- Insufficient account balance
- Incorrect dial format
- SIP trunk routing problem
Jigasi cannot override restrictions placed by the SIP provider.
Security Tips for a Jigasi Gateway
A telephone gateway should be treated as an important part of your infrastructure.
Protect SIP Credentials
Do not publish:
SIP username
SIP passwordin public repositories or articles.
Use a Firewall
Only allow the traffic that your Jitsi and SIP setup requires.
Protect Your Server
Keep your operating system and Jitsi components updated.
Watch for SIP Abuse
If your SIP account allows paid outbound calls, unauthorized access can become expensive very quickly.
Monitor:
- Unexpected calls
- International calls
- High call volume
- Unknown destinations
- Failed authentication attempts
Use Strong Passwords
Avoid simple SIP passwords.
A compromised SIP account can potentially be used for unauthorized calls.
Jigasi in Docker
Jitsi also provides Docker-based configuration for the SIP gateway.
The current Jitsi Docker documentation exposes environment variables for configuring the SIP URI, password, server, port, and transport.
For example:
JIGASI_SIP_URI
JIGASI_SIP_PASSWORD
JIGASI_SIP_SERVER
JIGASI_SIP_PORT
JIGASI_SIP_TRANSPORTThe advantage of using Docker is that configuration can fit more easily into an existing container-based Jitsi deployment.
However, networking needs extra attention.
For SIP and RTP, Docker networking should be planned carefully, especially when the server is behind NAT.
Jigasi vs a Direct SIP-to-Jitsi Connection
You may wonder why Jigasi is needed.
The reason is that Jitsi Meet and SIP use different communication systems.
Jitsi uses technologies such as:
- WebRTC
- XMPP
- Jingle
- ICE
- DTLS-SRTP
SIP systems use:
- SIP signaling
- RTP media
- SIP accounts
- PBX or SIP servers
Jigasi acts as the bridge between these systems.
The official project describes Jigasi as handling the connection between SIP systems and Jitsi Meet, including XMPP signaling and media-related functions.
When Should You Use Jigasi?
Jigasi can be useful when your organization needs telephone access to Jitsi meetings.
Typical use cases include:
Business Meetings
Employees can join meetings using a phone when internet access is limited.
Customer Support
Customers can join an audio meeting through a telephone number.
Healthcare
Patients or staff can join a conference through a phone line when browser access is not practical.
Education
Students can use telephone access for specific meetings or events.
Remote Areas
Participants with poor internet access may still be able to join through a phone.
Existing PBX Systems
Organizations that already have SIP infrastructure can connect that system with Jitsi Meet.
Important Things to Check Before Production
Before putting a Jigasi telephony gateway into production, create a simple checklist.
Jitsi
- Jitsi Meet is working
- Videobridge is working
- Prosody is working
- Conference rooms work normally
Jigasi
- Jigasi service starts
- XMPP connection works
- Brewery is configured
- SIP account registers
SIP
- SIP server is reachable
- Correct transport is used
- Correct port is open
- Authentication works
PSTN
- PSTN calling is enabled
- Telephone numbers are routed correctly
- Caller ID is configured if required
- International calling rules are understood
Network
- Firewall is configured
- NAT is configured
- RTP traffic works
- DNS works correctly
Security
- SIP password is protected
- Server access is restricted
- Call activity is monitored
- Unexpected usage is reviewed
Jigasi Telephony Gateway Best Practices
A stable setup starts with a simple design.
Do not try to configure every feature at once.
Start with:
Jitsi Meet
↓
Jigasi
↓
SIP Account
↓
Test PhoneOnce this works, add PSTN routing, incoming calls, multiple Jigasi instances, monitoring, and other features.
Keep your configuration documented.
For example:
Jitsi Domain:
meet.example.com
SIP Server:
sip.example.com
SIP Account:
1001@example.com
SIP Port:
5060
Transport:
UDP
PSTN Provider:
Example ProviderThis makes future troubleshooting much easier.
