Activities: WebRTC Experiments

mod_webrtcexperiments
Maintained by Picture of Daniel Neis Araujo Daniel Neis Araujo
This is a Moodle plugin for users interact with audio and video using WebRTC
128 sites
104 downloads
19 fans

WebRTC Moodle Plugin

Welcome to WebRTC Moodle Plugin!

This project uses the code from http://webrtc-experiment.com to implement an activity module for Moodle to allow people to interact more freely.

Everything you need to start communicating using your webcam and microphone is an updated browser like Firefox or Chrome. There is no need to install any third-party plugins on your browser. There is no flash here.

Also, this plugin transfer data (audio and video) in a P2P (peer-to-peer) fashion. This way, data is sent directly from one user computer to another. There is no dependency on a "central server" or a "streaming server".

The only dependency on a server is for "signaling events" like room creations, and users joining and leaving. See more about it on the "Signaling server" section of this document.

Features

  • Video and audio chat
    • With mute/unmute controls for audio and video
  • Record video and audio from any peer (or local stream) and save to your computer
  • Text chat
  • File sharing
    • It is P2P file sharing, not integrated with Moodle Files API
  • The icon was downloaded from pixabay and is licensed under CC0 Public Domain

It is basically a copy of the all-in-one demo:

https://www.webrtc-experiment.com/RTCMultiConnection/all-in-one.html

But WebRTC is much more than that!

Future features

  • Screensharing
  • Colaborative canvas

Moodle Versions

This plugin was tested in version 2.7 and 2.8 of Modle. If you get this plugin working on ther version, please let everybody know at:

https://github.com/danielneis/moodle-mod_webrtcexperiments/issues

Install

  • Put this code under "moodle/mod/webrtcexperiments"
  • Visit your Moodle site as administrator to install plugin via web interface

Signaling Server

This module needs a signaling server. To learn more about Signaling, please visit:

https://github.com/muaz-khan/WebRTC-Experiment/blob/master/Signaling.md

If you don't want (or don't feel the need to, or cannot, for any reason) to run your own server, don't worry, this module will use the server below by default (under TLS)

wss://novoaeon.com.br:1234

Note that there is no warranty for this server to be up and running. This server runs a websocket server over node.js that can be found at

https://github.com/muaz-khan/WebRTC-Experiment/tree/master/websocket-over-nodejs

Contact

Feel free to contact me at danielneis@gmail.com .

If you have problems using the plugin the plugin or would like to see a new feature implemented, please visit

https://github.com/danielneis/moodle-mod_webrtcexperiments/issues

If you like the plugin and want to say hi publicly instead of sending an email, leave a comment at

https://moodle.org/plugins/view.php?plugin=mod_webrtcexperiments

Donations

This development is a not for profit work. If  you like you can help keep it going by donating via paypal =)

Screenshots

Screenshot #0

Contributors

