Contents |
PSYC Identification for Telephony
The UNI vs UNL concept separates identification from current location, PSYC is more lightweight than SIP and can serve a similar job if necessary. By itself not spectacular since Jingle follows the same approach.
Decentralized PSYC-based Telephony
What's the use? In a one-to-one situation it should be fine to use existing telephony protocols, however by embedding data into binary PSYC you get a few minor advantages:
- Other traffic like chat or file transfers can share the same TCP circuit if that's useful
- Technical solutions to circumvent firewall issues need to be addressed only once (see STUN etc.)
- PSYC routing capabilities may prove useful, so does the trust network
When doing any kind of multi-user telephony there are many possible scenarios how to actually implement this.. as a standing conference session, or in form of audio/video snippets thrown into a chatroom. Whatever constellation you wish to implement, you always have a data distribution challenge which you should solve by multicasting - and this of course is PSYC's forte. Regular VoIP technology doesn't provide you with that.
Too bad nothing of this is actually implemented or available. Actually, symlynX does these kind of apps using PSYC interserver technology but RTMP as its client interface.
<coyo> oh my gawds, reading that made a mess of my keyboard.. >///>
<coyo> why not packetize the a/v streams, and segment the stream into discrete packets, using a stream-capable container format? something fast.
<fippo> erm... that is how voice/video data (frames) is usually transmitted. Typically, RTP is used as a really really fast transport protocol, but we prefer to use psyc because of flexibility.
Web-based Telephony
So Flash has come up with the RTMP protocol that allows any web browser to start a bi-directional audio/video interaction with a server, since the Flash plug-in is close to omnipresent in Internet user experiences.
In a very very simple set-up we run a psyced in team with a RTMP daemon and let them share a secret. This allows for psyced to generate web links that both sides of a conversation can click upon (or pop up automatically), and that the RTMP daemon can validate to protect it from being used by strangers.
Protocol flow:
- The command intended to provide this is currently named /call. Provided with a person as argument it will issue a _request_talk_link to it carrying a _page_talk with the link that allows for the RTMP conversation. Since a Flash-based client may be running on the other side, it will also provide a _uniform_talk variable carrying the rtmp: uniform.
- At the same time /call will produce an _info_talk_link to its own user featuring its own variation of the _page_talk and _uniform_talk links.
- An _echo_talk_link should be generated by the receiving client as the RTMP is being created. Should the link be used instead, which is then done by an external browser application, then this link can generate an equivalent internal fake _echo. In either case, the echo would suitably trigger the opening of the audio/video interface on the calling side.
The link is currently implemented as an HTML page, which outputs a flash movie, which then connects to the corresponding RTMP daemon. It therefore redundantly contains the information which is also in the _uniform_talk variable (Avoiding this would require more intelligence in the template logic of psyctext).
Security consideration: Generation of such links must validate involved communications partners and expire to avoid re-use by other people. Alternatively, the creation of the own _page_talk etc could be delayed until the _echo has arrived, which almost ensures that the second link only exists when the first is already in use.
- The /call may also be used to generate one-time-links for people who are actually not reachable from PSYC. The /call command without arguments would then generate a pair of links of which one needs to be delivered to the other side by whatever means.
Testimonials
elmex spritzt: ich hab was gegen internet telefonie in jeglicher form elmex spritzt: weil die ersten minuten immer die selben sind fiPP fragt: mh? fiPP fragt: wie denn?
elmex spritzt: "Hallo <FEIFEJfwe r83r j9 hoert!" "Hallo? Ich versteh dich kaum..." "Oh, das wirfwejfweo load sein. SekudnFEUIfneiuwf ich drehmaidowefjewf unter! ... -Jetzt bebebebessser?" "ja, aber mach mal echounterdrueckung hoch" "Ok ok ok ok... " "geht immernoch net" "jetzt?" "ja,a ber jetzt bist du zu leise"
elmex spritzt: das is erfahrung fiPP hotzenplotzt: lol elmex spritzt: war bisher immerso wenn ich SIP oder sowas ausprobiert habe
See also
- Streamcasting.
- Software Projects.
- FaceTime
- ICE