powered by Jive Software

Spark 2.6 RC2 No Phone Call Button

I have recently upgraded from 2.6 rc1 to 2.6 rc2. The phone call button is missing in rc2. Is this by design? Do I need to add a plug-in?

Help Please


Recorded as bug http://issues.igniterealtime.org/browse/SPARK-1294

what call do you want to make? i’ve never seen a call button, because i don’t use sip calls within spark

Can you provide details (screenshot)? What feature of Spark is used? Jingle? We can not tackle this issue

Hi Walter

The issue appears to be that the Jingle Call (computer to computer) button is not available in chat using RC2 or build 12287

Well, we will dig into this. But currently, we do not have a clue how this feature works… we’ll learn.

we recently removed a hard coded stun server from the source code. that may cause this problem, because jingle could not find a stun server. normally openfire will send a list of available stun servers to spark. if spark doesn’t have any stun server available, there won’t be a call button, because you cannot place a call without an stun server.

i was able to enable the call button by doing following steps:

  1. Close Spark

  2. Open** spark.properties **in %homedir%/App-Data/Spark

  3. Add following line: stunFallbackHost = my-openfire.server.com

  4. Save

this will add a default stun server. the stun server could be your openfire itself, or any other stun server available on the internet.

if you need to specify a port you can also add this line:

stunFallbackPort = 1234

If you do not set the port, jingle will use 3478 as default port.

please confirm if this works for you.

Thanks Holger, we can make calls again, even with a non functional STUN server set. Odd that a STUN config is required between clients on the same LAN.

We have terrible audio though! Audio is coming through in bursts with about 300ms audio, 200ms silence, repeating. After the call completes, there is a loop of the last batch of audio left playing. only closing the Spark app will clear this audio loop.

Using jitsi / Jingle between the same machines has crystal clear audio, no post call artifacts.

maybe you can try to set a real working stun server like stun.xten.net or enable the stun server in openfire ?!

i’m sorry, but there is no jingle specialist round and i never used jingle before

I have created a document describing how to enable STUN on your server and get PC Call button back. http://community.igniterealtime.org/docs/DOC-2187

Also i have a proposal to add login server as STUN server automatically into spark.properties file SPARK-1334

I can confirm that audio sounds bad (looping). It is the same when i use Openfire as a STUN server and it was like that with the older Spark version when it had stun.xten.net still hard coded.


Since I do not have two independent public IPs on my Openfire 3.7 server I entered 4-5 different know to work STUN servers. Nevertheless I do not get any CALL button in Spark 2.6.0

I hear you reg. fallback server, but why is this needed when I do have some sTUN servers configured?

Did anybody got it to work without enabling the built in STUN in openfire???

ADDOn: What is the right procedure when I want to configure Openfire to NOT act as a local STUN server (because I do have only ONE public IP) but would like to sent the list of EXTERNAL Stun servers to the client? I guess we do need a real howto.

Also a more generic question: How is it possible that a single interface does have two IP adresses in general? sorry I am not a network geek…


Single interface won’t have 2 IPs. My machine has 2 LAN cards, also i have VirtualBox installed, so i have one virtual interface and i used it in STUN settings. I don’t think public IPs needed for voice calls inside the LAN. So i set my public IP as primaryr and virtual one as secondary.

In your case you don’t need anything to do on Openfire, but edit spark.properties of every Spark 2.6.0 client you want to use Call button on and add working external STUN server as stun.xten.net. It is needed as this address was removed from 2.6.0 code. There is no other way to push available STUN servers to the clients. Maybe this can be a feature request for Spark to pull stun servers addresses from Openfire (some checkbox in preferences like “Use external STUN servers from a server”.

Once again. If you want to see the Call button in one Spark client, you have to edit spark.properties in this client and the cliet who you want to Call. You won’t see this button if the other client has no stun configuration. Because only when it has a stun address in his properties, only then it advertises itself as a voice call capable and the first client then shows that button.

I didn’t see any difference between using a non functional stun server and stun.xten.net (though I assume it would break if the calls were actually traversin NAT)

So we can establish calls but the audio is terrible.

Does anyone know how to use ‘port audio’ in Spark instead of Javasound? when I use Javasound in Jitsi I get similarly bad audio. I can see portaudio attributes in some of sparks config files but the GUI just offers Javasound.

we managed to get Port audio available within Spark config, following this discussion here: http://forums.oracle.com/forums/thread.jspa?threadID=2132405&tstart=0 and then copying the contents of the JMF / lib folder into the spark / lib folder.

however we are unable to test this as all calls between spark clients are now failing, using spark 2.6.0 final. (yes this was also broken before the JMF upgrade)

Spark log doesn’t provide much info, only that the Call failed due to no media recieved


Thanks for the info and maybe the following should have gone to the openfire forum:

The openfire GUI is very misleading reg. the STUN server setup as the two independent boxes suggest that the “Local Sever enable” is only for the top box with its two IPs and such

whereas the lower box with the external servers is always being used.

So I wrongly assumed that I did it correctly when NOT enabling the local server but filling in a few public STUN servers in the lower box of the admin GUI.


Ya, the GUI could be sometimes a bit better.

with the stunFallbackHost setting (tnx wroot) i got the call buttons in spark and were able to make calls. Without audio yet g maybe another problem g

I discovered that no stunserver in the openfire-Admin-GUI worked for me.

I found http://sourceforge.net/projects/stun/files/ (WinStun) very usefull.

try stunserver.org with WinStun and in spark.profile/openfire

1 Like


So does this mean, that this part is completely broken atm in openfire. After some experiments I found out, that indeed the call button does get shown (and even works kind of) when entering this info directly into Spark 2.6.0 BUT does NOT work at all when configuring the STUN part in openfire. Even with two public IPs, etc. as well as some external STUN-servers.

So what is broken? Spark sucking the list from openfire? OR Openfire delivering to Spark??


It works for me, so it is not broken. I did everything that i described in my document. Enabled it in Openfire, selected 2 IP’s (one of them is even not real, from virtual lan) and added my Openfire server as a stun server in Spark properties file. I didn’t try the part with external servers. But i know that you still have to enable internal stun (checkbox) for Openfire to push external servers. That’s from comments from other users.

OK, seems I just begin to understand.

I was under the impression, that SPARK learns about the availibility of a STUN server via the login process (kind of a service discovery).

However it seems that one MUST do this config on the client side as this is the only method of Spark getting to know, right?

So sorry for calling it broken, it’s just not as automatic as I hoped it to be…

Anyhow wouldn’t it be cool if the client would learn about STUN servers from the XMPP server? Just saying…

Does anyone know if the sound quality is better with Spark 2.5.8 then 2.6.0 (using hardcodded stun server in 2.5.8)?

Possible I will go with 2.5.8.

I did tests and after setting **stunFallbackHost the PC2PC buton is back on 2.6.0.