Skip to content
This repository has been archived by the owner on Nov 14, 2018. It is now read-only.

App spec: group video/voice chat #933

Closed
jancborchardt opened this issue Apr 3, 2013 · 20 comments
Closed

App spec: group video/voice chat #933

jancborchardt opened this issue Apr 3, 2013 · 20 comments

Comments

@jancborchardt
Copy link
Contributor

UPDATE: The ownCloud Chat app is in development at https://github.com/owncloud/chat :)

Talked about this with @karlitschek before, it would be cool if you could voice/video chat with others on your ownCloud, and maybe also just open the conversation to others using a public link.

WebRTC would enable that somewhat easily, the problem though is that we need a Websockets server, which I’m not sure if possible with PHP.

As for an app, there’s http://conversat.io, with the source (I guess only the boilerplate) at https://github.com/HenrikJoreteg/SimpleWebRTC

@karlitschek
Copy link
Contributor

Would be indeed a nice feature.
Could be a nice new app for someone who want's to contribute to ownCloud. A few more pointers:

The JS piece is here: http://simplewebrtc.com/
The server piece is written for node.js at the moment so his has to be reimplemented in php for ownCloud but the codebase is small:
https://github.com/andyet/signalmaster

http://conversat.io is the nice demo page how it could work.

Volunteers welcome :-)

Frank

@LEDfan
Copy link

LEDfan commented May 9, 2013

Is there already someone working at this? I would like to start with this app.

I think it's necessary to start with a text based chat, I'll implement this first.

@jancborchardt
Copy link
Contributor Author

@LEDfan not that I know of. But as previous work check out Internal Messages by @kadukeitor:
http://apps.owncloud.com/content/show.php/Internal+Messages?content=154784

Also, it would be best if you use the new AppFramework as base, and the app-style from core.css. See the News or Notes app (http://github.com/owncloud/news ) for boilerplate code. cc @Raydiation

@LEDfan
Copy link

LEDfan commented May 10, 2013

@jancborchardt I have checked the Internal Messages app. I think the Internal Messages App is a e-mail like app. I want to add a instant chat feature to the video/voice chat.

I'll use the AppFramework.
I'll probably using http://socketo.me/ for a connection between the client and the server. Would you store the Chat messages in the Database? Or are there better ways?

@jancborchardt
Copy link
Contributor Author

@LEDfan ok. Please also look into using WebRTC, as mentioned above. And yes, the messages should probably be stored in the database. cc @Raydiation @icewind1991

@karlitschek
Copy link
Contributor

@LEDfan Great. I think there are two relatively different things. A chat/message/email system like the internal messages one. In this scenario the messages should be stored on the server. The mentioned WebRTC is something completely different because it does video / audio streaming. There are no "messages" and they don't have to be "stored" on the server. I think both would be great. The WebRTC one is probably a bit cooler because it would kill and replace Skype or Google Hangout.
Let me know if I can help with something :-)

@LEDfan
Copy link

LEDfan commented May 10, 2013

@jancborchardt I'll use the WebRTC.

@karlitschek I think there is a misunderstanding. I understand the difference between the Internal Messaging app and this app. The main purpose of this app is video/audio chatting like Skype and Google Hangout. But I think it's necessary that you also can send instant text, like in Skype and Google Hangout.
I'll use http://socketo.me/ as the socket.io PHP alternative.

P.s. I think if this App will work, it's even better than Skype and Google Hangout, it works without installing any weird software or services, it's cross platform and there aren't any privacy issues. :)

E: Would it be OK if every use can view all the users and have a conservation with them? Or is it better that the user can search on display name and ask permission to chat with a user. Like on facebook, they become 'friends'?

@karlitschek
Copy link
Contributor

@LEDfan I see. Sounds like a great plan!! :-)

@icewind1991
Copy link
Contributor

@LEDfan we can't use websockets with PHP since it requires the server to run as a background process which isn't possible/allowed on a lot of shared hosts

@LEDfan
Copy link

LEDfan commented May 10, 2013

@icewind1991 yes indeed, but I was thinking of creating a cron job for the websockets server. And let it execute only once. (By using a lock file)

@icewind1991
Copy link
Contributor

Being able to start a background process is not the problem, the problem is that most shared hosts just don't allow it, making software that breaks the TOS of a hoster isn't a good idea.

That of course doesn't mean we can't use background daemons at all, it just means it should be optional

@karlitschek
Copy link
Contributor

Hey @LEDfan. How is it going? Can I help something with the implementation of this feature? I think this is very cool and important functionallity. :-)

@LEDfan
Copy link

LEDfan commented May 21, 2013

Hi @karlitschek. I'm working hard on the app :) Users can chat with each other, but audio and video isn't implemented yet, but I think that's not a lot of work. Group chat is almost ready.
I'll create a owncloud installation with the Chat app installed asap. (with some demo users), also with a little more explanation, so you can have a look at the app.

@LEDfan
Copy link

LEDfan commented May 22, 2013

@karlitschek as promised I made a demo. (It's the installation I use to develop the app, because Ratchet (the websocket server) uses composer, but Ownlcoud doesn't. I have to find a way to make this better)
The URL: http://cloud.dev.ledfan.be/
Avaible users:

  • derp
  • derpina
  • herp
  • herpina
    The password is equal to the user name.

Procedure to test:

  1. Open the Chat App
  2. Open a new private window in your browser
  3. Sign in with another username
  4. Go to the first window, enter the username of the second window in the input field (I haven't made a list with all users for privacy of other users)
  5. You can chat in the new window (hit enter to send a message)
  6. The message will be received by the other user
  • You can leave the Chat all time, the other user'll automatically leave the chat, and the chat window closes. (there still be a connection with the server)
  • You can hide a chat window by clicking the hide button, you can reopen it by clicking on the conservation

What do you think, is it convenient to use?
Note that this isn't ready yet and there are still some issues.

@karlitschek
Copy link
Contributor

very nice.:-)
I think the userinterface can use some polishing of course.
@jancborchardt is the expert here.
I'm looking forward to the WebRTC piece :-)

Thanks a lot!

@jancborchardt
Copy link
Contributor Author

I'll check it out in a week when I'm back from traveling an with a laptop again. :)

@LEDfan In general, keep the design simple. Big video with the other person, yours in small (multiple small ones if a group call), chat on the right side. Look at http://conversat.io and Google Hangouts for inspiration.

@arjandj
Copy link

arjandj commented Jun 26, 2013

Great initiative! I can't wait to roll this out on my Owncloud server!

@jancborchardt
Copy link
Contributor Author

@LEDfan any update on this? The site is down unfortunately, would be cool to see this as an app! :) Maybe publish it at http://apps.owncloud.com ?

@mungle
Copy link

mungle commented Jun 20, 2014

News?

@jancborchardt
Copy link
Contributor Author

@mungle the Chat app is in development by @LEDfan in https://github.com/owncloud/chat – please test it and provide feedback in the issues at https://github.com/owncloud/chat/issues

@LEDfan did you look into WebRTC yet? Getting text chat stable is probably big enough of a task though. ;)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants