Coder Social home page Coder Social logo

strukturag / spreed-webrtc Goto Github PK

View Code? Open in Web Editor NEW
1.1K 99.0 260.0 16.6 MB

WebRTC audio/video call and conferencing server.

License: GNU Affero General Public License v3.0

Shell 0.18% JavaScript 87.97% HTML 1.56% Go 5.64% Python 0.30% CSS 3.67% Ruby 0.01% Makefile 0.31% M4 0.38%

spreed-webrtc's Introduction

Spreed WebRTC

Spreed WebRTC implements a WebRTC audio/video call and conferencing server and web client.

The latest source of Spreed WebRTC can be found on GitHub. If you are a user, just wanting a secure and private alternative for online communication make sure to check out the Spreedbox, providing a ready to use hardware with Spreed WebRTC included.

Build prerequisites

Runtime dependencies

Spreed WebRTC compiles directly to native code and has no external runtime dependencies. See here for details.

Building

Build Status

If you got spreed-webrtc from the git repository, you will first need to run the included autogen.sh script to generate the configure script.

Configure does try to find all the tools on your system at the standard locations. If the dependencies are somewhere else, add the corresponding parameters to the ./configure call.

$ ./configure
$ make

Build separately

There are several make targets available. Get Go external dependencies at least once with make get, all the other targets depend on this.

$ make get
$ make assets
$ make binary

Server startup

spreed-webrtc-server [OPTIONS]

Options

-c="./server.conf": Configuration file.
-cpuprofile="": Write cpu profile to file.
-h=false: Show this usage information and exit.
-l="": Log file, defaults to stderr.
-memprofile="": Write memory profile to this file.
-v=false: Display version number and exit.

An example configuration file can be found in server.conf.in.

Usage

Connect to the server URL and port with a web browser and the web client will launch.

Development

To build styles and translations, further dependencies are required. The source tree contains already built styles and translations, so these are only required if you want to make changes.

The following Node.js modules are required, these may be installed locally by running npm install from the project root. Consult the package.json file for more details.

Styles can be found in src/styles. Translations are found in src/i18n. Each folder has its own Makefile to build the corresponding files. Check the Makefile.am templates for available make targets.

Javascript console logging is automatically disabled and can be enabled by adding the query parameter debug to your url https://my_url?debug.

Running server for development

Copy the server.conf.in to server.conf.

Build styles, javascript and binary using make. Then run ./spreed-webrtc-server

The server runs on http://localhost:8080/ per default.

HTML changes and Go rebuilds need a server restart. Javascript and CSS reload directly.

Running for production

Spreed WebRTC should be run through a SSL frontend proxy with support for Websockets. Example configuration for Nginx can be found in doc/NGINX.txt.

In addition, for real world use, one also needs a STUN/TURN server configured (with shared secret support).

See https://github.com/coturn/coturn for a free open source TURN server implementation. Make sure to use a recent version (we recommend 3.2). Versions below 2.5 are not supported.

For WebRTC usage, be sure to enable long-term credentials, fingerprinting, and set the realm. See https://github.com/coturn/coturn/wiki/turnserver#webrtc-usage for more information.

Running with Docker

We provide official Docker images at https://hub.docker.com/r/spreed/webrtc/. Of course you can build the Docker image yourself as well. Check the Dockerfiles in this repository for details and instructions.

Use the following command to run a Spreed WebRTC Docker container with the default settings from our official Spreed WebRTC Docker image.

docker run --rm --name my-spreed-webrtc -p 8080:8080 -p 8443:8443 \
    -v `pwd`:/srv/extra -i -t spreed/webrtc

Setup Screensharing

Chrome

Chrome should work out of the box.

Firefox

As of Firefox >= 36 you must append the domain being used to the allowed domains to access your screen. You do this by navigating to about:config, search for 'media.getusermedia.screensharing.allowed_domains', and append the domain to the list of strings. You can edit the field simply by double clicking on it. Ensure that you follow the syntax rules of the field. If you are using an ip:port url, simply append ip to the list. Also ensure that you are using https, otherwise permission will be denied to share your screen. You do not need to restart or reload in order for it to take affect.

Contributing

  1. "Fork" develop branch.
  2. Create a feature branch.
  3. Make changes.
  4. Do your commits (run make fmt and make jshint before commit).
  5. Send "pull request" for develop branch.

License

Spreed WebRTC uses the AGPL license, see our LICENSE file.

spreed-webrtc's People

Contributors

cfrisemo avatar cguenthertuchemnitz avatar fancycode avatar h4ck3rm1k3 avatar irek-zaripov avatar leonklingele avatar longsleep avatar oparoz avatar plinss avatar theurere avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spreed-webrtc's Issues

segmentation fault (core dumped) when make.

Hi all.
I got segmentation fault (core dumped) when trying to build webrtc.
I did autogen.sh and ./configure without errors .
But when I try to make I got one error :
"make: *** [get] segmentation fault (core dumped)"
I don't understand why ?
(running on Ubuntu 12.04)

this is my go env

GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr"
GOTOOLDIR="/usr/lib/gccgo/tool"
TERM="dumb"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CXX="g++"
CGO_ENABLED="1"

I hope anyone can help me.
thanks.

No more video on Chrome for Android

Hi.
A few days ago you released the feature below:

spreed-webrtc-server (0.24.11) trusty; urgency=medium
...

  • Added support to prefer VP9 video codec (works with Chrome >= 48) as experimental setting.
  • Only prefer VP9 when experiments are actually enabled.
    ...
  • Restrict VP9 experiment to Chrome >= 48.

Since that time Chrome on my smartphone (version 48.0.2564.95) does not show video input from camera ... Firefox works, so I think, but not sure, the cause is something about your last modifcations.
Could you check it, please?

How do you setup client plugins?

There is a sample plugin in the document directory. What is the correct way to add these plugins to the application?

Should they be placed in the matching static/js/services folder? Does the system create a mapping of existing file includes during the build assets?

Please provide Apache2 example config

I've configured the app on my machine but am struggling to get it running under Apache2 (2.4) via https. If I access via localhost (e.g., using ssh port forwarding) everything works great, and I see the connection to /ws with headers to Upgrade to websockets. But when accessing the app via https via Apache2 I never even see the /ws request from the browser or on the web server. The web browser (Firefox, Chrome) just says "Initializing" and never completes.

Relevant config stuff below:

RewriteEngine On
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:9080/$1 [P,L]

ProxyRequests off
<Location />
    ProxyPass http://127.0.0.1:9080/
    ProxyPassReverse /
</Location>

ProxyVia On
ProxyPreserveHost On
RequestHeader set X_FORWARDED_PROTO https

I looked through the nginx configuration doc, and I think the Apache defaults should most do what the nginx stuff does, but I'm apparently missing something.

Problem with JSHint git hook

The pre-commit.hook seems to be failing the jshint test for modified files. I'm not sure what is happening but jshint reports no errors - yet returns with a status of "1" which the hook interprets to be a problem.

Here is the code to reproduce the error:

vagrant@ubuntu:/vagrant/webrtc/spreed-webrtc$ git checkout-index --temp static/js/controllers/mediastreamcontroller.js | cut -f 1
.merge_file_EpJpYM
vagrant@ubuntu:/vagrant/webrtc/spreed-webrtc$ jshint --config .jshint ".merge_file_EpJpYM" 
vagrant@ubuntu:/vagrant/webrtc/spreed-webrtc$ echo $?
1

I altered the bash to if [ $r == 2 ] ; then to get it working since it seems jshint returns a 2 for errors also. It seems like I can't get any output from my install so perhaps I have something wrong npm install -g jshint.

"Too many calls are being made on file resources"?

When trying to download a file that was uploaded to chat I receive the following error on the console of the client trying to download the file.

Client: Chrome
OSX

"It was determined that certain files are unsafe for access within a Web application, or that too many calls are being made on file resources."

Full Error:

Failed to open file system. FileError {code: 2, message: "It was determined that certain files are unsafe fo… too many calls are being made on file resources.", name: "SecurityError", NOT_FOUND_ERR: 1, SECURITY_ERR: 2…}code: 2message: "It was determined that certain files are unsafe for access within a Web application, or that too many calls are being made on file resources."name: "SecurityError"__proto__: FileError
filedownload.js:101 Error occured. n.Event {type: "error", timeStamp: 1425666870804, jQuery211033447323623113334: true, isTrigger: 2, namespace: ""…}currentTarget: Objectdata: nulldelegateTarget: ObjecthandleObj: ObjectisTrigger: 2jQuery211033447323623113334: truenamespace: ""namespace_re: nullresult: undefinedtarget: ObjecttimeStamp: 1425666870804type: "error"__proto__: Object FileError {code: 2, message: "It was determined that certain files are unsafe fo… too many calls are being made on file resources.", name: "SecurityError", NOT_FOUND_ERR: 1, SECURITY_ERR: 2…}
peerconnection.js:199 Unable to send message by datachannel because datachannel is not ready. Object {m: "bye"}

Simplify text chat experience

Currently you need to go through 3 steps to be able to chat with people via text:

  1. Click on the chat icon in the top right
  2. Select the room
  3. Click into the input field

Some means to simplify that:

  • when selecting a room, automatically focus the message input field so one can just start typing
  • when clicking on the chat icon, open the room chat by default
  • and lastly, simply show the room chat by default in the right sidebar, along with the contacts. Not in a second sidebar.

iOS & Desktop client sources

Hello!

Thanx for a great piece of work! Impressed by awesome call quality and ease of deployment! We were thinking of starting our own project of such kind (also based on WebRTC, Go and NodeJS) but found Spreed :)

One question please: as Spreed is Open Source, where we can find sources for iOS and Desktop clients?

File sharing can trigger error when "bye" cannot be send as data channel is already closed

Unable to send message by datachannel because datachannel is not ready. Object {m: "bye"}PeerConnection.send @ peerconnection.js:205PeerXfer.send @ peerxfer.js:99(anonymous function) @ filedownload.js:68Mt @ lodash.min.js:9Re @ lodash.min.js:37Session.cancel @ filedownload.js:65Session.done @ filedownload.js:200(anonymous function) @ filedownload.js:175r @ lodash.min.js:25(anonymous function) @ filedownload.js:221r @ lodash.min.js:25h.$eval @ angular.js:12788h.$apply @ angular.js:12886(anonymous function) @ safeapply.js:34(anonymous function) @ filedownload.js:218r @ lodash.min.js:25parseChunk @ filetransfer.js:138Session.handleData @ filedownload.js:210u @ lodash.min.js:27n.event.dispatch @ jquery.js:4409r.handle @ jquery.js:4095n.event.trigger @ jquery.js:4324n.fn.extend.triggerHandler @ jquery.js:4881FileDownload.handleRequest @ filedownload.js:323(anonymous function) @ presentation.js:150r @ lodash.min.js:25n.event.dispatch @ jquery.js:4409r.handle @ jquery.js:4095n.event.trigger @ jquery.js:4324n.fn.extend.triggerHandler @ jquery.js:4881(anonymous function) @ tokens.js:127r @ lodash.min.js:25PeerXfer.onMessage @ peerxfer.js:88r @ lodash.min.js:25

What is the point of config.S?

I see config.S defined but after greping the whole project I can't seem to find it's usage.

I thought the main.go handlers were watching it so they could load resources stripping the version in the path. Is it just there for any plugins that wish to request additional resources using the current static path?

[UX] Add hint about chatroom visibility

When joining the "Main" room, it wasn't clear to me whether only people in my organization would see it or whether anyone from anywhere could join it.

What is the scope of the "Main" room ?

I suggest adding this information as a hint in the UI.

aclocal: not found

After a fresh git checkout

root@vagrant-ubuntu-trusty-64:/vagrant/webrtc/spreed-webrtc# npm install
[email protected] node_modules/po2json
├── [email protected]
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected])

[email protected] node_modules/jshint
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])

[email protected] node_modules/autoprefixer
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected])
root@vagrant-ubuntu-trusty-64:/vagrant/webrtc/spreed-webrtc# ./autogen.sh 
./autogen.sh: 18: ./autogen.sh: aclocal: not found

Get rid of jQuery

@theurere can you investigate what needs to be done to run with jQuery.noConflict(true) so jQuery is not exposed as window global. This would also resolve the concern you raised in #162

How do you build the SASS?

make assets doesn't seem to compile the /src/styles/*.sass into the /static/css folder. Do I need to manage the SASS builds myself with something like this?

sass --watch src/styles/main.scss:static/css/main.css

Update: I missed the make file in the src/styles directory. I assume we are supposed to use that. However, make styleshint seems to fail from both the main directory and the src/styles directory.

root@vagrant-ubuntu-trusty-64:/vagrant/webrtc/spreed-webrtc# sass -v
Sass 3.4.11 (Selective Steve)
root@vagrant-ubuntu-trusty-64:/vagrant/webrtc/spreed-webrtc# make styleshint
cd /vagrant/webrtc/spreed-webrtc/src/styles && make styleshint
make[1]: Entering directory `/vagrant/webrtc/spreed-webrtc/src/styles'
 cd ../.. && /bin/bash /vagrant/webrtc/spreed-webrtc/missing automake-1.14 --gnu src/styles/Makefile
 cd ../.. && /bin/bash ./config.status src/styles/Makefile 
config.status: creating src/styles/Makefile
make[1]: Leaving directory `/vagrant/webrtc/spreed-webrtc/src/styles'
make[1]: Entering directory `/vagrant/webrtc/spreed-webrtc/src/styles'
Command 'sass' not found, required when checking styles
make[1]: *** [styleshint] Error 1
make[1]: Leaving directory `/vagrant/webrtc/spreed-webrtc/src/styles'
make: *** [styleshint] Error 2

Update: running the raw command seems to work:

sass --compass --scss --style=compressed --no-cache --sourcemap=none /vagrant/webrtc/spreed-webrtc/src/styles/main.scss:../../static/css/main.min.css

Improve detection/handling of connections without streams

Introduced in a44cedc and 647618f, connections without streams are notified to the UI by triggering remoteStreamAdded with a null stream.

