Presence and UDP Holepunching problems..
Hello!
It has been a while, but now we have to write again, so dont miss out anythihng.
Today we have implemented the presence (XEP-115) that are needed to show that a client have voice capabilities. It was not that easy that it seems. We needed to have two lists to order and to keep into place. This is because you can have more than one client connected with different resources and different presence states.
Until now we have implemented this and have not taken priority into any regards. Maybe we have to look into this later, because if you have two clients: one with "available" and one with "away". As it is now it "hopefully will be routed to the available one.
We also have to loook into presence when we are talking voice to each other. Maybe we should signal out a busy signal (it could be nice to have). XEP-167 also descripes the SDP (session description protocol). We SHOULD also implement this, so we can refuse a voice session and present it nicely to the user.
BTW: we set the service discovery (XEP-030) to make our client voice-aware (xep-166, xep-167 name space). It does not seem like that gtalk are using these. It might (and probably does) use some of their own name space. But for now we cant find out what they are using. And in the XMPP standards they are writing that presence is more useful than the service discovery. So for now we have implemented xep-030 for xmpp and is using the precence oriented way of showing our voice service.
UDP Hole punching is problem right now. We have made STUN discovery of our own public IP and port and it works out fine after a couple of small hacks in their core stun.c.
But now we need to use these public endpoints to send out UDP fake packages to the different candidates and to punch hole with several UDP packages. After this we will return the actual socket file descriptor from the session and give it to the gstreamer voice_server.c. And right now it is the latter that does not work.
More investigation for parameters for GST is neeeded.
It has been a while, but now we have to write again, so dont miss out anythihng.
Today we have implemented the presence (XEP-115) that are needed to show that a client have voice capabilities. It was not that easy that it seems. We needed to have two lists to order and to keep into place. This is because you can have more than one client connected with different resources and different presence states.
Until now we have implemented this and have not taken priority into any regards. Maybe we have to look into this later, because if you have two clients: one with "available" and one with "away". As it is now it "hopefully will be routed to the available one.
We also have to loook into presence when we are talking voice to each other. Maybe we should signal out a busy signal (it could be nice to have). XEP-167 also descripes the SDP (session description protocol). We SHOULD also implement this, so we can refuse a voice session and present it nicely to the user.
BTW: we set the service discovery (XEP-030) to make our client voice-aware (xep-166, xep-167 name space). It does not seem like that gtalk are using these. It might (and probably does) use some of their own name space. But for now we cant find out what they are using. And in the XMPP standards they are writing that presence is more useful than the service discovery. So for now we have implemented xep-030 for xmpp and is using the precence oriented way of showing our voice service.
UDP Hole punching is problem right now. We have made STUN discovery of our own public IP and port and it works out fine after a couple of small hacks in their core stun.c.
But now we need to use these public endpoints to send out UDP fake packages to the different candidates and to punch hole with several UDP packages. After this we will return the actual socket file descriptor from the session and give it to the gstreamer voice_server.c. And right now it is the latter that does not work.
More investigation for parameters for GST is neeeded.