Returned mail: Cannot send message for 1 week, 2 days (fwd)

Jayakumar Muthukumarasamy ([email protected])
Fri, 16 Dec 1994 18:40:51 -0500 (EST)

Hi Pedro,

I had sent you this message some time back, but I had put the
address in incorrectly. So, I am sending it to you again.

-jk

Forwarded message:
> From [email protected] Fri Dec 16 18:38:17 1994
> Date: Fri, 16 Dec 1994 15:37:43 -0800
> From: [email protected] (Mail Delivery Subsystem)
> Subject: Returned mail: Cannot send message for 1 week, 2 days
> Message-Id: <[email protected]>
> To: [email protected]
>
> ----- Transcript of session follows -----
> mail: /nfs/isd3/pedro/.mailbox: cannot append
>
> ----- Unsent message follows -----
> Received: from burdell.cc.gatech.edu by venera.isi.edu (5.65c/5.61+local-19)
> id <AA09437>; Wed, 7 Dec 1994 14:58:44 -0800
> Received: from gwinnett.cc.gatech.edu ([email protected] [130.207.119.232]) by burdell.cc.gatech.edu (8.6.9/8.6.9) with ESMTP id RAA29230 for <[email protected]>; Wed, 7 Dec 1994 17:58:30 -0500
> Received: (from jk@localhost) by gwinnett.cc.gatech.edu (8.6.9/8.6.9) id RAA02296 for [email protected]; Wed, 7 Dec 1994 17:58:29 -0500
> From: [email protected] (Jayakumar Muthukumarasamy)
> Message-Id: <[email protected]>
> Subject: Application IDL
> To: pedro
> Date: Wed, 7 Dec 1994 17:58:23 -0500 (EST)
> X-Mailer: ELM [version 2.4 PL23]
> Content-Type: text
> Content-Length: 6625
>
>
> Hi Pedro,
>
> I have included the application IDL for the phone application that
> Noi and you talked about. Although the syntax is the same as in IDL, the
> comments before each member function have information such as the
> preconditions, effects, and abnormal conditions about the member function.
> Please send me mail if you have any questions. Also, I think I found
> a HP version of the ORB that we are using. It is omg.org in the directory
> /pub/orbeline" and called is orbeline-hpux*. Someone can try it to see
> if it works.
>
> -jk
>
> ---------------------------------------------------------------------------
>
> module pbx {
>
> /*
> * Define the interface to the phone object.
> */
> interface phone {
>
> /*
> * exceptions raised by the phone object.
> */
>
> /* indicates that the number dialed is invalid */
> exception invalid_number {
> string number; /* number dialed */
> };
>
> /*
> * indicates an error - such as call cannot be
> * completed due to insufficient resources etc.
> */
> exception error {
> string number; /* number dialed */
> string message_string; /* message */
> };
>
> /* indicates that the number dialed is busy. */
> exception busy {
> string number;
> string caller_id;
> };
>
> /*
> * indicates that a connection is being made -
> * ring from the other side
> */
> exception call_in_progress {
> string number;
> string caller_id;
> boolean outgoing;
> };
>
> /*
> * indicates that the connection is complete -
> * answer from the other end
> */
> exception call_connected {
> string number;
> string caller_id;
> };
>
> /* indicates that there is an incoming call */
> exception incoming_call {
> string number;
> string caller_id;
> };
>
> /* indicates that there is an incoming call */
> exception call_forwarded {
> string from_number;
> string from_caller_id;
> string to_number;
> string to_caller_id;
> };
>
>
> /*
> * enumerations, typedefs, and attributes.
> */
>
> /* modes for a line */
> enum line_mode { local, long_distance, internal };
>
> /* status of a line */
> enum line_status { free, to_be_used, dialing, in_use };
>
> struct line_attributes {
> line_mode mode;
> line_status status;
> };
>
> attribute line_attributes line;
>
>
> /*
> * member functions.
> */
>
> /*
> * check if we have permissions to access the local
> * long distance or internal line. The 'switch_to'
> * parameter specifies the line we are interested in.
> * The call "ok_to_switch(internal)" always returns
> * true.
> *
> * precondition:
> * line.status == to_be_used
> * effects: (none)
> * exceptions: (none)
> */
> boolean ok_to_switch(in line_mode switch_to);
>
> /*
> * switch to local, long distance or internal line.
> * The default mode is 'internal'. Therefore
> * "switch_to(internal)" is a no-op.
> *
> * precondition:
> * ok_to_switch(switch_to) == true &&
> * line.status == to_be_used
> * effects:
> * line.mode = switch_to
> * exceptions:
> * error - insufficient resources
> */
> boolean switch_to(in line_mode switch_to)
> raises(error);
>
> /*
> * dial a digit. If the number dialed till now is
> * complete, then the return value is false, and
> * the exception raised indicates the new status.
> * Otherwise the return value is true. If the
> * time between successive "dial_digits" is
> * > 10 secs, then the number is assumed to be
> * complete.
> *
> * precondition:
> * line.status == to_be_used ||
> * line.status == dialing
> * effects:
> * line.status == dialing
> * exceptions:
> * invalid_number - indicates that the number
> * that was dialed is invalid
> * call_in_progress - other phone rings
> * error - insufficient resources
> * busy - other phone is busy
> */
> boolean dial_digit(in string digit)
> raises(invalid_number, call_in_progress,
> error, busy)
>
> /*
> * get the status of the line between a phone and
> * the pbx.
> *
> * precondition:
> * (none)
> * effects:
> * (none)
> * exceptions:
> * (none)
> */
> boolean get_status()
> raises(invalid_number, busy, call_in_progress,
> error, call_connected, incoming_call);
>
> /*
> * lift the handset.
> *
> * precondition:
> * line.status == free
> * effects:
> * line.status == to_be_used ||
> * line.status == in_use /* incoming call */
> * exceptions:
> * call_connected - the incoming call or waiting
> * call is connected
> */
> boolean lift_handset()
> raises(call_connected);
>
> /*
> * hangup the handset.
> *
> * precondition:
> * (none)
> * effects:
> * line.status == free && line.mode = internal
> * exceptions:
> * call_connected - the incoming call or waiting
> * call is connected
> * call_forwarded - when the call was forwarded
> */
> boolean hangup()
> raises(call_connected, call_forwarded);
> };
>
>
>
> /*
> * define the interface to the answering machine.
> */
> interface answering_machine {
>
> /* define a date structure. */
> struct date {
> int day_of_month; // date (1 - 31)
> string day_of_week; // day (Sun - Sat)
> };
>
> /* define a time structure. */
> struct time {
> int hour; // hour (0 - 23)
> int min; // minutes (1 - 59)
> };
>
> /* define a message structure. */
> struct message {
> date message_date; // date of message.
> time message_time; // time of message.
> string message_string; // the message itself.
> };
>
> attribute sequence<message> message_list;
>
> /*
> * raised when an invalid message index is specified
> * as input.
> */
> exception invalid_index {
> int index;
> };
>
> /*
> * retreive all the messages. The messages can now be
> * addressed using their indices in the sequence.
> */
> sequence<message> all_messages();
>
> /*
> * select a message. Makes the message at 'index' the
> * current message. Initially the first message is the
> * current message.
> */
> boolean select_message(in int index)
> raises(invalid_index);
>
> /*
> * delete the message at position specified by index.
> */
> boolean delete_message(in int index)
> raises(invalid_index);
>
> /*
> * retreive the current message.
> */
> message get_current_message();
>
> /*
> * get the next message.
> */
> message get_next_message();
>
> /*
> * add a new message to the list of messages. This will
> * not be used by the interface.
> */
> void add_message();
>
> /*
> * clear all messages.
> */
> void clear_messages();
>
> /*
> * record a greeting for the answering machine.
> */
> void record_greeting();
>
> /*
> * play the greeting.
> */
> void play_greeting();
> };
>
> };
>
>
>
>