03/12/85 dial_manager_ The dial_manager_ subroutine is the user interface to the answering service dial facility. The dial facility allows a process to communicate with multiple terminals at the same time. This subroutine uses a structure, dial_manager_arg, to receive arguments from its caller. This structure is declared in dial_manager_arg.incl.pl1. For more information, see the description of the dial command in the Commands manual. The dial_manager_ subroutine uses an event channel to communicate with the answering service. This event channel is specified by dial_manager_arg.dial_channel. The channel must be created by the caller. The answering service sends notices of dial connections and hangups over this channel. The dial_manager_ subroutine goes blocked on the event-wait channel awaiting a response to the request from the answering service. When the user program receives wakeups over this channel, it should call the convert_dial_message_ subroutine to decode the event message. The dial_manager_$allow_dials and dial_manager_$registered_server entry points establish a dial line. The dial_id specified in dial_manager_arg.dial_qualifier is used as the first argument to the dial command when connecting a terminal to a process. The dial_id may be an alphanumeric string from 1 to 12 characters long. The dial_id "system" and "s" are reserved for the Initializer process. A process can have only one dial line active at a time. Entry points in dial_manager_: (List is generated by the help command) :Entry: allow_dials: 03/12/85 dial_manager_$allow_dials Function: This entry point requests that the answering service establish a dial line to allow terminals to dial to the calling process. The caller must set dial_manager_arg.dial_qualifier to the dial_id for the dial line. The caller must also set dial_manager_arg.dial_channel to an event-wait channel in the caller's process. After the dial_manager_$allow_dials entry point has been called, the event channel may be changed to an event-call channel. To connect a terminal to the process, the User_id of the process must be specified as the second argument of the dial command. If the process has already established another dial line, the request is rejected and code is set to error_table_$dial_active. Syntax: declare dial_manager_$allow_dials entry (ptr, fixed bin(35)); call dial_manager_$allow_dials (request_ptr, code); Arguments: request_ptr is a pointer to the dial_manager_arg structure declared in dial_manager_arg.incl.pl1. (Input) code is a standard status code. (Output) :Entry: dial_out: 03/12/85 dial_manager_$dial_out Function: This entry point is used to request that an auto call channel be dialed to a given destination and, if the channel is successfully dialed, that the channel be assigned to the requesting process. The caller must set dial_manager_arg.dial_out_destination to the telephone number to be dialed. The caller must also set dial_manager_arg.dial_channel to an event-wait channel in his process. The answering service sends notice of dial completions and hangups over this channel. After the dial_manager_$dial_out entry point has been called the event channel may be changed to an event-call channel. The user programs receiving the wakeup should call the convert_dial_message_ subroutine to decode the event message. The caller may set dial_manager_arg.channel_name to the name of a specific channel to be used. It is also possible to set dial_manager_arg.channel_name to a starname, in which case the answering service chooses a channel that has a matching name and has all the attributes specified in dial_manager_arg.reservation_string. The name of the chosen channel is not returned by dial_manager_; it must be obtained via a call to convert_dial_message_. Syntax: declare dial_manager_$dial_out entry (ptr, fixed bin(35)); call dial_manager_$dial_out (request_ptr, code); Arguments: request_ptr is a pointer to the dial_manager_arg structure declared in dial_manager_arg.incl.pl1. (Input) code is an error status indicator. (Output) :Entry: privileged_attach: 03/12/85 dial_manager_$privileged_attach Function: This entry point allows a privileged process to attach a "slave" channel. The effect is as if that terminal had dialed to the requesting process. The caller must set all variables required by the dial_manager_$allow_dials entry point and then must set dial_manager_arg.channel_name to the name of the channel that is to be attached; dial_manager_arg.dial_qualifier is not used and should be set to the null string. This must be the same name as specified by the channel master file. The slave service type must be specified for this channel in the channel master file. The calling process must have rw access to the access control segment .acs in >sc1>rcp if this request is to be honored. Syntax: declare dial_manager_$privileged_attach entry (ptr, fixed bin(35)); call dial_manager_$privileged_attach (request_ptr, code); Arguments: request_ptr is a pointer to the dial_manager_arg structure declared in dial_manager_arg.incl.pl1. (Input) code is a standard status code. (Output) :Entry: registered_server: 03/12/85 dial_manager_$registered_server Function: This entry point is used to request that the answering service establish a dial line to allow terminals to dial to the calling process using only the dial qualifier. The calling process must have rw access to the access control segment dial..acs in >sc1>rcp if this request is to be honored. If the process has already established a dial line, the request is rejected and code is set to error_table_$dial_active. Syntax: declare dial_manager_$registered_server entry (ptr, fixed bin(35)); call dial_manager_$registered_server (request_ptr, code); Arguments: request_ptr is a pointer to the dial_manager_arg structure declared in dial_manager_arg.incl.pl1. (Input) code is a standard status code. (Output) :Entry: release_channel: 03/12/85 dial_manager_$release_channel Function: This entry point is used to request the answering service to release the channel specified in channel_name. This channel must be dialed to the caller at the time of this request. The caller must set dial_manager_arg.dial_channel to an event wait channel in the caller's process. The caller also must set dial_manager_arg.channel_name to the name of the channel to be released. The user must make dial_manager_arg.dial_channel an event-wait channel before using this call. If the channel was dialed, the channel is returned to the answering service and another access request may be issued. If the channel is a slave channel, the channel is hung up. Syntax: declare dial_manager_$release_channel entry (ptr, fixed bin(35)); call dial_manager_$release_channel (request_ptr, code); Arguments: request_ptr is a pointer to the dial_manager_arg structure declared in dial_manager_arg.incl.pl1. (Input) code is a standard status code. (Output) :Entry: release_channel_no_hangup: 03/12/85 dial_manager_$release_channel_no_hangup Function: This entry point performs the same function as the dial_manager_$release_channel entry point except that slave channels are not hung up. :Entry: release_dial_id: 03/12/85 dial_manager_$release_dial_id Function: This entry point functions as does dial_manager_$shutoff_dials, except that dialed terminals are not hung up. The user can later release dialed terminals by a call to dial_manager_$shutoff_dials or by calls to dial_manager_$release_channel. Syntax: declare dial_manager_$release_dial_id (ptr, fixed bin (35)); call dial_manager_$release_dial_id (request_ptr, code); Arguments: request_ptr is a pointer to the dial_manager_arg structure declared in dial_manager_arg.incl.pl1. (Input) code is a standard status code. (Output) :Entry: release_no_listen: 03/12/85 dial_manager_$release_no_listen Function: This entry point requests the answering service to release the channel specified in channel_name, which must have been attached by means of the dial_manager_$tandd_attach entry point. The channel is left in a hung-up state and is not available for use until an explicit "attach" operator command is issued for the channel. This entry point has the same requirements as the dial_manager_$release_channel entry point. Syntax: declare dial_manager_$release_no_listen entry (ptr, fixed bin (35)); call dial_manager_$release_no_listen (request_ptr, code); Arguments: request_ptr is a pointer to the dial_manager_arg structure declared in dial_manager_arg.incl.pl1. (Input) code is a standard status code. (Output) :Entry: shutoff_dials: 03/12/85 dial_manager_$shutoff_dials Function: This entry point informs the answering service that the user process wishes to prevent further dial connections, and that existing connections should be terminated. The same information should be passed to this entry point as was passed to the dial_manager_$allow_dials or dial_manager_$registered_server entry point. The dial_channel must be an event-wait channel. Syntax: declare dial_manager_$shutoff_dials (ptr, fixed bin(35)); call dial_manager_$shutoff_dials (request_ptr, code); Arguments: request_ptr is a pointer to the dial_manager_arg structure declared in dial_manager_arg.incl.pl1. (Input) code is a standard status code. (Output) :Entry: tandd_attach: 03/12/85 dial_manager_$tandd_attach Function: This entry point allows a process with appropriate access to attach any communications channel that is in the channel master file and not already in use, for the purpose of performing online testing of the channel. The requesting process acquires the channel in a hung-up, nonlistening state. The channel can be released using either the dial_manager_$release_channel or the dial_manager_$release_no_listen entry point. In the latter case, the channel will be unavailable to users until the operator enters an attach command for the channel. The caller must set all the variables required by the dial_manager_$privileged_attach entry point; dial_manager_arg.dial_qualifier is not used and should be set to the null string. Syntax: declare dial_manager_$tandd_attach entry (ptr, fixed bin (35)); call dial_manager_$tandd_attach (request_ptr, code); Arguments: request_ptr is a pointer to the dial_manager_arg structure declared in dial_manager_arg.incl.pl1. (Input) code is a standard status code. (Output) Access Required: The caller must have at least rw access to both >sc1>rcp>tandd.acs and >sc1>rcp>CHAN_NAME.acs, where CHAN_NAME is the name of the channel to be attached. :Entry: terminate_dial_out: 03/12/85 dial_manager_$terminate_dial_out Function: This entry point is used to request that the answering service hang up an auto call line and unassign it from the requesting process. The caller must set dial_manager_arg.channel_name to the name of the channel being used; channel_name cannot be null. The caller also must set dial_manager_arg.dial_channel to an event-wait channel. Syntax: declare dial_manager_$terminate_dial_out entry (ptr, fixed bin(35)); call dial_manager_$terminate_dial_out (request_ptr, code); Arguments: request_ptr is a pointer to the dial_manager_arg structure declared in dial_manager_arg.incl.pl1. (Input) code is a standard status code. (Output) Notes: The structure dial_manager_arg declared in dial_manager_arg.incl.pl1 is used to pass a variety of information to the dial_manager_ subroutine. ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved