Closed alexledovskiy closed 11 years ago
I recommend you start with gmail, as it's a good working example to use as a basis to start things.
First in the initial iq, you're sending session, and jingle iq's in one stanza. This is not rfc compliant and will fail on most xmpp servers as an iq can usually only contain one child in a request I believe. This in libjingle is known as hybrid mode and is sometimes even required with this lib to talk to gmail, but on ejabberd, the cause of many issues.
Also notice in login, the flag, isGtalk in login. If you're using your own server, set this to false.
void VoiceClientDelegate::Login(){
stun_config_.stun = "stun.l.google.com:19302";
voiceClient_->Login("username@gmail.com","password",
&stun_config_, "talk.google.com", 5222, true, 0, true/*isGtalk*/);
As well(ping module not enabled on server):
<ping xmlns='urn:xmpp:ping'/>
<error code='503' type='cancel'>
<service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
http://jabber.org/protocol/disco#info as well not enabled I assume.
Another thing to mention is that @hailg is nearly done with a port which would use xmppframework for your connection and libjingle would just attach to that, which is more familiar to most iOS guys.
https://github.com/hailg/webrtc-jingle-client/commits/master
Thank you @lukeweber.
Gmail works for me just fine. I did try it like that with my account and I am able to receive calls on gtalk client.
void VoiceClientDelegate::Login(){
stun_config_.stun = "stun.l.google.com:19302";
voiceClient_->Login("myusername@gmail.com","password",
&stun_config_, "talk.google.com", 5222, true, 0, true/*isGtalk*/);
And I assume it's server side issue but since I don't have much of experience with xmpp yet. It must be misconfiguration or difference in gmail server and Ejabberd.
Thank you for the urn:xmpp:ping hint. I'll look in to it and will try to enable it. Also thx for @hailg link. I saw it earlier but didn't want to use it due to my plans to use libjingle on other platforms and I want to keep it in C++. But I'll try his port and maybe it'll sole my problem.
Anyway, thank you for this @lukeweber! Appreciate your help. Will defiantly keep this thread updated as I move forward.
If anybody else know any info on how correctly configure the server side or the client, or which server to use please let me know. I already spent a week on trying to figure things out. I am sure I am pretty close since Gtalk is working fine.
This is perfectly working with ejabberd , I installed ejabberd on Windows, this helped me https://git.process-one.net/ejabberd/mainline/blobs/raw/v2.1.11/doc/guide.html#htoc16
Thank you lukeweber
Thanks Chathura I'll try to follow the docs. I have a Mac though but it should be the same. Were you able to make a voice call locally from one client to another? If yes could you please give me your ejubberd cfg file please.
Which linux version you are using debian,ubuntu, redhat ?
For now I just setting it up on my mac. And two iOS clients through the local network try to communicate with each other.
Hi Everyone. Maybe somebody could guide me through and help me to move forward. Any help will do. Appreciate any suggestions and tips and help. The goal is to make a voice call from iOS device to iOS device using webrtc-jingle-client and Ejabberd server.
What I've got:
The problem:
After debugging for a little while I found this line in clientsignalingthread.cc line 713:
presence->jid().BareEquals(callto_jid) is false And it seems it can not find the callto_jid online or something.
Please if anybody knows anything help me.