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:

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:

  1. 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.
  2. 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.
  3. 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.


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