If you are looking for Jitsi Meet, the WebRTC compatible video conferencing product click here.


§ How do I get the latest Jitsi source code?

You could either clone the Git repository from GitHub (see Retrieving and Building the Sources for details) or use one of the nightly source snapshots (check the Download page).

§ I’ve discovered a bug, what can I do?

Please, report it to the developers!
Take a look at the Reporting bugs guidelines page describing the steps to report bugs effectively.

§ Where is the user profile directory?

Jitsi’s user profile directory is where Jitsi keeps it’s configuration, logs, etc. Its location depends on the operating system.

  • Windows: “%APPDATA%\Jitsi” (or “%APPDATA%\SIP Communicator”)
    On Windows XP and earlier, this path translates to “C:\Documents and Settings\<Windows login/user name>\Application Data\Jitsi” (the folder may also be called SIP Communicator if you first installed Jitsi while it was still called that way).
    On Windows Vista, 7, 8, it expands to “C:\Users\<Windows login/user name>\AppData\Roaming\Jitsi” or “C:\Users\<Windows login/user name>\AppData\Roaming\SIP Communicator”.
    Note that these folders are hidden.
  • OS X: ~/Library/Application Support/Jitsi (again, could be SIP Communicator)
  • Linux: ~/.jitsi (or ~/.sip-communicator)

§ Where do I find the log files?

The easiest way to get hold of the log files is to save them to a location of your choice using Jitsi’s GUI. You can do so by clicking on Tools→Options (Jitsi→Preferences on OS X), then selecting the “Advanced” tab and opening the “Logging” form. You’ll see the “Archive Logs” button in there.

Check out the screenshot for an even better description.

Important Note: When asked for logs, please make sure that you provide the full set of logs, or better yet, the zip that Jitsi generates when following the above instructions. Please do not send separate files or file snippets as those are likely to be insufficient. If you need to provide the logs for a GitHub issue create a Gist and link to it. Please DO NOT paste the log as a comment.

Otherwise, if you really want to know, the log files are located in:

§ Where is the configuration file?

Jitsi’s main configuration file is called sip-communicator.properties and is in the user profile directory.

§ How do you spell Jitsi and what does it mean?

The correct spelling of the application name is Jitsi (“jitsi” also works). The origin of the name is Bulgarian (spelled Жици). It means wires and the point is that the application allow you to connect to many network and people just as wires do. Of course no one other than Bulgarians is supposed to know what this means and we picked the name mainly because it was short and sounded good.

A wiki page can be updated by appending the string ?action=edit to the current url and refreshing the page. The page will then be displayed with an extra menu line that includes a ‘Page Edit’ item.

If you click on the ‘Page Edit’ item, you will be redirected to a logon page. Enter your developer username and password and you should be redirected back to the original page. Click on ‘Page Edit’ again to access the source content of the page (a quick reference to wiki markup syntax is also displayed).

§ Why can’t I connect to ekiga.net?

NB: the problems described in this section also apply to other providers such as 1und1.de

Short Answer: The ekiga.net SIP servers are configured in a way that prevent Jitsi (and many other SIP user agents for that matter) to register with the service. Please use iptel.org or ippi.com instead.

Slightly Longer Answer: The service at ekiga.net is configured to only accept SIP REGISTER requests that contain a public IP address in their Contact header. This means that registration from Jitsi would fail unless you actually have a public IP address. The Ekiga client circumvents this by using STUN to learn the address and port that have been allocated for the current session. It then uses the pair in the SIP Contact header. This kind of use was common for the first version of the STUN protocol defined in RFC 3489 which was sometimes referred to as “classic STUN”.

The IETF has since significantly reviewed the way STUN should be used. The new version of the protocol is now defined in RFC 5389 which, among other things, advises against the use of STUN as a standalone NAT traversal utility:

 However, experience since the publication of RFC 3489 has found 
 that classic STUN simply does not work sufficiently well to be 
 a deployable solution.

Today STUN represents one of the tools used by complete traversal mechanisms such as SIP OUTBOUND (RFC 5626) or ICE (RFC 5245). Neither of these includes sending a STUN obtained address in a Contact header.

So, where does Jitsi currently stand on all this? At the time of writing, we support the ICE protocol but only use it with XMPP. Use with SIP is likely to come in the near future. The reason we haven’t implemented it yet is that most SIP servers currently open to use over the Internet, use a technique called latching. When such servers detect you are connecting from behind a NAT, they would start acting as a relay, receiving media from your peers and then forwarding it to you (and vice versa). While this is by far the most reliably way of traversing NATs, it does indeed imply some scalability constraints.

ICE on the other hand would only fall back to relaying if no other way was found to connect the two participants. This is why it is considered as a more optimal solution and why it’s also on our roadmap.

Note however that the constraints on ekiga.net would continue preventing Jitsi from connecting even when we do implement support for ICE.

§ Why do I see “ICE failed” errors when trying to make calls.

Jitsi implements a number of NAT traversal methods as described here. In many situations we will be able to setup a call directly between you and other users but in order to be able to reliably establish calls, your XMPP or SIP provider has to provide relaying capabilities such as TURN, Jingle Nodes or . If looking for services that support these you can try jit.si or ippi. Also note that both you and your partner need to have unhindered outgoing UDP access to the Internet or at least to your VoIP service provider. You DO NOT however need to map any port numbers on your home router. At best this is going to have no effect.

§ Does Jitsi support STUN? (and how about TURN, UPnP and Jingle Nodes?)

STUN, together with TURN, Jingle Nodes, IPv6 and UPnP, is one of the techniques that Jitsi uses as part of the Interactive Connectivity Establishment (ICE) protocol to handle NAT traversal for calls made over XMPP.

For its SIP calls, Jitsi currently relies on servers to relay media (a technique also known as Hosted NAT Traversal or latching, which would be the case of the majority of the SIP servers used on the Internet today. Note that in terms of reliability Hosted NAT Traversal gives the same results as use of ICE. It even works better in some ways because the connection is setup immediately and no time is waisted for gathering candidates and making connectivity checks. The only downside of HNT is that it may put a strain on SIP providers requiring more bandwidth. This could become a problem especially in environments with a high number of all IP high quality video calls.

It is likely that ICE support for SIP calls would also be added to Jitsi in 2014 especially since this would also help with WebRTC compatibility.

Standalone support for STUN is NOT going to be part of Jitsi. Check out the ekiga entry for more information on the shortcomings of STUN as a standalone NAT traversal utility.

§ I have a few questions regarding ZRTP, SRTP and VoIP security in general. Where can I find some answers?

Check out our ZRTP FAQ.

§ Why does my call stay in the “Initiating Call” status and I can never connect?

A common reason for providers not to respond to calls is that they simply don’t get the INVITE request Jitsi sends to them. This can happen if you are using UDP. The Jitsi INVITE requests may often exceed the maximum allowed packet size (MTU) for your network or that of your server. In such cases packets may be fragmented by your IP stack and fragmentation for UDP does not always work well in certain networks. This is what happens when a client supports multiple features ;). To resolve the issue you can do one of the following:

  • Disable codecs that you don’t use and keep only those that you know you need. PCMU and G.722 are generally a safe minimum choice for audio and you’d better disable all video codecs, at least while testing. Once you manage to successfully connect you may try re-enabling codecs one by one until you reach the upper limit.
  • Use TCP or TLS. If your network supports either of these, that would be a far better option.

§ How does on-line provisioning work?

On-line provisioning is the feature that allows Jitsi to connect to an http URI every time it starts and retrieve part or all of its configuration there. On-line provisioning is often used by providers to remotely configure the clients they maintain. It can be used to set any property in Jitsi such as the codecs used, the features that users can manually configure and even protocol accounts.

When requesting its provisioning information Jitsi can transmit any of a number of parameters to the server, like for example: the OS it is running on, user credentials, a unique ID and others. This way the provisioning server can fine-tune the parameters it sends to Jitsi.

For more information, please check our on-line provisioning manual

§ Are my chat sessions protected and if so, how?

Jitsi supports the OTR encryption protocol. OTR stands for Off-the-Record Messaging and once you’ve set it up (i.e. clicked on that padlock icon in a chat window and verified the identity of your contact) it allows you to make sure that no one other than you two can read your messages, not even your service provider. You can find more on the OTR mechanisms here:


§ Should logging be disabled by default when using OTR?

By default Jitsi stores all chats so that if you need any information from them it would always be available. If you would like to disable this behavior you can currently do so by opening Jitsi’s Options/Preferences, selecting the “General” pane and then unchecking the “Log chat history” option near the top. It is also possible to disable chats for specific contacts, to erase their history. An indicator in the chat window makes it aware at all times whether history is on or off while chatting with someone.

OTR protected chats follow the same pattern and some users have expressed concerns that this might be incompatible with their security expectations. Our position on this is that Jitsi’s role is to protect your communication. We also strive to offer usability. The current defaults represent these objectives: most people would prefer for their private communication not to be readable by third parties and most of the time people use Jitsi from personal devices where they are in control of the access policy.

In some cases users may wish for their communications not to be stored locally. This can be the case when using Jitsi on devices that others may also have access to. In such cases users need to be able to easily see whether history is being logged. They would also need to easily turn this off and potentially even erase previous history.

Note however that this subject is entirely different from the encryption one. They are separate measures meant to protect you against separate attacks or problems. We don’t believe that the need for one would necessarily imply the need for the other. We are hence committed to also keeping that separation in the user interface.

§ Force SIP Message support.

Some SIP servers (Asterisk in particular) do not announce the MESSAGE support, despite supporting it. If you enable the account property FORCE_MESSAGING, Jitsi will attempt to use MESSAGE for chats, despite your configured SIP server not explicitly announcing this support to connected clients. For example, if your SIP account is [email protected], go to property editor type that in the search field and look for something like

net.java.sip.communicator.impl.protocol.sip.acc0123456789.ACCOUNT_UID with the value SIP:[email protected]

The property to add in that case would be:

net.java.sip.communicator.impl.protocol.sip.acc0123456789.FORCE_MESSAGING with the value true.

§ How to add/edit configuration properties.

You can do so by clicking on Tools→Options (Jitsi→Preferences on OS X), then selecting the �Advanced� tab and opening the �Property Editor� form. There you can search edit/delete or create new properties.

Development topics

§ Is there an an Android version of Jitsi?

Yes, but it is still in an early alpha stage and further development has been put on hold until further notice. A lot of the user interface is not yet implemented. You can find the apk on the Download page.

§ Is there an iPhone/iPad version of Jitsi?

No. Due to the restrictions imposed by the platform it is highly unlikely this answer is going to change.

§ The cc-buildloop target of ant fails with the following error message: “Could not create task or type of type: junitreport”.

On some Linux distributions such as Debian, the ant package is actualy subdivided into multiple packages. So when you chose to install junit and ant with the distribution specific package system, don’t forget to install ant-optional too.

§ The cc-buildloop target of ant fails with the following error message: “No test with id=IcqProtocolProviderSlick”.

Have you created your own accounts.properties file in the lib directory? You’ll need to define two ICQ test accounts at least, and preferably some test accounts for the other supported protocols.