From: Dan Connolly (connolly@w3.org)
Date: Sat Jan 13 2001 - 22:48:39 PST
The lack of tel: and irc: support in the web has itched
me for the longest time; after writing/whining about it
a bit...
Real-Time Resources in the Web
http://www.w3.org/2001/01/rtriw44
Sat, 13 Jan 2001 17:05:51 GMT
I finally scratched the itch with some hacking...
[[[
telagent
an HTTP agent for placing and receiving
telephone calls
This telagent integrates telephones as resources in the web, using
the tel: scheme; see Real-Time Resources in the Web for details; the
basic idea is:
1.your web user agent should handle a link to W3C's MIT office
phone (NS) kinda like a mailbox link: offer to dial to it.
2.caller-id should make the phone a little more like email: you
can tell who it's from before you answer it, and you can answer
it any time later with one click.
Start it going ala:
python telAgent.py /dev/ttyS3 491-0501 8501 ~/.phoneLog >~/.phoneHTTPlog
and it will
open a connection to the modem (/dev/ttyS3) and log caller-id
info
listen on port 8501 for HTTP requests:
GET / shows a log of the caller-id info with
incoming numbers linked to their tel: addresses for
easy call-back
additional info about the area code
GET tel:... shows an offer (a form) to dial to that phone;
for north american numbers, it shows timezone info and,
based on that, the current time there.
POST /dialer with dialAs and target args dials the phone
(and writes a log entry)
POST /dialer with an empty dialAs hangs up the phone
TODO
let incoming calls spawn new windows:
turn incoming caller-id info into HTTP POST events that
you can subscribe to (ala KnowNow)
an HTTP agent that responds to POST requests by
bringing up web pages on the desktop.
along with "dial this number" requests, support "... and start
recording the resulting conversation"; in general, handle
follow-up after dialing
load (some of) the caller-id log from disk on start-up, and
purge some of it from memory after a while.
Bugs/Limitations
Netscape, unfortunately, doesn't support proxying tel:... URIs; in
fact, it doesn't recognize them as absolute URIs. You can, however,
(ab)use the urn: proxy support; try this automatic proxy
configuration for urn:tel: URIs, and then try W3C's MIT office
phone, rigged with netscape work-around.
My tel: handler is limited to localhost (127.0.0.1); I haven't figured
out a good way to get the absolute URI of the dialer to the right
parts of the code.
There's an abstract TelnumNav class for figuring out what digits to
call to get from this phone to the phone identified by some URI; the
subclass I've implemented is the rules for dialing from 913 in
Kansas (which is pretty much like any place else in the U.S., except
for 816 numbers).
Architecture and Requirements
medusa
Sam Rushing's cooperative multi-tasking server architecture
I just downloaded medusa-src-20000601.tar.gz and
unpacked it and then used
PYTHONPATH=/medusa's/parent/dir python ...
to help python find it
Acknowledgements and References
conversation with David Boles... JWZ's caller-id thingy...
found cid 17Dec2000; it's a client/server caller-id thingy in python
URLs for Telephone Calls, A. Vaha-Sipila , April 2000
tel: in An Index of WWW Addressing Schemes
modems.com -- Extended AT Command Sets
Fri, 31 Jul 1998 21:06:12 GMT
Zoom Telephonics: Dualmode Zoom/FaxModems 56K, 56Kv,
and 56Kx
Thu, 01 Jun 2000 12:31:55 GMT
Dan Connolly
$Revision: 1.2 $ of $Date: 2001/01/14 06:38:53 $ by $Author: connolly $
]]]
-- 2001/telagent/
http://dev.w3.org/cvsweb/2001/telagent/#dirlist
Thu, 01 Jan 1970 00:00:00 GMT
-- Dan Connolly, W3C http://www.w3.org/People/Connolly/
This archive was generated by hypermail 2b29 : Sun Jan 14 2001 - 04:29:53 PST