Subject: [IETF-FAX] Addition to Agenda.

From: [email-masked]
Date: Tue, 28 Mar 2000 17:30:54 +0900 (JST)

Dear Colleagues,

A person asked me that he would like to make a presentation
at our meeting about Fax-Gateway issue.

He requests only 5 minutes, so Allocchio-san and I accepted it.
Before closing our meeting, he will do it.

I do not know if his idea is good/suitable for our wg/
useful or not. Because it is not based on SMTP.

Anyway, he promised to me that he will circulte his detailed idea
in our ML, sooner or later.

Regards,
--
Hiroshi Tamura([email-masked])

---

From: KITAGAWA Takurou <[email-masked]>
Date: 28 Mar 2000 23:29:55 +0900

> in our ML, sooner or later.

---------------------------------------------------------------------------
Directory Server for Internet Fax with HTTP and CGI

Abstract

A directory server, which receives a traditional
fax number of G3fax, and returns the information of "offramp"
gateway, used by a terminal on the Internet to send facsimile
to G3fax, is defined.
This server uses HTTP and CGI mechanism to communicate with a
terminal.

1. Introduction

An Internet FAX uses an "offramp" gateway to send facsimile to a
terminal located at PSTN.

But, if users must input a address of a gateway for each sending,
it bothers them very much.

Thus, when a terminal itself can get the information of gateway,
a user have to input only a fax number.
This is a same user interface as one of G3fax, and Internet Fax will
become easier to use.

In this draft, a directory server, which finds a best offramp
gateway, according to a fax number inputed by a user, and notifies it
to a fax terminal on the Internet.

This server uses HTTP and CGI mechanism to communicate with a client.

2. Query from client to server

A client, or a fax terminal on the Internet, accesses to
following URI with HTTP, using a GET method.

http://<server>/[path]?<fax number>

<server> is the host name (or IP address) of the directory server.

A server MAY require [path], to specify a directory in it.

<fax number> is the fax number of G3fax given by a user, and it is
composed of digit 0-9, *, and/or #.

<server> and [path] in this URI, which are required information to
specify a directory, are set up in a client in advance.

3. Answer from server to client

A server receives a fax number given by a client with the CGI
mechanism.
Then a sever looks for a gateway, which works well for the
requested fax number.

3.1 The case that server found the gateway

A server returns HTTP status code 200 (OK) to a client,
and a body part of the reply contins the information of a gateway.

As the description format of the information, we can be use the format
defined in [draft-ietf-fax-fulladdr-06.txt].

Example: 

( C> indicates the data from client to server, and S> indicates the
data from client to server )

C>GET /?12345678 HTTP/1.0
C>
S>200 OK
S>Content-Type: application/x-fax-address
S>
S>FAX=+12345678@faxgw

3.2 The case that the server could not find the gateway

A server returns HTTP status code 404 (Not Found) to a client.

Example:

C>GET /?87654321 HTTP/1.0
C>
S>404 Not Found
S>

3.3 Timeout

A client waits for an answer from a server during the specified time
after it sent an query.
When a client receives no answer from a server during the time, 
it judges that a server error occurred.

3.5 Other status codes

A server MAY return other status codes to a client if necessary.
When a client receives an HTTP Status Code not described above,
it SHOULD deal it as an usual HTTP user agents does.

4. Security

A telephone directory server MAY authenticate a client in accordance
with the HTTP framework, if necessary.

---------------------------------------------------------------------------

-- 
KITAGAWA Takurou
Graduate School of Informatics, Kyoto University
[email-masked]

---

From: Dan Wing <[email-masked]>
Date: Tue, 28 Mar 2000 08:13:07 -0800 (PST)

A few comments on this proposal:

1. E.164 -> DNS mapping works just as well as this proposal and scales
to the largest enterprise or telephone company.

2. Is there supposed to be an Internet-wide authority on the
"best" offramp for everyone to use?

3. Why HTTP instead of LDAP?  Because HTTP is ubiquitous?

-Dan Wing

---

From: KITAGAWA Takurou <[email-masked]>
Date: 29 Mar 2000 10:09:26 +0900

Dear Dan;

Thank you for your comments.

> "best" offramp for everyone to use?

Of course, "best" offramp is different between users, it depends
on a local policy of each user.
And this is the reason why a terminal doesn't use E.164 -> DNS
mapping directly, i.e. ENUM.
It is not a solution for a local policy management.

An implementation of a typical direcotry server
is as follows (but note that this is an example):

1. A server receive a fax number
2. A server looks up its own local database, which is built
   according to its local policy.
3. If the information of gateway is found in local database of a
   server, a server returns it to a terminal.
4. If a server could not find the information in local database,
   it looks up a global database, ENUM for example,
   and returns a result.

There may be many directory servers in the Internet.
They are managed by many providors or carriers, and have
their own policies.
A user choose one (or more) directory server from them,
according to a user's policy, and set a terminal up with chosen
server(s).

Then there is another reason that the ENUM framwork is hard to be used
directly from a terminal.
When a server receive a number like "+81-3-xxx-xxxx", a terminal
expects the information of an offramp localed in Tokyo,
like "FAX=[email-masked]".
If a server want to do such conversion in ENUM framework, it has to
contain many, many entries for each number starting at "+81-3-", or
requires specialized implementation for it.

> 3. Why HTTP instead of LDAP?  Because HTTP is ubiquitous?

Because with HTTP, a server can be implemented easily.
I have already implemented this directory server with Apache and Perl,
in less than an hour.

Regards,