CA2084011A1 - Communications system - Google Patents
Communications systemInfo
- Publication number
- CA2084011A1 CA2084011A1 CA002084011A CA2084011A CA2084011A1 CA 2084011 A1 CA2084011 A1 CA 2084011A1 CA 002084011 A CA002084011 A CA 002084011A CA 2084011 A CA2084011 A CA 2084011A CA 2084011 A1 CA2084011 A1 CA 2084011A1
- Authority
- CA
- Canada
- Prior art keywords
- telephone
- communications
- computer
- call
- data session
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000004891 communication Methods 0.000 title claims abstract description 298
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000012546 transfer Methods 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 3
- 230000001143 conditioned effect Effects 0.000 claims 3
- 238000000034 method Methods 0.000 description 8
- 238000009432 framing Methods 0.000 description 4
- 150000002500 ions Chemical class 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- DFUSDJMZWQVQSF-XLGIIRLISA-N (2r)-2-methyl-2-[(4r,8r)-4,8,12-trimethyltridecyl]-3,4-dihydrochromen-6-ol Chemical compound OC1=CC=C2O[C@@](CCC[C@H](C)CCC[C@H](C)CCCC(C)C)(C)CCC2=C1 DFUSDJMZWQVQSF-XLGIIRLISA-N 0.000 description 1
- 241001108995 Messa Species 0.000 description 1
- 241001591024 Samea Species 0.000 description 1
- 150000001412 amines Chemical class 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000002789 length control Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- KRTSDMXIXPKRQR-AATRIKPKSA-N monocrotophos Chemical compound CNC(=O)\C=C(/C)OP(=O)(OC)OC KRTSDMXIXPKRQR-AATRIKPKSA-N 0.000 description 1
- HQZLBYMOYCJZRF-UHFFFAOYSA-N n-ethyl-n-[2-(1h-indol-3-yl)ethyl]propan-2-amine Chemical compound C1=CC=C2C(CCN(CC)C(C)C)=CNC2=C1 HQZLBYMOYCJZRF-UHFFFAOYSA-N 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 102220124522 rs746215581 Human genes 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Telephonic Communication Services (AREA)
Abstract
ABSTRACT
A communications system includes at least two telephone subscriber locations interconnected by a public switched telephone network. A
computer is located at each telephone subscriber location and is connected to the network via a conventional modem and a telephone line. A telephone or other telephone device such as a facsimile machine is also located at each telephone subscriber location and shares the telephone line with the computer.
The computers are operable to establish a data session and transmit data messages therebetween when a communications link is established. A
communications protocol in each computer gives priority to incoming calls directed to the telephone which are announced by the arrival of a call waiting tone during the data session. When such a tone is received, the computer terminates the data session and allows the telephone to ring in response to the incoming telephone call. The communications protocol also gives priority to the telephone device at each location by terminating the data session when the telephone goes off-hook. If a data session is terminated, the computer which initiated the data session reestablishes the communications link and resumes thedata session at the point where the data session was terminated. Thus, the communications protocol allows a computer to share an existing telephone line with a telephone in a manner which does not disturb the regular usage of the telephone line.
A communications system includes at least two telephone subscriber locations interconnected by a public switched telephone network. A
computer is located at each telephone subscriber location and is connected to the network via a conventional modem and a telephone line. A telephone or other telephone device such as a facsimile machine is also located at each telephone subscriber location and shares the telephone line with the computer.
The computers are operable to establish a data session and transmit data messages therebetween when a communications link is established. A
communications protocol in each computer gives priority to incoming calls directed to the telephone which are announced by the arrival of a call waiting tone during the data session. When such a tone is received, the computer terminates the data session and allows the telephone to ring in response to the incoming telephone call. The communications protocol also gives priority to the telephone device at each location by terminating the data session when the telephone goes off-hook. If a data session is terminated, the computer which initiated the data session reestablishes the communications link and resumes thedata session at the point where the data session was terminated. Thus, the communications protocol allows a computer to share an existing telephone line with a telephone in a manner which does not disturb the regular usage of the telephone line.
Description
o l ~
FIELD OF 1~ INVENTION
The present invention relates to a communieations system and in par~cular to a communications system wherein the ~lephone line at a S subscriber location is shared by a telephone device and a data transfer device.
BACKGROUND OF THE INVENTION
Communications systems are well known in the art and many forms are available to permit information to be transmi~ed between parties.
With the increasingly widespread use of computers, data exchange between computers over a communications link is becoming ever more popular. In view of this, there is a need to allow messages to be exchanged between computers in a simple manner by virtually anyone, regardless of their computer skill. It is also becoming necessary to allow the above to be accomplished in an easy, low cost and repetitiYe manner, preferably by sharing existing telephone lines over which voice or facsimile messages are typically transmitted.
To permit messages to be transmitted between computers, B-mail systems have been developed and are well lcnown by most computer users.
When using an E-mail system, the user must access ~e E,mail network via a computer to determine if there are any messages wa~tin~ r the user. The user is also required to enrol for membership of the E-mail network which is a cos~ly and time consuming procedure. The user must also pay for E-mail network usage either on a time usage basis or on ~e amount of data ~ansferr~d from the E-mail network to the user's computer. In addi~on to the ab0ve shortcomings associated with E-mail systems, aDother problem associated with ' 2 ~
E-mail systems is that the mail is never delivered to the user but rather re~uires - the user to look for the m ul by accessing the E-mail network.
Also, when using E-mail systems, if the user accesses the E-mail system using the telephone line and the user subscribes to a call wai~ng feature, problems will be encountered if a call waiting tone is received during a data session or if a telephone device connected to the same telephone line goes of~-hook. These problems are typically in the form of data corruption and data session termination and require ~he E-mail network access procedure to be performed from the beginning if it is desired to complete the data session.
As an alternative to using E-rnail systems to transfer data between parties, facsimile machines have b~ome very popular over last decade and there are several reasons why this has happened. Firstly, when using ~acsimile machines, the transmitted data is conveyed directly to the addressee.
Secondly, facsimile machines are very easy to operate and therefore very little t~aining is required for the individuals who are required to use them. Lastly, facsimile machines make use of dial-up telephone lines which are readily available in the modern world.
Although facsimile machines overcome most ~f the disadvantages associated with E-mail systems, a significant problemi'exists with facsimile technology in that each facsimile machine r~uires a d~dicated telephone line to operate properly. Dedicated telephone lines are expensive and theref~re increase significantly the cost of the facsimile service for an avera~e use~.
There are facsimile switches available on the market which allow a facsimile machine to share the telephone line with a ~elephone. IJnfortunately9 when ~he switch is implemented and the facsimile machine is in use, voice calls cannot 2 ~
be originated using the telephone which shares the telephone line with the facsimile machine. If the facsimile machine is being used, the user must wait until the facsimile transmission has been completed before the telephone can ~e used. In addition, if the user subscribes to a custom calling feature such as call S waiting and a call waiting tone is received during a fa~simile data ~ansmission, errors in the facsimile data transmission may occur as the facsimile machine is not able to process the call waiting tone.
In addition to E-mail and facsimile machines, different communications packages are available which allow a user to establish a communications link with a bulletin board system via a dial-up telephone line.
However, these packages suffer from all of the disadvantages associated with E-mail systems.
To overcome problems associated with E-mail systems and devices such as facsimile machines which require a dedicated telephone line to operate properly, other devices have been developed which act as interfaces between the existing telephone line to which both a computer or facsimile device and a telephone are connected and the telephone network. An e~cample of such a device is disclosed in U.S. Patent 4,995,074 and is in the forrn of a switched line modem interface system c~nnected betweeni a modem and the telephone line extending to the public switched telephone,nétwork. A computer is also connected to the modem while a telephone is connested to the interface.
In operation, the interface monitors the incoming telephone line and detects call waiting tones. If a call waiting tone is received while a data session is ongoing between two computPrs over the public switched ~lephone network, ~he interface rings the telephone and at the same time suspends the data session allowing the incoming telephone call to be answered. In addition9 the inter~ce monitors the status of the telephone to detect off-hook conditions. If an off-hook condition is detected by the interface when a data session is ongoing, the inter~ace suspends the data session allowing a telephone call to be made. If thedata session has been suspended due to one of the above-mentioned conditions, S the interface continues to monitor the status ~ the tele~hone so that the data session is resumed when the telephone is detected as going back on-hook. A
switch is also provided to perrnit a suspended data session to be terminated.
Although this reference discloses a dcvice which allows a computer to share an e~;isting telephone line with a telephone, problems exist with it. For example, because the communications link ~etween the computers is maintained when a telephone call is received during a data session, the user is charged for the suspended data session if the communication link is established over a connection to which long distance charges apply. Also, if the user subscribes to a custom calling feature such as call ur~uting and the data session is placed on hold due to an incoming telephone call, any additional telephone calls received on the telephone line will receive a busy tone.
Moreover, because the device places data sessions on hold, the device is not compatible with some communications packages which will time-out and terrninate a data session in the event of a data session interruption. In addition, if the device is required to handle telephone off-hook conditions, the user mustsubscribe to a 3-way calling service.
U.S. Patent 4,998,273 discloses circuitry for detecting distinctive ringing patterns received over a single telephone line to which are colmected a plurality of telephone devices. The circuitry is operable to connect the appropriate telephone device to the telephone line in response to the ineoming telephone call nnging signal.
Although the above-mentioned devices allow da~a transfer devi~s to share an existing telephone line with a telephone, due to their hardware nature they are expensive and difficult to adapt to changing technology.
Accordingly, there is a need for a communications system whic~ allows a data transfer device to share a telephone line with a telephone inexpensively and which can accommodate special features offered by the local telephone companies without corrupting data transmissions.
It is therefore an object of the present invention to provide a novel communications system and a communications package for use in a data transfer device shar~ng a telephone line with a telephone device using a standard modem and without requiring any specialiæd hardware.
SUMMARY OF THE INVENTION
According to one aspect of the present invention there is provided a communications system comprising:
a comrnunications link;
at least two telephone subscriber locations colmected to said communicadons link, each of said subscriber locations including a telephone device connected to said communications link by a telephone line and a data transfer device connected to said telephone line via a mo,dem, each of said datatransfer devices ha~ing an executable communica~:ons package therein, wherein said each of said data transfer devices is operable to establish a data session with another data transfer device to exchange data therebetween over said communications link, said communications package monitonng said telephone line to detect an off-hook conditioll of said telephone device at said subscriber location and to detect incoming telephone call conditions to said subscriber .
,. ~
:- ,:
2, ~D '3 L~
location received over said telephone line during a data session, said communications package terminating said data session tO free said ~elephone line when one of said off-hook and incoming call conditions is de~ted to allow said telephone device to access said telephone line, the communications package S in the data transfer device which established the data session re-establishing said data session when said telephone line returns to a free ~ondition.
Preferably, the communications package reestablishes the data session at the point of terrnination thereof. It is also preferred that the communications package detects call waiting tones received over the telephone line when a data session is established and terminates the data session to allowthe telephone device to respond to telephone call ringing signals following the call waiting tones. The call waiting tones and off-hook conditions generate significant noise over the communications link and the communications package detects the significant noise and automatically terminates the data session.
Preferably, the data session is established using a full duplex system having a pair of channels, one of said channels being used to conv~y data between the data transfer devices, another of the channels being us~
occasionally for command messages, the communications pacl~age monitoring the other channel to de~ect significant noise thereon signifyi~g receipt of one of the call waiting tones and telephone off-hook condition~f- It is also pre~erred that the data transfer devices are in the form of computers and the communications link is in the form of a switched telephone network.
Preferably, the communications package includes a queue fior storing messages to be transferred across the telephone network to other computers and the time at which the messages are to be sent, the .
-, . ' , 2 ~
communications paclcage rescheduling a message in the queue when a data session is terminated during transmission of the message. It is also preferred that the communications package includes an originate module and an answer module, the originate module continuously examining the queue to detect S messages to be transmitted and initiating a telephone call to an answering computer when a message is to be transmitted to ehe answering computer and - the telephone line is free, the answer module continuously monitormg the telephone line to detect incoming telephone call conditions directed to the computer, the answer module answering such incoming telephone call conditions to establish a data session with the communications package allowing only one of the originate and answer modules to access the telephone line at a time.
Preferably, each of said communications packages includes subscriber location data including a telephone number assigned to other computers connected to the switch~ telephone network transmitt~ and the manner in which the other computers are connected to the telephone network, the originate module using said subscriber location data to establish a data session with an answering computer.
Preferably, the answer module is operable to deteet distinctive telephone call ringing signals and ar.swers automatically~n incoming telephone call when the distinctive ringing signals generated therefor are associated witha dedicated telephone number assigned to the modem.
In one embodiment, it is preferred that the originate modul¢ in the computer initia~ing the data session establishes a data session by generating at least two consecutive time spaced calls to the answering computer. ~he ;
- ... , -,... .: . . . .
.
2 0 ~
answering computer receiving the time spaced calls detects the calls via the answer module and answers the second telephone call if the time gap between the first and second telephone calls falls within a pred~fined time window. The length of the first of the two consecutive calls is controlled by the originating computer.
The present invention provides advantages in that special c;rcuitry is not required to detect the presence of call waiting tones when a data sessionis ongoing while still permitting the data session to be terminated and the incoming telephone call answered. This is accomplished by configuring the communications protocol installed in each data transfer device to detect call waiting tones and to terminate unconditionally an ongoing data session and allow the incoming telephone call to be answered when a call waiting tone is received. At the same time, ~he point in the data session at which the data session was terminated is stored so that the data session can be reestablished at that point to avoid the need to retransmit data which was successfully transmitted prior to the data session interrupt;on. This approach malces the present system implementable with basically all existing industry standard modems and therefore provides a very low cost solution to the issue of dealing with the call waiting tones.
In addition, since the present system co~tmuously monitors the telephone to detect an off-hook condition and terrninates an ongoing data session if such a condition is detected, voice ~ommunications using the telephone remain unaffected by the present system. Once the telephone line is de~cted as being idle, the communications protocol reestablishes the interrupted connection and resumes the data ~ansmission at the point at which the data session was terminated.
.
:
2 ~
BRIEF DESCRIPTION OF THlE DRAWINGS
Preferred embodiments of the present invention will now be described more fully with reference to the accompanying drawings in which:
Figure la is a block diagram illustrating a communications system utilizing a public switched telephone network;
Figure lb is a table illustrating inforrnation stored in a communications package installed in a computer located at telephone subscriber locations connecLed to the public switched telephone network shown in Figure 1;
Figure lc shows a queue illustrating additional information stored in the communications package installed in the compu~ers located at telephone subscriber locations connected to the public switched telephone network shown in Figure 1;
Figure 2 illustrates four different ring patterns which may be received at a telephone subscriber loca~ion connec~ed to the public switched telephone neLwork due to an incoming telephone call directed to the subscriber location;
Figure 3 is a flowchart illustrating the steps performed by an originate module forming part of the communications package installed in a computer used when initiating a telephone call in order to,transmit a message over the communications system shown in Figure l; , ' Figure 4 is a flowchart showing details of one of the steps illustrated in Figure 3;
~5 Figure S is a flowchart showing details of another of the steps illustrated in Figure 3;
Figure 6 is a ~owchart showing details of still yet another of the steps illustrated in Figure 3;
.
. :
2~
Figure 7 is a ~owchalt illustrating the steps performed by a answer rnodule forrning part of the communications package installed in a computer telephone subscriber location used when answering an incoming telephone call transmitted over the communications system shown in Figure l;
S Figure 8 is a ~owchart showing details of one of the steps illus~ated in Figure 7;
Figure 9 is a nowchart showing further details of the one step illustrated in ~igure 8;
Figure 10 is a ~owchart showing s~ill further details of the one step illustrated in Figure 8;
Figure 11 shows a table of the time values and timing diagralTIs illustrating aspects of a one ring mode of operation OI the communications package; and Figure 12 is a block diagram showing another embodiment of a communications system.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
Referring now to Figure la, a communications system is shown and is generally indicated by reference numeral 10. As can be seen, the system includes a plurality of telephone subscriber locations,12,~, 14% and 16 respectively interconnected by a public switched t~lephone ne~work 18.
Telephone subscriber location 12" is shown at one end of the public switched network 18 and includes a conventional modem 20, a telephone 22 with an optional answering machine 24, all of which are directly connected to a single telephone line 26 extending from the public switche~ telephone netwoxk 18./ A
data terminal 28 in the form of a personal computer (pc~ is also provid~ at the 1~
, ' ' : ' , ' ` ~
,.
. ` ' ~ ~ ' ' :
2~8~
telephone subscriber location 12,~ and is connected to the modem 20 via a data link 30.
Telephone subscriber location 14" is shown at the other end of S the public switched telephone network 18 and similarly includes a conventional modem 32, a telephone 34 with an optional answering machine 36, all s)f which are directly connected to a single ~elephone line 38 extending from the public switched telephone network 18. A data terminal 4Q in the form of a personal computer is connected to the modem 32 via a data link 42.
Telephone subscriber location 16,~ is shown as an intermediate subscriber to telephone subscriber locations 12" and 14,~ and includes a telephone 44 directly connected to the public switched telephone network 18 via a single telephone line 46.
Examining the telephone subscriber location 12", it can be seen that the computer 28 runs a communications protocol 50 and is equipped with a user in~erface 52. The communications protocol 50 and user interface ~2 are in the form of software package 29 installed in the computer 28. The software paclcage 29 is executed by the computer 28 in the background lo allow a user to execute other programs loaded in the computer at the / me time. The user may also instruct the computer ~8 to e~cecute the softwa~ package 29 if it is not currently doing so. The communications protocol 50 also interacts with other communications software in the computer which per~orms error colTecting functions and places the data into the proper configuration for transmissicn across the public switched telephone network.
. :. : . . . :
-- ~ , .
: ~ : :
. , . . ~
`
When the user instructs the computer to execute the software package 29, ~he user interface 52 allows the user to read, create and manipulatedata messa~,es as well as to designate when and where data messages are to be t~ansmitted. The communications protocol 50 intera~.ts with the user inter~ace 52 and establishes data sessions with other computers either by making a telephone call to another telephone subscriber location or by answering an incoming telephone call generate,cl by another computer. The communications protocol 50 therefore receives incoming data messages and transmits outgoing data messages as well as monitors the status of the telephone line 26 that it shares with telephone 22. If the communications protocol 50 detects that another party wishes to use the telephone line 26, the communications protocol automatically terminates a data session if one is in progress and will reestablish the data session when the telephone line becomes free if it originated the data session that was terminated.
Computer 40 at telephone subscriber location 14,~ as well as all other computers (not shown) located at other subscriber locations connected to the public switched telephone network run the same communica~ions protocol 50 and are also equipped with a user interface 52. Details of the communications protocol 50 and user interface 52 will be described herein.
Associated with the public switched telep~one network 18 are special features 53 made available to each telephone su~scriber location 1~, 14,~
and 16X, respectively by the central office of ~he local telephone companies 55.These special features 53 are optional and therefore, each telephone subscribe~
location connected to the public switched telephone ne~work 18 may subscnbe to none or to one or more of the special features made available to them. In the embodiment shown in Figure la, telephone subscriber location 12 ' 2 ~
subscribes to a call waiting feature 54 while telephone subscriber location 14,~subscribes to the call waiting feature 54 as well as to a distinctive ringing feature 56. On the vther hand, telephone subscriber location 16~ does not subscribe to any special features. Although telephone subscriber locations 12~, 14x and 16" are shown to subscribe to different special features, it should be realized that each telephone subscriber location connected to the public switched telephone network 18 may subscribe to the sarne or to none of the special features.
The call waiting feature permits a user to detect incoming telephone calls when a telephone call is already established and in progress.
The distinctive ringing feature causes a telephone to ring differently dependingon the ring pattern of the ringing signals received on the telephonç line from the public switched telephone network. Originally, the distinctive ringing feature was used in party line situations to allow different households sharing the sametelephone line to determine when a telephone call was directed to them.
However, this feature has now been made available to individual households to perrnit different individuals within the same household to determine whether an incoming telephone call is directed to them. This ~eature is being exploited further and in some instances is being used to permit different telephone devices connected to the same telephone line ~o detect and answer a telephone call directed to it. It is the latter situation which pertains to the present invention.
r ~n the present system 10, some of the telephone subscriber locations 14X include at least one device sharing the telephone line with the telephone and which is assigned a dedicated telephone number dif~erent fr~om that assigned to the telephone (see telephone subscriber location 14x)~ In this situation, these subscriber locations have more than one telephone number.
, :, 2 ~
When one of the telephone numbers is dialled, the central offlce of the telephone company generates and conveys to the tPlephone subscriber location ringing signals having a specific pattern assigned to the dialled telephone number. Therefore, when the dedicated telephone number assigned to the S device sharing the telephone line with the telephone is dialled by a third party, the local telephone company SS generates ringing signals having a specific ring pattern associated with the dedicated telephone number. The ringing signals are receivcd by all of the devices connected to the telephone line but only ~he device associa~ed with that specific ring pattern answers the incoming telephonecall. For clarity, a brief description of the ull waiting and distinctive ringing special features 54 and 56 and their mode of operation will now be described.
With respect to the distinctive ringing feature ~6, there are typically four different ringing signal ring patterns that are made available bythe local telephone companies 55. This potentially allows four different deviceshaving their own dedicated telephone number to be connected to the same telephone line at the subscriber location with each device answering dedicated telephone calls directed to them. When a subscriber location subscnbes to this feature and one of the dedicated telephone numbers assigned to that subscriber location is dialled by a third party, ~he central offlce of the local telephone company ~S generates and conveys to the subscriber location, ringing signals having a ring pattem assigned to the dedicated telep~one number that was dialled.
Figure 2 illustrates the différent ringing signal ~ing patterns which can be generated by the cenhal office of the local telephone companylS5 when a telephone call is directed to a subscriber location. If the subscriber location receiving the incoming telephone call does not subscribe to the special 1~
2 9 ~
feature 56, the ~ntral office generates nnging signals having the regular one-burst ring pattern (PA~rERN A). Ringing signals having a tw~burst ring pattern (PAl'rERN B) may be assigned to a dedicated telephone number and are generated when the dedicated telephone number is dialled. The tw~burst ring pattern is composed of two 20 Hz bursts of one second duration separated by 0.5 seconds of silence. Ringing signals having a three-burst pattern come - in two difterent versions, each of which may also be assigned to a dedicated telephone number and generated when the dedicated telephone number is dialled.
In the first three-burst version (PATrERN C), the ring pattern is in the form of a 0.5 second 20 H~ burst, followed by 0.5 seconds of silence, followed by a 1 second 20 Hz burst, followed by 0.5 seconds of silence, and - ending with another O.S second 20 Hz burst. In the second three-burst version ~P~l'rERN D), the ring pattern is in the form of a 0.5 second 20 Hz burst, followed by 0.5 seconds of silence, followed by a 0.5 second 20 Hz burst, followed by 0.5 seconds of silence, and ending with a 1 s~ond 20 Hz burst.
If a telephone subscriber location subscribes to the distinctive ringing feature 56, a dedicated telephone number will be assigned to the modem. Therefore, since telephone subscriber location 14,~ subscribes to this feature, modem 32 is assigned a dedicated telephone~ number. However, modem 20 is not assigned a dedicated telephone number since telephone subscriber location 12" does not subscribe to the distinctive ringing feature 56.
For exarnple, if ringing signals having the ring pa~tern associated with the dedicated telephone number assigned ~o the modem 32 are received~ at subscriber location 14~, all devices 32, 34 and 36 connected to the telephone line 38 will receive the ringing signals but only the modem 32 will answer the - . . . . - .: -. .
2~8~
incoming call. If ringing signals having a ring pattern different from that assigned to the modem 32 are received at the telephone subscriber location 14X
as a result of another telephone number different from the one assigned to the modem 32 but associated with the telephone subscriber location 14" being S dialled by a another party, the modem 32 will not answer the incoming call.
If the telephone subscriber location has subscribed to the call waiting feature 54 (see telephone subscriber locations 12,~ and 14~) and an incoming telephone call to the subscriber location occurs while the telephone line is in use, a 440 Hz tone having a duration equal to approximately û.3 seconds is generated by the local telephone company 55 and conv~yed over the telephone line to the telephone. The generation of the tone is heard by the subscriber informing them that another incoming telephone call has been received. The subscriber at the location has the option to ignore the incon~is~gtelephone call, terminate the existing telephone call and establish a communications link with the new caller; or put the existing telephone call on hold while the incoming telephone call is answered. If however, the subscriber location does not subscribe to the call waiting ~eature 54, the user is not informed that another incoming telephone call is received. In this situation, the caller will encounter a busy line and will have to try to establish a connectionat a later time. In the present inventiqn, the communiCations protocol ~0 detects call waiting tones if a data session is in progress ~uid terrninates the dala session to allow the incoming telephone call to be answered. In this manner, the telephone line is always made available for incoming voice communications.
Details of the user interface 52 and communications protocol S0 will now be described.
?, ~
The user interface 52 once seleeted, provides a main menu to the user offering the user a number of options, including a message read option, a message create and send option, a status option and an exit option. If the message read option is selected, the interface provides a list of messages to the user that were received from other computers over the public switched telephone network 18. The user also has the option to select and read individual messages in the list or return to the m~un menu.
If the user selects the message create and send option, the interface allows the user to create a message, designate its urgency and the time at which it is to be sent. The user must also indicate the des~nation of message. Once a message has been created and the user is satisfied with the contents of the message, the interface 52 places the message in a queue. The queue is accessed by the communications protocol 50 so that data messages in the queue can be sent to thcir destinations at the designated times as will be described. Once the user has finished creating messages, the user may retum to the main menu.
If the user selects the status option, the interface ~2 pr~vides a read only list including messages received, messages transmitted9 messages ~n the queue to be transmitted and the status of the telephone,line (i.e. whether adata session is in progress or not). Alternatively, if t~e user selects the e~itoption, the software package 29 is exited allowing t~e user to execute other programs in the computer. It should be realized tha~ even i~ the user exits the software package 29, the computer continues to execute the software package so that data messages can be received from other computers and so that ~ata messages in the queue can be transmîtted to their destinations at the designatedtimes.
2~0~1 Referring now to Figure lc, a representation of the queue is illustrated showing the type of information stored in the queue. As can be seen,the queue stores a list of the messages created by the us~r that are to be transmitted to other telephone subscriber locations. Associated with each S message is inforrnation setting forth the urgency or priority of the message, the desired time at which the message is to be transmitted and the location to whichthe message is to be sent. If messages were interrupted during a data session, they are rescheduled in the queue and an indicator is provided. In this manner, when the user selects the status option, the user is able to determine if messages were interrupted during a data session.
Within the communieations protocol 50 is stored a preprogrammed table (see Figure lb) which holds configuration data relating to the other computers connected to the public switched telephone network 18.
lS In particular, the table holds telephone numbers which can be dialled to establish a communications link with other computers, information as to whether or not the other computers have a dedicated telephone number and the pre~erred ring mode to reach the other computers. If a computer does not have a dedicated telephone number or if the preferred ring mode is unknown, a value for a timer setting T3~e~ c,,,, is also stored in the table. If the preferred ring mode of a computer is unknown, the computer automatically uses a one ring mode to establish the first data session with that comput,er! The information inthe table is however verified and updated every time two computers establish a data session as will be described.
In operation, the communications protocol 50 examines the qu~ue continuously to determine if a message is to be sent at the current time. At thesame time, the communications protocol monitors the modem to determine if ' ' '' :~ ' , ' 2 ~
an incoming telephone c~l from another computer trying to initiate a data session is received. When the communications protocol detects that a message is to be sentt ~he communications protocol consults the table and accesses the relevant data associated with computer to which the data message is to be sent.
Once this has been done, the communications protocol examines the telephone line to determine its status. If the telephone line is busy (either due to an off-hook condition of the tf~lephone or a data session in progress), the communicadons protocol holds message to be sent while monitoring the telephone line via the modem. This continues until the telephone line becomes free.
As soon as the telephone line becomes free, the communications protocol causes the modem to dial the telephone number selected from the ~able and uses the preferred ring mode of the destination computer. If the answering IS computer is located at a telephone subscriber location which subscribes to the distinctive ringing feature 56 and the modem to which it is connected has been assigned a dedicated telephone number, the communications protocol S0 of the transmitting computer will have this data in the table stored therein and will dial the dedicated telephone number. When ~he dedicated telephone number is dialled, the central offlce sends to the subscAber location of the answering computer, ringing signals ha~ing a ring pattern assigned specifically to the modem at the subscriber location. The communicatigns protocol 50 in the answering computer detects the ring pattern of the ringing signals received by the modem and answers the telephone call to establish a communications link.
However, p~ior to proceeding with communications"the answering computer examines thP manner in which it was contacted by the originating computer. If the answering computer was not contacted im the , 2~0~
preferred ring mode of the a.nswering computer, the answering computer transmits information to the originating computer. This inforrnation is used by the onginating computer to update its table so that when the originating computer contacts the same answering compu~er at a la~er time, it does so using S the preferred ring mode of the answering computer.
If the answering computer is located at a telephone subscriber location which does not subscribe to the distinctive ringing feature 56 and therefore, does not have a dedicated telephone number assigned to the modem to which the answering computer is connected, the originating computer follows a one-ring mode protocol in order to es~ablish a data session. In this mode, theoriginating computer makes two time spaced calls to the answering computer before the message is sent. The first telephone call makes the user at the answering computer aware of the incoming call. If the user inadvertently answers the telephone call via the telephone, the user upon hearing silerlce should simply hang up the telephone. The answering computer will properly respond to the second incoming telephone call and proceed with data communications. In the one ring mode, the communications protocol 50 in the originating computer initiates a telephone call to the answering computer but unlike dialling dedicated telephone numbers, the originating computer controls the length of the first telephone call to aim for typically one and no more th~ntwo ~ngs of the telephone at the telephone subscrib,er location where the answering computer is located despite variable network delays. There are two ways of accomplishing the length control of the telephone call in accordance with the present invention.
If the modem connected to the originating computer is capable of detecting ringback tones, the first telephone call is terrninated by the . !
' ' `'' ' ` " ' 2 ~
originating computer approximately 6 seconds a~ter a ringback tone is detected.
If the modem is not capable of detecting ringback tones, the first telephone call is terminated after the value of the timer T3~ ~, as set out in the table, expires. In particular, when the telephone number is dialled and the central S office conveys Anging signals of the Pattern A ring type to the telephone subscriber location (since this ring pattern is associated with non-dedicated telephone numbers), the originating computer goes back on-hook T3nC~
seconds after the telephone number is dialled. Typically the value T3~ is set at 9 seconds for local telephone calls and at 19 seconds for long distance telephone calls. This ensures that the central office conveys ringing signals sothat at least one ring pattern A burst is received by the answering computer before the timer expires. This same procedure applies to any of the ~our ring patterns illustrated in Figure 2.
When the ringing signals ar~ received at the telephone subscriber location, the telephone rings and the nnging signals are detected by the modem.
The user knowing that a data session between computers is trying to be established using the one ring mode ignores the ringing telephone. The communications protocol in the answering computer detects the ringing signals via the modem and the following silence and awaits another telephone call within a predetermined duration signallin~ the completion o,f the one ring mode protocol. , After the originating computer has gone back on-hook, it waits for 15 seconds and again dials the telephone number of the telephone subscriber location. The answering computer which is awaiting the return telephone ~all instructs the modem to answer the telephone call immediately if the second telephone call is received within 45 seconds of the first telephone call.
- ' , , .. . .
: , . .
, ~ ' ', 2 ~
If another party other than the originating computer dials the telephone number of the answering computer within the 45 second interval and before the originating computer has done so, the telephone call will be answered by the answering computer and the answering oomputer will initiate a data session. The other party will therefore hear the modem tones and will terminate the connection. If this occurs, ~he originating computer a~ter initiating its second telephone call will detect a busy signal and will hang-up.The originating cornputer will then attempt to establish another communication link with the answering computer using the one ring mode and st~ing from the beginning.
The only inconvenience for the user when using the one ring mode of operation is the fact, that the telephone connected to the telephone line will typically ring twice during the first call of the one ring mode. To ensure that a user does not miss voice calls, the user is advised to answer the telephone call after at least three rings of the telephone have occurred. If an answering machine is connected to the telephone line, to ensure that the answering machine does not answer data calls, the answeAng machine should be set to answer telephone calls only after four rings have occu~ed.
Once a communication ~inlc between the originating and answering computers has been established in one QP the above-identified manners, the originating computer is able to send the message to the answering computer. While this is occurring, both computers monitor the telephone line 2S to which they are connected in order to determine whether call waiting tones are received over the telephone line or whether the telephone at the subscriber location goes off-hook. If one of these conditions occurs, the communications link is terminated so that either the incoming telephone call can be answered or .
2~8~01~
an outgoing telephone call can be made using the telephone. If a data session is terminated before the entire message is transmitted, the message is retained by the originating computer and is placed back in the queue together with an indicator so that it may be transmitted at a later time. The answering comput~
also stores the received partial message and notifies the user that the remainder of the message is forthcoming.
If on the other hand, the message is transmitted in its entirety, the answering computer consults its queue to determine if it has any messages that are to be sent to the originating computer. If one or more messages are located in the queue of the answering computer, the answering computer sends them to the originating computer. In this manner, the existing communications link is used to a more full extent. Once the messages are sent by the answer~ng computer in their entirety or if no messages in the queue were located by the lS answering computer, the communications link is terminated and the communications protocol revisits the queue and continues monitoring the telephone line. However, if the communications link is terminated during transmission of a message to the originating computer, the message being sent by the answering comput~ is rescheduled in the queue and is sent by the answering computer at a later time.
Since all of the computers in the system ,10 are able eo transmit and receive messages over the public switched telep~one network 18 in the above described manner, each computer includes within its communications protocol, an originate module and an answer module. The originate module continuously consults the queue to determine whether a message is to be ~ent at the current time and originates a telephone Gall when a message is to be sent.
2 ~
At the same time, the answer modul~ continuously monitors the telephone line to detect incoming telephone calls, call waiting tones or telephone off-hook conditions. When an incoming telephone call is received, the computer e~amines the pattern of the received ringing signals via the modem S and determines whether it should answer the incoming telephone call. It should be apparent that only one of the originate and answer modules may be initiated at a time. The originate and answer modules will now be described separately with reference to Figures 3 to 11.
ORI~INATE MODUI,E
When a message to be transmitted is detected by the communications protocol 50 in a computer, the message is retrieved from the queue. The relevant information associated with the computer to which the message is being sent is then retrieved frorn the table (block 200 in Figure 3).After this, a counter AIT which measures the number of call attemp~s made by the communications protocol 50 for the message to be sent is reset as shown in block 202. The data retrieved from the table is then examined to determine if the computer to which the message is being sent has a dedicated telephone number (block 204).
If the modem at the telephone subscriber l'ocation to which the message is to be sent does not have a dedicat~d ' telephone number, tlhe originating computer must use the one ring mode protocol to establish a data se~sion with the destination computer. In this case, the originating computer steps to block 206 and enters a "Proceed to Dial" routine wherein the telephone number assigned to the subscriber location is dialled. This routine 206 is better illustrated in Figure 4. As can be seen in order to initiate the telephone call, `
;':
the communications protocol instructs the modem to go off-hook (blocks 208 and 210). Depending on the type of modem connected ~o the originating computer, different steps are performed by the communications protocol. Once the oommunications protocol instructs the modem to go off-hook, the S communications protocol monitors the output of the modem to determine if a "voice" message is generated by the modem (block 212). If a "voice" message is detected (block 214), the communications protocol acknowledges that the telephone line is not available and exits the "Proceed to Dial" routine ~06 via a Do Not Dial result 216.
If a "voice" message is not detected at block 212, the communications protocol acknowledges that the telephone line is either availableor that the modem is not of the type capable of generating a "voice" message.
The communications protocol therefore steps to block 218. At this block, if the lS modem is capable of detecting a dial tone, the modem determines whether a dial tone is detected while i~ is in its off-hook condition (block 220~. If a dial tone is not detected, the modem initiates a count (block 222) and loops ba~k to block 212. The modem continues through the loop constituted by blocks ~12, 218, 220 and 222 for as long as a "voice" message, or a dial tone is not detected and until the value of the count reaches a preset time-out value. At this point, the modem generates a "no dial tone" message, (block ~24) to the communications protocol and the communications protocal exits the routine ~06 via the Do Not Dial Result 216.
Once the communications protocol exits the routine 206 via the Do Not Dial result 216, the communications protocol proceeds to block 230 shown in Figure 3. At this block, the attempt counter Alrr for the message in the queue to be transmitted is incrernented and then the value of the attempt ~5 ~ ~ ~ t~
CQunter is compared with a maximum attempt value N (block 232). If the attempt counter Al~ has a value less than the maximum value N, the communications protocol waits for a predeterrnined duration established by the user (block 234) before proce~ling back to block 204. If however, the attempt 5counter Al~ is de~ected as having a value equal to the ma~imum atternpt value N, the communications protocol proceeds to block 236 and places a note in the status file informing the user that the message was not transmitted because a communications link could not be established (block 238).
10If however, during the execution of routine 206 at step 220, the dial tone is detected by the modem either immediately or before the counter reaches the time-out value, the communications protocol instructs the modem to dial the telephone number of the telephone subscriber location (block 240) and then exits the routine 206 via a Dial result 242. On the other hand, if the 15modem is of the type which is unable to detect a dial tone, once the modern goes off-hook, the modem initiates a count (block 2443. Once the count reaches a time-out value, the communications protocol instruets the modem to dial the telephone number (block 240) and then exits the routine 206 via the l:)ial result 242.
As soon as the modem finishes dialling the telephone number, the communications protocol detects this and records the ~urrent time tl (block 246). The communications protocol then proceeds to a "Wait for CaIrier~
routine indicated at block 250 and better illustratecl in Figure 5.
Once routine Z50 is entered, the communications protacol initiates a timer T3 and sets the time-out value of the timer based on the information stored in the table (block 252). Thereafter, the commw~ications -.
:
2 ~
protocol proceeds through a number of decision blocks to determine if one of a number of conditions has occurred. In particular, the communications protocol through the modem firstly monitors the telephone line to deterrnine if the telephone line at the telephone subscriber location where the message is to S be sent is busy (block 254). If the telephone line is detected as being busy, routine 250 is exited via a Busy result 256 and th communica~ons protocol proceeds to block 230 wherein the attempt counter Al~ is incremented. If a busy signal is not received, the communications protocol checks to see if a ~connect" message is received from the answering computer (block 258). If a "connect" message is received, the communications protocol exits the routine 250 via a Connect result 260 and establishes a data session with the answering computer via a "Proceed with Communications' routine 300 as will be described herein.
However, if a "connect" message is not received, ~e communications protocol monitors the output of the modem to see if it is responsive to ringback tones (blocks 262). If the modem is unable to respond to ringback tones, the communications protocol examines the value of the timer 13 to detennine whether it has reached its preset time-out value T3no~,cd, (block 264). If the timer T3 has not reached the preset time-out value, the communications protocol loops back to block 254 and the procP.ss continues.
However, if the timer T3 reaches the preset time-out value, the communications protocol exits the routine 250 via a Time-Out result 266.
If the modem is of the type capable of detecting ringback tones, when block 262 is reached, the communications protocol proceeds to block ~68 to determine whether a "ringing" message is received by the modem ~block 268). If a "ringing" message is not received, the communications protocol ` : :
proceeds to block 2~ and examines the value of the timer T3. If however, a "Anging" message is received after the 6 second delay, the communications protocol exits the routine 250 via a Ringing result 270.
S The 6 second delay before exiting the routine 2~0 via the Ringing result 270 is taken for the following reasons. As is generally known to those of skill in the art, when making a telephone call over a switched telephone netwotk, there is a delay Td betwe n the end of the dialling pr~edure and the r~eipt of the first singback signal indicating that the telephone line at the subscriber location to whom the call is directecl is ringing. The del~y Td has two components, namely a system delay Ts which is the delay associated with the switched telephone network making the connection betw~n the calling and answering par~ies, and a ringback cycle delay Trb which is the time between the call being established and the receipt of the trailing edge of the first Angback signal by the calling party. The value of the delay Trb is typically between 0 and 6 seconds and varies due to the fact that although the ringback tone generators at the telephone central office work on a 6 second cycle they are not neeessarily synchronized with the end of the system delay Ts.
Therefore, at the end of the sys~em delay Ts, the trailing edge of the ~rst ringback signal will be received by the calling party after the delay Trb. If the delay Td is measured using ringback signal~Setcction circuitry ~or example, one must wait 6 additional seconds to ensuré that at least one ringing signal ring pattern is received at the answering par~. This is summarized in the following equations:
d + 6 seconds = Ts + Trb + 6 seconds - 2~ - :
.
' ~
` ` . .:
`:
2 ~
The addiLional 6 seeonds delay is required to account for the worst case condition where Trb is equal to 0 seconds and the delay for the answenng computer to receive the first ringing signal nng patteIIl is 6 seconds. In the present embodiment, the delay Td is not measur~ but rather the 6 second delay is added when the first ringback tone is detected.
If routine 250 is exited via one of the results, 266 or 270, the communications protocol proceeds to block 280. At block 2809 the communications protocol causes the modem to hang up and immediately thereafter initiates another timer T4 (block 282). Once the ~imer T4 reaches a predeterrnined time-out value (block 284) which as mentioned previously is approximately 15 seconds, the communications protocol executes ano~her "Proceed to Dial" routine 286 which is identical to routine 206 previously described. Depending on ~he results of the routine 286, the communications protocol may proceed to block 230 if the communications protocol exits the routine 286 via a Do Not Dial result 216 or it may proceed to another "Wait For Carrier" routinP indicated by block 288 if the routine 286 is exited via a Dial result 242.
When the communications protocol is executing step 204, if the message is to be sent to an answering computer having a dedicated telephone number, the communications protocol 50 bypasses routine 206 and proceeds directly to the "Proceed to Dial" routine 286. This is possible since the one ring mode protocol is not required as the modem at the answe ing compute~
should detect and answer the initial telephone call generated by the originatingcomputer.
:
2 ~
The "Wait For Carrier" routine 288 is almost identical to routine 250 except that the timer T3 has its time-out value T3~ c.u preset and remains unchanged at a value equal to 25 seconds. Also in this routine, the communications protocol ignores ringback tones detected by the modem, if the S modem is of the type capable of detecting such tones. Aside from this, the routine 288 is identical to routine 250 and therefore will not be described.
When executing the routine 288, if the communications protocol exits the routine via a Busy or a Time-Out result 256 or 266 respectively, the communications protocol proceeds to block 230 acknowledging that an unsuccessful attempt to establish a communications link occurred. If however, the communications protocol exits the routine 288 via a Connect result 260, signifying that a communications link with the answering computer has been successfi~lly achieved, the communications protocol steps to the "Proceed With Communica~ion" routine indicated by block 300 and better illustrated in Figure IS 6.
Once routine 300 is entered either from routine 250 or routine 288, the communications protocol immediately exchanges the local ~ime information (block 302) with the answering computer. This information is used by the computer for timing calculations required to carry out the one ring mode as will be described. The answering cQmputer also info~ms the originating computer of its preferred ring mode if the originating çomputer established a connection with the answering computer in a manner diffe~nt ~rom the preferred ring mode. If the originating computer receives preferred ring mode data from the answering computer, the originating computer uses this data to update its table. After this, the data session commences and ,~he communications protocol in the initiating computer conveys the first packet of data forming part of the message to be sent over the telephone lines and public , .
2 ~
switched telephone network (block 304) to the answering computer. As the data session is occurring and between each packet of data ~ansmitted, the communications protocol executes a sequence of decision blocks to ensure that the data is transferred between the computers correctly and to determine S whether a voice communications link is trying tv be established over the telephone line which the originating computer is sharing-with the telephone.
In particular, the communications protocol monitors the modem to detect whether a calTier loss is detected by the modem (block 306). If a calTier loss exceeding modem register S10=3 setting is detected (signifying a communications iink intelTuption), the communications protocol proceeds to block 308 wherein the communications link is disconnected and the remainder of the data message that has not been sent is retained. After this occurs, the communications protocol exits the routine 300 via an Interrupted result 312 and 13 proceeds to block 314 shown in Figure 3. At this bloclc, the remainder of the data message is assigned the next available order number in the queue and an indicator so that it can be transmitted at a later ~ime. The communications protocol then proceeds back to block ~00 so that the next message in the quP.ue can be transmitted if it is time to do so.
If a carrier loss is not detected at block 306, the communications protocol monitors the modem to check for framing er~ors (block 3203. If a framing error is detected, the communications protocol proceeds to block 334 wherein an error counter is incremented. Once the error counter is incremented, the communications protocol proceeds to block 336 and compares the value of the counter with a predetermine~ threshold value. Thereafter, Ithe error counter status is irnmediately checked in decision block 336.
, 2 ~
If the error counter exceeds the threshold level set by the communications protocol, the communications protocol proceeds to block 3û8 wherein the communications link is disconnected and the data message is retained in the marner described above. If the error counter is detected as being below the threshold level, the communications protocol proceeds to block 3û4 where the data transfer continues.
If a framing error is not detected in block 320, the communications protocol proceeds to block 322 to determine if a command received from the answering computer has been detected by public domain software known under the name Zmodem used in conjunction with the communications protocol 50. If a command is present, a verification of the command is performed by the :Zmodem protocol (block 324). If the command is not legal, the Zmodem protocol waits for a new command and times-out.
The communications protocol monitors the :Zmodem protocol to detect this condition and proceeds to block 334 when it occurs where the error counter is incremented. Once the error counter is incremented, the communications protocol steps to block 336 and then to either block 304 or 308 depending on the decision block output. If the command is detected as being legal, the communications protocol proceeds to block 326 where the command is executed and the standard course of action takes place depending on the type of command received. Thereafter, the error counter is dçcremented (block 338) before the next packet of data forming the message is sent.
If there is no command detected in block 322, the communications protocol checks to see if the message has been completely transmitted (block 328). If the message is not completed, the communications protocol proceeds to block 338 where the error counter is decremented. The ., , .
.
2~8~
communications protocol then proceeds to block 3~4 where the data transmission of the current message continues. If the message is detected as being completely transmitted, the routine 300 is exited via a Complete result 330. Once the routine has been exited via result 330, the communications prot~ol generates a successful transmission no~e to the status file to inform the user (block 33~3. At this time, the answering computer is informed tha~ the complete message has been transn~itted and is queried to determine if the answering computer wishes to transmit any messages to the originating computer while the communications link is established. When this occurs, the answering computer consults the queue therein. If no messages are to be sent, the answering computer notifies the originating computer. After this, the communications protocol in the originating computer terminates the communication link and returns to the gueue (block 200) to determine if it is time to send the next message in the queue.
If the answering computer has one or more messages to be transmitted, the communications protocol in the answering computer immediately proceeds to routine 300 and begins transmitting the message to the originating computer in the same manner described above.
The Zmodem communications software used,in the computers to detect commands and to perform error correcting func~ions is suitable due to its ability to permit the continuation of a file transfer after a data session has been terminated. Also, since Zmodem primarily uses only one data channel of the full duplex system with the second channel being used occasionally for commands, call waiting tones and o~-hook conditions produce significan~ noise on the second channel which is quickly detected as an illegal command condition. This of course permits the routine 300 to exit via an Interrupted , 2 ~ 8 '~
result 312 as soon as a call waiting tone is received. The threshold levels set by the communications protvcol are chosen so that inherent telephone network noise does not result in the incorrect termination of a data session but is handled by the error correcting mechanisms of the Zmodem protocol.
During the data transmission session, the carrier loss, ~ing error and illegal command situations are monitored since these conditions typically occur when a call waiting tone is received over the telephone line or when a telephone connected to the telephone line goes off-hook during a data session. Since the communications protocol termina~es the data session when one of these conditions occurs via Interrupted result 312, the telephone line becomes available for voice communications almost immediately upon lifting of the handset of the telephone or upon receipt of a call waiting tone.
ANSWE~R MODULE
When an originating computer dials the telephone number associated with another computer to establish a data session as indicated by block 240 in Figure 4, the ~entral offlce generates either ringing signals of the ~` 20 ring pattern type associated with the dialled telephone number or a call waiting tone if the telephone line to which the other computer is connected is busy and the telephone subscriber location subscribes to the ~all waiting ~eature.
Assuming that the telephone line is free, when the ringing signals are received on the telephone line, the telephone rings and the communications protocol in the answering computer detects the incoming telephone call via the modem. As can be seen from Figure 7, the answer module of the communications prot~col 50 continuously monitors the telephone line via the modem through a "Ring ~attern Recognition" routine 400 to detect either a debounced edge of the : ,~
.. , - ~
.
- - ' . :
2 ~
ringing signal ring pattern or a ~Ring~ message generated by the modem (block 402 in Figure 8). This is necessary since not all of the modems currently available are able to generate a "Ring" message isl a way that allows recognition of distinctive ringing signals. As the majority of commercially available S modems generate the "Ring" message on the trailing edge of the ringing signal ring pattern, that edge is used in ~he preferred embodimen~ of the presellt invention The time-out value of a timer T2 is also set at infinity (i.e. initially it is unable to time-out, block 400 in Figure 7) when the communications protocol first enters the routine 402.
If the modem is unable to generate a "Ring" message that allows recognition of distinctive ringing signals, the communications protoeol performsthe steps shown in Figure 9 while it executes routine 402 in order to detect a "Ring" message or debounced edge of a ringing signal. In particular, the communications protocol sets the time-out value of a timer Tl equal to the time-out value of timer T2 and then initiates the timer T1. The timer Tl defines the time period in which the routine 402 waits for a trailing edge of the ringing signal ring pattern (blocks 404 and 406). If a trailing edge is not detected before the timer T1 reaches its time-out value, the communications protocol exits the routine 402 via a No Ring result (blocks 408, 410 and 412).
As should be apparent, when the time-out value of timer T1 is initially set to equal the time-out value of timer T2, the communic~tions protocol is not capable of exiting routine 402 via the No Ring result 412 as the timer Tl cannot expire. This ensures that the communications protocol continuously monitors the status of the telephone line via the modem when a data session is not in progress.
If however, a trailing edge of a ringing signal mng pattern is detected before ~he timer T1 reaches the time-out value, the communications protocol wa~s for at least 150 milliseconds (block 414). If no further trailing edges are detected within this time frarne9 the level of the RI pin of the modemis checked ~block 41S). If the Rl pin is detected as being active (block 416), the communications protocol assumes that a spurious trailing edge occurred and returns to block 406 to await r~ceipt of the next ~ling edge. If the Rl pin of the modem shows that no Anging signal is present, the communications protocol assumes tha~ a valid trailing edge was received and exits the routine 402 via a l~ing result 418.
However, if the modem is of the type which is capable of generating a "Ring" message in response to distinctive ringing signals, the communicatlons protocol performs the steps illustrated in Figure 10 while it executes the "Ring Pattern Recognition" routine 400. In particular, the communications protocol firstly set the time-out value of the timer Tl equal to that of timer T~ and then initiates the tim~r T1 (block 43û). The communications protocol then awaits receipt of a "Ring" m ssage (block 432~.
If no "Ring" message is received before the timer T1 reaches its time-out value,the communications protocol exits the routine 402 via a No Ring result (blocks 434, 436 and 438). However, if a "Ring" message is received before the timer Tl reaches its time-out value, the communications protocoi exits the routine 402via a "Ring" result (block 440). As mentioned above, the communications protocol is not capable of exiting routine 402 via the No Ring result initially as the time-out value of timer Tl is se~ to infinity.
If however, the communications protocol exits routine 402 via a Ring result 418, 440, the communications protocol proceeds to block 450 .. ~
, . ' . ' ' ' ' ~ " ' ' ~
2 i~ 3 ~
wherein the time at which the trailing edge of the first ringing signal was received is recors~ed. Thereafter, the communications protocol proceeds to routine 452 which is very similar to routine 402. In this routine, the communic~tions prs:tocol sets the time-out value of timer Tl equal to 1.75 seconds and executes either the steps shown in Figure 9 or in Figure 10 depending on ~he ty~se of modem connected to the answering computer in order to detect whether or not a trailing edge or "Ring" message is received before the timer Tl reaches its time-out value.
If the communications protocol exits the routine 452 via a No Ring result 412 or 438, the communications protocol acknowledges that the ringing signal ring pattern received over the telephone line corresponds to the PAl~ERN A type shown in Figure 2. As can be seen in this Figure, the PATIERN A ring pattern includes no additional trailing edges within 1.75 seconds after the first trailing edge. At this time, the communications protocolexits the routine 400 via a Pattem A result 454.
If however, the communications protocol detects another trailing edge within 1.75 seconds of the first trailing edge, ~he communications protocolexits routine 452 via a Ring result 418 or 440 and proceeds to block 456 wher~-in the time at which the second trailing edge of the,ringing signal was received is recorded. Thereafter, the communications protocol enters routine 458 which is identical to routine 452 to detect whether another trailing edge isreceived within 1.75 seconds of the second trailing edge. If the communications protocol exits routine 458 via the No Ring result 412 or 438, the communications protocol determines that the received ringing signal ring pattem is of the PATIERN B type and exits the routine 400 ~.ria a Ring Pattern B result (block 460). However, if the communications protocol exits routine 2~8~0~
458 via the Ring result 418 or 440, it proceeds to block 462 wherein the time difference between the occurrence of the first and the second trailing edges is calculated. If the time di~erence is detected as being greater than 1.25 seconds, the r~ng pattern is deterrnined to be of the PAl'rERN C type and the communications protocol exits routine 400 via a he Ring Pattern C result (block 464). Otherwise, it is determined to be of the PArrERN D type and the communications protocol exits the routine 400 via a Ring Pattern D result (block 466).
Referring back to the Figure 7, once the ringing signal ring pattern has been detected in response to the incoming telephone call, the communications protocol proceeds to block 470 and stores the type of ring pattern received. The communications protocol also records the time t2 at which the ring pattern was received (block 472). After this has been done, the communications protocol proceeds to block 474. If the modem connected to the answering computer does not have a dedicated telephone number and is thus configured to answer telephone calls only in the one nng rnode, the communications protocol proceeds to block 476 wherein a ring counter is set to a value equal to 1. This is done since one ring has been already detected viaroutine 400 before the communications protocol reaches block 476. After this, the communications protocol proceeds to routine 482 which is identical to the routine 400 described previously.
~ , Upon entering routine 482, the timer T1 has its time-out value set to 8 seconds and the communications protocol awa~ts receipt of the next ringpattern. If a ring pattern corresponding to one of the four patterns A to O is received before the timer T1 reaches the 8 sccond time-out value, t'ne communications protocol proceeds to block 484 wherein the ring counter is 2 ~
incremented (block 486). Once the counter is incrementect, the communications protocol proceeds back ~o block 482 and awaits the next ring pattem. If however no ring pattern is received, the communications protocol proc~ds to block 486 wherein the value of the ~ing counter is examined. If the ring S counter is detected as having a value greater than four, the communications protocol exits the routine since the incoming telephone catl did not follow the protocol associated with the first catl in the one ring mode (i.e. at least one and at most four rings~. The communications protocol then reverts to routine 400 and begins monitoring the telephone line for receipt of the next incoming telephone catl ringing signat.
If the value of the ring counter is detec~ed as haYing a value less than or equal to four, the communications protocol assumes that another computer was trying to establish a communications link since the telephone call complied with the one ring mode protocol. When this occurs, the communications protocol proceeds to another "Ring Pa~tern Recognition"
routine (block 488). Upon entering this routine, the tirne-out value of timer Tlis set at 45 seconds. If a No Ring result 412 or 438 is determined after the timer Tl reaches the time-out value, the communications protocol exits the routine 488 and begins monitoring the telephone line for receipt of the next incoming telephone call ringing signal vi~ routine 400.
If however, the communications protvcol exits the routine 488 via one of the Ring Pattern results 460, 464 or 466 the communications protocol steps ~o block 490 and compares the reeeived Iing pattern with the ringpattern that was stored in block 470. If the two ring patterns are detected as being different, the communications protocol exits the routine and begins ~9 2 ~
monitoring the telephone line for receipt of the next incoming telephorle call signal via routine 400.
On the other hand, if the received ring patterns are detected as being the same, the communications protocol immediately instmcts the modem to go off-hook (block 492) and initiates a timer T6 having a time-out value set at 15 seconds ( bloek 494). Following this, the communications protocol awaits a Hconnect" message from the modem (block 496). If the "connect" message is not received by the time the timer T6 reaches the time-out value, the communications protocol instructs the modem to disconnect the telephone connection (block 498) and the communications protocol proceeds to routine 400. If the "connect" message is detected before the timer T6 reaches the time-out setting, the communications protocol proceeds to a "Proceed With Communications" routine (block S00) which is basically identical to routine 300 lS since a communications link is established between the originating and answering computers.
When the communications protocol enters routine ~00 (see Figure 6), it conveys ehe local time in~ormation to the originating computer and also informs the originating ~mputer of its preferred ring mode if the communications link was established in a manner different than the preferred ring mode. The communications protocol in the answering computer then receives and stores the packets of data forming the message sent to it by the originatin~ computer. At the same time, the communications protoeol checks for carrier loss, framing errors and illegal commands in the same manner as is done in routine 300 by the originating computer so that call wa~ting tones~and ~elephone off-hook conditions are detected. If the data session is terminated because of a call waiting tone generated in response to another incoming telephone call or due to a telephone off-hook condition, the communications protocol stores the partial message (block 532) and terminates the data session (block 498). Once the data session has been terminated, a note is placed in the status file to inform the user of this and the communications protocol executes S routine 400 to detect the next incoming telephone call ringing signals.
However, if a message is received in its entirety, the communications protocol places a note in the status file informing the user of the message and awaits the query from the originating computer with respect to return messages. Once the query is received, the communications protocol consults the queue to determine if any messages are in it that are to be sent tothe originating computer. If messages are to be sent to the originating computer, they are done so in the manner previously described. If the messages are sent in their entirety or if no messages are to be sent, the lS communications protocol notifies the originating computer and exits the routine 500 via a Complete result (block 530).
When executing step 474, if the modem conn~cted to the answering computer has a dedicated telephone number, the communications protocol proceeds to block 520 to check if the received ring pattern is the sameas that assigned to the modem. If it is not, the commynications protocol proceeds to block 476 and the sequence of events previously described ~eur.
This is done just in case the originating cornputer has'incorrect information inits table and is using the one ring mode protocol ~o establish a communication link with the answering computer.
However, if the received ring pattern is the same as the ring pattern assigned to the modem connected to the answering computer, the .
.
2 ~
communications protocol instructs the modern to go off-hook (block 522).
Thereafter, the communications protocol sets the time-out value of a timer 1`7 at 15 seconds (block 526) and ~waits a "connect" message from the modem.
If the "connect" message is not received by the time the timer T7 reaches the time-out value, the communications protocol inst~ucts the modem to disconnect the telephone connection (block 528) and proceeds to block 488. At this block, the communications protocol waits for receipt of another ring pattern. This routine is performed in the event that the one ring mode is being performed by the originating computer using the dedicated telephone number of the modem connected to the answering compu~er. If it is being performed, the answeAng computer will answer the second telephone call.
If the "connect" message is detected before the timer 17 reaches the time-out setting, the communic~tions protocol proceeds to the "Proceed Wit!l Communications" routine at block 500 and the same sequence of events previously described are performed. Therefore, if the routine 500 is completed, the communications protocol places a note in the status file to m~rm the user that the message has arrived in its entirety and notifies the user about successful transmission of messages if during the same data session messages are sent from the answering computer to the originating computer (block 530~.
Thereafter, the ~ommunications protocol instructs the m~dem t~ go on-hook (block 498) and then returns back to routine 4ûO in oFder to detect the next incoming telephone call. If ~he data session is intenupted, the communications protocol retains the partially received message (block 532) and then proceeds to block 498. At this block, the communications protocol instmcts the modem to go on-hook and then reverts to routine 400 in anticipation of another incoming telephone call.
- 4~ -2 ~
As should be apparent, the answering computer will answer incoming telephone calls adhering properly to the one ring mode protocol regardless of the ringing signal ring pattern received at the telephone ~ubscriber location. This facilitates the telephone call initiation pr~ess for each computer S as each computer is not required to have complete knowledge of all other computers connected to the public switched telephone network. If the only information in the table concerning a computer is its telephone number, the originating computer will automatically default ~o the one ring mode for that computer since all computers ~rill answer telephone calls following the one ringmode protocol regardless of the ringing signal ring pattern received.
~IANDS~AKIN& USING ONE RING MODE
As mentioned previously, when an originating computer is 13 attempting to establish a communications link with an answering computer using the one nng rnode, during the execution of routine 250, the timer T3 has its time-out value set at a pr~selected default value T3~, C2" if a successful communication link between the two computers has not previously been established. The default value is stored in the table shown in Figure lb.
During subsequent data sessions, during the handshaldng step 302 of routine 300, updated values of the timer setting T3~ c.,, are calculated based on exchanged time inforrnation so that the table in the oIiginating computer is updated. This procedure will now be described and is illustrated in Figure 11.
As mentioned previously, the timer time-out value T3~ in the table for each computer is initially set at one of two values depending,on whether the telephone call to that computer is local or long distance. These twovalues are typically set at 9 or 19 seconds respectively. After dialling the , 2 ~
telephone nurnber, the communications protocol in the originating computer stores the local time tl at block 246. When the first telephone call i5 established after executing routine 250, the communications protocol in the answering computer will have stored the time t2 that the first trailing edge of S the ringing signal ring pattern was received (block 472). During the handshaking step 302, the communications protocol in the originating computer receives the time t2 and the local time of the answenng computer. The time t2 is adjusted by the communications protocol in the originating computer by adding the difference between two local times.
A~ter this, the communications protocol in the originating computer updates its time-out value T3~C", c.~ in the table assigned to the answering computer. This is done using the e~uation below as ~ollows:
T3ne~,C",1 = (t2 - tl) ~ 6.0 seconds so that an updated value for the time-out value setting is generated. This new value is written into the table to replace the previous timer setting. Every time a data session is established between two compllters when the one ring mode protocol is used, this routine is performed so that the timer setting T3,,~,,~,c,,~ is continuously updated. The need to add the 6 seconds to the above formula is as follows.
.
As mentioned previously, there is a delay Td between the end o~
the diaUing procedure and the receipt of the first nnging signal at the subscliber location to whom the call is directKI. The delay Td has two components, namely a system delay Ts which is the delay associated with the switched telephone network making the connection between the calling and answering 2~8 L3L~
parties, and a ring cycle delay Tr which is the time between the call being established and the receipt of the trailing edge of the first ringing signal ring pattern received by the answering party. The value of the delay Tr is typic~lly between 0 and 6 seconds and varies due to the fact that although the nng S generators at the telephone central office work on a 6 s~ond cycle they are not necessarily synchronized with the end of the system delay Ts.
Therefore, at the end of the system delay Ts, the trailing edge of the first ring signal will be received after the delay Tr. If the delay Td is measured, one must wait 6 additional seconds to ensure that at least one ringingsignal ring pattern is received by the answering party. This is summarized in the following equations:
T3nC",C"~ = Td + 6 seconds T3ne~CA~ = Ts + ~r ~ 6 seconds The additional 6 seconds delay is required because the delay Tr may be as low as Q seconds wherein the delay Td is e~ual to the system delay Ts so that if thedelay Tr for the next call is at the rnal~imum ie. 6 seconds, enough time is provided to ensure that the answering party receives at least one ringing signalring pattern.
If when a data session is to be established for the first time and the one ring mode is unsuccessful, the communications protocol will try two different initial timer settings T3~ ,C.U as shown in Figure 11 and will retry the one ring mode protocol. If neither of those trials succeeds, the communications protocol generates appropriate messages to the status file indicating that a communieations link could not be established. The user will then have to deterrnine the next course of action to take in order to establish a - :
, : ' , ~',:
.. ' . ~; : :
. ' ~, ' ' ' , 2 ~
communications link and transmit the message. The most probable cause of lack of success resul~s due to the long time delay of~en encountered when making long distance telephone calls. In this case, the user will be able to enter manually the initial timer setting T3nC,~ To determine a reasonably accurate initial value for the timer setting when manually setting the timer, the user may initiate a voice call to the destination number and measure the elapse~d ~ime - between the end of dialling sequence and the generation of the ringback tone.
That measured time can then be manually entered into the table by the user.
If it is found that the time in which the first ringback tone is generated varies, another option can be provided in the software to permit the user to terminate manually the first call of the one ring mode when the ringbacktone is detected. In this case, the communications protocol provides a message to the user indicating that the first call has been initiated ~nd prompts the user to terminate the call when the ringback tone is detected. Once the us r terminates the telephone call, the communications protocol initiates ~he second call automatically in the manner previously described.
Although the present systern has been described as allowing the answering computer to transmit messages to the originating computer after the originating computer has completed its transmission, it should be realized that this feature is optional.
Although the present system has also been descnbed with the 2~ computers sharing the telephone line with a telephone, it should be apparent that the computers may also share the telephone line with another type of teleph~ne device such as a facsimile machine so that priority of the telephone line is given to facsimile transmissions.
' It should be appreciated that the present system pennits da~a communications in a simple, elegant manner while giving priority to voice - communications. This is achieved by monitoring noise levels on the communication channel and being able to distinguish signi~cant noise generated S as a result of call waiting tones and telephone off-hook conditions from the typical noise associated with the public switched telephone network. In addition, since multiple modes are available to contact each computer, the data session initiation process is facilitated.
SERVERS
Referring now to Figure 12X, another embodiment of a comrnunications system is shown. In this embodimen~, like reference numerals will be used to indicate like componen~s with a ""' added ~or clarity. As can be seen, the system 10' includes a plurality of telephone subscriber locations 12"', 14S' and 16,~' respectively interconnected by a public switched telephone network 18'. Subscriber location 12,~' is shown at one end of the public switched network 18' and includes a modem 20' and a telephone 22', both of which are connected directly to a single telephone line 26' extending from the public switched telephone network 18'. A computer terminal 28' is also provided at the subscriber location 12~' and is connected to the modem 20' via a data link 30'.
Subscriber location 14,~' is shown at the other end of the public switched telephone network 18' and similarly includes a modem 32' and a telephone 34' both of which are connected directly to a single telephone line 38' extending from the public switched telephone network 18'. A computer terminal 40' is connected to the modem 32' via a data link 42'. I'-vo telephone ', ' , ` ~ ': ' `
' :
-subscnber locations 16,;~ are shown intermediate subscriber locations 12,~' and 14~` and include a telephone 44' directly connected to the public switched telephone network 18' via a single telephone line 46'.
S Sirnilar to the system 10, it can be seen that the computers 28' and 40' run a communications protocol 50' and are equipp~d with a user interface 52' which allow users of the computers 28' and 40' to perform the functions necessary to receive, create, manipulate and send data messages across the public swi~ched telephone network 18' to other computers.
Unlike the system 10, long distance calls initiated by one of the computers are not transmitted to the other computers directly through the publicswitched telephone networlc 18'. Rather, an alternate method is used and will now be described. To accommodate long distance calls, servers 80 are provided at selected geographical locations. Each server is connected to the public switched telephone network 18' via multiple modems 82 and telephone lines 86. The servers 80 are also connected to one another by a high speed communications link 84.
The communications system 10' work~s in a similar manner as the system 10 depicted in Figure 1 and the snly difference is in the manner in which long distance communication data calls are handled. In particular, if one of the computers dials a long distance telephone number, th call is directed to the local number associated with the sen~er located in the ~same calling area as~5 the originating computer. The local server 80 in turn conveys the sall over the high sp~ed link 84 to the remote server connected to the public switched telephone network which is located in the s~ne area as the answering computer.
The remote server 8Q then conveys the call to the answering computer locally through the public switched network via one of the modems 82 and telephone lines 86. Since the public switched telephone network is used in this configuration only locally, costs are reduced given the fact that use of the high speed link 84 is much cheaper than the regular long distance charges.
s Since the servers 80 communicate with the public switched telephone network 18' via modems 82 having a ringback detection feature, establishing communications links between computers using the one ring mode is simplified. It should be apparent that the system 10' is applicable either toa public service in which the servers are offered in metropolitan areas or to a private network in an organization which runs relatively large premises in geographically dis~t areas. It should also be realized that if a computer wishes to establish a communications link with another computer to which the connection would be local when using the public switched telephone network, the call is established using the network 18' and the servers are not used.
It should also be apparent that the system 10' retains the same features as were presented in relation to the system 10 concerning the distinctive ringing feature, the call waiting features as well as detection telephone 22' or 34' o~-hook conditions during a data session. In addition, every computer user malcing use of the communications system can elect to use the one ring mode in order to achieve telephone line sharing between the telephone or other telephone devices connected to the same telephone line.
~9
FIELD OF 1~ INVENTION
The present invention relates to a communieations system and in par~cular to a communications system wherein the ~lephone line at a S subscriber location is shared by a telephone device and a data transfer device.
BACKGROUND OF THE INVENTION
Communications systems are well known in the art and many forms are available to permit information to be transmi~ed between parties.
With the increasingly widespread use of computers, data exchange between computers over a communications link is becoming ever more popular. In view of this, there is a need to allow messages to be exchanged between computers in a simple manner by virtually anyone, regardless of their computer skill. It is also becoming necessary to allow the above to be accomplished in an easy, low cost and repetitiYe manner, preferably by sharing existing telephone lines over which voice or facsimile messages are typically transmitted.
To permit messages to be transmitted between computers, B-mail systems have been developed and are well lcnown by most computer users.
When using an E-mail system, the user must access ~e E,mail network via a computer to determine if there are any messages wa~tin~ r the user. The user is also required to enrol for membership of the E-mail network which is a cos~ly and time consuming procedure. The user must also pay for E-mail network usage either on a time usage basis or on ~e amount of data ~ansferr~d from the E-mail network to the user's computer. In addi~on to the ab0ve shortcomings associated with E-mail systems, aDother problem associated with ' 2 ~
E-mail systems is that the mail is never delivered to the user but rather re~uires - the user to look for the m ul by accessing the E-mail network.
Also, when using E-mail systems, if the user accesses the E-mail system using the telephone line and the user subscribes to a call wai~ng feature, problems will be encountered if a call waiting tone is received during a data session or if a telephone device connected to the same telephone line goes of~-hook. These problems are typically in the form of data corruption and data session termination and require ~he E-mail network access procedure to be performed from the beginning if it is desired to complete the data session.
As an alternative to using E-rnail systems to transfer data between parties, facsimile machines have b~ome very popular over last decade and there are several reasons why this has happened. Firstly, when using ~acsimile machines, the transmitted data is conveyed directly to the addressee.
Secondly, facsimile machines are very easy to operate and therefore very little t~aining is required for the individuals who are required to use them. Lastly, facsimile machines make use of dial-up telephone lines which are readily available in the modern world.
Although facsimile machines overcome most ~f the disadvantages associated with E-mail systems, a significant problemi'exists with facsimile technology in that each facsimile machine r~uires a d~dicated telephone line to operate properly. Dedicated telephone lines are expensive and theref~re increase significantly the cost of the facsimile service for an avera~e use~.
There are facsimile switches available on the market which allow a facsimile machine to share the telephone line with a ~elephone. IJnfortunately9 when ~he switch is implemented and the facsimile machine is in use, voice calls cannot 2 ~
be originated using the telephone which shares the telephone line with the facsimile machine. If the facsimile machine is being used, the user must wait until the facsimile transmission has been completed before the telephone can ~e used. In addition, if the user subscribes to a custom calling feature such as call S waiting and a call waiting tone is received during a fa~simile data ~ansmission, errors in the facsimile data transmission may occur as the facsimile machine is not able to process the call waiting tone.
In addition to E-mail and facsimile machines, different communications packages are available which allow a user to establish a communications link with a bulletin board system via a dial-up telephone line.
However, these packages suffer from all of the disadvantages associated with E-mail systems.
To overcome problems associated with E-mail systems and devices such as facsimile machines which require a dedicated telephone line to operate properly, other devices have been developed which act as interfaces between the existing telephone line to which both a computer or facsimile device and a telephone are connected and the telephone network. An e~cample of such a device is disclosed in U.S. Patent 4,995,074 and is in the forrn of a switched line modem interface system c~nnected betweeni a modem and the telephone line extending to the public switched telephone,nétwork. A computer is also connected to the modem while a telephone is connested to the interface.
In operation, the interface monitors the incoming telephone line and detects call waiting tones. If a call waiting tone is received while a data session is ongoing between two computPrs over the public switched ~lephone network, ~he interface rings the telephone and at the same time suspends the data session allowing the incoming telephone call to be answered. In addition9 the inter~ce monitors the status of the telephone to detect off-hook conditions. If an off-hook condition is detected by the interface when a data session is ongoing, the inter~ace suspends the data session allowing a telephone call to be made. If thedata session has been suspended due to one of the above-mentioned conditions, S the interface continues to monitor the status ~ the tele~hone so that the data session is resumed when the telephone is detected as going back on-hook. A
switch is also provided to perrnit a suspended data session to be terminated.
Although this reference discloses a dcvice which allows a computer to share an e~;isting telephone line with a telephone, problems exist with it. For example, because the communications link ~etween the computers is maintained when a telephone call is received during a data session, the user is charged for the suspended data session if the communication link is established over a connection to which long distance charges apply. Also, if the user subscribes to a custom calling feature such as call ur~uting and the data session is placed on hold due to an incoming telephone call, any additional telephone calls received on the telephone line will receive a busy tone.
Moreover, because the device places data sessions on hold, the device is not compatible with some communications packages which will time-out and terrninate a data session in the event of a data session interruption. In addition, if the device is required to handle telephone off-hook conditions, the user mustsubscribe to a 3-way calling service.
U.S. Patent 4,998,273 discloses circuitry for detecting distinctive ringing patterns received over a single telephone line to which are colmected a plurality of telephone devices. The circuitry is operable to connect the appropriate telephone device to the telephone line in response to the ineoming telephone call nnging signal.
Although the above-mentioned devices allow da~a transfer devi~s to share an existing telephone line with a telephone, due to their hardware nature they are expensive and difficult to adapt to changing technology.
Accordingly, there is a need for a communications system whic~ allows a data transfer device to share a telephone line with a telephone inexpensively and which can accommodate special features offered by the local telephone companies without corrupting data transmissions.
It is therefore an object of the present invention to provide a novel communications system and a communications package for use in a data transfer device shar~ng a telephone line with a telephone device using a standard modem and without requiring any specialiæd hardware.
SUMMARY OF THE INVENTION
According to one aspect of the present invention there is provided a communications system comprising:
a comrnunications link;
at least two telephone subscriber locations colmected to said communicadons link, each of said subscriber locations including a telephone device connected to said communications link by a telephone line and a data transfer device connected to said telephone line via a mo,dem, each of said datatransfer devices ha~ing an executable communica~:ons package therein, wherein said each of said data transfer devices is operable to establish a data session with another data transfer device to exchange data therebetween over said communications link, said communications package monitonng said telephone line to detect an off-hook conditioll of said telephone device at said subscriber location and to detect incoming telephone call conditions to said subscriber .
,. ~
:- ,:
2, ~D '3 L~
location received over said telephone line during a data session, said communications package terminating said data session tO free said ~elephone line when one of said off-hook and incoming call conditions is de~ted to allow said telephone device to access said telephone line, the communications package S in the data transfer device which established the data session re-establishing said data session when said telephone line returns to a free ~ondition.
Preferably, the communications package reestablishes the data session at the point of terrnination thereof. It is also preferred that the communications package detects call waiting tones received over the telephone line when a data session is established and terminates the data session to allowthe telephone device to respond to telephone call ringing signals following the call waiting tones. The call waiting tones and off-hook conditions generate significant noise over the communications link and the communications package detects the significant noise and automatically terminates the data session.
Preferably, the data session is established using a full duplex system having a pair of channels, one of said channels being used to conv~y data between the data transfer devices, another of the channels being us~
occasionally for command messages, the communications pacl~age monitoring the other channel to de~ect significant noise thereon signifyi~g receipt of one of the call waiting tones and telephone off-hook condition~f- It is also pre~erred that the data transfer devices are in the form of computers and the communications link is in the form of a switched telephone network.
Preferably, the communications package includes a queue fior storing messages to be transferred across the telephone network to other computers and the time at which the messages are to be sent, the .
-, . ' , 2 ~
communications paclcage rescheduling a message in the queue when a data session is terminated during transmission of the message. It is also preferred that the communications package includes an originate module and an answer module, the originate module continuously examining the queue to detect S messages to be transmitted and initiating a telephone call to an answering computer when a message is to be transmitted to ehe answering computer and - the telephone line is free, the answer module continuously monitormg the telephone line to detect incoming telephone call conditions directed to the computer, the answer module answering such incoming telephone call conditions to establish a data session with the communications package allowing only one of the originate and answer modules to access the telephone line at a time.
Preferably, each of said communications packages includes subscriber location data including a telephone number assigned to other computers connected to the switch~ telephone network transmitt~ and the manner in which the other computers are connected to the telephone network, the originate module using said subscriber location data to establish a data session with an answering computer.
Preferably, the answer module is operable to deteet distinctive telephone call ringing signals and ar.swers automatically~n incoming telephone call when the distinctive ringing signals generated therefor are associated witha dedicated telephone number assigned to the modem.
In one embodiment, it is preferred that the originate modul¢ in the computer initia~ing the data session establishes a data session by generating at least two consecutive time spaced calls to the answering computer. ~he ;
- ... , -,... .: . . . .
.
2 0 ~
answering computer receiving the time spaced calls detects the calls via the answer module and answers the second telephone call if the time gap between the first and second telephone calls falls within a pred~fined time window. The length of the first of the two consecutive calls is controlled by the originating computer.
The present invention provides advantages in that special c;rcuitry is not required to detect the presence of call waiting tones when a data sessionis ongoing while still permitting the data session to be terminated and the incoming telephone call answered. This is accomplished by configuring the communications protocol installed in each data transfer device to detect call waiting tones and to terminate unconditionally an ongoing data session and allow the incoming telephone call to be answered when a call waiting tone is received. At the same time, ~he point in the data session at which the data session was terminated is stored so that the data session can be reestablished at that point to avoid the need to retransmit data which was successfully transmitted prior to the data session interrupt;on. This approach malces the present system implementable with basically all existing industry standard modems and therefore provides a very low cost solution to the issue of dealing with the call waiting tones.
In addition, since the present system co~tmuously monitors the telephone to detect an off-hook condition and terrninates an ongoing data session if such a condition is detected, voice ~ommunications using the telephone remain unaffected by the present system. Once the telephone line is de~cted as being idle, the communications protocol reestablishes the interrupted connection and resumes the data ~ansmission at the point at which the data session was terminated.
.
:
2 ~
BRIEF DESCRIPTION OF THlE DRAWINGS
Preferred embodiments of the present invention will now be described more fully with reference to the accompanying drawings in which:
Figure la is a block diagram illustrating a communications system utilizing a public switched telephone network;
Figure lb is a table illustrating inforrnation stored in a communications package installed in a computer located at telephone subscriber locations connecLed to the public switched telephone network shown in Figure 1;
Figure lc shows a queue illustrating additional information stored in the communications package installed in the compu~ers located at telephone subscriber locations connected to the public switched telephone network shown in Figure 1;
Figure 2 illustrates four different ring patterns which may be received at a telephone subscriber loca~ion connec~ed to the public switched telephone neLwork due to an incoming telephone call directed to the subscriber location;
Figure 3 is a flowchart illustrating the steps performed by an originate module forming part of the communications package installed in a computer used when initiating a telephone call in order to,transmit a message over the communications system shown in Figure l; , ' Figure 4 is a flowchart showing details of one of the steps illustrated in Figure 3;
~5 Figure S is a flowchart showing details of another of the steps illustrated in Figure 3;
Figure 6 is a ~owchart showing details of still yet another of the steps illustrated in Figure 3;
.
. :
2~
Figure 7 is a ~owchalt illustrating the steps performed by a answer rnodule forrning part of the communications package installed in a computer telephone subscriber location used when answering an incoming telephone call transmitted over the communications system shown in Figure l;
S Figure 8 is a ~owchart showing details of one of the steps illus~ated in Figure 7;
Figure 9 is a nowchart showing further details of the one step illustrated in ~igure 8;
Figure 10 is a ~owchart showing s~ill further details of the one step illustrated in Figure 8;
Figure 11 shows a table of the time values and timing diagralTIs illustrating aspects of a one ring mode of operation OI the communications package; and Figure 12 is a block diagram showing another embodiment of a communications system.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
Referring now to Figure la, a communications system is shown and is generally indicated by reference numeral 10. As can be seen, the system includes a plurality of telephone subscriber locations,12,~, 14% and 16 respectively interconnected by a public switched t~lephone ne~work 18.
Telephone subscriber location 12" is shown at one end of the public switched network 18 and includes a conventional modem 20, a telephone 22 with an optional answering machine 24, all of which are directly connected to a single telephone line 26 extending from the public switche~ telephone netwoxk 18./ A
data terminal 28 in the form of a personal computer (pc~ is also provid~ at the 1~
, ' ' : ' , ' ` ~
,.
. ` ' ~ ~ ' ' :
2~8~
telephone subscriber location 12,~ and is connected to the modem 20 via a data link 30.
Telephone subscriber location 14" is shown at the other end of S the public switched telephone network 18 and similarly includes a conventional modem 32, a telephone 34 with an optional answering machine 36, all s)f which are directly connected to a single ~elephone line 38 extending from the public switched telephone network 18. A data terminal 4Q in the form of a personal computer is connected to the modem 32 via a data link 42.
Telephone subscriber location 16,~ is shown as an intermediate subscriber to telephone subscriber locations 12" and 14,~ and includes a telephone 44 directly connected to the public switched telephone network 18 via a single telephone line 46.
Examining the telephone subscriber location 12", it can be seen that the computer 28 runs a communications protocol 50 and is equipped with a user in~erface 52. The communications protocol 50 and user interface ~2 are in the form of software package 29 installed in the computer 28. The software paclcage 29 is executed by the computer 28 in the background lo allow a user to execute other programs loaded in the computer at the / me time. The user may also instruct the computer ~8 to e~cecute the softwa~ package 29 if it is not currently doing so. The communications protocol 50 also interacts with other communications software in the computer which per~orms error colTecting functions and places the data into the proper configuration for transmissicn across the public switched telephone network.
. :. : . . . :
-- ~ , .
: ~ : :
. , . . ~
`
When the user instructs the computer to execute the software package 29, ~he user interface 52 allows the user to read, create and manipulatedata messa~,es as well as to designate when and where data messages are to be t~ansmitted. The communications protocol 50 intera~.ts with the user inter~ace 52 and establishes data sessions with other computers either by making a telephone call to another telephone subscriber location or by answering an incoming telephone call generate,cl by another computer. The communications protocol 50 therefore receives incoming data messages and transmits outgoing data messages as well as monitors the status of the telephone line 26 that it shares with telephone 22. If the communications protocol 50 detects that another party wishes to use the telephone line 26, the communications protocol automatically terminates a data session if one is in progress and will reestablish the data session when the telephone line becomes free if it originated the data session that was terminated.
Computer 40 at telephone subscriber location 14,~ as well as all other computers (not shown) located at other subscriber locations connected to the public switched telephone network run the same communica~ions protocol 50 and are also equipped with a user interface 52. Details of the communications protocol 50 and user interface 52 will be described herein.
Associated with the public switched telep~one network 18 are special features 53 made available to each telephone su~scriber location 1~, 14,~
and 16X, respectively by the central office of ~he local telephone companies 55.These special features 53 are optional and therefore, each telephone subscribe~
location connected to the public switched telephone ne~work 18 may subscnbe to none or to one or more of the special features made available to them. In the embodiment shown in Figure la, telephone subscriber location 12 ' 2 ~
subscribes to a call waiting feature 54 while telephone subscriber location 14,~subscribes to the call waiting feature 54 as well as to a distinctive ringing feature 56. On the vther hand, telephone subscriber location 16~ does not subscribe to any special features. Although telephone subscriber locations 12~, 14x and 16" are shown to subscribe to different special features, it should be realized that each telephone subscriber location connected to the public switched telephone network 18 may subscribe to the sarne or to none of the special features.
The call waiting feature permits a user to detect incoming telephone calls when a telephone call is already established and in progress.
The distinctive ringing feature causes a telephone to ring differently dependingon the ring pattern of the ringing signals received on the telephonç line from the public switched telephone network. Originally, the distinctive ringing feature was used in party line situations to allow different households sharing the sametelephone line to determine when a telephone call was directed to them.
However, this feature has now been made available to individual households to perrnit different individuals within the same household to determine whether an incoming telephone call is directed to them. This ~eature is being exploited further and in some instances is being used to permit different telephone devices connected to the same telephone line ~o detect and answer a telephone call directed to it. It is the latter situation which pertains to the present invention.
r ~n the present system 10, some of the telephone subscriber locations 14X include at least one device sharing the telephone line with the telephone and which is assigned a dedicated telephone number dif~erent fr~om that assigned to the telephone (see telephone subscriber location 14x)~ In this situation, these subscriber locations have more than one telephone number.
, :, 2 ~
When one of the telephone numbers is dialled, the central offlce of the telephone company generates and conveys to the tPlephone subscriber location ringing signals having a specific pattern assigned to the dialled telephone number. Therefore, when the dedicated telephone number assigned to the S device sharing the telephone line with the telephone is dialled by a third party, the local telephone company SS generates ringing signals having a specific ring pattern associated with the dedicated telephone number. The ringing signals are receivcd by all of the devices connected to the telephone line but only ~he device associa~ed with that specific ring pattern answers the incoming telephonecall. For clarity, a brief description of the ull waiting and distinctive ringing special features 54 and 56 and their mode of operation will now be described.
With respect to the distinctive ringing feature ~6, there are typically four different ringing signal ring patterns that are made available bythe local telephone companies 55. This potentially allows four different deviceshaving their own dedicated telephone number to be connected to the same telephone line at the subscriber location with each device answering dedicated telephone calls directed to them. When a subscriber location subscnbes to this feature and one of the dedicated telephone numbers assigned to that subscriber location is dialled by a third party, ~he central offlce of the local telephone company ~S generates and conveys to the subscriber location, ringing signals having a ring pattem assigned to the dedicated telep~one number that was dialled.
Figure 2 illustrates the différent ringing signal ~ing patterns which can be generated by the cenhal office of the local telephone companylS5 when a telephone call is directed to a subscriber location. If the subscriber location receiving the incoming telephone call does not subscribe to the special 1~
2 9 ~
feature 56, the ~ntral office generates nnging signals having the regular one-burst ring pattern (PA~rERN A). Ringing signals having a tw~burst ring pattern (PAl'rERN B) may be assigned to a dedicated telephone number and are generated when the dedicated telephone number is dialled. The tw~burst ring pattern is composed of two 20 Hz bursts of one second duration separated by 0.5 seconds of silence. Ringing signals having a three-burst pattern come - in two difterent versions, each of which may also be assigned to a dedicated telephone number and generated when the dedicated telephone number is dialled.
In the first three-burst version (PATrERN C), the ring pattern is in the form of a 0.5 second 20 H~ burst, followed by 0.5 seconds of silence, followed by a 1 second 20 Hz burst, followed by 0.5 seconds of silence, and - ending with another O.S second 20 Hz burst. In the second three-burst version ~P~l'rERN D), the ring pattern is in the form of a 0.5 second 20 Hz burst, followed by 0.5 seconds of silence, followed by a 0.5 second 20 Hz burst, followed by 0.5 seconds of silence, and ending with a 1 s~ond 20 Hz burst.
If a telephone subscriber location subscribes to the distinctive ringing feature 56, a dedicated telephone number will be assigned to the modem. Therefore, since telephone subscriber location 14,~ subscribes to this feature, modem 32 is assigned a dedicated telephone~ number. However, modem 20 is not assigned a dedicated telephone number since telephone subscriber location 12" does not subscribe to the distinctive ringing feature 56.
For exarnple, if ringing signals having the ring pa~tern associated with the dedicated telephone number assigned ~o the modem 32 are received~ at subscriber location 14~, all devices 32, 34 and 36 connected to the telephone line 38 will receive the ringing signals but only the modem 32 will answer the - . . . . - .: -. .
2~8~
incoming call. If ringing signals having a ring pattern different from that assigned to the modem 32 are received at the telephone subscriber location 14X
as a result of another telephone number different from the one assigned to the modem 32 but associated with the telephone subscriber location 14" being S dialled by a another party, the modem 32 will not answer the incoming call.
If the telephone subscriber location has subscribed to the call waiting feature 54 (see telephone subscriber locations 12,~ and 14~) and an incoming telephone call to the subscriber location occurs while the telephone line is in use, a 440 Hz tone having a duration equal to approximately û.3 seconds is generated by the local telephone company 55 and conv~yed over the telephone line to the telephone. The generation of the tone is heard by the subscriber informing them that another incoming telephone call has been received. The subscriber at the location has the option to ignore the incon~is~gtelephone call, terminate the existing telephone call and establish a communications link with the new caller; or put the existing telephone call on hold while the incoming telephone call is answered. If however, the subscriber location does not subscribe to the call waiting ~eature 54, the user is not informed that another incoming telephone call is received. In this situation, the caller will encounter a busy line and will have to try to establish a connectionat a later time. In the present inventiqn, the communiCations protocol ~0 detects call waiting tones if a data session is in progress ~uid terrninates the dala session to allow the incoming telephone call to be answered. In this manner, the telephone line is always made available for incoming voice communications.
Details of the user interface 52 and communications protocol S0 will now be described.
?, ~
The user interface 52 once seleeted, provides a main menu to the user offering the user a number of options, including a message read option, a message create and send option, a status option and an exit option. If the message read option is selected, the interface provides a list of messages to the user that were received from other computers over the public switched telephone network 18. The user also has the option to select and read individual messages in the list or return to the m~un menu.
If the user selects the message create and send option, the interface allows the user to create a message, designate its urgency and the time at which it is to be sent. The user must also indicate the des~nation of message. Once a message has been created and the user is satisfied with the contents of the message, the interface 52 places the message in a queue. The queue is accessed by the communications protocol 50 so that data messages in the queue can be sent to thcir destinations at the designated times as will be described. Once the user has finished creating messages, the user may retum to the main menu.
If the user selects the status option, the interface ~2 pr~vides a read only list including messages received, messages transmitted9 messages ~n the queue to be transmitted and the status of the telephone,line (i.e. whether adata session is in progress or not). Alternatively, if t~e user selects the e~itoption, the software package 29 is exited allowing t~e user to execute other programs in the computer. It should be realized tha~ even i~ the user exits the software package 29, the computer continues to execute the software package so that data messages can be received from other computers and so that ~ata messages in the queue can be transmîtted to their destinations at the designatedtimes.
2~0~1 Referring now to Figure lc, a representation of the queue is illustrated showing the type of information stored in the queue. As can be seen,the queue stores a list of the messages created by the us~r that are to be transmitted to other telephone subscriber locations. Associated with each S message is inforrnation setting forth the urgency or priority of the message, the desired time at which the message is to be transmitted and the location to whichthe message is to be sent. If messages were interrupted during a data session, they are rescheduled in the queue and an indicator is provided. In this manner, when the user selects the status option, the user is able to determine if messages were interrupted during a data session.
Within the communieations protocol 50 is stored a preprogrammed table (see Figure lb) which holds configuration data relating to the other computers connected to the public switched telephone network 18.
lS In particular, the table holds telephone numbers which can be dialled to establish a communications link with other computers, information as to whether or not the other computers have a dedicated telephone number and the pre~erred ring mode to reach the other computers. If a computer does not have a dedicated telephone number or if the preferred ring mode is unknown, a value for a timer setting T3~e~ c,,,, is also stored in the table. If the preferred ring mode of a computer is unknown, the computer automatically uses a one ring mode to establish the first data session with that comput,er! The information inthe table is however verified and updated every time two computers establish a data session as will be described.
In operation, the communications protocol 50 examines the qu~ue continuously to determine if a message is to be sent at the current time. At thesame time, the communications protocol monitors the modem to determine if ' ' '' :~ ' , ' 2 ~
an incoming telephone c~l from another computer trying to initiate a data session is received. When the communications protocol detects that a message is to be sentt ~he communications protocol consults the table and accesses the relevant data associated with computer to which the data message is to be sent.
Once this has been done, the communications protocol examines the telephone line to determine its status. If the telephone line is busy (either due to an off-hook condition of the tf~lephone or a data session in progress), the communicadons protocol holds message to be sent while monitoring the telephone line via the modem. This continues until the telephone line becomes free.
As soon as the telephone line becomes free, the communications protocol causes the modem to dial the telephone number selected from the ~able and uses the preferred ring mode of the destination computer. If the answering IS computer is located at a telephone subscriber location which subscribes to the distinctive ringing feature 56 and the modem to which it is connected has been assigned a dedicated telephone number, the communications protocol S0 of the transmitting computer will have this data in the table stored therein and will dial the dedicated telephone number. When ~he dedicated telephone number is dialled, the central offlce sends to the subscAber location of the answering computer, ringing signals ha~ing a ring pattern assigned specifically to the modem at the subscriber location. The communicatigns protocol 50 in the answering computer detects the ring pattern of the ringing signals received by the modem and answers the telephone call to establish a communications link.
However, p~ior to proceeding with communications"the answering computer examines thP manner in which it was contacted by the originating computer. If the answering computer was not contacted im the , 2~0~
preferred ring mode of the a.nswering computer, the answering computer transmits information to the originating computer. This inforrnation is used by the onginating computer to update its table so that when the originating computer contacts the same answering compu~er at a la~er time, it does so using S the preferred ring mode of the answering computer.
If the answering computer is located at a telephone subscriber location which does not subscribe to the distinctive ringing feature 56 and therefore, does not have a dedicated telephone number assigned to the modem to which the answering computer is connected, the originating computer follows a one-ring mode protocol in order to es~ablish a data session. In this mode, theoriginating computer makes two time spaced calls to the answering computer before the message is sent. The first telephone call makes the user at the answering computer aware of the incoming call. If the user inadvertently answers the telephone call via the telephone, the user upon hearing silerlce should simply hang up the telephone. The answering computer will properly respond to the second incoming telephone call and proceed with data communications. In the one ring mode, the communications protocol 50 in the originating computer initiates a telephone call to the answering computer but unlike dialling dedicated telephone numbers, the originating computer controls the length of the first telephone call to aim for typically one and no more th~ntwo ~ngs of the telephone at the telephone subscrib,er location where the answering computer is located despite variable network delays. There are two ways of accomplishing the length control of the telephone call in accordance with the present invention.
If the modem connected to the originating computer is capable of detecting ringback tones, the first telephone call is terrninated by the . !
' ' `'' ' ` " ' 2 ~
originating computer approximately 6 seconds a~ter a ringback tone is detected.
If the modem is not capable of detecting ringback tones, the first telephone call is terminated after the value of the timer T3~ ~, as set out in the table, expires. In particular, when the telephone number is dialled and the central S office conveys Anging signals of the Pattern A ring type to the telephone subscriber location (since this ring pattern is associated with non-dedicated telephone numbers), the originating computer goes back on-hook T3nC~
seconds after the telephone number is dialled. Typically the value T3~ is set at 9 seconds for local telephone calls and at 19 seconds for long distance telephone calls. This ensures that the central office conveys ringing signals sothat at least one ring pattern A burst is received by the answering computer before the timer expires. This same procedure applies to any of the ~our ring patterns illustrated in Figure 2.
When the ringing signals ar~ received at the telephone subscriber location, the telephone rings and the nnging signals are detected by the modem.
The user knowing that a data session between computers is trying to be established using the one ring mode ignores the ringing telephone. The communications protocol in the answering computer detects the ringing signals via the modem and the following silence and awaits another telephone call within a predetermined duration signallin~ the completion o,f the one ring mode protocol. , After the originating computer has gone back on-hook, it waits for 15 seconds and again dials the telephone number of the telephone subscriber location. The answering computer which is awaiting the return telephone ~all instructs the modem to answer the telephone call immediately if the second telephone call is received within 45 seconds of the first telephone call.
- ' , , .. . .
: , . .
, ~ ' ', 2 ~
If another party other than the originating computer dials the telephone number of the answering computer within the 45 second interval and before the originating computer has done so, the telephone call will be answered by the answering computer and the answering oomputer will initiate a data session. The other party will therefore hear the modem tones and will terminate the connection. If this occurs, ~he originating computer a~ter initiating its second telephone call will detect a busy signal and will hang-up.The originating cornputer will then attempt to establish another communication link with the answering computer using the one ring mode and st~ing from the beginning.
The only inconvenience for the user when using the one ring mode of operation is the fact, that the telephone connected to the telephone line will typically ring twice during the first call of the one ring mode. To ensure that a user does not miss voice calls, the user is advised to answer the telephone call after at least three rings of the telephone have occurred. If an answering machine is connected to the telephone line, to ensure that the answering machine does not answer data calls, the answeAng machine should be set to answer telephone calls only after four rings have occu~ed.
Once a communication ~inlc between the originating and answering computers has been established in one QP the above-identified manners, the originating computer is able to send the message to the answering computer. While this is occurring, both computers monitor the telephone line 2S to which they are connected in order to determine whether call waiting tones are received over the telephone line or whether the telephone at the subscriber location goes off-hook. If one of these conditions occurs, the communications link is terminated so that either the incoming telephone call can be answered or .
2~8~01~
an outgoing telephone call can be made using the telephone. If a data session is terminated before the entire message is transmitted, the message is retained by the originating computer and is placed back in the queue together with an indicator so that it may be transmitted at a later time. The answering comput~
also stores the received partial message and notifies the user that the remainder of the message is forthcoming.
If on the other hand, the message is transmitted in its entirety, the answering computer consults its queue to determine if it has any messages that are to be sent to the originating computer. If one or more messages are located in the queue of the answering computer, the answering computer sends them to the originating computer. In this manner, the existing communications link is used to a more full extent. Once the messages are sent by the answer~ng computer in their entirety or if no messages in the queue were located by the lS answering computer, the communications link is terminated and the communications protocol revisits the queue and continues monitoring the telephone line. However, if the communications link is terminated during transmission of a message to the originating computer, the message being sent by the answering comput~ is rescheduled in the queue and is sent by the answering computer at a later time.
Since all of the computers in the system ,10 are able eo transmit and receive messages over the public switched telep~one network 18 in the above described manner, each computer includes within its communications protocol, an originate module and an answer module. The originate module continuously consults the queue to determine whether a message is to be ~ent at the current time and originates a telephone Gall when a message is to be sent.
2 ~
At the same time, the answer modul~ continuously monitors the telephone line to detect incoming telephone calls, call waiting tones or telephone off-hook conditions. When an incoming telephone call is received, the computer e~amines the pattern of the received ringing signals via the modem S and determines whether it should answer the incoming telephone call. It should be apparent that only one of the originate and answer modules may be initiated at a time. The originate and answer modules will now be described separately with reference to Figures 3 to 11.
ORI~INATE MODUI,E
When a message to be transmitted is detected by the communications protocol 50 in a computer, the message is retrieved from the queue. The relevant information associated with the computer to which the message is being sent is then retrieved frorn the table (block 200 in Figure 3).After this, a counter AIT which measures the number of call attemp~s made by the communications protocol 50 for the message to be sent is reset as shown in block 202. The data retrieved from the table is then examined to determine if the computer to which the message is being sent has a dedicated telephone number (block 204).
If the modem at the telephone subscriber l'ocation to which the message is to be sent does not have a dedicat~d ' telephone number, tlhe originating computer must use the one ring mode protocol to establish a data se~sion with the destination computer. In this case, the originating computer steps to block 206 and enters a "Proceed to Dial" routine wherein the telephone number assigned to the subscriber location is dialled. This routine 206 is better illustrated in Figure 4. As can be seen in order to initiate the telephone call, `
;':
the communications protocol instructs the modem to go off-hook (blocks 208 and 210). Depending on the type of modem connected ~o the originating computer, different steps are performed by the communications protocol. Once the oommunications protocol instructs the modem to go off-hook, the S communications protocol monitors the output of the modem to determine if a "voice" message is generated by the modem (block 212). If a "voice" message is detected (block 214), the communications protocol acknowledges that the telephone line is not available and exits the "Proceed to Dial" routine ~06 via a Do Not Dial result 216.
If a "voice" message is not detected at block 212, the communications protocol acknowledges that the telephone line is either availableor that the modem is not of the type capable of generating a "voice" message.
The communications protocol therefore steps to block 218. At this block, if the lS modem is capable of detecting a dial tone, the modem determines whether a dial tone is detected while i~ is in its off-hook condition (block 220~. If a dial tone is not detected, the modem initiates a count (block 222) and loops ba~k to block 212. The modem continues through the loop constituted by blocks ~12, 218, 220 and 222 for as long as a "voice" message, or a dial tone is not detected and until the value of the count reaches a preset time-out value. At this point, the modem generates a "no dial tone" message, (block ~24) to the communications protocol and the communications protocal exits the routine ~06 via the Do Not Dial Result 216.
Once the communications protocol exits the routine 206 via the Do Not Dial result 216, the communications protocol proceeds to block 230 shown in Figure 3. At this block, the attempt counter Alrr for the message in the queue to be transmitted is incrernented and then the value of the attempt ~5 ~ ~ ~ t~
CQunter is compared with a maximum attempt value N (block 232). If the attempt counter Al~ has a value less than the maximum value N, the communications protocol waits for a predeterrnined duration established by the user (block 234) before proce~ling back to block 204. If however, the attempt 5counter Al~ is de~ected as having a value equal to the ma~imum atternpt value N, the communications protocol proceeds to block 236 and places a note in the status file informing the user that the message was not transmitted because a communications link could not be established (block 238).
10If however, during the execution of routine 206 at step 220, the dial tone is detected by the modem either immediately or before the counter reaches the time-out value, the communications protocol instructs the modem to dial the telephone number of the telephone subscriber location (block 240) and then exits the routine 206 via a Dial result 242. On the other hand, if the 15modem is of the type which is unable to detect a dial tone, once the modern goes off-hook, the modem initiates a count (block 2443. Once the count reaches a time-out value, the communications protocol instruets the modem to dial the telephone number (block 240) and then exits the routine 206 via the l:)ial result 242.
As soon as the modem finishes dialling the telephone number, the communications protocol detects this and records the ~urrent time tl (block 246). The communications protocol then proceeds to a "Wait for CaIrier~
routine indicated at block 250 and better illustratecl in Figure 5.
Once routine Z50 is entered, the communications protacol initiates a timer T3 and sets the time-out value of the timer based on the information stored in the table (block 252). Thereafter, the commw~ications -.
:
2 ~
protocol proceeds through a number of decision blocks to determine if one of a number of conditions has occurred. In particular, the communications protocol through the modem firstly monitors the telephone line to deterrnine if the telephone line at the telephone subscriber location where the message is to S be sent is busy (block 254). If the telephone line is detected as being busy, routine 250 is exited via a Busy result 256 and th communica~ons protocol proceeds to block 230 wherein the attempt counter Al~ is incremented. If a busy signal is not received, the communications protocol checks to see if a ~connect" message is received from the answering computer (block 258). If a "connect" message is received, the communications protocol exits the routine 250 via a Connect result 260 and establishes a data session with the answering computer via a "Proceed with Communications' routine 300 as will be described herein.
However, if a "connect" message is not received, ~e communications protocol monitors the output of the modem to see if it is responsive to ringback tones (blocks 262). If the modem is unable to respond to ringback tones, the communications protocol examines the value of the timer 13 to detennine whether it has reached its preset time-out value T3no~,cd, (block 264). If the timer T3 has not reached the preset time-out value, the communications protocol loops back to block 254 and the procP.ss continues.
However, if the timer T3 reaches the preset time-out value, the communications protocol exits the routine 250 via a Time-Out result 266.
If the modem is of the type capable of detecting ringback tones, when block 262 is reached, the communications protocol proceeds to block ~68 to determine whether a "ringing" message is received by the modem ~block 268). If a "ringing" message is not received, the communications protocol ` : :
proceeds to block 2~ and examines the value of the timer T3. If however, a "Anging" message is received after the 6 second delay, the communications protocol exits the routine 250 via a Ringing result 270.
S The 6 second delay before exiting the routine 2~0 via the Ringing result 270 is taken for the following reasons. As is generally known to those of skill in the art, when making a telephone call over a switched telephone netwotk, there is a delay Td betwe n the end of the dialling pr~edure and the r~eipt of the first singback signal indicating that the telephone line at the subscriber location to whom the call is directecl is ringing. The del~y Td has two components, namely a system delay Ts which is the delay associated with the switched telephone network making the connection betw~n the calling and answering par~ies, and a ringback cycle delay Trb which is the time between the call being established and the receipt of the trailing edge of the first Angback signal by the calling party. The value of the delay Trb is typically between 0 and 6 seconds and varies due to the fact that although the ringback tone generators at the telephone central office work on a 6 second cycle they are not neeessarily synchronized with the end of the system delay Ts.
Therefore, at the end of the sys~em delay Ts, the trailing edge of the ~rst ringback signal will be received by the calling party after the delay Trb. If the delay Td is measured using ringback signal~Setcction circuitry ~or example, one must wait 6 additional seconds to ensuré that at least one ringing signal ring pattern is received at the answering par~. This is summarized in the following equations:
d + 6 seconds = Ts + Trb + 6 seconds - 2~ - :
.
' ~
` ` . .:
`:
2 ~
The addiLional 6 seeonds delay is required to account for the worst case condition where Trb is equal to 0 seconds and the delay for the answenng computer to receive the first ringing signal nng patteIIl is 6 seconds. In the present embodiment, the delay Td is not measur~ but rather the 6 second delay is added when the first ringback tone is detected.
If routine 250 is exited via one of the results, 266 or 270, the communications protocol proceeds to block 280. At block 2809 the communications protocol causes the modem to hang up and immediately thereafter initiates another timer T4 (block 282). Once the ~imer T4 reaches a predeterrnined time-out value (block 284) which as mentioned previously is approximately 15 seconds, the communications protocol executes ano~her "Proceed to Dial" routine 286 which is identical to routine 206 previously described. Depending on ~he results of the routine 286, the communications protocol may proceed to block 230 if the communications protocol exits the routine 286 via a Do Not Dial result 216 or it may proceed to another "Wait For Carrier" routinP indicated by block 288 if the routine 286 is exited via a Dial result 242.
When the communications protocol is executing step 204, if the message is to be sent to an answering computer having a dedicated telephone number, the communications protocol 50 bypasses routine 206 and proceeds directly to the "Proceed to Dial" routine 286. This is possible since the one ring mode protocol is not required as the modem at the answe ing compute~
should detect and answer the initial telephone call generated by the originatingcomputer.
:
2 ~
The "Wait For Carrier" routine 288 is almost identical to routine 250 except that the timer T3 has its time-out value T3~ c.u preset and remains unchanged at a value equal to 25 seconds. Also in this routine, the communications protocol ignores ringback tones detected by the modem, if the S modem is of the type capable of detecting such tones. Aside from this, the routine 288 is identical to routine 250 and therefore will not be described.
When executing the routine 288, if the communications protocol exits the routine via a Busy or a Time-Out result 256 or 266 respectively, the communications protocol proceeds to block 230 acknowledging that an unsuccessful attempt to establish a communications link occurred. If however, the communications protocol exits the routine 288 via a Connect result 260, signifying that a communications link with the answering computer has been successfi~lly achieved, the communications protocol steps to the "Proceed With Communica~ion" routine indicated by block 300 and better illustrated in Figure IS 6.
Once routine 300 is entered either from routine 250 or routine 288, the communications protocol immediately exchanges the local ~ime information (block 302) with the answering computer. This information is used by the computer for timing calculations required to carry out the one ring mode as will be described. The answering cQmputer also info~ms the originating computer of its preferred ring mode if the originating çomputer established a connection with the answering computer in a manner diffe~nt ~rom the preferred ring mode. If the originating computer receives preferred ring mode data from the answering computer, the originating computer uses this data to update its table. After this, the data session commences and ,~he communications protocol in the initiating computer conveys the first packet of data forming part of the message to be sent over the telephone lines and public , .
2 ~
switched telephone network (block 304) to the answering computer. As the data session is occurring and between each packet of data ~ansmitted, the communications protocol executes a sequence of decision blocks to ensure that the data is transferred between the computers correctly and to determine S whether a voice communications link is trying tv be established over the telephone line which the originating computer is sharing-with the telephone.
In particular, the communications protocol monitors the modem to detect whether a calTier loss is detected by the modem (block 306). If a calTier loss exceeding modem register S10=3 setting is detected (signifying a communications iink intelTuption), the communications protocol proceeds to block 308 wherein the communications link is disconnected and the remainder of the data message that has not been sent is retained. After this occurs, the communications protocol exits the routine 300 via an Interrupted result 312 and 13 proceeds to block 314 shown in Figure 3. At this bloclc, the remainder of the data message is assigned the next available order number in the queue and an indicator so that it can be transmitted at a later ~ime. The communications protocol then proceeds back to block ~00 so that the next message in the quP.ue can be transmitted if it is time to do so.
If a carrier loss is not detected at block 306, the communications protocol monitors the modem to check for framing er~ors (block 3203. If a framing error is detected, the communications protocol proceeds to block 334 wherein an error counter is incremented. Once the error counter is incremented, the communications protocol proceeds to block 336 and compares the value of the counter with a predetermine~ threshold value. Thereafter, Ithe error counter status is irnmediately checked in decision block 336.
, 2 ~
If the error counter exceeds the threshold level set by the communications protocol, the communications protocol proceeds to block 3û8 wherein the communications link is disconnected and the data message is retained in the marner described above. If the error counter is detected as being below the threshold level, the communications protocol proceeds to block 3û4 where the data transfer continues.
If a framing error is not detected in block 320, the communications protocol proceeds to block 322 to determine if a command received from the answering computer has been detected by public domain software known under the name Zmodem used in conjunction with the communications protocol 50. If a command is present, a verification of the command is performed by the :Zmodem protocol (block 324). If the command is not legal, the Zmodem protocol waits for a new command and times-out.
The communications protocol monitors the :Zmodem protocol to detect this condition and proceeds to block 334 when it occurs where the error counter is incremented. Once the error counter is incremented, the communications protocol steps to block 336 and then to either block 304 or 308 depending on the decision block output. If the command is detected as being legal, the communications protocol proceeds to block 326 where the command is executed and the standard course of action takes place depending on the type of command received. Thereafter, the error counter is dçcremented (block 338) before the next packet of data forming the message is sent.
If there is no command detected in block 322, the communications protocol checks to see if the message has been completely transmitted (block 328). If the message is not completed, the communications protocol proceeds to block 338 where the error counter is decremented. The ., , .
.
2~8~
communications protocol then proceeds to block 3~4 where the data transmission of the current message continues. If the message is detected as being completely transmitted, the routine 300 is exited via a Complete result 330. Once the routine has been exited via result 330, the communications prot~ol generates a successful transmission no~e to the status file to inform the user (block 33~3. At this time, the answering computer is informed tha~ the complete message has been transn~itted and is queried to determine if the answering computer wishes to transmit any messages to the originating computer while the communications link is established. When this occurs, the answering computer consults the queue therein. If no messages are to be sent, the answering computer notifies the originating computer. After this, the communications protocol in the originating computer terminates the communication link and returns to the gueue (block 200) to determine if it is time to send the next message in the queue.
If the answering computer has one or more messages to be transmitted, the communications protocol in the answering computer immediately proceeds to routine 300 and begins transmitting the message to the originating computer in the same manner described above.
The Zmodem communications software used,in the computers to detect commands and to perform error correcting func~ions is suitable due to its ability to permit the continuation of a file transfer after a data session has been terminated. Also, since Zmodem primarily uses only one data channel of the full duplex system with the second channel being used occasionally for commands, call waiting tones and o~-hook conditions produce significan~ noise on the second channel which is quickly detected as an illegal command condition. This of course permits the routine 300 to exit via an Interrupted , 2 ~ 8 '~
result 312 as soon as a call waiting tone is received. The threshold levels set by the communications protvcol are chosen so that inherent telephone network noise does not result in the incorrect termination of a data session but is handled by the error correcting mechanisms of the Zmodem protocol.
During the data transmission session, the carrier loss, ~ing error and illegal command situations are monitored since these conditions typically occur when a call waiting tone is received over the telephone line or when a telephone connected to the telephone line goes off-hook during a data session. Since the communications protocol termina~es the data session when one of these conditions occurs via Interrupted result 312, the telephone line becomes available for voice communications almost immediately upon lifting of the handset of the telephone or upon receipt of a call waiting tone.
ANSWE~R MODULE
When an originating computer dials the telephone number associated with another computer to establish a data session as indicated by block 240 in Figure 4, the ~entral offlce generates either ringing signals of the ~` 20 ring pattern type associated with the dialled telephone number or a call waiting tone if the telephone line to which the other computer is connected is busy and the telephone subscriber location subscribes to the ~all waiting ~eature.
Assuming that the telephone line is free, when the ringing signals are received on the telephone line, the telephone rings and the communications protocol in the answering computer detects the incoming telephone call via the modem. As can be seen from Figure 7, the answer module of the communications prot~col 50 continuously monitors the telephone line via the modem through a "Ring ~attern Recognition" routine 400 to detect either a debounced edge of the : ,~
.. , - ~
.
- - ' . :
2 ~
ringing signal ring pattern or a ~Ring~ message generated by the modem (block 402 in Figure 8). This is necessary since not all of the modems currently available are able to generate a "Ring" message isl a way that allows recognition of distinctive ringing signals. As the majority of commercially available S modems generate the "Ring" message on the trailing edge of the ringing signal ring pattern, that edge is used in ~he preferred embodimen~ of the presellt invention The time-out value of a timer T2 is also set at infinity (i.e. initially it is unable to time-out, block 400 in Figure 7) when the communications protocol first enters the routine 402.
If the modem is unable to generate a "Ring" message that allows recognition of distinctive ringing signals, the communications protoeol performsthe steps shown in Figure 9 while it executes routine 402 in order to detect a "Ring" message or debounced edge of a ringing signal. In particular, the communications protocol sets the time-out value of a timer Tl equal to the time-out value of timer T2 and then initiates the timer T1. The timer Tl defines the time period in which the routine 402 waits for a trailing edge of the ringing signal ring pattern (blocks 404 and 406). If a trailing edge is not detected before the timer T1 reaches its time-out value, the communications protocol exits the routine 402 via a No Ring result (blocks 408, 410 and 412).
As should be apparent, when the time-out value of timer T1 is initially set to equal the time-out value of timer T2, the communic~tions protocol is not capable of exiting routine 402 via the No Ring result 412 as the timer Tl cannot expire. This ensures that the communications protocol continuously monitors the status of the telephone line via the modem when a data session is not in progress.
If however, a trailing edge of a ringing signal mng pattern is detected before ~he timer T1 reaches the time-out value, the communications protocol wa~s for at least 150 milliseconds (block 414). If no further trailing edges are detected within this time frarne9 the level of the RI pin of the modemis checked ~block 41S). If the Rl pin is detected as being active (block 416), the communications protocol assumes that a spurious trailing edge occurred and returns to block 406 to await r~ceipt of the next ~ling edge. If the Rl pin of the modem shows that no Anging signal is present, the communications protocol assumes tha~ a valid trailing edge was received and exits the routine 402 via a l~ing result 418.
However, if the modem is of the type which is capable of generating a "Ring" message in response to distinctive ringing signals, the communicatlons protocol performs the steps illustrated in Figure 10 while it executes the "Ring Pattern Recognition" routine 400. In particular, the communications protocol firstly set the time-out value of the timer Tl equal to that of timer T~ and then initiates the tim~r T1 (block 43û). The communications protocol then awaits receipt of a "Ring" m ssage (block 432~.
If no "Ring" message is received before the timer T1 reaches its time-out value,the communications protocol exits the routine 402 via a No Ring result (blocks 434, 436 and 438). However, if a "Ring" message is received before the timer Tl reaches its time-out value, the communications protocoi exits the routine 402via a "Ring" result (block 440). As mentioned above, the communications protocol is not capable of exiting routine 402 via the No Ring result initially as the time-out value of timer Tl is se~ to infinity.
If however, the communications protocol exits routine 402 via a Ring result 418, 440, the communications protocol proceeds to block 450 .. ~
, . ' . ' ' ' ' ~ " ' ' ~
2 i~ 3 ~
wherein the time at which the trailing edge of the first ringing signal was received is recors~ed. Thereafter, the communications protocol proceeds to routine 452 which is very similar to routine 402. In this routine, the communic~tions prs:tocol sets the time-out value of timer Tl equal to 1.75 seconds and executes either the steps shown in Figure 9 or in Figure 10 depending on ~he ty~se of modem connected to the answering computer in order to detect whether or not a trailing edge or "Ring" message is received before the timer Tl reaches its time-out value.
If the communications protocol exits the routine 452 via a No Ring result 412 or 438, the communications protocol acknowledges that the ringing signal ring pattern received over the telephone line corresponds to the PAl~ERN A type shown in Figure 2. As can be seen in this Figure, the PATIERN A ring pattern includes no additional trailing edges within 1.75 seconds after the first trailing edge. At this time, the communications protocolexits the routine 400 via a Pattem A result 454.
If however, the communications protocol detects another trailing edge within 1.75 seconds of the first trailing edge, ~he communications protocolexits routine 452 via a Ring result 418 or 440 and proceeds to block 456 wher~-in the time at which the second trailing edge of the,ringing signal was received is recorded. Thereafter, the communications protocol enters routine 458 which is identical to routine 452 to detect whether another trailing edge isreceived within 1.75 seconds of the second trailing edge. If the communications protocol exits routine 458 via the No Ring result 412 or 438, the communications protocol determines that the received ringing signal ring pattem is of the PATIERN B type and exits the routine 400 ~.ria a Ring Pattern B result (block 460). However, if the communications protocol exits routine 2~8~0~
458 via the Ring result 418 or 440, it proceeds to block 462 wherein the time difference between the occurrence of the first and the second trailing edges is calculated. If the time di~erence is detected as being greater than 1.25 seconds, the r~ng pattern is deterrnined to be of the PAl'rERN C type and the communications protocol exits routine 400 via a he Ring Pattern C result (block 464). Otherwise, it is determined to be of the PArrERN D type and the communications protocol exits the routine 400 via a Ring Pattern D result (block 466).
Referring back to the Figure 7, once the ringing signal ring pattern has been detected in response to the incoming telephone call, the communications protocol proceeds to block 470 and stores the type of ring pattern received. The communications protocol also records the time t2 at which the ring pattern was received (block 472). After this has been done, the communications protocol proceeds to block 474. If the modem connected to the answering computer does not have a dedicated telephone number and is thus configured to answer telephone calls only in the one nng rnode, the communications protocol proceeds to block 476 wherein a ring counter is set to a value equal to 1. This is done since one ring has been already detected viaroutine 400 before the communications protocol reaches block 476. After this, the communications protocol proceeds to routine 482 which is identical to the routine 400 described previously.
~ , Upon entering routine 482, the timer T1 has its time-out value set to 8 seconds and the communications protocol awa~ts receipt of the next ringpattern. If a ring pattern corresponding to one of the four patterns A to O is received before the timer T1 reaches the 8 sccond time-out value, t'ne communications protocol proceeds to block 484 wherein the ring counter is 2 ~
incremented (block 486). Once the counter is incrementect, the communications protocol proceeds back ~o block 482 and awaits the next ring pattem. If however no ring pattern is received, the communications protocol proc~ds to block 486 wherein the value of the ~ing counter is examined. If the ring S counter is detected as having a value greater than four, the communications protocol exits the routine since the incoming telephone catl did not follow the protocol associated with the first catl in the one ring mode (i.e. at least one and at most four rings~. The communications protocol then reverts to routine 400 and begins monitoring the telephone line for receipt of the next incoming telephone catl ringing signat.
If the value of the ring counter is detec~ed as haYing a value less than or equal to four, the communications protocol assumes that another computer was trying to establish a communications link since the telephone call complied with the one ring mode protocol. When this occurs, the communications protocol proceeds to another "Ring Pa~tern Recognition"
routine (block 488). Upon entering this routine, the tirne-out value of timer Tlis set at 45 seconds. If a No Ring result 412 or 438 is determined after the timer Tl reaches the time-out value, the communications protocol exits the routine 488 and begins monitoring the telephone line for receipt of the next incoming telephone call ringing signal vi~ routine 400.
If however, the communications protvcol exits the routine 488 via one of the Ring Pattern results 460, 464 or 466 the communications protocol steps ~o block 490 and compares the reeeived Iing pattern with the ringpattern that was stored in block 470. If the two ring patterns are detected as being different, the communications protocol exits the routine and begins ~9 2 ~
monitoring the telephone line for receipt of the next incoming telephorle call signal via routine 400.
On the other hand, if the received ring patterns are detected as being the same, the communications protocol immediately instmcts the modem to go off-hook (block 492) and initiates a timer T6 having a time-out value set at 15 seconds ( bloek 494). Following this, the communications protocol awaits a Hconnect" message from the modem (block 496). If the "connect" message is not received by the time the timer T6 reaches the time-out value, the communications protocol instructs the modem to disconnect the telephone connection (block 498) and the communications protocol proceeds to routine 400. If the "connect" message is detected before the timer T6 reaches the time-out setting, the communications protocol proceeds to a "Proceed With Communications" routine (block S00) which is basically identical to routine 300 lS since a communications link is established between the originating and answering computers.
When the communications protocol enters routine ~00 (see Figure 6), it conveys ehe local time in~ormation to the originating computer and also informs the originating ~mputer of its preferred ring mode if the communications link was established in a manner different than the preferred ring mode. The communications protocol in the answering computer then receives and stores the packets of data forming the message sent to it by the originatin~ computer. At the same time, the communications protoeol checks for carrier loss, framing errors and illegal commands in the same manner as is done in routine 300 by the originating computer so that call wa~ting tones~and ~elephone off-hook conditions are detected. If the data session is terminated because of a call waiting tone generated in response to another incoming telephone call or due to a telephone off-hook condition, the communications protocol stores the partial message (block 532) and terminates the data session (block 498). Once the data session has been terminated, a note is placed in the status file to inform the user of this and the communications protocol executes S routine 400 to detect the next incoming telephone call ringing signals.
However, if a message is received in its entirety, the communications protocol places a note in the status file informing the user of the message and awaits the query from the originating computer with respect to return messages. Once the query is received, the communications protocol consults the queue to determine if any messages are in it that are to be sent tothe originating computer. If messages are to be sent to the originating computer, they are done so in the manner previously described. If the messages are sent in their entirety or if no messages are to be sent, the lS communications protocol notifies the originating computer and exits the routine 500 via a Complete result (block 530).
When executing step 474, if the modem conn~cted to the answering computer has a dedicated telephone number, the communications protocol proceeds to block 520 to check if the received ring pattern is the sameas that assigned to the modem. If it is not, the commynications protocol proceeds to block 476 and the sequence of events previously described ~eur.
This is done just in case the originating cornputer has'incorrect information inits table and is using the one ring mode protocol ~o establish a communication link with the answering computer.
However, if the received ring pattern is the same as the ring pattern assigned to the modem connected to the answering computer, the .
.
2 ~
communications protocol instructs the modern to go off-hook (block 522).
Thereafter, the communications protocol sets the time-out value of a timer 1`7 at 15 seconds (block 526) and ~waits a "connect" message from the modem.
If the "connect" message is not received by the time the timer T7 reaches the time-out value, the communications protocol inst~ucts the modem to disconnect the telephone connection (block 528) and proceeds to block 488. At this block, the communications protocol waits for receipt of another ring pattern. This routine is performed in the event that the one ring mode is being performed by the originating computer using the dedicated telephone number of the modem connected to the answering compu~er. If it is being performed, the answeAng computer will answer the second telephone call.
If the "connect" message is detected before the timer 17 reaches the time-out setting, the communic~tions protocol proceeds to the "Proceed Wit!l Communications" routine at block 500 and the same sequence of events previously described are performed. Therefore, if the routine 500 is completed, the communications protocol places a note in the status file to m~rm the user that the message has arrived in its entirety and notifies the user about successful transmission of messages if during the same data session messages are sent from the answering computer to the originating computer (block 530~.
Thereafter, the ~ommunications protocol instructs the m~dem t~ go on-hook (block 498) and then returns back to routine 4ûO in oFder to detect the next incoming telephone call. If ~he data session is intenupted, the communications protocol retains the partially received message (block 532) and then proceeds to block 498. At this block, the communications protocol instmcts the modem to go on-hook and then reverts to routine 400 in anticipation of another incoming telephone call.
- 4~ -2 ~
As should be apparent, the answering computer will answer incoming telephone calls adhering properly to the one ring mode protocol regardless of the ringing signal ring pattern received at the telephone ~ubscriber location. This facilitates the telephone call initiation pr~ess for each computer S as each computer is not required to have complete knowledge of all other computers connected to the public switched telephone network. If the only information in the table concerning a computer is its telephone number, the originating computer will automatically default ~o the one ring mode for that computer since all computers ~rill answer telephone calls following the one ringmode protocol regardless of the ringing signal ring pattern received.
~IANDS~AKIN& USING ONE RING MODE
As mentioned previously, when an originating computer is 13 attempting to establish a communications link with an answering computer using the one nng rnode, during the execution of routine 250, the timer T3 has its time-out value set at a pr~selected default value T3~, C2" if a successful communication link between the two computers has not previously been established. The default value is stored in the table shown in Figure lb.
During subsequent data sessions, during the handshaldng step 302 of routine 300, updated values of the timer setting T3~ c.,, are calculated based on exchanged time inforrnation so that the table in the oIiginating computer is updated. This procedure will now be described and is illustrated in Figure 11.
As mentioned previously, the timer time-out value T3~ in the table for each computer is initially set at one of two values depending,on whether the telephone call to that computer is local or long distance. These twovalues are typically set at 9 or 19 seconds respectively. After dialling the , 2 ~
telephone nurnber, the communications protocol in the originating computer stores the local time tl at block 246. When the first telephone call i5 established after executing routine 250, the communications protocol in the answering computer will have stored the time t2 that the first trailing edge of S the ringing signal ring pattern was received (block 472). During the handshaking step 302, the communications protocol in the originating computer receives the time t2 and the local time of the answenng computer. The time t2 is adjusted by the communications protocol in the originating computer by adding the difference between two local times.
A~ter this, the communications protocol in the originating computer updates its time-out value T3~C", c.~ in the table assigned to the answering computer. This is done using the e~uation below as ~ollows:
T3ne~,C",1 = (t2 - tl) ~ 6.0 seconds so that an updated value for the time-out value setting is generated. This new value is written into the table to replace the previous timer setting. Every time a data session is established between two compllters when the one ring mode protocol is used, this routine is performed so that the timer setting T3,,~,,~,c,,~ is continuously updated. The need to add the 6 seconds to the above formula is as follows.
.
As mentioned previously, there is a delay Td between the end o~
the diaUing procedure and the receipt of the first nnging signal at the subscliber location to whom the call is directKI. The delay Td has two components, namely a system delay Ts which is the delay associated with the switched telephone network making the connection between the calling and answering 2~8 L3L~
parties, and a ring cycle delay Tr which is the time between the call being established and the receipt of the trailing edge of the first ringing signal ring pattern received by the answering party. The value of the delay Tr is typic~lly between 0 and 6 seconds and varies due to the fact that although the nng S generators at the telephone central office work on a 6 s~ond cycle they are not necessarily synchronized with the end of the system delay Ts.
Therefore, at the end of the system delay Ts, the trailing edge of the first ring signal will be received after the delay Tr. If the delay Td is measured, one must wait 6 additional seconds to ensure that at least one ringingsignal ring pattern is received by the answering party. This is summarized in the following equations:
T3nC",C"~ = Td + 6 seconds T3ne~CA~ = Ts + ~r ~ 6 seconds The additional 6 seconds delay is required because the delay Tr may be as low as Q seconds wherein the delay Td is e~ual to the system delay Ts so that if thedelay Tr for the next call is at the rnal~imum ie. 6 seconds, enough time is provided to ensure that the answering party receives at least one ringing signalring pattern.
If when a data session is to be established for the first time and the one ring mode is unsuccessful, the communications protocol will try two different initial timer settings T3~ ,C.U as shown in Figure 11 and will retry the one ring mode protocol. If neither of those trials succeeds, the communications protocol generates appropriate messages to the status file indicating that a communieations link could not be established. The user will then have to deterrnine the next course of action to take in order to establish a - :
, : ' , ~',:
.. ' . ~; : :
. ' ~, ' ' ' , 2 ~
communications link and transmit the message. The most probable cause of lack of success resul~s due to the long time delay of~en encountered when making long distance telephone calls. In this case, the user will be able to enter manually the initial timer setting T3nC,~ To determine a reasonably accurate initial value for the timer setting when manually setting the timer, the user may initiate a voice call to the destination number and measure the elapse~d ~ime - between the end of dialling sequence and the generation of the ringback tone.
That measured time can then be manually entered into the table by the user.
If it is found that the time in which the first ringback tone is generated varies, another option can be provided in the software to permit the user to terminate manually the first call of the one ring mode when the ringbacktone is detected. In this case, the communications protocol provides a message to the user indicating that the first call has been initiated ~nd prompts the user to terminate the call when the ringback tone is detected. Once the us r terminates the telephone call, the communications protocol initiates ~he second call automatically in the manner previously described.
Although the present systern has been described as allowing the answering computer to transmit messages to the originating computer after the originating computer has completed its transmission, it should be realized that this feature is optional.
Although the present system has also been descnbed with the 2~ computers sharing the telephone line with a telephone, it should be apparent that the computers may also share the telephone line with another type of teleph~ne device such as a facsimile machine so that priority of the telephone line is given to facsimile transmissions.
' It should be appreciated that the present system pennits da~a communications in a simple, elegant manner while giving priority to voice - communications. This is achieved by monitoring noise levels on the communication channel and being able to distinguish signi~cant noise generated S as a result of call waiting tones and telephone off-hook conditions from the typical noise associated with the public switched telephone network. In addition, since multiple modes are available to contact each computer, the data session initiation process is facilitated.
SERVERS
Referring now to Figure 12X, another embodiment of a comrnunications system is shown. In this embodimen~, like reference numerals will be used to indicate like componen~s with a ""' added ~or clarity. As can be seen, the system 10' includes a plurality of telephone subscriber locations 12"', 14S' and 16,~' respectively interconnected by a public switched telephone network 18'. Subscriber location 12,~' is shown at one end of the public switched network 18' and includes a modem 20' and a telephone 22', both of which are connected directly to a single telephone line 26' extending from the public switched telephone network 18'. A computer terminal 28' is also provided at the subscriber location 12~' and is connected to the modem 20' via a data link 30'.
Subscriber location 14,~' is shown at the other end of the public switched telephone network 18' and similarly includes a modem 32' and a telephone 34' both of which are connected directly to a single telephone line 38' extending from the public switched telephone network 18'. A computer terminal 40' is connected to the modem 32' via a data link 42'. I'-vo telephone ', ' , ` ~ ': ' `
' :
-subscnber locations 16,;~ are shown intermediate subscriber locations 12,~' and 14~` and include a telephone 44' directly connected to the public switched telephone network 18' via a single telephone line 46'.
S Sirnilar to the system 10, it can be seen that the computers 28' and 40' run a communications protocol 50' and are equipp~d with a user interface 52' which allow users of the computers 28' and 40' to perform the functions necessary to receive, create, manipulate and send data messages across the public swi~ched telephone network 18' to other computers.
Unlike the system 10, long distance calls initiated by one of the computers are not transmitted to the other computers directly through the publicswitched telephone networlc 18'. Rather, an alternate method is used and will now be described. To accommodate long distance calls, servers 80 are provided at selected geographical locations. Each server is connected to the public switched telephone network 18' via multiple modems 82 and telephone lines 86. The servers 80 are also connected to one another by a high speed communications link 84.
The communications system 10' work~s in a similar manner as the system 10 depicted in Figure 1 and the snly difference is in the manner in which long distance communication data calls are handled. In particular, if one of the computers dials a long distance telephone number, th call is directed to the local number associated with the sen~er located in the ~same calling area as~5 the originating computer. The local server 80 in turn conveys the sall over the high sp~ed link 84 to the remote server connected to the public switched telephone network which is located in the s~ne area as the answering computer.
The remote server 8Q then conveys the call to the answering computer locally through the public switched network via one of the modems 82 and telephone lines 86. Since the public switched telephone network is used in this configuration only locally, costs are reduced given the fact that use of the high speed link 84 is much cheaper than the regular long distance charges.
s Since the servers 80 communicate with the public switched telephone network 18' via modems 82 having a ringback detection feature, establishing communications links between computers using the one ring mode is simplified. It should be apparent that the system 10' is applicable either toa public service in which the servers are offered in metropolitan areas or to a private network in an organization which runs relatively large premises in geographically dis~t areas. It should also be realized that if a computer wishes to establish a communications link with another computer to which the connection would be local when using the public switched telephone network, the call is established using the network 18' and the servers are not used.
It should also be apparent that the system 10' retains the same features as were presented in relation to the system 10 concerning the distinctive ringing feature, the call waiting features as well as detection telephone 22' or 34' o~-hook conditions during a data session. In addition, every computer user malcing use of the communications system can elect to use the one ring mode in order to achieve telephone line sharing between the telephone or other telephone devices connected to the same telephone line.
~9
Claims (21)
1. A communications system comprising:
a communications link;
at least two telephone subscriber locations connected to said communications link, each of said subscriber locations including a telephone device connected to said communications link by a telephone line and a data transfer device connected to said telephone line via a modem, each of said data transfer devices having an executable communications package therein, wherein said each of said data transfer devices is operable to establish a data s session with another data transfer device to exchange data therebetween over said communications link, said communications package monitoring said telephone line to detect an off-hook condition of said telephone device at said subscriberlocation and to detect incoming telephone call conditions to said subscriber location received over said telephone line during a data session, said communications package terminating said data session to free said telephone line when one of said off-hook and incoming call conditions is detected to allowsaid telephone device to access said telephone line, the communication package in the data transfer device which established the data session re-establishing said data session when said telephone line returns to a free condition.
a communications link;
at least two telephone subscriber locations connected to said communications link, each of said subscriber locations including a telephone device connected to said communications link by a telephone line and a data transfer device connected to said telephone line via a modem, each of said data transfer devices having an executable communications package therein, wherein said each of said data transfer devices is operable to establish a data s session with another data transfer device to exchange data therebetween over said communications link, said communications package monitoring said telephone line to detect an off-hook condition of said telephone device at said subscriberlocation and to detect incoming telephone call conditions to said subscriber location received over said telephone line during a data session, said communications package terminating said data session to free said telephone line when one of said off-hook and incoming call conditions is detected to allowsaid telephone device to access said telephone line, the communication package in the data transfer device which established the data session re-establishing said data session when said telephone line returns to a free condition.
2. A communications system as defined in claim 1 wherein said communications package reestablishes the data session at the point of termination thereof.
3. A communications system as defined in claim 2 wherein said communications package detects call waiting tones received over said telephone line when a data session is established and terminates said data session to allow said telephone device to respond to telephone call ringing signals following said call waiting tones.
4. A communications system as defined in claim 3 wherein said call waiting tones and off-hook conditions generate significant noise over said communications link, said communications package detecting said significant noise and automatically terminating said data session.
5. A communications system as defined in claim 4 wherein said call waiting tones cause a carrier signal loss condition on said communications link,said communications package detecting said carrier signal loss condition and automatically terminating said data session.
6. A communications system as defined in claim 4 wherein said data session is established using a full duplex system having a pair of channels, oneof said channels being used to convey data between said data transfer devices, another of said channels being used occasionally for command messages, said communications package monitoring said other channel to detect significant noise thereon signifying receipt of one of said call waiting tones and telephoneoff-hook conditions.
7. A communications system as defined in claim 4 wherein said data transfer devices are in the form of computers and said communications link is in the form of a switched telephone network.
8. A communications system as defined in claim 7 wherein each of said communications packages includes a queue for storing messages to be transferred across said telephone network to other computers and the time at which said messages are to be sent, said communications packages rescheduling a message in said queue when a data session is terminated during transmission of said message.
9. A communications system as defined in claim 8 wherein each of said communications packages includes an originate module and an answer module, said originate module continuously examining said queue to detect messages to be transmitted and initiating a telephone call to an answering computer when a message is to be transmitted to said answering computer and said telephone line is free, said answer module continuously monitoring said telephone line to detect incoming telephone call conditions directed to said computer, said answer module answering such incoming telephone call conditions to establish a data session, said communications package allowing only one of said originate and answer modules to access said telephone line at a time.
10. A communications system as defined in claim 9 wherein each of said communications packages includes subscriber location data including a telephone number assigned to other computers connected to said switched telephone network and the manner in which said other computers are connected to said telephone network, said originate module using said subscriber location data to establish a data session with an answering computer.
11. A communications system as defined in claim 10 wherein said originate module instructs said modem to dial the telephone number of an answering computer once to initiate a telephone call to said answering computer if the modem connected to said answering computer has a dedicated telephone number assigned to it and instructs said modem to dial the telephone number of said answering computer twice to initiate two time spaced telephone calls to said answering computer if the modem connected to said answering computer does not have a dedicated telephone number.
12. A communications system as defined in claim 11 wherein said originate module terminates the first telephone call and dials the telephone number the second time only after ringback tone bursts are received in response to the dialling of the telephone number the first time, said originate module terminating said first telephone call automatically after a predetermined amountof time has elapsed after said modem has finished dialling the first telephone number.
13. A communications system as defined in claim 12 wherein said predetermined amount of time is selected so that at least one and not more than four ringback tone bursts are received by said originate module.
14. A communications system as defined in claim 13 wherein said originate module can be conditioned to await the presence of a signal from ringback detection circuitry within said modem and terminate said first telephone call after a ringback tone burst is received, said modem automaticallygenerating said second telephone call after said first, telephone call is terminated.
15. A communications system as defined in claim 13 wherein said originate module can be conditioned to await user input prior to terminating said first telephone call, said originate module automatically generating said second telephone call when said first telephone call is terminated.
16. A communications system as defined in claim 12 wherein said predetermined amount of time is updated by said communications package to ensure that at least one ringing signal ring pattern is detected by said answering computer before said predetermined amount of time elapses.
17. A communications system as defined in claim 16 wherein said originate module receives time information from said answering computer after a data session has been established and uses said time information to update said predetermined amount of time.
18. A communications system as defined in claim 9 wherein said answer module is operable to detect distinctive telephone call ringing signals and answers automatically an incoming telephone call when said distinctive ringing signals generated therefor are associated with a dedicated telephone number assigned to said modem.
19. A communications system as defined in claim 18 wherein said answer module detects telephone call ringing signals, said answer module being conditioned to a standby mode when a first telephone call is received and is terminated before a predetermined number of ringing signals are received and answers a second telephone call, if said second telephone call is received before a predetermined amount of time elapses from the time said first telephone call is received.
20. A communications system as defined in claim 9 wherein said answer module is operable to recognize an incoming data call, exchange data with an originating computer and generate a prompt on said computer to acknowledge receipt of data transmitted thereto via said network when said computer is performing another task.
21. A communications system as defined in claim 7 wherein servers are installed at pre-determined geographical areas, said servers establishing a link between a pair of computers to allow a data session to be directly established when one computer initiates a data session with a preselected computer for which long distance charges would apply if said computer established said data session over said switched telephone network.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US80658691A | 1991-12-21 | 1991-12-21 | |
US07/806,586 | 1991-12-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2084011A1 true CA2084011A1 (en) | 1993-06-22 |
Family
ID=25194378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002084011A Abandoned CA2084011A1 (en) | 1991-12-21 | 1992-11-27 | Communications system |
Country Status (1)
Country | Link |
---|---|
CA (1) | CA2084011A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU696782B3 (en) * | 1997-04-04 | 1998-09-17 | John David Reisner | A method of subscriber telephone line sharing |
WO2000016542A1 (en) * | 1997-04-04 | 2000-03-23 | John David Reisner | A method of subscriber telephone line sharing |
-
1992
- 1992-11-27 CA CA002084011A patent/CA2084011A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU696782B3 (en) * | 1997-04-04 | 1998-09-17 | John David Reisner | A method of subscriber telephone line sharing |
WO2000016542A1 (en) * | 1997-04-04 | 2000-03-23 | John David Reisner | A method of subscriber telephone line sharing |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5537404A (en) | Switched circuit connection management over public data networks for wide area networks | |
US4723273A (en) | Discretionary call forwarding | |
CA2220898C (en) | Systems and methods for providing communications through an alternate communication network | |
US4291200A (en) | Voice and data switching arrangement | |
EP0755146A2 (en) | Voice-and-data modem call-waiting | |
US5353326A (en) | Method for performing continuity check in an electronic exchange system | |
EP0711060A1 (en) | An enabling technique for quickly establishing high speed PSTN connections in telecommuting applications | |
JP2868335B2 (en) | Switching system and disconnection notification method in switching system | |
US5844974A (en) | Emergency telephone communications system | |
US5995604A (en) | Method of preventing fraudulent toll calls by key system users | |
EP0741481A2 (en) | Modem communication interoperability with call waiting services | |
US6556668B1 (en) | Consumer contact toll optimizer | |
AU668553B2 (en) | Remotely initiated telemetry calling system | |
JP2996730B2 (en) | How to handle call collisions | |
CA2084011A1 (en) | Communications system | |
US5784437A (en) | Electronic switch connected to intelligent peripheral while permitting call processing of dialed digits | |
JPH0821992B2 (en) | Multi-terminal communication controller | |
EP1040671B1 (en) | Device and method for informing subscriber of call incoming during data communication service | |
EP0835038B1 (en) | ISDN BRI link restoration without loss of calls | |
JP2001045554A (en) | Radio subscriber system, line connection controller for the radio subscriber system and recording medium | |
KR100710937B1 (en) | Continuity testing in communication networks | |
US6920207B2 (en) | Techniques to reconnect with a modem | |
JP3149262B2 (en) | Communication method for ISDN terminal device | |
JP3050800U (en) | Line switching device for the service | |
JPS59186460A (en) | Automatic origination and termination type network controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Discontinued | ||
FZDE | Discontinued |
Effective date: 19960527 |