Picture of Daniel Neis Araujo
Daniel Neis Araujo (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Picture of Stephen Lane
    Wed, 29 Oct 2014, 9:12 PM
    Hi Daniel,

    Thanks for the quick reply. Ah the joys of new technology. I'm currently working on a project where we need video conferencing/ screen sharing in moodle that isn't flash based and will work on all platforms.

    Thankfully this works on android so thats half the battle.
  • Picture of Daniel Neis Araujo
    Wed, 29 Oct 2014, 9:15 PM
    You may check the progress of WebRTC on Firefox at https://wiki.mozilla.org/WebRTC
  • Picture of Stephen Lane
    Wed, 29 Oct 2014, 9:18 PM
    thanks for the link, hadn't found that yet smile
  • Matt Bury
    Thu, 30 Oct 2014, 2:17 AM
    I've been spreading the word and got this response from Nadav Kavalerchik:

    "Beautiful idea! It would also be nice to add it to the "online users" block. For quick direct chats (since moodle knows the other person's ip)"
  • Picture of Daniel Neis Araujo
    Fri, 31 Oct 2014, 12:27 AM
    Hello, everybody

    thanks for your comments!

    My first idea was to add it to instant message, but talking to some people, they asked for an activity module.

    Anyway, i still like the instant message thing, they just said it is not as usual for e-learning in a university program.

    Now that i am understanding a little more about webrtc/rtcmulticonnection it will be easy to add a button on instant message to send a link to join a private meeting. But I think it will have to hack core code, if renders does not help me on a local plugin...

    Also, have discovered a nice project by Mozilla to incorporate this kind of feature directly on the desktop browser and mobile firefox operating system. Here is the link: https://wiki.mozilla.org/Loop

    At last but not least, now there are versions available for Moodle 2.5 and 2.6 so people with not up-to-date Moodle can start trying it. I've tested in 2.5 default theme and the interface is not really good (buttons on top of video are not fully working) but anyway people can give it a try and it can be an incentive to update =)

    Kind regards,
    Daniel
  • Picture of italo enio
    Fri, 31 Oct 2014, 3:14 AM
    Olá!
    Apareceu este problema na minha validação:

    http://prntscr.com/51cuom

    (eu uso o moodle 2.6, ou melhor, o moodle 2.6.3 :

    http://prntscr.com/51cvlr

    Qual será o problema?

    Obrigado!
  • Picture of Daniel Neis Araujo
    Fri, 31 Oct 2014, 5:05 AM
    Olá, Ítalo

    tente fazer o download da ultima versão que está disponível para 2.6
  • Picture of Stephen Lane
    Fri, 7 Nov 2014, 9:43 PM
    Is it possible to set this up so that someone could only access an existing meeting if they had a password. If the user doesn't have the password then it would create a new meeting for them
  • Picture of Stephen Lane
    Sat, 8 Nov 2014, 6:56 PM
    Is it possible to use a stun/turn server with this ?
  • Picture of Daniel Neis Araujo
    Mon, 10 Nov 2014, 8:30 PM
    Hello,

    Yes, you can use a STUN/TURN server with WebRTC, but to use with the plugin you may have to do some modifications according to documentation at http://www.rtcmulticonnection.org/docs/iceServers/

    About the "auto-join with password" feature, it can be implemented with not too much effort and pull requests are welcome =)

    Kind regards,
    Daniel
  • Matt Bury
    Thu, 9 Apr 2015, 10:39 AM
    Running Moodle 2.8 on a LAMP stack (localhost). Got an error message when I went to:

    Site administration > Grades > Scales

    Field "grade" does not exist in table "webrtcexperiments"

    More information about this error
    Debug info:
    Error code: ddlfieldnotexist
    Stack trace:

    line 592 of /lib/dml/moodle_database.php: dml_exception thrown
    line 1775 of /lib/dml/moodle_database.php: call to moodle_database->where_clause()
    line 243 of /mod/webrtcexperiments/lib.php: call to moodle_database->record_exists()
    line 301 of /lib/grade/grade_scale.php: call to webrtcexperiments_scale_used_anywhere()
    line 146 of /grade/edit/scale/index.php: call to grade_scale->is_used()

    I've had to uninstall it so that I can access the scales settings pages.

    I hope this helps! smile
  • Picture of Daniel Neis Araujo
    Thu, 9 Apr 2015, 11:39 PM
    Hello, Matt

    thanks for reporting this!

    I've made a new version available that is now working (i've kind of disabled scales, since the module does not support grades (yet)).

    Kind regards,
    Daniel
  • Picture of Erison Nicodemos
    Fri, 24 Apr 2015, 1:07 AM
    Daniel, instalei o Plugin em dois ambientes que tenho disponivel, um com moodle 2.6 e outro com 2.5, em ambos consigo criar uma sessão, mas quando acesso com outro usuario não aparece o botão embaixo de new session para ingressar na seção criada.
  • Picture of Daniel Neis Araujo
    Fri, 24 Apr 2015, 1:22 AM
    Olá, Erison

    você não teria como testar num Moodle 2.7?
    Essa versão do 2.6 tem umas diferenças na interface,
    realmente, por causa da mudança na estrutura de temas que ocorreu na 2.7.
    Em maio termina o suporte até de correções de segurança para o 2.6,
    então já era uma oportunidade para pensar em atualizar ;)

    Abraço!
  • Picture of Daniel Neis Araujo
    Tue, 3 Nov 2015, 11:44 PM
    Hello, everybody

    the signaling server was offline for sometime but now it is online again.

    The only change is on server port that now is 1234 and not 12034 (note that the new one to use does not have the zero on center).

    I've made a new version available on github (and here too) that changes the defaults, but the activities already added must be changed editing the instance configuration.

    Kind regards,
    Daniel
1 2
Please login to post comments