<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.kosmos.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jan</id>
	<title>Kosmos Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.kosmos.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jan"/>
	<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/Special:Contributions/Jan"/>
	<updated>2026-04-16T00:40:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Team&amp;diff=263</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Team&amp;diff=263"/>
		<updated>2015-05-08T17:52:07Z</updated>

		<summary type="html">&lt;p&gt;Jan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Agreement ==&lt;br /&gt;
&lt;br /&gt;
The core team consists of a group of people, who have agreed with each other on several things:&lt;br /&gt;
&lt;br /&gt;
* 67P is sorely needed an we want to use it today/asap/yesterday&lt;br /&gt;
* We can imagine this to be commercially successful, and we can see us founding a company for the paid/pro version and potentially working for it at some point (to whatever degree that might be)&lt;br /&gt;
* We will take the first step and implement the [[prototype]] MVP as a side project. Most of us will come to Chaos Communication Camp in August 2015, so we'll try to finish the MVP during our time there and then define how to proceed&lt;br /&gt;
* All work done until then, and (as far as possible) forever, will be published under open-source licenses. However, we want to protect the project name/ trademark, so that people using the name/trademark commercially need to ask our permission, and so that we can use the name commercially ourselves for the benefit of all contributors (incl. non-partners/employees/shareholders).&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;&amp;quot; style=&amp;quot;width: 100%; text-align: left&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! a.k.a.&lt;br /&gt;
! Involvement/expertise&lt;br /&gt;
! Kredit address&lt;br /&gt;
|-&lt;br /&gt;
| Ben Kero&lt;br /&gt;
| bkero&lt;br /&gt;
| SysOps, DevOps, *nix systems, infrastructure development, IRC, open-source collab/community/dev/relations, ...&lt;br /&gt;
|-&lt;br /&gt;
| David Grieshammer&lt;br /&gt;
| lsa, lsa232&lt;br /&gt;
| User experience design, interaction design, graphic/web design, audio, ...&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Galfert|Garret Alfert]]&lt;br /&gt;
| galfert&lt;br /&gt;
| Software development (full-stack), Ember.js, RemoteStorage, back-end, payments, ...&lt;br /&gt;
| 1KLjNG9FFyTGzZdtyZjQLqhEz8VqkyKkeF&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Gregkare|Greg Karékinian]]&lt;br /&gt;
| gregkare, gkarekinian&lt;br /&gt;
| Infrastructure development, DevOps, operations, Chef, Ruby, *nix systems ...&lt;br /&gt;
| 1JspMAYETsLWbB1mRaGFFo8kXb96mERFPA&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Jan|Jan Lelis]]&lt;br /&gt;
| janlelis, jan, jaaan&lt;br /&gt;
| Software development (full-stack), WebRTC, Ruby, Rails, JavaScript, AngularJS&lt;br /&gt;
| 1D98jYRnPYBFdd5zeLkMQgXoifEmeh6fmH&lt;br /&gt;
|-&lt;br /&gt;
| Michael Bumann&lt;br /&gt;
| bumi, derbumi&lt;br /&gt;
| Fin-tech development, blockchain technologies, Bitcoin, Ruby, Java, JavaScript, crowd funding/investment, ...&lt;br /&gt;
| 1Dwvbv5uMxhgHBbqawDUMSxmxmzL7VJoxV&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Silverbucket|Nick Jennings]]&lt;br /&gt;
| silverbucket, slvrbckt&lt;br /&gt;
| Software development (full-stack), JavaScript, Node.js, Sockethub, RemoteStorage, ...&lt;br /&gt;
| 19UubPU4SKymYA7gbqoyStNavQAJDrBA59&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Basti|Sebastian Kippe]]&lt;br /&gt;
| basti, skddc, raucao&lt;br /&gt;
| Software development (full-stack), front-end/UI, Ember.js, RemoteStorage / business, funding, human resources, ...&lt;br /&gt;
| 18mFwCsjRr1M1D6kcNwWEEumhpD5i7Amqf&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Audio/video_communication&amp;diff=118</id>
		<title>Feature:Audio/video communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Audio/video_communication&amp;diff=118"/>
		<updated>2014-12-04T13:42:58Z</updated>

		<summary type="html">&lt;p&gt;Jan: IRC is the way to go for prototype&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
67P comes with integrated video- and audio chat capabilities. In the beginning, this is limited to 1on1 calls, but we will support conferencing and/or broadcasting at a later point. WebRTC ([http://webrtc.org &amp;quot;Web Real-time Communication&amp;quot;]) is used to enable this. WebRTC currently works in Firefox, Chrome, FF and Chrome on Android, Opera and some lesser known browsers (e.g. Bowser on iOS). We might switch to ORTC ([http://ortc.org &amp;quot;Object RTC&amp;quot;]) at some point, which is a lower-level standard that will be supported in Internet Explorer also.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
67P RTC is an integrated featuren in HyperChannel. Only direct 1on1 calls will be implemented for now.&lt;br /&gt;
&lt;br /&gt;
=== HyperChannel Integration ===&lt;br /&gt;
&lt;br /&gt;
A video stream (or audio symbol for non-video) will be integrated into the 67P UI (maybe in an extra tab?) You can also &amp;quot;pop-out&amp;quot; this UI component, which makes working on multiple screens easier (and requesting full screen simpler).&lt;br /&gt;
&lt;br /&gt;
=== Feature Ideas for Later™ ===&lt;br /&gt;
&lt;br /&gt;
* Screensharing&lt;br /&gt;
* Conferencing&lt;br /&gt;
* Broadcasting&lt;br /&gt;
* Call in to a WebRTC call via plain old phone system&lt;br /&gt;
&lt;br /&gt;
==== Stand Alone Application ====&lt;br /&gt;
&lt;br /&gt;
The WebRTC Stand Alone Application will be needed in the following cases:&lt;br /&gt;
&lt;br /&gt;
* One of the participants is not on HC, but using an IRC Client&lt;br /&gt;
* Both parties are using IRC. The Server/Mod generates a room link on the SA app for them. Or maybe: Don't support this scenario?&lt;br /&gt;
* Inviting people to an 1on1 chat that are not part of the current 67P organisation (maybe via email)&lt;br /&gt;
&lt;br /&gt;
The SA application displays the video stream of the other party, however, some kind of text communication channel is still needed (people want to exchange links etc) - This will be done via IRC or WebRTC's DataChannels.&lt;br /&gt;
&lt;br /&gt;
== Technical Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''Components:''' Client/UI Integration, Signaling Backend (might be IRC/SH), TURN Relay, SFU/MCU for Conferencing &amp;gt; 4&lt;br /&gt;
&lt;br /&gt;
=== Signaling ===&lt;br /&gt;
&lt;br /&gt;
WebRTC requires &amp;quot;signaling&amp;quot; which serves two purposes:&lt;br /&gt;
* Peers meet each other&lt;br /&gt;
* Peers can exchange some messages w/ each other (like &amp;quot;offer: i can do this codec&amp;quot; or &amp;quot;ice: i have this kind of nat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
It is implemented on top of the existing IRC channels (via SockerHub) using special message formats, which will get parsed by the HC Client. For backwards compat (later), it could include a link to the SA app:&lt;br /&gt;
&lt;br /&gt;
    A → B [67p-rtc-invite] Here is your video call: https://playground.p67.io/rtc/bilfgneehlrieli&lt;br /&gt;
    B → A [67p-rtc-accept] Accepted&lt;br /&gt;
    A → B [67p-rtc-params] (Signaling messages)&lt;br /&gt;
    ...&lt;/div&gt;</summary>
		<author><name>Jan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Audio/video_communication&amp;diff=116</id>
		<title>Feature:Audio/video communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Audio/video_communication&amp;diff=116"/>
		<updated>2014-12-03T17:47:48Z</updated>

		<summary type="html">&lt;p&gt;Jan: more on hyperchannel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
67P comes with integrated video- and audio chat capabilities. In the beginning, this is limited to 1on1 calls, but we will support conferencing and/or broadcasting at a later point. WebRTC (Web Real-time Communication) &amp;lt;http://webrtc.org&amp;gt; is used to enable this. WebRTC currently works in Firefox, Chrome, FF and Chrome on Android, Windows Opera and some lesser known browsers (e.g. Bowser on iOS). We might switch to ORTC &amp;lt;http://ortc.org&amp;gt; at some point, because that lower-level standard will be supported in Internet Explorer also.&lt;br /&gt;
&lt;br /&gt;
=== Points to Discuss (read on for more info) ===&lt;br /&gt;
&lt;br /&gt;
* Text chat connection in stand-alone version&lt;br /&gt;
* How to do the signaling&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
67P RTC will be two things:&lt;br /&gt;
&lt;br /&gt;
* A stand-alone web application&lt;br /&gt;
* An integrated video/audio call feature in HyperChannel&lt;br /&gt;
&lt;br /&gt;
Both implementations share a lot of their client-code and use the same webrtc backend stack. Only direct 1on1 calls will be implemented for now.&lt;br /&gt;
&lt;br /&gt;
=== HyperChannel Integration ===&lt;br /&gt;
&lt;br /&gt;
A video stream/audio symbol will be integrated into the 67P UI. You can also &amp;quot;pop-out&amp;quot; this UI component (which could be the same as the SA view or not), which makes working on multiple screens easier (and request full screen simpler).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Stand Alone Application ===&lt;br /&gt;
&lt;br /&gt;
The WebRTC Stand Alone Application will be needed in the following cases:&lt;br /&gt;
&lt;br /&gt;
* One of the participants is not on HC, but using an IRC Client&lt;br /&gt;
* Both parties are using IRC. The Server/Mod generates a room link on the SA app for them. Or maybe: Don't support this scenario?&lt;br /&gt;
* Inviting people to an 1on1 chat that are not part of the current 67P organisation (maybe via email)&lt;br /&gt;
&lt;br /&gt;
=== Feature Ideas for Later™ ===&lt;br /&gt;
&lt;br /&gt;
* Screensharing&lt;br /&gt;
* Conferencing&lt;br /&gt;
* Broadcasting&lt;br /&gt;
* Call in to a WebRTC call via plain old phone system&lt;br /&gt;
&lt;br /&gt;
== Technical Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''Components:''' Client/UI Integration, Signaling Backend (might be IRC/SH), TURN Relay, SFU/MCU for Conferencing &amp;gt; 4&lt;br /&gt;
&lt;br /&gt;
=== Integration of Stand Alone App ===&lt;br /&gt;
&lt;br /&gt;
The SA application displays the video stream of the other party, however, some kind of text communication channel is still needed (people want to exchange links etc). There are at least three possibile variants, how this could work:&lt;br /&gt;
&lt;br /&gt;
* Create some anonymous IRC-Channel &amp;quot;on-the-fly&amp;quot; (Drawback: Has to be integrate with IRC Server, not really &amp;quot;stand-alone&amp;quot; anymore)&lt;br /&gt;
* No Text-Chat, but Button &amp;quot;promote this to HyperChannel session&amp;quot; (Drawback: No text chat initially)&lt;br /&gt;
* Provide P2P Text-Chat via WebRTC's DataChannels (Drawback: Alternative Text Chat implementation, no HC Enhancements, Logs, etc)&lt;br /&gt;
&lt;br /&gt;
''Jan: Currently, my favorite option would be option 1 (if that's technically possible easily) or option 3''&lt;br /&gt;
&lt;br /&gt;
=== Signaling ===&lt;br /&gt;
&lt;br /&gt;
WebRTC requires &amp;quot;signaling&amp;quot; which serves two purposes:&lt;br /&gt;
* Peers meet each other&lt;br /&gt;
* Peers can exchange some messages w/ each other (like &amp;quot;offer: i can do this codec&amp;quot; or &amp;quot;ice: i have this kind of nat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
We already have some components in the stack that can exchange messages. But it might be better to let an external server/service handle this job. Here are three ways, this could work:&lt;br /&gt;
&lt;br /&gt;
==== Option 1: Signaling via IRC ====&lt;br /&gt;
&lt;br /&gt;
Peers exchange their signaling messages over IRC, using some &amp;quot;special&amp;quot; message formats. For backwards compat, it includes a link to the SA app:&lt;br /&gt;
&lt;br /&gt;
    A → B [67p-rtc-invite] Here is your video call: https://playground.p67.io/rtc/bilfgneehlrieli&lt;br /&gt;
    B → A [67p-rtc-accept] Accepted&lt;br /&gt;
    A → B [67p-rtc-params] (Signaling messages)&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
If B is not an HC client, it won't send the &amp;quot;accepted&amp;quot;, so signaling will be done directly in the SA app, once the link is accessed. Option 3 would work very similar.&lt;br /&gt;
&lt;br /&gt;
'''Advantages:'''&lt;br /&gt;
* No extra component/infrastructure required&lt;br /&gt;
* &amp;quot;Communication Channel&amp;quot; between peers already exists (at least in HC)&lt;br /&gt;
&lt;br /&gt;
'''Disadvantages:'''&lt;br /&gt;
* Stand-alone app needs IRC connection&lt;br /&gt;
* Signaling must start from web app (Browser required) - cannot be done directly from IRC-Client&lt;br /&gt;
&lt;br /&gt;
==== Option 2: Signaling via a SocketHub platform ====&lt;br /&gt;
&lt;br /&gt;
SocketHub could have a WebRTC platform, that is used to find the peer and exchange the signaling messages. The verbs would probably be: send, join, leave, observe&lt;br /&gt;
&lt;br /&gt;
'''Advantages:'''&lt;br /&gt;
* No extra component/infrastructure required&lt;br /&gt;
&lt;br /&gt;
'''Disadvantages:'''&lt;br /&gt;
* SocketHub focus is more to wrap existing services, instead of handling accounts/peers directly. All peers would have be connected to the same SH to be able to send each other messages. The webfinger approach would be a way to work around this, but this is out of scope (we don't want to require each possible participant to have a webfinger record)&lt;br /&gt;
&lt;br /&gt;
==== Option 3: External Signaling ====&lt;br /&gt;
&lt;br /&gt;
Signaling could be done by an external component that does room based signaling (&amp;quot;signaling server&amp;quot;) like palava.tv/signaling.io/smoke-signals/signalmaster/xmpp/whatever). Both, HyperChannel and the SA app integrate some code to connect this signaling component, and don't implement the code themselves. We don't have to decide on a specific server/service. Jan is currently working on a open source javascript library (&amp;quot;signaling.js&amp;quot;), that abstracts the signaling provider and offers the same api to the developer, who can use it togehter with a webrtc client library like &amp;quot;simple-peer&amp;quot;. The prototype is implemented and it will be released soon. Another option would be, to a create a SocketHub webrtc platform, which wraps a signaling server/service.&lt;br /&gt;
&lt;br /&gt;
'''Advantages:'''&lt;br /&gt;
* Same client code can be used in HC and in stand-alone&lt;br /&gt;
* Separation of concerns: main app does not need to know about webrtc-signaling-internals&lt;br /&gt;
&lt;br /&gt;
'''Disadvantages:'''&lt;br /&gt;
* (Mostly) this means client establish an extra ws-connection&lt;br /&gt;
* More operations (or relying on 3rd party)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Jan: I would suggest option 3 (since it seems most flexible), but also like option 1 a lot (especially if we go with always IRC in the stand-alone sessions)''&lt;/div&gt;</summary>
		<author><name>Jan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Audio/video_communication&amp;diff=115</id>
		<title>Feature:Audio/video communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Audio/video_communication&amp;diff=115"/>
		<updated>2014-12-03T17:41:56Z</updated>

		<summary type="html">&lt;p&gt;Jan: more separation between feature desc and technical details&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
67P comes with integrated video- and audio chat capabilities. In the beginning, this is limited to 1on1 calls, but we will support conferencing and/or broadcasting at a later point. WebRTC (Web Real-time Communication) &amp;lt;http://webrtc.org&amp;gt; is used to enable this. WebRTC currently works in Firefox, Chrome, FF and Chrome on Android, Windows Opera and some lesser known browsers (e.g. Bowser on iOS). We might switch to ORTC &amp;lt;http://ortc.org&amp;gt; at some point, because that lower-level standard will be supported in Internet Explorer also.&lt;br /&gt;
&lt;br /&gt;
=== Points to Discuss (read on for more info) ===&lt;br /&gt;
&lt;br /&gt;
* Text chat connection in stand-alone version&lt;br /&gt;
* How to do the signaling&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
67P RTC will be two things:&lt;br /&gt;
&lt;br /&gt;
* A stand-alone web application&lt;br /&gt;
* An integrated video/audio call feature in HyperChannel&lt;br /&gt;
&lt;br /&gt;
Both implementations share a lot of their client-code and use the same webrtc backend stack.&lt;br /&gt;
&lt;br /&gt;
Only direct 1on1 calls will be implemented for now.&lt;br /&gt;
&lt;br /&gt;
=== Stand Alone Application ===&lt;br /&gt;
&lt;br /&gt;
The WebRTC Stand Alone Application will be needed in the following cases:&lt;br /&gt;
&lt;br /&gt;
* One of the participants is not on HC, but using an IRC Client&lt;br /&gt;
* Both parties are using IRC. The Server/Mod generates a room link on the SA app for them. Or maybe: Don't support this scenario?&lt;br /&gt;
* Inviting people to an 1on1 chat that are not part of the current 67P organisation (maybe via email)&lt;br /&gt;
&lt;br /&gt;
=== Feature Ideas for Later™ ===&lt;br /&gt;
&lt;br /&gt;
* Screensharing&lt;br /&gt;
* Conferencing&lt;br /&gt;
* Broadcasting&lt;br /&gt;
* Call in to a WebRTC call via plain old phone system&lt;br /&gt;
&lt;br /&gt;
== Technical Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''Components:''' Client/UI Integration, Signaling Backend (might be IRC/SH), TURN Relay, SFU/MCU for Conferencing &amp;gt; 4&lt;br /&gt;
&lt;br /&gt;
=== Integration of Stand Alone App ===&lt;br /&gt;
&lt;br /&gt;
The SA application displays the video stream of the other party, however, some kind of text communication channel is still needed (people want to exchange links etc). There are at least three possibile variants, how this could work:&lt;br /&gt;
&lt;br /&gt;
* Create some anonymous IRC-Channel &amp;quot;on-the-fly&amp;quot; (Drawback: Has to be integrate with IRC Server, not really &amp;quot;stand-alone&amp;quot; anymore)&lt;br /&gt;
* No Text-Chat, but Button &amp;quot;promote this to HyperChannel session&amp;quot; (Drawback: No text chat initially)&lt;br /&gt;
* Provide P2P Text-Chat via WebRTC's DataChannels (Drawback: Alternative Text Chat implementation, no HC Enhancements, Logs, etc)&lt;br /&gt;
&lt;br /&gt;
''Jan: Currently, my favorite option would be option 1 (if that's technically possible easily) or option 3''&lt;br /&gt;
&lt;br /&gt;
=== Signaling ===&lt;br /&gt;
&lt;br /&gt;
WebRTC requires &amp;quot;signaling&amp;quot; which serves two purposes:&lt;br /&gt;
* Peers meet each other&lt;br /&gt;
* Peers can exchange some messages w/ each other (like &amp;quot;offer: i can do this codec&amp;quot; or &amp;quot;ice: i have this kind of nat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
We already have some components in the stack that can exchange messages. But it might be better to let an external server/service handle this job. Here are three ways, this could work:&lt;br /&gt;
&lt;br /&gt;
==== Option 1: Signaling via IRC ====&lt;br /&gt;
&lt;br /&gt;
Peers exchange their signaling messages over IRC, using some &amp;quot;special&amp;quot; message formats. For backwards compat, it includes a link to the SA app:&lt;br /&gt;
&lt;br /&gt;
    A → B [67p-rtc-invite] Here is your video call: https://playground.p67.io/rtc/bilfgneehlrieli&lt;br /&gt;
    B → A [67p-rtc-accept] Accepted&lt;br /&gt;
    A → B [67p-rtc-params] (Signaling messages)&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
If B is not an HC client, it won't send the &amp;quot;accepted&amp;quot;, so signaling will be done directly in the SA app, once the link is accessed. Option 3 would work very similar.&lt;br /&gt;
&lt;br /&gt;
'''Advantages:'''&lt;br /&gt;
* No extra component/infrastructure required&lt;br /&gt;
* &amp;quot;Communication Channel&amp;quot; between peers already exists (at least in HC)&lt;br /&gt;
&lt;br /&gt;
'''Disadvantages:'''&lt;br /&gt;
* Stand-alone app needs IRC connection&lt;br /&gt;
* Signaling must start from web app (Browser required) - cannot be done directly from IRC-Client&lt;br /&gt;
&lt;br /&gt;
==== Option 2: Signaling via a SocketHub platform ====&lt;br /&gt;
&lt;br /&gt;
SocketHub could have a WebRTC platform, that is used to find the peer and exchange the signaling messages. The verbs would probably be: send, join, leave, observe&lt;br /&gt;
&lt;br /&gt;
'''Advantages:'''&lt;br /&gt;
* No extra component/infrastructure required&lt;br /&gt;
&lt;br /&gt;
'''Disadvantages:'''&lt;br /&gt;
* SocketHub focus is more to wrap existing services, instead of handling accounts/peers directly. All peers would have be connected to the same SH to be able to send each other messages. The webfinger approach would be a way to work around this, but this is out of scope (we don't want to require each possible participant to have a webfinger record)&lt;br /&gt;
&lt;br /&gt;
==== Option 3: External Signaling ====&lt;br /&gt;
&lt;br /&gt;
Signaling could be done by an external component that does room based signaling (&amp;quot;signaling server&amp;quot;) like palava.tv/signaling.io/smoke-signals/signalmaster/xmpp/whatever). Both, HyperChannel and the SA app integrate some code to connect this signaling component, and don't implement the code themselves. We don't have to decide on a specific server/service. Jan is currently working on a open source javascript library (&amp;quot;signaling.js&amp;quot;), that abstracts the signaling provider and offers the same api to the developer, who can use it togehter with a webrtc client library like &amp;quot;simple-peer&amp;quot;. The prototype is implemented and it will be released soon. Another option would be, to a create a SocketHub webrtc platform, which wraps a signaling server/service.&lt;br /&gt;
&lt;br /&gt;
'''Advantages:'''&lt;br /&gt;
* Same client code can be used in HC and in stand-alone&lt;br /&gt;
* Separation of concerns: main app does not need to know about webrtc-signaling-internals&lt;br /&gt;
&lt;br /&gt;
'''Disadvantages:'''&lt;br /&gt;
* (Mostly) this means client establish an extra ws-connection&lt;br /&gt;
* More operations (or relying on 3rd party)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Jan: I would suggest option 3 (since it seems most flexible), but also like option 1 a lot (especially if we go with always IRC in the stand-alone sessions)''&lt;/div&gt;</summary>
		<author><name>Jan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Audio/video_communication&amp;diff=114</id>
		<title>Feature:Audio/video communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Audio/video_communication&amp;diff=114"/>
		<updated>2014-12-03T17:28:58Z</updated>

		<summary type="html">&lt;p&gt;Jan: Initial Draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
67P comes with integrated video- and audio chat capabilities. In the beginning, this is limited to 1on1 calls, but we will support conferencing and/or broadcasting at a later point. WebRTC (Web Real-time Communication) &amp;lt;http://webrtc.org&amp;gt; is used to enable this. WebRTC currently works in Firefox, Chrome, FF and Chrome on Android, Windows Opera and some lesser known browsers (e.g. Bowser on iOS). We might switch to ORTC &amp;lt;http://ortc.org&amp;gt; at some point, because that lower-level standard will be supported in Internet Explorer also.&lt;br /&gt;
&lt;br /&gt;
=== Points to Discuss (read on for more info) ===&lt;br /&gt;
&lt;br /&gt;
* Text chat connection in stand-alone version&lt;br /&gt;
* How to do the signaling&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
67P RTC will be two things:&lt;br /&gt;
&lt;br /&gt;
* A stand-alone web application&lt;br /&gt;
* An integrated video/audio call feature in HyperChannel&lt;br /&gt;
&lt;br /&gt;
Both implementations share a lot of their client-code and use the same webrtc backend stack.&lt;br /&gt;
&lt;br /&gt;
Only direct 1on1 calls will be implemented for now.&lt;br /&gt;
&lt;br /&gt;
=== Stand Alone Application ===&lt;br /&gt;
&lt;br /&gt;
The WebRTC Stand Alone Application will be needed in the following cases:&lt;br /&gt;
&lt;br /&gt;
* One of the participants is not on HC, but using an IRC Client&lt;br /&gt;
* Both parties are using IRC. The Server/Mod generates a room link on the SA app for them. Or maybe: Don't support this scenario?&lt;br /&gt;
* Inviting people to an 1on1 chat that are not part of the current 67P organisation (maybe via email)&lt;br /&gt;
&lt;br /&gt;
The SA application displays the video stream of the other party, however, some kind of text communication channel is still needed (people want to exchange links etc). There are at least three possibile variants, how this could work:&lt;br /&gt;
&lt;br /&gt;
* Create some anonymous IRC-Channel &amp;quot;on-the-fly&amp;quot; (Drawback: Has to be integrate with IRC Server, not really &amp;quot;stand-alone&amp;quot; anymore)&lt;br /&gt;
* No Text-Chat, but Button &amp;quot;promote this to HyperChannel session&amp;quot; (Drawback: No text chat initially)&lt;br /&gt;
* Provide P2P Text-Chat via WebRTC's DataChannels (Drawback: Alternative Text Chat implementation, no HC Enhancements, Logs, etc)&lt;br /&gt;
&lt;br /&gt;
''Jan: Currently, my favorite option would be option 1 (if that's technically possible easily) or option 3''&lt;br /&gt;
&lt;br /&gt;
=== Feature Ideas for Later™ ===&lt;br /&gt;
&lt;br /&gt;
* Screensharing&lt;br /&gt;
* Conferencing&lt;br /&gt;
* Broadcasting&lt;br /&gt;
* Call in to a WebRTC call via plain old phone system&lt;br /&gt;
&lt;br /&gt;
== Technical Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''Components:''' Client/UI Integration, Signaling Backend (might be IRC/SH), TURN Relay, SFU/MCU for Conferencing &amp;gt; 4&lt;br /&gt;
&lt;br /&gt;
=== Signaling ===&lt;br /&gt;
&lt;br /&gt;
WebRTC requires &amp;quot;signaling&amp;quot; which serves two purposes:&lt;br /&gt;
* Peers meet each other&lt;br /&gt;
* Peers can exchange some messages w/ each other (like &amp;quot;offer: i can do this codec&amp;quot; or &amp;quot;ice: i have this kind of nat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
We already have some components in the stack that can exchange messages. But it might be better to let an external server/service handle this job. Here are three ways, this could work:&lt;br /&gt;
&lt;br /&gt;
==== Option 1: Signaling via IRC ====&lt;br /&gt;
&lt;br /&gt;
Peers exchange their signaling messages over IRC, using some &amp;quot;special&amp;quot; message formats. For backwards compat, it includes a link to the SA app:&lt;br /&gt;
&lt;br /&gt;
    A → B [67p-rtc-invite] Here is your video call: https://playground.p67.io/rtc/bilfgneehlrieli&lt;br /&gt;
    B → A [67p-rtc-accept] Accepted&lt;br /&gt;
    A → B [67p-rtc-params] (Signaling messages)&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
If B is not an HC client, it won't send the &amp;quot;accepted&amp;quot;, so signaling will be done directly in the SA app, once the link is accessed. Option 3 would work very similar.&lt;br /&gt;
&lt;br /&gt;
'''Advantages:'''&lt;br /&gt;
* No extra component/infrastructure required&lt;br /&gt;
* &amp;quot;Communication Channel&amp;quot; between peers already exists (at least in HC)&lt;br /&gt;
&lt;br /&gt;
'''Disadvantages:'''&lt;br /&gt;
* Stand-alone app needs IRC connection&lt;br /&gt;
* Signaling must start from web app (Browser required) - cannot be done directly from IRC-Client&lt;br /&gt;
&lt;br /&gt;
==== Option 2: Signaling via a SocketHub platform ====&lt;br /&gt;
&lt;br /&gt;
SocketHub could have a WebRTC platform, that is used to find the peer and exchange the signaling messages. The verbs would probably be: send, join, leave, observe&lt;br /&gt;
&lt;br /&gt;
'''Advantages:'''&lt;br /&gt;
* No extra component/infrastructure required&lt;br /&gt;
&lt;br /&gt;
'''Disadvantages:'''&lt;br /&gt;
* SocketHub focus is more to wrap existing services, instead of handling accounts/peers directly. All peers would have be connected to the same SH to be able to send each other messages. The webfinger approach would be a way to work around this, but this is out of scope (we don't want to require each possible participant to have a webfinger record)&lt;br /&gt;
&lt;br /&gt;
==== Option 3: External Signaling ====&lt;br /&gt;
&lt;br /&gt;
Signaling could be done by an external component that does room based signaling (&amp;quot;signaling server&amp;quot;) like palava.tv/signaling.io/smoke-signals/signalmaster/xmpp/whatever). Both, HyperChannel and the SA app integrate some code to connect this signaling component, and don't implement the code themselves. We don't have to decide on a specific server/service. Jan is currently working on a open source javascript library (&amp;quot;signaling.js&amp;quot;), that abstracts the signaling provider and offers the same api to the developer, who can use it togehter with a webrtc client library like &amp;quot;simple-peer&amp;quot;. The prototype is implemented and it will be released soon. Another option would be, to a create a SocketHub webrtc platform, which wraps a signaling server/service.&lt;br /&gt;
&lt;br /&gt;
'''Advantages:'''&lt;br /&gt;
* Same client code can be used in HC and in stand-alone&lt;br /&gt;
* Separation of concerns: main app does not need to know about webrtc-signaling-internals&lt;br /&gt;
&lt;br /&gt;
'''Disadvantages:'''&lt;br /&gt;
* (Mostly) this means client establish an extra ws-connection&lt;br /&gt;
* More operations (or relying on 3rd party)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Jan: I would suggest option 3 (since it seems most flexible), but also like option 1 a lot (especially if we go with always IRC in the stand-alone sessions)''&lt;/div&gt;</summary>
		<author><name>Jan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Team&amp;diff=90</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Team&amp;diff=90"/>
		<updated>2014-11-30T17:57:05Z</updated>

		<summary type="html">&lt;p&gt;Jan: /* The Team */ add angular to myself&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Agreement ==&lt;br /&gt;
&lt;br /&gt;
The core team consists of a group of people, who have agreed with each other on several things:&lt;br /&gt;
&lt;br /&gt;
* 67P is sorely needed an we want to use it today/asap/yesterday&lt;br /&gt;
* We can imagine this to be commercially successful, and we can see us founding a company for the paid/pro version and potentially working for it at some point (to whatever degree that might be)&lt;br /&gt;
* We will take the first step and implement the [[prototype]] MVP as a side project. Most of us will come to Hacker Beach in January 2015, so we'll try to finish the prototype during our time there and then define how to proceed&lt;br /&gt;
* All work done until then, and (as far as possible) forever, will be published under open-source licenses. However, we want to protect the project name/ trademark, so that people using the name/trademark commercially need to ask our permission, and so that we can use the name commercially ourselves for the benefit of all contributors (incl. non-partners/employees/shareholders).&lt;br /&gt;
&lt;br /&gt;
== The Team ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;&amp;quot; style=&amp;quot;width: 100%; text-align: left&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! a.k.a.&lt;br /&gt;
! Involvement/expertise&lt;br /&gt;
|-&lt;br /&gt;
| Ben Kero&lt;br /&gt;
| bkero&lt;br /&gt;
| SysOps, DevOps, *nix systems, infrastructure development, IRC, open-source collab/community/dev/relations, ...&lt;br /&gt;
|-&lt;br /&gt;
| David Grieshammer&lt;br /&gt;
| ...&lt;br /&gt;
| User experience design, interaction design, graphic/web design, audio, ...&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Galfert|Garret Alfert]]&lt;br /&gt;
| galfert&lt;br /&gt;
| Software development (full-stack), Ember.js, RemoteStorage, back-end, payments, ...&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Gregkare|Grégory Karékinian]]&lt;br /&gt;
| gregkare, gkarekinian&lt;br /&gt;
| Infrastructure development, DevOps, operations, Chef, Ruby, *nix systems ...&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Jan|Jan Lelis]]&lt;br /&gt;
| janlelis, jan, jaaan&lt;br /&gt;
| Software development (full-stack), WebRTC, Ruby, Rails, JavaScript, AngularJS&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Silverbucket|Nick Jennings]]&lt;br /&gt;
| silverbucket, slvrbckt&lt;br /&gt;
| Software development (full-stack), JavaScript, Node.js, Sockethub, RemoteStorage, ...&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Basti|Sebastian Kippe]]&lt;br /&gt;
| basti, skddc, raucao&lt;br /&gt;
| Software development (full-stack), front-end/UI, Ember.js, RemoteStorage / business, funding, human resources, ...&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jan</name></author>
		
	</entry>
</feed>