This caused problems in the past because the null must be handled differently in the subscribers (e.g. #217) and should better be notified by triggering a different event (like remoteDescriptionSet) here which then can be handled explicitly by the UI.

[UX] Chatroom members visibility

Currently it is not possible / not intuitive to distinguish between the actual contact list and the people who are in the current chat room.

One idea would be to split the Contacts list panel into two sections: "all contacts" and "contacts in current room", either with tabs or with a horizontal splitter.

unknown tls.Config field 'GetCertificate'

docker build .

/usr/bin/go get app/...
github.com/gorilla/websocket
vendor/src/github.com/gorilla/websocket/client.go:361: unknown tls.Config field 'GetCertificate' in struct literal
vendor/src/github.com/gorilla/websocket/client.go:370: unknown tls.Config field 'ClientSessionCache' in struct literal
vendor/src/github.com/gorilla/websocket/client.go:373: unknown tls.Config field 'CurvePreferences' in struct literal
make: *** [get] Error 2

go version 1.2.1

own status message

Hi.
I think it could be very nice to see my own status message in the header (see image).
What about it?

spreedme

[UX] Typing room name

It took me a few minutes to find out that I needed to click on the top left icon to be able to enter a room name, which is not intuitive.

If #123 gets implemented, there could be an additional link/input field "Enter room name..." to be able to enter a room that isn't listed yet.

Startup script

Hello,

Is there an init script for spreed-webrtc, preferably for Redhat/CentOS/Fedora?

Building spreed-webrtc on FreeBSD not working\possible

root@vps001:/usr/local # unzip master.zip
Archive: master.zip
d spreed-webrtc-master
extracting: spreed-webrtc-master/.gitignore
extracting: spreed-webrtc-master/.gitmodules
extracting: spreed-webrtc-master/.hound.yml
extracting: spreed-webrtc-master/.javascript_ignore
extracting: spreed-webrtc-master/.jshint
extracting: spreed-webrtc-master/.travis.yml
extracting: spreed-webrtc-master/AUTHORS
extracting: spreed-webrtc-master/COPYING
extracting: spreed-webrtc-master/ChangeLog
extracting: spreed-webrtc-master/Dockerfile
extracting: spreed-webrtc-master/Godeps
extracting: spreed-webrtc-master/LICENSE
extracting: spreed-webrtc-master/Makefile.am
extracting: spreed-webrtc-master/NEWS
extracting: spreed-webrtc-master/README
extracting: spreed-webrtc-master/README.md
extracting: spreed-webrtc-master/autogen.sh
d spreed-webrtc-master/build
extracting: spreed-webrtc-master/build/build.js
extracting: spreed-webrtc-master/build/r.js
extracting: spreed-webrtc-master/configure.ac
d spreed-webrtc-master/debian
extracting: spreed-webrtc-master/debian/changelog
d spreed-webrtc-master/doc
extracting: spreed-webrtc-master/doc/APACHE.txt
extracting: spreed-webrtc-master/doc/CHANNELING-API.txt
extracting: spreed-webrtc-master/doc/CROSSCOMPILE.txt
extracting: spreed-webrtc-master/doc/NGINX.txt
extracting: spreed-webrtc-master/doc/REST-API.txt
d spreed-webrtc-master/doc/file-sharing-issue
extracting: spreed-webrtc-master/doc/file-sharing-issue/splitToCrc.py
extracting: spreed-webrtc-master/doc/plugin-example.js
extracting: spreed-webrtc-master/doc/plugin-test-authorize.js
extracting: spreed-webrtc-master/doc/testfile.txt
d spreed-webrtc-master/html
extracting: spreed-webrtc-master/html/crawler.html
extracting: spreed-webrtc-master/html/extra.html
extracting: spreed-webrtc-master/html/head.html
extracting: spreed-webrtc-master/html/main.html
d spreed-webrtc-master/html/sandboxes
extracting: spreed-webrtc-master/html/sandboxes/odfcanvas_sandbox.html
extracting: spreed-webrtc-master/html/sandboxes/pdfcanvas_sandbox.html
extracting: spreed-webrtc-master/html/sandboxes/youtubevideo_sandbox.html
d spreed-webrtc-master/m4
extracting: spreed-webrtc-master/m4/ax_compare_version.m4
extracting: spreed-webrtc-master/package.json
extracting: spreed-webrtc-master/server.conf.in
extracting: spreed-webrtc-master/spreed-webrtc-server
d spreed-webrtc-master/src
d spreed-webrtc-master/src/app
d spreed-webrtc-master/src/app/spreed-webrtc-server
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/api.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/buffercache.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/channelling.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/channelling_api.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/channelling_api_test.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/client.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/common_test.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/config.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/connection.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/contact.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/context.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/hub.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/images.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/incoming_codec.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/main.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/random.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/room_manager.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/room_manager_test.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/rooms.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/roomworker.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/roomworker_test.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/session.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/session_manager.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/sessions.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/stats.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/stats_manager.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/tickets.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/tls.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/tokenprovider.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/tokens.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/user.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/users.go
extracting: spreed-webrtc-master/src/app/spreed-webrtc-server/ws.go
d spreed-webrtc-master/src/artwork
extracting: spreed-webrtc-master/src/artwork/spreedWaves.svg
d spreed-webrtc-master/src/audio
extracting: spreed-webrtc-master/src/audio/_build.py
extracting: spreed-webrtc-master/src/audio/_encode.sh
d spreed-webrtc-master/src/audio/files
extracting: spreed-webrtc-master/src/audio/files/connect1.wav
extracting: spreed-webrtc-master/src/audio/files/end1.wav
extracting: spreed-webrtc-master/src/audio/files/entry1.wav
extracting: spreed-webrtc-master/src/audio/files/leaving1.wav
extracting: spreed-webrtc-master/src/audio/files/message1.wav
extracting: spreed-webrtc-master/src/audio/files/question1.wav
extracting: spreed-webrtc-master/src/audio/files/ringtone1.wav
extracting: spreed-webrtc-master/src/audio/files/whistle1.wav
extracting: spreed-webrtc-master/src/audio/sprite1.mp3
extracting: spreed-webrtc-master/src/audio/sprite1.ogg
extracting: spreed-webrtc-master/src/audio/sprite1.wav
d spreed-webrtc-master/src/hooks
extracting: spreed-webrtc-master/src/hooks/pre-commit.hook
d spreed-webrtc-master/src/i18n
extracting: spreed-webrtc-master/src/i18n/Makefile.am
extracting: spreed-webrtc-master/src/i18n/README.txt
extracting: spreed-webrtc-master/src/i18n/babel.cfg
d spreed-webrtc-master/src/i18n/helpers
extracting: spreed-webrtc-master/src/i18n/helpers/checkHTML.py
extracting: spreed-webrtc-master/src/i18n/helpers/languages.py
extracting: spreed-webrtc-master/src/i18n/helpers/po2json
extracting: spreed-webrtc-master/src/i18n/messages-de.po
extracting: spreed-webrtc-master/src/i18n/messages-ja.po
extracting: spreed-webrtc-master/src/i18n/messages-ko.po
extracting: spreed-webrtc-master/src/i18n/messages-zh-cn.po
extracting: spreed-webrtc-master/src/i18n/messages-zh-tw.po
extracting: spreed-webrtc-master/src/i18n/messages.pot
d spreed-webrtc-master/src/styles
extracting: spreed-webrtc-master/src/styles/Makefile.am
extracting: spreed-webrtc-master/src/styles/_shame.scss
extracting: spreed-webrtc-master/src/styles/bootstrap.scss
extracting: spreed-webrtc-master/src/styles/color-pallete.html
d spreed-webrtc-master/src/styles/components
extracting: spreed-webrtc-master/src/styles/components/_audiolevel.scss
extracting: spreed-webrtc-master/src/styles/components/_audiovideo.scss
extracting: spreed-webrtc-master/src/styles/components/_bar.scss
extracting: spreed-webrtc-master/src/styles/components/_buddylist.scss
extracting: spreed-webrtc-master/src/styles/components/_buddypicturecapture.scss
extracting: spreed-webrtc-master/src/styles/components/_buddypictureupload.scss
extracting: spreed-webrtc-master/src/styles/components/_chat.scss
extracting: spreed-webrtc-master/src/styles/components/_contactsmanager.scss
extracting: spreed-webrtc-master/src/styles/components/_fileinfo.scss
extracting: spreed-webrtc-master/src/styles/components/_presentation.scss
extracting: spreed-webrtc-master/src/styles/components/_rightslide.scss
extracting: spreed-webrtc-master/src/styles/components/_roombar.scss
extracting: spreed-webrtc-master/src/styles/components/_screenshare.scss
extracting: spreed-webrtc-master/src/styles/components/_settings.scss
extracting: spreed-webrtc-master/src/styles/components/_social.scss
extracting: spreed-webrtc-master/src/styles/components/_usability.scss
extracting: spreed-webrtc-master/src/styles/components/_youtubevideo.scss
extracting: spreed-webrtc-master/src/styles/config.rb
extracting: spreed-webrtc-master/src/styles/csp.scss
extracting: spreed-webrtc-master/src/styles/font-awesome.scss
d spreed-webrtc-master/src/styles/global
extracting: spreed-webrtc-master/src/styles/global/_animations.scss
extracting: spreed-webrtc-master/src/styles/global/_base.scss
extracting: spreed-webrtc-master/src/styles/global/_loader.scss
extracting: spreed-webrtc-master/src/styles/global/_mixins.scss
extracting: spreed-webrtc-master/src/styles/global/_nicescroll.scss
extracting: spreed-webrtc-master/src/styles/global/_overlaybar.scss
extracting: spreed-webrtc-master/src/styles/global/_pages.scss
extracting: spreed-webrtc-master/src/styles/global/_variables.scss
extracting: spreed-webrtc-master/src/styles/global/_views.scss
extracting: spreed-webrtc-master/src/styles/global/_withs.scss
d spreed-webrtc-master/src/styles/libs
extracting: spreed-webrtc-master/src/styles/libs/_dialogs.scss
extracting: spreed-webrtc-master/src/styles/libs/_hidpi.scss
extracting: spreed-webrtc-master/src/styles/libs/_libs.scss
d spreed-webrtc-master/src/styles/libs/angular
extracting: spreed-webrtc-master/src/styles/libs/angular/angular-csp.scss
extracting: spreed-webrtc-master/src/styles/libs/angular/angular.scss
d spreed-webrtc-master/src/styles/libs/bootstrap
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/CHANGELOG.md
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/LICENSE
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/README.md
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap.scss
d spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_alerts.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_badges.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_breadcrumbs.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_button-groups.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_buttons.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_carousel.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_close.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_code.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_component-animations.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_dropdowns.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_forms.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_glyphicons.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_grid.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_input-groups.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_jumbotron.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_labels.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_list-group.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_media.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_mixins.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_modals.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_navbar.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_navs.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_normalize.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_pager.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_pagination.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_panels.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_popovers.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_print.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_progress-bars.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_responsive-embed.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_responsive-utilities.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_scaffolding.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_tables.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_theme.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_thumbnails.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_tooltip.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_type.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_utilities.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_variables.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/_wells.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/bootstrap.scss
d spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_alerts.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_background-variant.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_border-radius.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_buttons.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_center-block.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_clearfix.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_forms.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_gradients.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_grid-framework.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_grid.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_hide-text.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_image.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_labels.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_list-group.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_nav-divider.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_nav-vertical-align.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_opacity.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_pagination.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_panels.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_progress-bar.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_reset-filter.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_resize.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_responsive-visibility.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_size.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_tab-focus.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_table-row.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_text-emphasis.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_text-overflow.scss
extracting: spreed-webrtc-master/src/styles/libs/bootstrap/bootstrap/mixins/_vendor-prefixes.scss
d spreed-webrtc-master/src/styles/libs/font-awesome
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/README.md
d spreed-webrtc-master/src/styles/libs/font-awesome/fonts
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/fonts/FontAwesome.otf
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/fonts/LISCENCE
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/fonts/fontawesome-webfont.eot
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/fonts/fontawesome-webfont.svg
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/fonts/fontawesome-webfont.ttf
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/fonts/fontawesome-webfont.woff
d spreed-webrtc-master/src/styles/libs/font-awesome/scss
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/scss/LISCENCE
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/scss/_bordered-pulled.scss
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/scss/_core.scss
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/scss/_fixed-width.scss
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/scss/_icons.scss
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/scss/_larger.scss
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/scss/_list.scss
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/scss/_mixins.scss
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/scss/_path.scss
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/scss/_rotated-flipped.scss
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/scss/_spinning.scss
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/scss/_stacked.scss
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/scss/_variables.scss
extracting: spreed-webrtc-master/src/styles/libs/font-awesome/scss/font-awesome.scss
d spreed-webrtc-master/src/styles/libs/toastr
extracting: spreed-webrtc-master/src/styles/libs/toastr/toastr.scss
extracting: spreed-webrtc-master/src/styles/main.scss
extracting: spreed-webrtc-master/src/styles/scss.yml
d spreed-webrtc-master/static
d spreed-webrtc-master/static/css
extracting: spreed-webrtc-master/static/css/bootstrap.min.css
extracting: spreed-webrtc-master/static/css/csp.min.css
extracting: spreed-webrtc-master/static/css/font-awesome.min.css
extracting: spreed-webrtc-master/static/css/main.min.css
extracting: spreed-webrtc-master/static/favicon.ico
d spreed-webrtc-master/static/img
extracting: spreed-webrtc-master/static/img/bg-tiles.jpg
extracting: spreed-webrtc-master/static/img/bg-tiles_x2.jpg
extracting: spreed-webrtc-master/static/img/logo-16x16.png
extracting: spreed-webrtc-master/static/img/logo-32x32.png
extracting: spreed-webrtc-master/static/img/logo-48x48.png
extracting: spreed-webrtc-master/static/img/logo-512x512.png
extracting: spreed-webrtc-master/static/img/logo-overlay.png
extracting: spreed-webrtc-master/static/img/logo-small.png
extracting: spreed-webrtc-master/static/img/logo-square.svg
extracting: spreed-webrtc-master/static/img/logo.svg
d spreed-webrtc-master/static/js
extracting: spreed-webrtc-master/static/js/app.js
extracting: spreed-webrtc-master/static/js/base.js
d spreed-webrtc-master/static/js/controllers
extracting: spreed-webrtc-master/static/js/controllers/appcontroller.js
extracting: spreed-webrtc-master/static/js/controllers/chatroomcontroller.js
extracting: spreed-webrtc-master/static/js/controllers/contactsmanagercontroller.js
extracting: spreed-webrtc-master/static/js/controllers/contactsmanagereditcontroller.js
extracting: spreed-webrtc-master/static/js/controllers/controllers.js
extracting: spreed-webrtc-master/static/js/controllers/statusmessagecontroller.js
extracting: spreed-webrtc-master/static/js/controllers/uicontroller.js
extracting: spreed-webrtc-master/static/js/controllers/usersettingscontroller.js
d spreed-webrtc-master/static/js/directives
extracting: spreed-webrtc-master/static/js/directives/audiolevel.js
extracting: spreed-webrtc-master/static/js/directives/audiovideo.js
extracting: spreed-webrtc-master/static/js/directives/bfi.js
extracting: spreed-webrtc-master/static/js/directives/buddylist.js
extracting: spreed-webrtc-master/static/js/directives/buddypicturecapture.js
extracting: spreed-webrtc-master/static/js/directives/buddypictureupload.js
extracting: spreed-webrtc-master/static/js/directives/chat.js
extracting: spreed-webrtc-master/static/js/directives/contactrequest.js
extracting: spreed-webrtc-master/static/js/directives/defaultdialog.js
extracting: spreed-webrtc-master/static/js/directives/directives.js
extracting: spreed-webrtc-master/static/js/directives/fileinfo.js
extracting: spreed-webrtc-master/static/js/directives/menu.js
extracting: spreed-webrtc-master/static/js/directives/odfcanvas.js
extracting: spreed-webrtc-master/static/js/directives/onenter.js
extracting: spreed-webrtc-master/static/js/directives/onescape.js
extracting: spreed-webrtc-master/static/js/directives/page.js
extracting: spreed-webrtc-master/static/js/directives/pdfcanvas.js
extracting: spreed-webrtc-master/static/js/directives/presentation.js
extracting: spreed-webrtc-master/static/js/directives/roombar.js
extracting: spreed-webrtc-master/static/js/directives/screenshare.js
extracting: spreed-webrtc-master/static/js/directives/settings.js
extracting: spreed-webrtc-master/static/js/directives/socialshare.js
extracting: spreed-webrtc-master/static/js/directives/statusmessage.js
extracting: spreed-webrtc-master/static/js/directives/title.js
extracting: spreed-webrtc-master/static/js/directives/ui.js
extracting: spreed-webrtc-master/static/js/directives/usability.js
extracting: spreed-webrtc-master/static/js/directives/welcome.js
extracting: spreed-webrtc-master/static/js/directives/youtubevideo.js
d spreed-webrtc-master/static/js/filters
extracting: spreed-webrtc-master/static/js/filters/buddyimagesrc.js
extracting: spreed-webrtc-master/static/js/filters/displayconference.js
extracting: spreed-webrtc-master/static/js/filters/displayname.js
extracting: spreed-webrtc-master/static/js/filters/displaynameforsession.js
extracting: spreed-webrtc-master/static/js/filters/displayuserid.js
extracting: spreed-webrtc-master/static/js/filters/filters.js
extracting: spreed-webrtc-master/static/js/filters/formatbase1000.js
d spreed-webrtc-master/static/js/libs
d spreed-webrtc-master/static/js/libs/angular
extracting: spreed-webrtc-master/static/js/libs/angular/angular-animate.js
extracting: spreed-webrtc-master/static/js/libs/angular/angular-animate.min.js
extracting: spreed-webrtc-master/static/js/libs/angular/angular-animate.min.js.map
extracting: spreed-webrtc-master/static/js/libs/angular/angular-route.js
extracting: spreed-webrtc-master/static/js/libs/angular/angular-route.min.js
extracting: spreed-webrtc-master/static/js/libs/angular/angular-route.min.js.map
extracting: spreed-webrtc-master/static/js/libs/angular/angular-sanitize.js
extracting: spreed-webrtc-master/static/js/libs/angular/angular-sanitize.min.js
extracting: spreed-webrtc-master/static/js/libs/angular/angular-sanitize.min.js.map
extracting: spreed-webrtc-master/static/js/libs/angular/angular.js
extracting: spreed-webrtc-master/static/js/libs/angular/angular.min.js
extracting: spreed-webrtc-master/static/js/libs/angular/angular.min.js.map
extracting: spreed-webrtc-master/static/js/libs/angular/ui-bootstrap-tpls.min.js
extracting: spreed-webrtc-master/static/js/libs/audiocontext.js
extracting: spreed-webrtc-master/static/js/libs/avltree.js
extracting: spreed-webrtc-master/static/js/libs/bigscreen.min.js
extracting: spreed-webrtc-master/static/js/libs/bootstrap.file-input.js
extracting: spreed-webrtc-master/static/js/libs/desktop-notify.js
extracting: spreed-webrtc-master/static/js/libs/howler.min.js
extracting: spreed-webrtc-master/static/js/libs/humanize.js
extracting: spreed-webrtc-master/static/js/libs/jed.js
d spreed-webrtc-master/static/js/libs/jquery
extracting: spreed-webrtc-master/static/js/libs/jquery/README.jquery
extracting: spreed-webrtc-master/static/js/libs/jquery/jquery.injectCSS.js
extracting: spreed-webrtc-master/static/js/libs/jquery/jquery.js
extracting: spreed-webrtc-master/static/js/libs/jquery/jquery.min.js
extracting: spreed-webrtc-master/static/js/libs/jquery/jquery.min.js.map
extracting: spreed-webrtc-master/static/js/libs/jquery/jquery.mobile-events.js
extracting: spreed-webrtc-master/static/js/libs/lodash.min.js
extracting: spreed-webrtc-master/static/js/libs/modernizr.js
extracting: spreed-webrtc-master/static/js/libs/moment.min.js
d spreed-webrtc-master/static/js/libs/pdf
extracting: spreed-webrtc-master/static/js/libs/pdf/compatibility.js
extracting: spreed-webrtc-master/static/js/libs/pdf/pdf.js
extracting: spreed-webrtc-master/static/js/libs/pdf/pdf.worker.js
extracting: spreed-webrtc-master/static/js/libs/rAF.js
d spreed-webrtc-master/static/js/libs/require
extracting: spreed-webrtc-master/static/js/libs/require/require.js
extracting: spreed-webrtc-master/static/js/libs/require/text.js
extracting: spreed-webrtc-master/static/js/libs/sha.js
extracting: spreed-webrtc-master/static/js/libs/sjcl.js
extracting: spreed-webrtc-master/static/js/libs/toastr.js
extracting: spreed-webrtc-master/static/js/libs/ua-parser.js
extracting: spreed-webrtc-master/static/js/libs/visibly.js
extracting: spreed-webrtc-master/static/js/libs/webfont.js
extracting: spreed-webrtc-master/static/js/libs/webodf.js
extracting: spreed-webrtc-master/static/js/libs/webrtc.adapter.js
extracting: spreed-webrtc-master/static/js/main.js
d spreed-webrtc-master/static/js/mediastream
extracting: spreed-webrtc-master/static/js/mediastream/api.js
extracting: spreed-webrtc-master/static/js/mediastream/connector.js
extracting: spreed-webrtc-master/static/js/mediastream/dummystream.js
extracting: spreed-webrtc-master/static/js/mediastream/peercall.js
extracting: spreed-webrtc-master/static/js/mediastream/peerconference.js
extracting: spreed-webrtc-master/static/js/mediastream/peerconnection.js
extracting: spreed-webrtc-master/static/js/mediastream/peerscreenshare.js
extracting: spreed-webrtc-master/static/js/mediastream/peerxfer.js
extracting: spreed-webrtc-master/static/js/mediastream/tokens.js
extracting: spreed-webrtc-master/static/js/mediastream/usermedia.js
extracting: spreed-webrtc-master/static/js/mediastream/utils.js
extracting: spreed-webrtc-master/static/js/mediastream/webrtc.js
d spreed-webrtc-master/static/js/modules
extracting: spreed-webrtc-master/static/js/modules/angular-humanize.js
d spreed-webrtc-master/static/js/sandboxes
extracting: spreed-webrtc-master/static/js/sandboxes/pdf.js
extracting: spreed-webrtc-master/static/js/sandboxes/webodf.js
extracting: spreed-webrtc-master/static/js/sandboxes/youtube.js
d spreed-webrtc-master/static/js/services
extracting: spreed-webrtc-master/static/js/services/alertify.js
extracting: spreed-webrtc-master/static/js/services/animationframe.js
extracting: spreed-webrtc-master/static/js/services/api.js
extracting: spreed-webrtc-master/static/js/services/appdata.js
extracting: spreed-webrtc-master/static/js/services/buddydata.js
extracting: spreed-webrtc-master/static/js/services/buddylist.js
extracting: spreed-webrtc-master/static/js/services/buddypicture.js
extracting: spreed-webrtc-master/static/js/services/buddysession.js
extracting: spreed-webrtc-master/static/js/services/chromeextension.js
extracting: spreed-webrtc-master/static/js/services/connector.js
extracting: spreed-webrtc-master/static/js/services/constraints.js
extracting: spreed-webrtc-master/static/js/services/contactdata.js
extracting: spreed-webrtc-master/static/js/services/contacts.js
extracting: spreed-webrtc-master/static/js/services/continueconnector.js
extracting: spreed-webrtc-master/static/js/services/desktopnotify.js
extracting: spreed-webrtc-master/static/js/services/dialogs.js
extracting: spreed-webrtc-master/static/js/services/dummystream.js
extracting: spreed-webrtc-master/static/js/services/enrichmessage.js
extracting: spreed-webrtc-master/static/js/services/fastscroll.js
extracting: spreed-webrtc-master/static/js/services/filedata.js
extracting: spreed-webrtc-master/static/js/services/filedownload.js
extracting: spreed-webrtc-master/static/js/services/filetransfer.js
extracting: spreed-webrtc-master/static/js/services/fileupload.js
extracting: spreed-webrtc-master/static/js/services/geolocation.js
extracting: spreed-webrtc-master/static/js/services/localstatus.js
extracting: spreed-webrtc-master/static/js/services/localstorage.js
extracting: spreed-webrtc-master/static/js/services/mediadevices.js
extracting: spreed-webrtc-master/static/js/services/mediasources.js
extracting: spreed-webrtc-master/static/js/services/mediastream.js
extracting: spreed-webrtc-master/static/js/services/modules.js
extracting: spreed-webrtc-master/static/js/services/playsound.js
extracting: spreed-webrtc-master/static/js/services/randomgen.js
extracting: spreed-webrtc-master/static/js/services/resturl.js
extracting: spreed-webrtc-master/static/js/services/roompin.js
extracting: spreed-webrtc-master/static/js/services/rooms.js
extracting: spreed-webrtc-master/static/js/services/safeapply.js
extracting: spreed-webrtc-master/static/js/services/safedisplayname.js
extracting: spreed-webrtc-master/static/js/services/safemessage.js
extracting: spreed-webrtc-master/static/js/services/sandbox.js
extracting: spreed-webrtc-master/static/js/services/screensharing.js
extracting: spreed-webrtc-master/static/js/services/services.js
extracting: spreed-webrtc-master/static/js/services/toastr.js
extracting: spreed-webrtc-master/static/js/services/translation.js
extracting: spreed-webrtc-master/static/js/services/usermedia.js
extracting: spreed-webrtc-master/static/js/services/usersettingsdata.js
extracting: spreed-webrtc-master/static/js/services/videolayout.js
extracting: spreed-webrtc-master/static/js/services/videowaiter.js
extracting: spreed-webrtc-master/static/js/services/visibility.js
extracting: spreed-webrtc-master/static/js/services/webrtc.js
d spreed-webrtc-master/static/partials
extracting: spreed-webrtc-master/static/partials/audiovideo.html
extracting: spreed-webrtc-master/static/partials/audiovideopeer.html
extracting: spreed-webrtc-master/static/partials/buddy.html
extracting: spreed-webrtc-master/static/partials/buddyactions.html
extracting: spreed-webrtc-master/static/partials/buddyactionsforaudiomixer.html
extracting: spreed-webrtc-master/static/partials/buddylist.html
extracting: spreed-webrtc-master/static/partials/buddypicturecapture.html
extracting: spreed-webrtc-master/static/partials/buddypictureupload.html
extracting: spreed-webrtc-master/static/partials/chat.html
extracting: spreed-webrtc-master/static/partials/chatroom.html
extracting: spreed-webrtc-master/static/partials/contactrequest.html
extracting: spreed-webrtc-master/static/partials/contactsmanager.html
extracting: spreed-webrtc-master/static/partials/contactsmanageredit.html
extracting: spreed-webrtc-master/static/partials/defaultdialog.html
extracting: spreed-webrtc-master/static/partials/fileinfo.html
extracting: spreed-webrtc-master/static/partials/geolocation.html
extracting: spreed-webrtc-master/static/partials/menu.html
extracting: spreed-webrtc-master/static/partials/page.html
d spreed-webrtc-master/static/partials/page
extracting: spreed-webrtc-master/static/partials/page/welcome.html
extracting: spreed-webrtc-master/static/partials/picturehover.html
extracting: spreed-webrtc-master/static/partials/presentation.html
extracting: spreed-webrtc-master/static/partials/roombar.html
extracting: spreed-webrtc-master/static/partials/screenshare.html
extracting: spreed-webrtc-master/static/partials/screensharedialogff.html
extracting: spreed-webrtc-master/static/partials/screensharepeer.html
extracting: spreed-webrtc-master/static/partials/settings.html
extracting: spreed-webrtc-master/static/partials/socialshare.html
extracting: spreed-webrtc-master/static/partials/statusmessage.html
extracting: spreed-webrtc-master/static/partials/ui.html
extracting: spreed-webrtc-master/static/partials/usability.html
extracting: spreed-webrtc-master/static/partials/youtubevideo.html
extracting: spreed-webrtc-master/static/robots.txt
d spreed-webrtc-master/static/sounds
extracting: spreed-webrtc-master/static/sounds/sprite1.mp3
extracting: spreed-webrtc-master/static/sounds/sprite1.ogg
d spreed-webrtc-master/static/translation
extracting: spreed-webrtc-master/static/translation/languages.js
extracting: spreed-webrtc-master/static/translation/messages-de.json
extracting: spreed-webrtc-master/static/translation/messages-ja.json
extracting: spreed-webrtc-master/static/translation/messages-ko.json
extracting: spreed-webrtc-master/static/translation/messages-zh-cn.json
extracting: spreed-webrtc-master/static/translation/messages-zh-tw.json
root@vps001:/usr/local # rm master.zip
root@vps001:/usr/local # cd spreed-webrtc-master/
root@vps001:/usr/local/spreed-webrtc-master # ./autogen.sh
ln: .git/hooks/pre-commit: No such file or directory
autoreconf-2.69: Entering directory .' autoreconf-2.69: configure.ac: not using Gettext autoreconf-2.69: running: aclocal --force -I m4 autoreconf-2.69: configure.ac: tracing autoreconf-2.69: configure.ac: not using Libtool autoreconf-2.69: running: /usr/local/bin/autoconf-2.69 --force autoreconf-2.69: configure.ac: not using Autoheader autoreconf-2.69: running: automake --add-missing --copy --force-missing configure.ac:47: installing './install-sh' configure.ac:47: installing './missing' Makefile.am: installing './INSTALL' autoreconf-2.69: Leaving directory.'
root@vps001:/usr/local/spreed-webrtc-master # ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for a sed that does not truncate output... /usr/bin/sed
checking for gawk... (cached) nawk
checking for find... /usr/bin/find
checking for gpm... no
checking for jshint... no
checking for python2... /usr/local/bin/python2
checking for version of python2... 2.7.10
checking for go... /usr/local/bin/go
checking for version of Go... 1.5.1
checking third-party Go source code path... /usr/local/spreed-webrtc-master/vendor
checking for nodejs... no
checking for node... /usr/local/bin/node
checking for version of node.js... 4.1.1
checking for compass... /usr/local/bin/compass
checking for version of compass... 1.0.3
checking for sass... /usr/local/bin/sass
checking for version of sass... 3.4.19
checking for scss-lint... /usr/local/bin/scss-lint
checking for version of scss-lint... 0.43.2
checking for compass support in sass... ok
checking for autoprefixer... no
configure: WARNING: Please install autoprefixer before trying to build styles.
checking for pybabel... /usr/local/bin/pybabel
checking for version of pybabel... [73909 refs]
2.1.1
checking for npm... /usr/local/bin/npm
checking for version of npm... 2.14.4
checking for po2json support in node.js... not available
configure: WARNING: Please install the node.js module po2json to build i18n.
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/styles/Makefile
config.status: creating src/i18n/Makefile
root@vps001:/usr/local/spreed-webrtc-master # make
/usr/local/bin/go get app/...
package app/...: unrecognized import path "app/..."
*** Error code 1

Stop.
make: stopped in /usr/local/spreed-webrtc-master
root@vps001:/usr/local/spreed-webrtc-master #

How to lock the room?

During a chat session, is there any way to lock the room? So no one with the same chat room name can join by mistake.

unable to detect version control system

Hello,

1.) can not found right autoprefixer.

2.) on use 'make' following get as error:

"package code.google.com/p/goconf/conf: unable to detect version control system for code.google.com/ path"
"Makefile:597: recipe for target 'get' failed"
"make: *** [get] Error 1"

But i can not fix this problem.

"GOPATH=/.../spreed-webrtc/vendor:/.../spreed-webrtc" - '...' - an Subfolder

How can i fix this?

OS: Debian Jessie

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... yes
checking for grep that handles long lines and -e... /bin/grep
checking for a sed that does not truncate output... /bin/sed
checking for gawk... (cached) gawk
checking for find... /usr/bin/find
checking for gpm... no
checking for jshint... /root/spreed-webrtc/node_modules/.bin/jshint
checking for version of jshint... /usr/bin/env: node: No such file or directory
checking for python2... /usr/bin/python2
checking for version of python2... 2.7.9
checking for go... /usr/bin/go
checking for version of Go... 1.3.3
checking third-party Go source code path... /root/spreed-webrtc/vendor
checking for nodejs... /usr/bin/nodejs
checking for version of node.js... 0.10.29
checking for compass... /usr/bin/compass
checking for version of compass... 1.0.1
checking for sass... /usr/local/bin/sass
checking for version of sass... 3.4.21
checking for scss-lint... /usr/local/bin/scss-lint
checking for version of scss-lint... 0.44.0
checking for compass support in sass... ok
checking for autoprefixer... /root/spreed-webrtc/node_modules/.bin/autoprefixer
checking for version of autoprefixer... /usr/bin/env: node: No such file or directory

checking for pybabel... /usr/bin/pybabel
checking for version of pybabel... 1.3
checking for npm... /usr/bin/npm
checking for version of npm... 1.4.21
checking for po2json support in node.js... ok
checking for version of po2json... 0.4.1
checking that generated files are newer than configure... done

datachannels - question

Does this support data channels ?

I am needing to compile to android and have it act as a client and server. Anyone tried compiling to android yet ?

Invite/Join running conference

Ahoy all, thanks for releasing/sharing this webrtc stack with an open license.

We've been playing with it for a couple of days but still haven't figured out how we can send people a link to the conference they could click and would automatically join.

Also they don't seem to be able to barge into a conference, we're getting a notification that someone called (if new users try to call a running conf's participant) but there's no indication for the user to pick up that call. So, for now it seems the only way for people to get more people into the running conference is to watch the roster an then call the new arrivals manually?

Non working server on Ubuntu Xenial, 404 Errors in Apache2 log

I can't get Spreed.ME server to work on my Ubuntu Xenial amd64 installation with Apache server. I followed the steps in the tutorial for installing the owncloud plugin and the server and installed the packaged version for Vivid because there's no package for the latest LTS release of Ubuntu.

I need to start the Spreed.ME server manually because the included init script won't work.

The server won't work though, all I get is an empty page and a lot of 404 errors in the apache log. The debug page states that all tested passed.

Here's the output from Apache2 :

192.168.200.100 - - [18/May/2016:11:48:58 +0200] "GET /webrtc/ HTTP/1.1" 503 926 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0"
192.168.200.100 - Encrypted [18/May/2016:11:48:59 +0200] "PROPFIND /remote.php/webdav/ HTTP/1.1" 207 1407 "-" "Mozilla/5.0 (Linux) mirall/2.2.0%nil (build 1605)"
192.168.200.100 - - [18/May/2016:11:49:27 +0200] "GET /webrtc/ HTTP/1.1" 200 1694 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0"
192.168.200.100 - - [18/May/2016:11:49:27 +0200] "GET /static/ver=02411-1~trusty2/css/bootstrap.min.css HTTP/1.1" 404 730 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0"
192.168.200.100 - - [18/May/2016:11:49:27 +0200] "GET /static/ver=02411-1~trusty2/css/font-awesome.min.css HTTP/1.1" 404 730 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0"
192.168.200.100 - - [18/May/2016:11:49:27 +0200] "GET /extra/static/ver=02411-1~trusty2/css/owncloud.css HTTP/1.1" 404 910 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0"
192.168.200.100 - - [18/May/2016:11:49:27 +0200] "GET /static/ver=02411-1~trusty2/css/main.min.css HTTP/1.1" 404 894 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0"
192.168.200.100 - - [18/May/2016:11:49:27 +0200] "GET /static/ver=02411-1~trusty2/js/libs/require/require.js HTTP/1.1" 404 730 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0"

And the output from the Spreed.ME server :

server 2016/05/18 11:49:21.317178 Enabled modules: [presentation contacts screensharing youtube]
server 2016/05/18 11:49:21.321402 Loaded extra templates from: /var/www/owncloud/apps/spreedme/extra/
server 2016/05/18 11:49:21.321621 Using the number of CPU's (4) as GOMAXPROCS
server 2016/05/18 11:49:21.321692 Max open files are 65536
server 2016/05/18 11:49:21.327080 Enabled users handler 'sharedsecret'
server 2016/05/18 11:49:21.327956 Added URL handler /extra/static/... for static files in /var/www/owncloud/apps/spreedme/extra/static/...
server 2016/05/18 11:49:21 Starting HTTP server on 127.0.0.1:8080

and last but not least the source of the generated HTML page :

<!doctype

 html>
<html class="no-js wf-loading">
<head>
<title>Spreed WebRTC</title>
<meta name="fragment" content="!">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="referrer" content="no-referrer">
<base href="/">

<link rel="stylesheet" type="text/css" href="static/ver=02411-1~trusty2/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="static/ver=02411-1~trusty2/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="static/ver=02411-1~trusty2/css/main.min.css">

<link rel="icon" type="image/png" href="extra/static/ver=02411-1~trusty2/img/logo-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="extra/static/ver=02411-1~trusty2/img/logo-32x32.png" sizes="32x32">
<link rel="apple-touch-icon" href="extra/static/ver=02411-1~trusty2/img/logo-512x512.png">
<link rel="stylesheet" type="text/css" href="extra/static/ver=02411-1~trusty2/css/owncloud.css">
<link rel="chrome-webstore-item" href="https://chrome.google.com/webstore/detail/labcnlicceloglidikcjbfglhnjibcbd">

<script id="globalcontext" type="application/json">{"App":"main","Cfg":{"Title":"Spreed WebRTC","S":"static/ver=02411-1~trusty2","B":"/","Token":"5b0a3579b54d4c804dfb8d53e4b59711accb5f62527b4a459a926e212e34312b","Renegotiation":false,"StunURIs":[],"TurnURIs":[],"Tokens":false,"Version":"0.24.11-1~trusty2","UsersEnabled":true,"UsersAllowRegistration":false,"UsersMode":"sharedsecret","DefaultRoomEnabled":true,"Plugin":"extra/static/owncloud.js","AuthorizeRoomCreation":false,"AuthorizeRoomJoin":true,"Modules":["screensharing","youtube","presentation","contacts"]},"Host":"athena.bockholdt.com","Ssl":true,"Csp":false,"Languages":["en-us","en"]}</script>
</head>
<body spreed-webrtc>
<div id="background"></div>
<div id="loader"><div><i class="fa fa-circle-o-notch fa-spin"></i><div class="loader-message"></div></div></div>
<ui></ui>
<script data-main="static/ver=02411-1~trusty2/js/main" data-plugin="extra/static/owncloud.js" src="static/ver=02411-1~trusty2/js/libs/require/require.js"></script>

</body>
</html>

Could someone get me a hint to to get the server working ?

Badge not cleared on chat session deletion

The badge that shows the number of unread chat messages is not cleared/reset in a special scenario.

Steps to reproduce:

  • Open two browser sessions in the same room ("A" and "B").
  • Chat from "A" to "B".
  • Reload "A".
  • Chat from "A" to "B".
  • At "B", switch to the chat room overview.
  • You should have two chat sessions with "A", both are flashing and show one unread message. The chat icon in the top bar shows a badge with "2" in it.
  • Delete the two chat sessions at "B".
  • The badge still shows two unread messages and is never cleared.

Integrate sign up like spreed.me

I was testing in my local environment. I realized the sign in feature like spreed.me is missing. Is that something we have to implement on our own. Any suggestions??

Installing ubuntu

I tried the installing mentioned here: https://github.com/strukturag/spreed-webrtc/wiki/Ubuntu-Repository

1: sudo apt-add-repository ppa:strukturag/spreed-webrtc
gpg: keyring /tmp/tmpik5leb6c/secring.gpg' created gpg: keyring/tmp/tmpik5leb6c/pubring.gpg' created
gpg: requesting key 705C2B92 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpik5leb6c/trustdb.gpg: trustdb created
gpg: key 705C2B92: public key "Launchpad PPA for struktur AG" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK

  1. sudo apt-get update
    E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
    E: Unable to lock directory /var/lib/apt/lists/
  2. sudo apt-get install spreed-webrtc
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    E: Unable to locate package spreed-webrtc

Ubuntu 14.04

What am I doing wrong?

[UX] Add panel for chat sessions

Currently it is inconvenient to switch between rooms, the user needs to click on "Chat sessions" and lose the current view.

It would be better to have either tabs or some kind of sidebar that permanently shows the list of chat rooms and make it easy to switch with one click.
It would also make it possible to show a notification directly on that room if a message was received.

Web UI hangs on 'Initializing' in Chrome

Hi. I'm trying to set up a Spreed server and everything looks to work on the server side, but when I browse to the Spreed server the page loads to a camera/microphone check (which fails). At the top of the page, a spinner labeled 'Initializing' runs infinitely. Chrome never prompts me to grant mic/camera access to the web app.

This occurs whether I run the server natively on my server or use the provided Dockerfile for a docker image. I have not set up any TLS proxy nor have I set up STUN/TURN. I have reproduced this issue on multiple OSX computers running Chrome 47.0.2526.80.

Change Camera while in conference

After testing mobile devices (needed a one-plus-one and chrome 39 to get it running reliably. Firefox technically works but the stream always stalls in both directions after a couple of minutes and leaves a dead session. Since the OPO has a front and a back camera it would be nice to be able to switch views while in conference, depending on what you are showing. So far it seems we have to switch camera, hangup, reload the app and re-join the conference for the camera change to take effect. I haven't looked into the browsers API so far to see if that is a browser or code issue, but I think it would be a very nice to have feature, don't you?

Everyone is also of course invited to come and test spreed-webrtc in the wild on https://apollo.open-resource.org/flight-control/conference/

"Add to current call" feature when called while in a call

When two or more people are in a call, if an additional person tries to call one of the participants, they get a "busy" message and the call does not go through (although the person they tried to call does get a notification). However, someone participating in the call can call the additional person, adding them to the group call.

Ideally, when the additional person makes the call to someone already in a call, the receiver should have the option to answer, adding the person to the call (like call waiting on a phone).

Additionally, it would be nice to have UI for a group call, i.e. calling in to a room, rather than to a person directly, where no one needs to answer to initiate the call and additional people can join at will (if this already exists, I can't find how to do it).

Fit screen option when screen sharing ignores vertical size

When screen sharing, on the client side the Fit Screen option (which is on by default), scales the display so that it fits horizontally, but ignores any vertical constraint.

The effect is, that if you share a tall and narrow window, the other end will only see the top part of the shared window and will have to scroll down the page to see the bottom part.

If you share a short but wide window, then the correct behaviour is observed because the width becomes the limiting factor.

I have been sharing a window from my Linux desktop, using Firefox. One the receiving end I have tried firefox and chrome under Windows and both seem to exhibit the same behaviour.

Compile fail

Hello Everyone,
I am trying compile on fedora22 server x86_64 and make failing.

[volga629@canldev01 spreed-webrtc-0.24.8]$ ./configure
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... yes
checking for grep that handles long lines and -e... /bin/grep
checking for a sed that does not truncate output... /bin/sed
checking for gawk... (cached) gawk
checking for find... /bin/find
checking for gpm... no
checking for jshint... no
checking for python2... /bin/python2
checking for version of python2... 2.7.10
checking for go... /bin/go
checking for version of Go... 1.5.3
checking third-party Go source code path... /home/volga629/spreed-webrtc-0.24.8/vendor
checking for nodejs... no
checking for node... /bin/node
checking for version of node.js... 0.10.42
checking for compass... /usr/local/bin/compass
checking for version of compass... 1.0.3
checking for sass... /usr/local/bin/sass
checking for version of sass... 3.4.21
checking for scss-lint... /usr/local/bin/scss-lint
checking for version of scss-lint... 0.47.1
checking for compass support in sass... ok
checking for autoprefixer... no
configure: WARNING: Please install autoprefixer before trying to build styles.
checking for pybabel... /bin/pybabel
checking for version of pybabel... 1.3
checking for npm... /bin/npm
checking for version of npm... 1.3.6
checking for po2json support in node.js... ok
checking for version of po2json... 0.4.1
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/styles/Makefile
config.status: creating src/i18n/Makefile
[volga629@canldev01 spreed-webrtc-0.24.8]$ make
/bin/go get app/...
# github.com/longsleep/pkac
vendor/src/github.com/longsleep/pkac/x509.go:61: undefined: elliptic.P224
Makefile:608: recipe for target 'get' failed
make: *** [get] Error 2

Hub topology

Hi,

Is there any plan to support hub topology, ie send your video and audio only once, like Jitsi video bridge does?

Just discovered spreed today, really like it!

Add docs how to create a session for the REST API

REST-API.txt doesn't specify how to get a "session id" and "secure session id".

This information is needed to be able to communicate with the REST API from a client outside the browser (ex: PHP).

In my case the purpose is to be able to remotely register new users using the "/api/v1/users" endpoint, which requires an "id" and "sid" which I don't have.

I found that the mediaStream.api contained a session id but did not find where it came from originally.

If possible please add this information to the documentation.
Thanks.

How to set up TURN?

Start video call not run remote users

spreed-webrtc app run in Server DigitalOcean Server with nginx

User1 network ADSL (NAT)

User2 network CableModem (NAT)

Server DigitalOcean Ubuntu 32Bits Firewall UFW, open input port 80, 3478
spreed-webrtc run port 127.0.0.1:8090

Start video call run if:
User1 Private LAN (NAT)
User2 Private LAN (NAT)

Peer connection failed but no log

Hello,

I installed spreed-webrtc to use with owncloud. But before to connect it to owncloud I want to test it. So I can run a spreed-webrtc server connect from 2 desktop on 2 different network, I can start a webconf but after a while (1mn) I have an error message : "Peer connection failed. Check your settings" but no logs for found where is the problem.

How can I debug this ?

Passing client details to the WebRTC offer

There is client state (URL params) I would like to examine from within the subsequent websocket and HTTP handlers.

I was thinking about capturing that data from within the go room handler and saving it to the client via a session.

It seems there is a session object for the websocket state. Would this be the best place to try to access other cookies from the client?

I want to pass information from the initial HTTP request to the go code responsible for sending WebRTC connection offers to other clients (perhaps this?) so that I can examine information about the caller.

For example, if Client A is on team RED he can not call members of team BLUE.

Invalid memory address or nil pointer derefence after putting server to background

This is probably an edge case but I wanted to share anyway. Go panics like the following happen if you have clients connected to the server, put it in the background for a couple of seconds and resume it.

server 2014/12/05 23:27:12.302643 http: panic serving 127.0.0.1:59226: runtime error: invalid memory address or nil pointer dereference
goroutine 24 [running]:
net/http.func·009()
    /usr/lib/go/src/pkg/net/http/server.go:1093 +0xae
runtime.panic(0x769be0, 0xc09cc8)
    /usr/lib/go/src/pkg/runtime/panic.c:248 +0x106
main.(*Session).Userid(0x0, 0x0, 0x0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/session.go:230 +0x82
main.(*Server).OnRegister(0x0, 0xc21014e160)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/server.go:47 +0x1a8
main.(*Hub).registerHandler(0xc2100ab480, 0xc21014e160, 0xc210079840)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/hub.go:383 +0x1a9
main.(*Connection).reregister(0xc21014e160, 0xc21019600a, 0x22c, 0xc21014e160, 0x22c)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/connection.go:127 +0xae
main.func·018(0x7faf36d881a8, 0xc2100bcbe0, 0xc21018c000)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/ws.go:78 +0x273
net/http.HandlerFunc.ServeHTTP(0xc21007f790, 0x7faf36d881a8, 0xc2100bcbe0, 0xc21018c000)
    /usr/lib/go/src/pkg/net/http/server.go:1220 +0x40
github.com/gorilla/mux.(*Router).ServeHTTP(0xc210080280, 0x7faf36d881a8, 0xc2100bcbe0, 0xc21018c000)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/vendor/src/github.com/gorilla/mux/mux.go:98 +0x21c
net/http.serverHandler.ServeHTTP(0xc2100a6700, 0x7faf36d881a8, 0xc2100bcbe0, 0xc21018c000)
    /usr/lib/go/src/pkg/net/http/server.go:1597 +0x16e
net/http.(*conn).serve(0xc21013f080)
    /usr/lib/go/src/pkg/net/http/server.go:1167 +0x7b7
created by net/http.(*Server).Serve
    /usr/lib/go/src/pkg/net/http/server.go:1644 +0x28b
server 2014/12/05 23:27:12.302697 http: panic serving 127.0.0.1:59256: runtime error: invalid memory address or nil pointer dereference
goroutine 43 [running]:
net/http.func·009()
    /usr/lib/go/src/pkg/net/http/server.go:1093 +0xae
runtime.panic(0x769be0, 0xc09cc8)
    /usr/lib/go/src/pkg/runtime/panic.c:248 +0x106
main.(*Session).Userid(0x0, 0x0, 0x0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/session.go:230 +0x82
main.(*Server).OnRegister(0x0, 0xc2101c3790)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/server.go:47 +0x1a8
main.(*Hub).registerHandler(0xc2100ab480, 0xc2101c3790, 0xc210115540)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/hub.go:383 +0x1a9
main.(*Connection).reregister(0xc2101c3790, 0xc21016f24a, 0x22c, 0xc2101c3790, 0x22c)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/connection.go:127 +0xae
main.func·018(0x7faf36d881a8, 0xc210073500, 0xc2101619c0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/ws.go:78 +0x273
net/http.HandlerFunc.ServeHTTP(0xc21007f790, 0x7faf36d881a8, 0xc210073500, 0xc2101619c0)
    /usr/lib/go/src/pkg/net/http/server.go:1220 +0x40
github.com/gorilla/mux.(*Router).ServeHTTP(0xc210080280, 0x7faf36d881a8, 0xc210073500, 0xc2101619c0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/vendor/src/github.com/gorilla/mux/mux.go:98 +0x21c
net/http.serverHandler.ServeHTTP(0xc2100a6700, 0x7faf36d881a8, 0xc210073500, 0xc2101619c0)
    /usr/lib/go/src/pkg/net/http/server.go:1597 +0x16e
net/http.(*conn).serve(0xc21013f800)
    /usr/lib/go/src/pkg/net/http/server.go:1167 +0x7b7
created by net/http.(*Server).Serve
    /usr/lib/go/src/pkg/net/http/server.go:1644 +0x28b
server 2014/12/05 23:27:12.302751 http: panic serving 127.0.0.1:59260: runtime error: invalid memory address or nil pointer dereference
goroutine 45 [running]:
net/http.func·009()
    /usr/lib/go/src/pkg/net/http/server.go:1093 +0xae
runtime.panic(0x769be0, 0xc09cc8)
    /usr/lib/go/src/pkg/runtime/panic.c:248 +0x106
main.(*Session).Userid(0x0, 0x0, 0x0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/session.go:230 +0x82
main.(*Server).OnRegister(0x0, 0xc2102249a0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/server.go:47 +0x1a8
main.(*Hub).registerHandler(0xc2100ab480, 0xc2102249a0, 0xc2100f1a80)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/hub.go:383 +0x1a9
main.(*Connection).reregister(0xc2102249a0, 0xc2101bab4a, 0x22c, 0xc2102249a0, 0x22c)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/connection.go:127 +0xae
main.func·018(0x7faf36d881a8, 0xc2100e6820, 0xc2101c4820)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/ws.go:78 +0x273
net/http.HandlerFunc.ServeHTTP(0xc21007f790, 0x7faf36d881a8, 0xc2100e6820, 0xc2101c4820)
    /usr/lib/go/src/pkg/net/http/server.go:1220 +0x40
github.com/gorilla/mux.(*Router).ServeHTTP(0xc210080280, 0x7faf36d881a8, 0xc2100e6820, 0xc2101c4820)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/vendor/src/github.com/gorilla/mux/mux.go:98 +0x21c
net/http.serverHandler.ServeHTTP(0xc2100a6700, 0x7faf36d881a8, 0xc2100e6820, 0xc2101c4820)
    /usr/lib/go/src/pkg/net/http/server.go:1597 +0x16e
net/http.(*conn).serve(0xc21013fb00)
    /usr/lib/go/src/pkg/net/http/server.go:1167 +0x7b7
created by net/http.(*Server).Serve
    /usr/lib/go/src/pkg/net/http/server.go:1644 +0x28b
server 2014/12/05 23:27:12.302805 http: panic serving 127.0.0.1:59252: runtime error: invalid memory address or nil pointer dereference
goroutine 40 [running]:
net/http.func·009()
    /usr/lib/go/src/pkg/net/http/server.go:1093 +0xae
runtime.panic(0x769be0, 0xc09cc8)
    /usr/lib/go/src/pkg/runtime/panic.c:248 +0x106
main.(*Session).Userid(0x0, 0x0, 0x0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/session.go:230 +0x82
main.(*Server).OnRegister(0x0, 0xc210199160)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/server.go:47 +0x1a8
main.(*Hub).registerHandler(0xc2100ab480, 0xc210199160, 0xc2100f1540)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/hub.go:383 +0x1a9
main.(*Connection).reregister(0xc210199160, 0xc2101ae6ca, 0x22c, 0xc210199160, 0x22c)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/connection.go:127 +0xae
main.func·018(0x7faf36d881a8, 0xc2101ef140, 0xc2101ab4e0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/ws.go:78 +0x273
net/http.HandlerFunc.ServeHTTP(0xc21007f790, 0x7faf36d881a8, 0xc2101ef140, 0xc2101ab4e0)
    /usr/lib/go/src/pkg/net/http/server.go:1220 +0x40
github.com/gorilla/mux.(*Router).ServeHTTP(0xc210080280, 0x7faf36d881a8, 0xc2101ef140, 0xc2101ab4e0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/vendor/src/github.com/gorilla/mux/mux.go:98 +0x21c
net/http.serverHandler.ServeHTTP(0xc2100a6700, 0x7faf36d881a8, 0xc2101ef140, 0xc2101ab4e0)
    /usr/lib/go/src/pkg/net/http/server.go:1597 +0x16e
net/http.(*conn).serve(0xc21013f700)
    /usr/lib/go/src/pkg/net/http/server.go:1167 +0x7b7
created by net/http.(*Server).Serve
    /usr/lib/go/src/pkg/net/http/server.go:1644 +0x28b
server 2014/12/05 23:27:12.302836 Created new session token 556 MTQxNzgxODQzMnxjdmhENFJybDFGMmhVOGYtVV9Jd2lYb0R0dmpRRlgyM0FudnlDUmNOUDVCQ0lWVDRSb0tiVXpnbUN0cC1tQjExd1pTSmtHMWlLd2ZFZXpDelAtVUhJdXFoU2xtZktrNmdBS2ZqSHhfaDlkQUw0azVSOVFaenprdlNvQ3hkMWxNQjNkRV9wQm5QRUlFNmJuYUliVVQwS3M3NFU2XzBqVTVZTWpDaXB2MUdwNDRta0xlaUVSM1lFeGVFTFFiVDQyS0tWQ3RlQ3gzc2lnNUxMY0FDVGx0RThvc1JzWjdBU09INmlJVmZpTTNNdUdGYmxOM3ZWajhXaTFsZDViSEhQckEyOWNDZzdhV29XT0NzU1BRU09SZWJVR0NXRGtBbjE5T1RucXMwckJyT2Zna284UnRhbnJqTUhoUkFoZkQwWlJjc2tTdzB5Q3Q4RWJ0MkxsSnEzUC1HNGpocE13bG1RM09ESnlOZWJETkt6WGhzWjRuR2NRPT18SwPhwGXbtIqi_K9qBJK2uXCM18xE0I-NolBUEyeywYU=
server 2014/12/05 23:27:12.312787 http: panic serving 127.0.0.1:59254: runtime error: invalid memory address or nil pointer dereference
goroutine 41 [running]:
net/http.func·009()
    /usr/lib/go/src/pkg/net/http/server.go:1093 +0xae
runtime.panic(0x769be0, 0xc09cc8)
    /usr/lib/go/src/pkg/runtime/panic.c:248 +0x106
main.(*Session).Userid(0x0, 0x0, 0x0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/session.go:230 +0x82
main.(*Server).OnRegister(0x0, 0xc21009ed10)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/server.go:47 +0x1a8
main.(*Hub).registerHandler(0xc2100ab480, 0xc21009ed10, 0xc21024b0c0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/hub.go:383 +0x1a9
main.(*Connection).reregister(0xc21009ed10, 0xc2100f900a, 0x22c, 0xc21009ed10, 0x22c)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/connection.go:127 +0xae
main.func·018(0x7faf36d881a8, 0xc2101ef500, 0xc21018c820)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/ws.go:78 +0x273
net/http.HandlerFunc.ServeHTTP(0xc21007f790, 0x7faf36d881a8, 0xc2101ef500, 0xc21018c820)
    /usr/lib/go/src/pkg/net/http/server.go:1220 +0x40
github.com/gorilla/mux.(*Router).ServeHTTP(0xc210080280, 0x7faf36d881a8, 0xc2101ef500, 0xc21018c820)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/vendor/src/github.com/gorilla/mux/mux.go:98 +0x21c
net/http.serverHandler.ServeHTTP(0xc2100a6700, 0x7faf36d881a8, 0xc2101ef500, 0xc21018c820)
    /usr/lib/go/src/pkg/net/http/server.go:1597 +0x16e
net/http.(*conn).serve(0xc21013f780)
    /usr/lib/go/src/pkg/net/http/server.go:1167 +0x7b7
created by net/http.(*Server).Serve
    /usr/lib/go/src/pkg/net/http/server.go:1644 +0x28b
server 2014/12/05 23:27:12.302117 Created new session token 556 MTQxNzgxODQzMnx4b19CaWh3Nm54T0EtdUdhOWdjaWJQamE1cVBBVkRCNFh5YVJBYndwVjdxcGF3SC15dHdGV2c1bnN2V3JMcTg3b3FqcGU3clJOTUVZdkpGRV9HdDVCNWVCUU1vb1lvNFJhekdSNWVDb2V3Y0k5bmJDTHRoSHpQT3ZEcUVVQ2tmWFNVd2htV2VPWnI4TDhRVFh2VEc5TmFaeHB0dVVpU2FPMlFzcHk5ZWtZX2tJRVJndGFVMWtyQ1pFOHJyUnA0R2ZmazhLUUp6TUhKQTZiUjFSbGxJRFkyc1FfZHlhZVFzcWIwQ01GX1pvV0I1bXlvVUVWLTZMUDUyZ1RSUE8ySkJyRUpfdUJSNjdFcEtNSHZpcl8zd2xtaUF5OEVyUHNnQTRRSWZkT2F2V2UwcW51LVdDYTVFZ1U1ejdaLXhlaC05SmtFYk5sYlRCMFZSWEF3MHFtajRIdG02TjdWM2NoM0tqU3k5b1dUaEx5Q25VUXZub0J3PT18dv92dkAi4VvZC4J_83zPtZH_TO4R3ZihZ4hh7S5aSdc=
server 2014/12/05 23:27:12.314244 http: panic serving 127.0.0.1:59270: runtime error: invalid memory address or nil pointer dereference
goroutine 52 [running]:
net/http.func·009()
    /usr/lib/go/src/pkg/net/http/server.go:1093 +0xae
runtime.panic(0x769be0, 0xc09cc8)
    /usr/lib/go/src/pkg/runtime/panic.c:248 +0x106
main.(*Session).Userid(0x0, 0x0, 0x0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/session.go:230 +0x82
main.(*Server).OnRegister(0x0, 0xc2102652c0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/server.go:47 +0x1a8
main.(*Hub).registerHandler(0xc2100ab480, 0xc2102652c0, 0xc210115a80)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/hub.go:383 +0x1a9
main.(*Connection).reregister(0xc2102652c0, 0xc21027724a, 0x22c, 0xc2102652c0, 0x22c)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/connection.go:127 +0xae
main.func·018(0x7faf36d881a8, 0xc2100e6460, 0xc21029d000)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/ws.go:78 +0x273
net/http.HandlerFunc.ServeHTTP(0xc21007f790, 0x7faf36d881a8, 0xc2100e6460, 0xc21029d000)
    /usr/lib/go/src/pkg/net/http/server.go:1220 +0x40
github.com/gorilla/mux.(*Router).ServeHTTP(0xc210080280, 0x7faf36d881a8, 0xc2100e6460, 0xc21029d000)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/vendor/src/github.com/gorilla/mux/mux.go:98 +0x21c
net/http.serverHandler.ServeHTTP(0xc2100a6700, 0x7faf36d881a8, 0xc2100e6460, 0xc21029d000)
    /usr/lib/go/src/pkg/net/http/server.go:1597 +0x16e
net/http.(*conn).serve(0xc21013fd80)
    /usr/lib/go/src/pkg/net/http/server.go:1167 +0x7b7
created by net/http.(*Server).Serve
    /usr/lib/go/src/pkg/net/http/server.go:1644 +0x28b
server 2014/12/05 23:27:12.314272 http: panic serving 127.0.0.1:59262: runtime error: invalid memory address or nil pointer dereference
goroutine 48 [running]:
net/http.func·009()
    /usr/lib/go/src/pkg/net/http/server.go:1093 +0xae
runtime.panic(0x769be0, 0xc09cc8)
    /usr/lib/go/src/pkg/runtime/panic.c:248 +0x106
main.(*Session).Userid(0x0, 0x0, 0x0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/session.go:230 +0x82
main.(*Server).OnRegister(0x0, 0xc21024d2c0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/server.go:47 +0x1a8
main.(*Hub).registerHandler(0xc2100ab480, 0xc21024d2c0, 0xc21024b3c0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/hub.go:383 +0x1a9
main.(*Connection).reregister(0xc21024d2c0, 0xc21025f00a, 0x22c, 0xc21024d2c0, 0x22c)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/connection.go:127 +0xae
main.func·018(0x7faf36d881a8, 0xc2101ef6e0, 0xc2102510d0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/ws.go:78 +0x273
net/http.HandlerFunc.ServeHTTP(0xc21007f790, 0x7faf36d881a8, 0xc2101ef6e0, 0xc2102510d0)
    /usr/lib/go/src/pkg/net/http/server.go:1220 +0x40
github.com/gorilla/mux.(*Router).ServeHTTP(0xc210080280, 0x7faf36d881a8, 0xc2101ef6e0, 0xc2102510d0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/vendor/src/github.com/gorilla/mux/mux.go:98 +0x21c
net/http.serverHandler.ServeHTTP(0xc2100a6700, 0x7faf36d881a8, 0xc2101ef6e0, 0xc2102510d0)
    /usr/lib/go/src/pkg/net/http/server.go:1597 +0x16e
net/http.(*conn).serve(0xc21013fb80)
    /usr/lib/go/src/pkg/net/http/server.go:1167 +0x7b7
created by net/http.(*Server).Serve
    /usr/lib/go/src/pkg/net/http/server.go:1644 +0x28b
server 2014/12/05 23:27:12.314326 http: panic serving 127.0.0.1:59268: runtime error: invalid memory address or nil pointer dereference
goroutine 51 [running]:
net/http.func·009()
    /usr/lib/go/src/pkg/net/http/server.go:1093 +0xae
runtime.panic(0x769be0, 0xc09cc8)
    /usr/lib/go/src/pkg/runtime/panic.c:248 +0x106
main.(*Session).Userid(0x0, 0x0, 0x0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/session.go:230 +0x82
main.(*Server).OnRegister(0x0, 0xc210272f20)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/server.go:47 +0x1a8
main.(*Hub).registerHandler(0xc2100ab480, 0xc210272f20, 0xc2100f1d80)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/hub.go:383 +0x1a9
main.(*Connection).reregister(0xc210272f20, 0xc21026190a, 0x22c, 0xc210272f20, 0x22c)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/connection.go:127 +0xae
main.func·018(0x7faf36d881a8, 0xc2100e6a00, 0xc2102920d0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/ws.go:78 +0x273
net/http.HandlerFunc.ServeHTTP(0xc21007f790, 0x7faf36d881a8, 0xc2100e6a00, 0xc2102920d0)
    /usr/lib/go/src/pkg/net/http/server.go:1220 +0x40
github.com/gorilla/mux.(*Router).ServeHTTP(0xc210080280, 0x7faf36d881a8, 0xc2100e6a00, 0xc2102920d0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/vendor/src/github.com/gorilla/mux/mux.go:98 +0x21c
net/http.serverHandler.ServeHTTP(0xc2100a6700, 0x7faf36d881a8, 0xc2100e6a00, 0xc2102920d0)
    /usr/lib/go/src/pkg/net/http/server.go:1597 +0x16e
net/http.(*conn).serve(0xc21013fd00)
    /usr/lib/go/src/pkg/net/http/server.go:1167 +0x7b7
created by net/http.(*Server).Serve
    /usr/lib/go/src/pkg/net/http/server.go:1644 +0x28b
server 2014/12/05 23:27:12.314374 http: panic serving 127.0.0.1:59264: runtime error: invalid memory address or nil pointer dereference
goroutine 49 [running]:
net/http.func·009()
    /usr/lib/go/src/pkg/net/http/server.go:1093 +0xae
runtime.panic(0x769be0, 0xc09cc8)
    /usr/lib/go/src/pkg/runtime/panic.c:248 +0x106
main.(*Session).Userid(0x0, 0x0, 0x0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/session.go:230 +0x82
main.(*Server).OnRegister(0x0, 0xc21024a6e0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/server.go:47 +0x1a8
main.(*Hub).registerHandler(0xc2100ab480, 0xc21024a6e0, 0xc210079b40)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/hub.go:383 +0x1a9
main.(*Connection).reregister(0xc21024a6e0, 0xc21026624a, 0x22c, 0xc21024a6e0, 0x22c)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/connection.go:127 +0xae
main.func·018(0x7faf36d881a8, 0xc2100bcdc0, 0xc2100f45b0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/ws.go:78 +0x273
net/http.HandlerFunc.ServeHTTP(0xc21007f790, 0x7faf36d881a8, 0xc2100bcdc0, 0xc2100f45b0)
    /usr/lib/go/src/pkg/net/http/server.go:1220 +0x40
github.com/gorilla/mux.(*Router).ServeHTTP(0xc210080280, 0x7faf36d881a8, 0xc2100bcdc0, 0xc2100f45b0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/vendor/src/github.com/gorilla/mux/mux.go:98 +0x21c
net/http.serverHandler.ServeHTTP(0xc2100a6700, 0x7faf36d881a8, 0xc2100bcdc0, 0xc2100f45b0)
    /usr/lib/go/src/pkg/net/http/server.go:1597 +0x16e
net/http.(*conn).serve(0xc21013fc00)
    /usr/lib/go/src/pkg/net/http/server.go:1167 +0x7b7
created by net/http.(*Server).Serve
    /usr/lib/go/src/pkg/net/http/server.go:1644 +0x28b
server 2014/12/05 23:27:12.316375 Error while reading 27 unexpected EOF
server 2014/12/05 23:27:12.316446 Error while writing 27 write tcp 127.0.0.1:59248: broken pipe
server 2014/12/05 23:27:12.316607 http: panic serving 127.0.0.1:59272: runtime error: invalid memory address or nil pointer dereference
goroutine 53 [running]:
net/http.func·009()
    /usr/lib/go/src/pkg/net/http/server.go:1093 +0xae
runtime.panic(0x769be0, 0xc09cc8)
    /usr/lib/go/src/pkg/runtime/panic.c:248 +0x106
main.(*Session).Userid(0x0, 0x0, 0x0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/session.go:230 +0x82
main.(*Server).OnRegister(0x0, 0xc2102a3000)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/server.go:47 +0x1a8
main.(*Hub).registerHandler(0xc2100ab480, 0xc2102a3000, 0xc2102b80c0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/hub.go:383 +0x1a9
main.(*Connection).reregister(0xc2102a3000, 0xc2101e3d8a, 0x22c, 0xc2102a3000, 0x22c)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/connection.go:127 +0xae
main.func·018(0x7faf36d881a8, 0xc210073a00, 0xc2100378f0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/src/app/spreed-webrtc-server/ws.go:78 +0x273
net/http.HandlerFunc.ServeHTTP(0xc21007f790, 0x7faf36d881a8, 0xc210073a00, 0xc2100378f0)
    /usr/lib/go/src/pkg/net/http/server.go:1220 +0x40
github.com/gorilla/mux.(*Router).ServeHTTP(0xc210080280, 0x7faf36d881a8, 0xc210073a00, 0xc2100378f0)
    /home/magog/develop/struktur/spreedme/spreed-speakfreely/vendor/src/github.com/gorilla/mux/mux.go:98 +0x21c
net/http.serverHandler.ServeHTTP(0xc2100a6700, 0x7faf36d881a8, 0xc210073a00, 0xc2100378f0)
    /usr/lib/go/src/pkg/net/http/server.go:1597 +0x16e
net/http.(*conn).serve(0xc21013fe00)
    /usr/lib/go/src/pkg/net/http/server.go:1167 +0x7b7
created by net/http.(*Server).Serve
    /usr/lib/go/src/pkg/net/http/server.go:1644 +0x28b

Bowser is not recognized as a browser able to support WebRTC

Hi,

I am not quite sure if this is a problem in spreed-webrtc or maybe even in Bowser itself, but wanted to report it here first.

Bowser is an iOS browser made specially to support WebRTC:
http://www.openwebrtc.org/bowser/ & https://github.com/EricssonResearch/bowser

But sadly when opening for example spreed.me on bowser there is an error message that the current browser does not support WebRTC. I traced the error message back to:

if (!$window.webrtcDetectedVersion || $window.webrtcDetectedBrowser === "edge") {

This seems to be a general check, so it could be that Bowser is not announcing support correctly.

What do you think?

Was also reported on the Zarafa forums: https://forums.zarafa.com/showthread.php?12167-iOS-Browsers-Not-Recognized

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.