Code Monkey home page Code Monkey logo

mod_muc_focus's People

Contributors

fippo avatar kenny-house avatar legastero avatar stpeter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

mod_muc_focus's Issues

dispose conference

The conference is currently not disposed when sending the jingle session-terminate. This could be done -- worst case by setting all the channels expire to 0.

@emcho is there a way to explicitly destroy a conference?

add lastn support

for video channels, set last-n to the number of channels and adaptive-last-n and adaptive-simulcast to true.

Particularly important for mobile clients.

dont use real jid in handle_jingle

several data structures are kept with the participants real jid (i.e. stanza.attr.from) in handle_jingle. Probably should not be done that way.

weird disco info response

looks like some of the namespaces are registered globally?!

raw:incoming <iq id='0e21b299-5f41-432c-823e-9b4635a77b61' type='result' to='db6833d7-ec9b-4808-b0f0-c8c850b041b1@.../1f787b31-1294-43fb-91a0-1ebf8e4c73bb' from='...'><query xmlns='http://jabber.org/protocol/disco#info'><identity type='im' name='Prosody' category='server'/><feature var='http://jitsi.org/protocol/colibri'/><feature var='urn:xmpp:jingle:1'/><feature var='urn:xmpp:jingle:transports:ice-udp:1'/><feature var='urn:xmpp:jingle:apps:rtp:1'/><feature var='urn:xmpp:jingle:apps:dtls:0'/><feature var='http://jabber.org/protocol/commands'/><feature var='jabber:iq:roster'/><feature var='urn:xmpp:time'/><feature var='jabber:iq:time'/><feature var='jabber:iq:last'/><feature var='urn:xmpp:ping'/><feature var='jabber:iq:version'/><feature var='urn:xmpp:jidprep:0'/><feature var='http://jabber.org/protocol/disco#info'/><feature var='http://jabber.org/protocol/disco#items'/><feature var='msgoffline'/></query></iq> 

implement nick changes

since some of the tables are based on the occupants nickname, nick changes need to be handled.

monitor session duration

the reliable way to measure a call length is to measure the time between creating the conference creation and the session terminate. That's useful for logging purposes.

track active sessions

currently the focus assumes every participant has a session. This isn't always true and some actions (and some counting) needs to be done based on whether a participants has a session

rejoin issue

it seems the rejoin is broken since keeping stuff by nick...

timers on dead rooms

apparently the destroy_conference lingering can trigger when everyone has left the room already. Need to check.

rtcp-mux support

the bridge can now send <rtcp-mux/> inside of transport which can be mapped to jingle

linger before downgrade

Since making the minimum number of participants configurable in 079528c the following scenario can happen:
A, B, C are in a conference. C reloads the browser.
What currently happens is that the focus terminates the conference, A and B establish a P2P session, C joins, focus makes a new conference, P2P session between A and B gets terminated.

That is clearly suboptimal. It would be better to allow the conference to linger in this state for ~30 seconds. Start a call-out where the termination currently happens, check the number of participants in the timeout.

Send correct ssrc's for participants when new participant joins

Currently, when a member source-adds after the initial accept, the array of sources in participants to sources is overwritten with just the new sources (

participant2sources[room.jid][sender.nick] = sources
).

Instead, the sources should be added to the table(s) for the participant.

Similarly, when removing streams the ssrc's should be removed so they are not incorrectly sent to future participants.

msids exception

seen today on beta.talky.io

May 15 16:02:28 mod_websocket   debug   Websocket received: <iq xmlns="jabber:client" to="[email protected]" type="set" id="1bea51a5-6223-4892-a8bc-dff792539417"><jingle xmlns="urn:xmpp:jingle:1" sid="1b7d5fce9a1a6015" action="session-info"><mute xmlns="urn:xmpp:jingle:apps:rtp:info:1" creator="initiator" name="audio"/><mediastream xmlns="http://andyet.net/xmlns/mmuc" msid="tkNx0DVjMXI59rs8inCAtNn9LCCKStWNYdfE"/></jingle></iq> (384 bytes)

May 15 16:02:28 c2s26e0c20      error   Traceback[c2s]: .../lib/prosody/modules/mod_muc_focus/mod_muc_focus.lua:854: attempt to index local 'msids' (a nil value)
stack traceback:
        .../lib/prosody/modules/mod_muc_focus/mod_muc_focus.lua:854: in function '?'
        /usr/lib/prosody/util/events.lua:67: in function 'fire_event'
        /usr/lib/prosody/core/stanza_router.lua:187: in function 'core_post_stanza'
        /usr/lib/prosody/core/stanza_router.lua:135: in function 'core_process_stanza'
        /usr/lib/prosody/modules/mod_c2s.lua:236: in function 'func'
        /usr/lib/prosody/util/async.lua:88: in function </usr/lib/prosody/util/async.lua:86>

check fingerprint update

just saw this with jvb-564:

2015-11-09 17:09:18.731 SEVERE: [112] org.jitsi.impl.neomedia.transform.dtls.DtlsControlImpl.error() Failed to verify and/or validate a certificate offered over the media path against fingerprints declared over the signaling path! No fingerprints declared over the signaling path!
2015-11-09 17:09:18.732 SEVERE: [112] org.jitsi.impl.neomedia.transform.dtls.TlsServerImpl.error() Failed to verify and/or validate client certificate!
java.io.IOException: No fingerprints declared over the signaling path!

I'm pretty sure I signal the client fingerprint. But before, the bridge was never checking this so this might have gone unnoticed.

hook muc config form

hook muc-config-form and muc-config-submitted -- see persistent.lib.lua in muc/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.