Skip to content

SignalingForConferenceCall

Milos Malesevic edited this page Dec 16, 2019 · 2 revisions

Conference call signaling design

MUC (XEP 045)

  • Manual
  • Multi-user-text chat in the context of a room or channel
  • Advanced features such as invitations, room moderation and administration
  • each room identified as a room JID (roomname@hostname)
  • each occupant roomname@hostname/nick
    • nick is the room nickname of the occupant
  • a user enters a room by sending directed presence to the roomname@hostname/newnick
  • messages addressed to the room itself
  • a user exits the room by sending presence of type 'unavailable' to roomname@hostname/nick
  • should be developed on the server, we can demo just with this one (place all of the info in the body)

Jingle (XEP 0166)

  • Manual
  • as far as I can tell, just some logging and forward everything to the client
  • "a proper way" to exchange the signalling metadata

Multiparty Jingle (XEP 0272)

  • Manual
  • a combination of MUC and Jingle
  • we need this in order to have a conference call using Jingle

Client's functionality

Workflow

  • create an account (XEP-0077)
    • at the moment there is no xmpp extension allowing for guest users
    • I think the most straightforward way is for client to supply random data to the server and creates a dummy account which is deleted at the end of the call
  • do the service discovery to check the server supports whatever is needed (e.g. MUC, Jingle etc.) (XEP-0030)
  • try to connect to server over SCION first (if rains resolution returns true), otherwise use IP - you could also indicate to the user which one was used to connect
    • I will also need this to be able to make c2s over scion
  • it would be good to have both (call someone/create a group call)
  • MUC I can design and implement without having the client support

Specifications

  • Specifications that client application should implement:
    • Already implemented:
      • XMPP Core
      • XMPP IM
      • XEP-0012: Last Activity
      • XEP-0030: Service Discovery
      • XEP-0054: vcard-temp
      • XEP-0077: In-Band Registration
      • XEP-0199: XMPP Ping
    • Implementing:
      • XEP-045 MUC (enough to have a demo)
      • XEP-0166 Jingle (one to one call)
      • XEP-0272 Multiparty Jingle (conference call)

Connect to the deployed server

  • 129.132.121.173 netsec-xmpp.inf.ethz.ch
  • currently only accessible over IP to the clients (for scion we might need client first)
  • find a way to share server log file with Mike (this should help with the development)
    • log and config file accessible at port 6060 over http (hostname:6060/log/ and hostname:6060/config/)
  • use profanity (console, good for everything but in-band registration) or Psi (GUI client)