Friday, June 15, 2007

Code status

A lot of refactoring and code cleanup has been done lately.
Curent code status:
The code for sending and receiving iq stanzas is done. We can now make the ping-pong for negotiating a voice call, as it is done in the GTalk protocol. The last TODOs for this seems to be:
  • Handle iq errors
  • Make GUI even more separated:
    - Let voice_node_set_state control the state of the call_dialog
    - Let call_dialog have gboolean - initator/terminator
    - Let voicenode_set_state emit signal and make GUI connect to it
    - Place call_popup and call_dialog_user_input_cb in a seperate file
    - (Make GUI more attractive - just for the fun of it)
  • If user loggs out and we are in conversation - hang up!
  • Free - voicenodes, jids, GUI etc.
  • How do you decide who to call if same id is logged on with more resources?
    Display list of possible resources, check for voice cap. with disco, all/random
    Currently we just take last added resource...
  • Should we not use priority in the xmpp? If we do, we have to extend the blist.c and blist.h again with another field or struct of specialized xmpp stuff.
  • Use timers to timeout connection establishment - we rarely use the ACKs
Besides this,
  • There is some upnp/STUN setup to get public ip address and port forwarding to do
  • We need some SASL functionality to setup a RTP connection
  • We need a closer look on gstreamer (very much in progress right now)
  • Algorithm for determination of codec and network interface must be done
  • We have discussed a logfile functionality instead of printf's as we do now
    Maybe we can use pidgin's own
  • Volume control could be an issue we need to address
Our code until now seems to work stable at the moment. We briefly tried to negotiate with the official GTalk beta client - and it seemed successful where it was expected :-)

0 Comments:

Post a Comment

<< Home