AN AUTOMATIC SUBSCRIBER CALLBACK SYSTEM

Abstract: A subscriber callback modem, includes a source of callback data. A modem is coupled to a subscriber telephone line, and a control circuit (60) is coupled between the data source and the modem (50), for conditioning the modem to automatically call a central computer and transfer the callback data from the data source to the central computer.

Description: AN AUTOMATIC SUBSCRIBER CALLBACK SYSTEM Field of the Invention The present invention relates to a system in a remote location which is capable of operating totally automat_cally to call to a central computer under varying operating conditions, and transfer callback data from the remote location to the central computer. Background of the invention Current programming distribution systems for television and interactive television programming include provisions for distn- bution of pay-per-view programs. Ensuring that subscrioers can order and are charged properly for viewing pay-per-view programs is a problem m such systems. This problem has two aspects. First, it should be easy for a subscriber to order a pay-per-view program, and second the subscriber must be properly charged wnen a pay-per-view program is ordered and viewed. In a cable distribution system, the subscribers are m a restricted geographical location around the cable heaα end, and there are a relatively low number of subscribers to that head end, e.g. generally one town. In such systems, to orαer a pay- per-view program the subscriber calls the cable provider on the telephone and speaks to a cable provider employee. Tms employ¬ ee, then arranges to have proper codes sent via the cable connec¬ tion to that subscriber's cable DOX to descramble the pay-per- view program that was ordered, and revert to scrambling that channel when the program is over. The fee for viewing that pay- per-view is added to the subscriber bill at the same time. Because of the geographical proximity ana relatively low numcer of subscribers, the telephone order system is a workable solution n such systems. However, in a satellite distribution system, the subscrioer locations are disbursed over a very wide geographical area, e.g. an entire continent, and there are several orders of magnituαe more customers m a satellite distribution system than in any single caole head end. Thus, a phone order system m not practx- cal m a satellite distribution system. It has been proposed, therefore, that the satellite receiver at each subscriber loca¬ tion maintain m a memory a record of any pay-per-view programs viewed by the subscriber. The record of such programs, is reported to a central location via a telephone/modem link, a process termed callback. Telephone/mode links between cooperating computers are very well known. However, in the case of a satellite receiver, the callback modem will not be a part of a computer system under control of a computer operator. Instead, the callback modem must operate totally automatically. Several problems exist when a telephone modem is used to call back information without operator control and/or intervention. Because a callback can occur automatically at a predetermined time, without any knowledge of what the subscriber is doing, the callback mechanism needs to ensure that such a callback can occur without interfering with what the subscriber is doing, and without causing interference with or degradation of the subscriber's phone operation. This, m turn, has several aspects. First, the callback modem must release the telephone line whenever the subscriber wants access to the phone. Second, the callback modem must be able to operate auto¬ matically with telephone central offices which may have abnormal interface behaviors. Some of the abnormal interfaces presented by central offices include: very short dial tones; pulse dial only; distorted dial tones; 60 Hz modulation on the dial tone; no dial tone; fast busy return tone; long delay before dial tone; fluctuation telephone line current during telephone access; and/or fluctuating current between off hook operation. Third, the callback modem must be able to transfer tne sub¬ scriber data through unknown distortions introduced by r.e telephone line connections between the callback modem and the central computer. Some distortions may be compensated by util z- mg an adaptive equalizer, in a known manner. However, m some cases, the dynamic conditions of the telephone line, line loss conditions at the called modem location, and distortions present¬ ed by the modem coupling transformer are not correctable using an adaptive equalizer. The above mentioned problems must be addressed and overcome in a desired callback modem adapter for totally automatic opera¬ tion. Brief description of the invention In accordance with principles of the present invention, a subscriber callback modem includes a source of callback data. A mode is coupled to a suosc iber telephone line, an; circuit is coupled between the data source and tne mcαem, for conditioning the modem to automatically call a centra., computer and transfer the callback data from the data source tc the central computer Brief description of the drawing In the drawing: Fig. I is a block diagram of a callback modem incorporating the present invention; Fig. 2 is a block diagram illustrating the procedures performed cy the control circuit of the callback moαem illus¬ trated in Fig. 1 when making a call back; Fig. 3 is a flow diagram illustrating the operation of the telephone line access portion of the block diagram illustrated in Fig. 2; Fig. 4 is a block diagram illustrating the operation cf the dialing portion of the block diagram illustrated in Fig. 3; Fig. 5 is a block diagram illustrating the operation of the pulse/tone dialing detector of the block diagram illustrated in Fig. 3; Fig. 6 is a block diagram illustrating the blind dialing operation illustrated in Fig. 3; Fig. 7 is a block diagram illustrating the operation of the pickup detector illustrated in Fig. 2; Fig. 8 is a block diagram illustrating the operation of the data connection verification process illustrated in F g. 2; Fig. 9 is a time line diagram illustrating the transfer of data between the callback modem and the central computer. Detailed description Ir the illustrated embodiment, a callback moder is con¬ trolled using standard modem control coαes, such as tne cooes originally proposed by Hayes Company. One skilled _* ~ tne art will understand that any modem which may be contrcι_ed Dy, and which provides status signals to, a microcomputer may be aseα _n the present invention. Fig. 1 is a block diagram of a callback modem incorporating the present invention. In Fig. 1 an input terminal 5 is cc pled to a subscriber telephone company (TELCO) line. Tne mp„: termi¬ nal 5 may include, for example, a standard RJ11 connector. Tne input terminal 5 is bidirectionally coupled to a temr.a- cf a telephone company (TELCO) line interface circuit 10. The tele¬ phone company line interface circuit 10 includes isolation and protection circuitry which protects the remainder of the illus¬ trated circuitry from electromagnetic interference (EMI;, elec¬ trostatic discharge (ESD) , lightning strikes, and sc fortn. The serial connection of a switch hook 20, one winding cf a moαem transformer 30 and a current detection circuit 40 is coup ed between respective loop terminals of the telephone company .;ne interface circuit 10. A second winding of the modem transformer 30 is coupled to bidirectional data terminals of the modem 50 through a control¬ lable transmit attenuator 80, which operates on outgoing mcoem 50 data only. An output terminal of the current detection 40 is coupled to an input terminal of a control circuit 62 . A first control output terminal of the control circuit 60 is coupled to a control input terminal of the switch hooκ 20, a second control output terminal of the control circuit όC is coupled to a control input terminal of the controllable transmit attenuator 60, and a bidirectional control terminal of the control circuitry 60 is coupled to a corresponding control terminal of the modem 50. A bidirectional data terminal of ~e control circuit 60 is coupled to a corresponding data termma_ of the satellite receiver 70, which receives data from a satellite antenna 72. The control circuit 60, which may, for example, include a processor, controls the operation of the callback modem illus¬ trated .n Fig. 1. The operation of the modem illustrated in Fig. 1 may be better understood with reference to Figs. 2 through 9. In general, when it is desired to connect the modem 50 to the telephone company line (e.g. at a predetermined time of day; , the control circuit 60 supplies a control signal to the switch hook 20 which conditions the switch hook; 20 to become conductive, termed going off-hook. This enables loop current to flow through the switch hook 20, transformer 30 and current detection cir- cuitry 40. The control circuit 60 then sends control signals to and receives status signals from the modem 50, and receives a signal from the current detector 40 indicating the level of current flowing though it. The control signal then conditions the modem 50 to connect to the remote computer. When the modem is connected to the remote computer, the control circuit 60 receives data from the satellite receiver circuitry 70 to commu¬ nicate the pay-per-view (or any other such information) to tne central computer. The control circuit 60 partitions this data into packets, and supplied these packets to the modem for trans- mission to the remote computer. When the information transfer is completed, the control circuit 60 conditions the modem tt termi¬ nate t e connection to the remote computer, then conait cns the switch hook to become non-conductive, termed going on-hcok. More specifically, referring to Fig. 2, the calloac-: modem begins operation at block 100. When the callback modem desires to make the call back to the central computer, block 2 1 is entered in which the telephone call is made. A test is made tc determine whether the subscriber line is in use (i.e. tne sub¬ scriber is using the telephone) m block 300. If it is m use, the control circuit 60 supplies control signals to the switch hook 20 which conditions it to become non-conductive, termed going on-hook, and the call is tried again later. If on tne other hand, the telephone is not in use, then the contrcl circuit 60 supplies control signals to the modem 50 which conditions it to dial the telephone number of the remote computer. Once the telephone number of the remote computer is dialed m block 300, the control circuit 60 supplies a control signal to the modem 50 conditioning it to attempt to establish a data connection to the central computer in block 400. Status signals from the modem 50 are analyzed by the control circuit 60 to determine whether a connection has been established. If not, various connection parameters are varied, in a manner to be described in more detail below, in an attempt to establish a connection. When a connection has been established in block 400, data transfer is initiated between the callback modem and the remote computer in block 500. Data from the receiver 70 is supplied to the modem 50, which, under the control of the centre- circuit 60 partitions the data into packets which are transmitted tc tne central computer separately. The remote computer, wnen it receives a packet sends an acknowledgment packet bac-: to the callback modem, acknowledging accurate reception of :re packet. When the acknowledgment is received by the callback rcαem, tne next data packet is sent to the central computer, and sc forth. Data transfer from the central computer to the callDac-; modem is performed in the same manner. During the data transfer m block 500, the connection is monitored in block 400 to ensure t is maintained. In addition, during all phases of the call, the subscriber telephone line is monitored in blocκ 300 to detect if the subscriber has picked up the telephone during the data call. If the subscriber picks up the telephone at any time during the data call, the callback modem immediately releases the telephone line, and will attempt to reestablish the connection at a ±ater time. Fig. 3 is a flow diagram illustrating the operation of the telephone line access portion of the block diagram illustrated m Fig. 2. When block 200 (of Fig. 2) is entered, indicating tne start of a callback modem call, step 210 is entered. In block 210, first the modem 50 (of Fig. 1) is initialized m response to control signals supplied by the control circuit 60. In a pre¬ ferred embodiment, this initialization includes: (1) setting the modem 50 to d al whether or not a dial tone is detected, and to detect a busy signal (code X3 in the Hayes Corporation command set); (2) setting the time to wait for a carrier after dialing to 30 seconds (code S07-30) ; (3) setting the time to wait before blind dialing to two seconds (code S06=2) . After tne modem 50 is initialized as described acove, tne telephone connection is tested to detect a dial tone. In a preferred embodiment, this is done by initiating a dealing se¬ quence and waiting for a dial tone, but not performing the dialing itself (code ATDTW; ) . The modem 50 generates one of three responses: a dial tone has been detected irespcr.se OK m the Hayes Corporation response set); a busy signal r.as been detected (response BUSY) ; or no dial tone has been detected (response NO DIAL TONE) . If a dial tone is detected response OK) , the callback may be made by entering block 250, to be described in more detail below. If a busy signal is detected, then the call is attempted at a later time by reentering block 210. If no dial tone is detected, then block 220 is entered. The processing m block 220 is identical to that in bloo: 210. Tnat is the modem is reinitialized, and the phone line tested to detect a dial tone. As with block 210, if a dial tone is detect¬ ed (response OK), the callback may be made by entering bloc, 1 . 250. If a busy signal is detected, then the call is attempted at a later time by reentering block 210. If no dial tone _s detected in block 220, block 230 is entered. The processing in block 230 is nearly identical to that m block 220. That is the modem is reinitialized, and tne phone line tested to detect a dial tone. As with blocks 210 and 220, if a dial tone is detected (response OK), the callbac< may be made by entering block 250. If a busy signal is detected, then the call is attempted at a later time Dy reentering clock 210. If, however, no dial tone is detected in block 230, then it is assumed that the dial tone is sufficiently non-standard that the modem 50 cannot accurately detect it's presence. In th s case olcck 240 is entered m which the number will be a_aieo /,. . waiting for a dial tone to be detected, in a manner to be de¬ scribed in more detail below. Fig. 4 is a block diagram illustrating the operation cf tne dialing portion 250 of the block diagram illustrated in Fig. 3. In Fig. 4, when a dial tone has been detected by any of the blocks 210, 220 or 230 of Fig. 3, the call is dialed in block 250. The first time block 250 is entered upon power up, or upon a reset, block 252 is entered, in which the type of dialing, either tone or pulse, acceptable to the central office, is detected, as will be described in more detail below. Under control of the determination made by the tone/pulse detector block 252, if the central office accepts only pulse dialing, then the left side of Fig. 4 is performed, and if the central office accepts tone dialing, then the right side of Fig. 4 is performed, as indicated by the small decision block 253 and dashed line from tone/pulse detector block 252 to the decision block 253. Referring now to pulse-dial-only central offices, when a central computer is to be dialed, the modem 50 (of Fig. 1) is initialized m block 254. In a preferred embodiment, the contrcl circuit 60 supplies commands to the modem 50 conditioning it to not wait for dial tone before dialing, but to recognize a busy signal (command X3) ; sets the time to wait before blind dialing to 2 seconds (command S06=2) ; and sets the time to wait for a carrier after dialing to 30 seconds (command S07=30) . The modem 50 then connects to the telephone line for pulse dialing and waits for a dial tone, but doesn't dial the number (command ATDWP;) . If the modem receives a dial tone, the modem will issue a response to indicate this (response OK) . Any other response from the modem 50 results in a return to block 210 of F ^ g. 3 wnere the process of making the callback is restarted. If the modem 50 receives a dial tone m block 254, coc 256 is performed. In block 256, the portion of the control c edit 60 (of Fig. 1) which detects when the subscriber picks ..o the telephone is disabled. Then the telephone number of the remote computer system is pulse-dialed (command DP[telephone n^moer] , . After tne telephone number is dialed, the control cιrcu_t 60 reenables the picKup detector. If the modem 50 successf ^ . ^ y connects to the remote computer after dialing, the modem 50 issues a response indicating this (response CONNECT^ . T e cal ± is now completed, as illustrated in block 258, and data transfer will take place. The next time block 250 is entered, tnere is no need to detect whetner the central office is pulse-dial-cnly or tone dial, so block 252 will not be performed, ano bloc-; 254 will be performed on entry, as indicated by the dashed line from block 258 to block 254. Referring now to tone dial central offices, when a centra. computer is to be dialed, the modem 50 (of Fig. 1) is ir._tialj.zed m block 260. In a preferred embodiment, the control c_rcα_t 6J supplies commands to the modem 50 conditioning it to net wait for dial tone before dialing, but to recognize a busy signa (command X3); sets the time to wait before blind dialing to 2 seconds (command S06=2); and sets the time to wait for a carrier after dialing to 30 seconds (command S07=30) . The modem 50 tnen connects to the telephone line for tone dialing and w its fcr a dial tone, but doesn't dial a number (command ATDWT;) . If the modem 50 receives a dial tone, the modem 50 will issue a response to indicate this (response OK) . Any other response from tne modem 50 results in a return to block 210 (of Fig. 3 .here tne process of making the callback is restarted. If the modem 50 receives a dial tone m block 260, bloc 1, 262 is performed. In block 262, the portion of the control circuit 60 which detects when the suoscriber picks up the telephone is disabled. Then the telephone number of the remote computer system is tone dialed (command DT[telephone number], . After the telephone number is dialed, the control circuit 60 reenables the pickup detector. If the modem 50 (of Fig. 1) successfully connects to the remote computer after dialing, the modem 50 issues a response indicating this (response CONNECT, . The call is now completed, as illustrated m block 258, and data transfer will take place. The next time block 250 is entered, there is no need to detect whether the central office is pulse-dial-only or tone dial, so block 252 will not be performed, and block 260 will be performed on entry, as indicated by the dashed line from olock 258 to block 260. Fig. 5 is a block diagram illustrating the operation of the pulse/tone dialing detector of the block diagram illustrated in Fig. 3. The operations illustrated in Fig. 5 are performed once, the first time the callback modem dials the remote computer after initial power application, or after a reset, as described above. In block 270, the modem 50 (of Fig. 1) is initialized. In a preferred embodiment, the initialization includes beginning a tone dialing sequence dialing only a single number, e.g. "1" (command DTI;) ; disabling the pickup detector; and setting tne time to wait for a carrier after dialing to 7 seconds (command S07=7) . Then, in block 272, the modem 50 is conditioned to detect a dial tone (command DTW; ) . If a dial tone _.s detected, the modem produces a response to indicate this (response OK, . In th s case, the central office is a tone dial central office. The modem 50 is conditioned to hang up in block 274, and tone dialing will oe used. If a dial tone is not detected, the modem produces a response to indicate this (response NO DIAL TONE) . In this case, the central office is a pulse-dial-only centra, office. The modem 50 is conditioned to hang up in block 276, and pulse dialing will be used. Referring again to Fig. 3, if a dial tone is not detected after three tries (blocks 210, 220, and 230), then it is assumed that the dial tone from the central office is non-standard in a way that makes it undetectable by the modem 50 (of Fig. I t . In this case, blind dialing is performed m block 240. Fig. β is a block diagram illustrating the blind dialing operation 240 illustrated in Fig. 3. In Fig. 6, a first attempt to blind dial is made, in block 241, by waiting 7 seconds for a dial tone, then dialing, whether a dial tone is detected or not, in a manner to be described m more detail below. If that blind dialing is unsuccessful, an attempt is made by waiting 14 seconds for a dial tone in block 246, and if that attempt is unsuccessful, and attempt is made by waiting 21 seconds in block 247. If that attempt is unsuccess¬ ful, then the entire sequence is repeated. If any of the at- tempts successfully detect a dial tone, then the number is dialed as illustrated in block 250 of Fig. 3) . Referring specifically to block 241, in a blind dialing attempt, the modem 50 (of Fig. 1) is first initialized, as illustrated m olock 242. In a preferred embodiment, tne modem 50 is conditioned to: dial without waiting for a dial tone, ana to recognize a busy signal (command X3) ; set the time to wait before blind dialing to 7 seconds (command S06=7) ; to wait 60 seconds for a carrier after dialing (command S07=60) ; and to set the pick up detector off. Then the telephone number of the remote computer is dialed either by pulse dialing in block 243 (command DP [phone number]) or by tone dialing in block 244 (command DT[phone number]) . The mode of dialing is alternated. The first time through the loop of blocks 241, 246 and 247, pulse dialing is tried, the second time tone dialing, and so forth. When the telephone number has been dialed in blocks 243 or 244, the pick up detector is reenabled in block 245. If the blind dialing is successful, the remote computer will answer the call, and communications will be established and the modem 50 will generate a status signal to indicate this (response OK) . If the blind dialing is unsuccessful, the modem 50 w ll generate a status signal to indicate this (response NO CARRIERS . The status signals from the modem 50 are detected, and the appropriate next step taken, as illustrated in Fig. 6. Referring again to Fig. 2, at all times (except during actual dialing of the telephone number of the remote computer, as described in detail above) a detector 300 monitors the subscriber telephone line to detect when the subscriber has picked up the telephone. Referring to Fig. 1, this may be detected by monitor¬ ing the current through the loop formed by the switch hook 30, the modem transformer 30 and the current detector 40. When a telephone attached to the subscriber telephone line is pickeα up, the loop current is shared between the telephone ana tne callback modem, so the current in the callback modem loop w _ ^ drop. The current detector 40 supplies a signal to the control circuit representing the level of current passing through the ca_loack modem loop. The control circuit monitors the leve_ of this current, and if it drops in a significant manner, deterr_nes that the subscriber telephone was picked up and hangs up t e cai.cacr: modem by conditioning the switch hook 20 to become non-ccnduc- tive. In such a case, the call to the central computer s made at a later time. If, however, the loop current is relatively low, then detecting a pickup of the subscriber telephone by- detecting a drop m the current becomes unreliable. In this situation, the detection of a pick up of the subscriber telephone Table I .-s suspended. However, the pιcκup detector continues to monitor tne level of the loop current. Fig. 7 is a block diagram illustrating the operation of the pickup detector 300 illustrated in Fig. 2. In Fig. ~ ~> , when the callback modem goes off hook, the pick up detector 30 ") begins operation m block 301. (Its operation is suspended during dialing, as described above.) In block 302, the control circuit 60 conditions the current detector 40 (of Fig. 1) to supply a signal representing the level of current currently flowing through the loop formed by the switchhook 20, modem transformer 30 and current detector 40. Table I illustrates tne output values from a preferred embodiment of current detector 4J. When the line current is read in block 302, a reference loop current level is established. Then the pick up detector loop is entered m block 304. In block 304, the loop current is read again. If the loop current value read m block 304 is greater than the reference level, or the reference level is too low for accurate pick up detection (less than 011 in the preferred embodiment, then block 314 is entered. If, however, the loop current value read in block 304 is less than the reference value and the reference value is high enough for accurate pick up detection, this might indicate that the subscriber has picked up the telephone. In this case block 306 is entered. In bloc 1 306, the loop current read in block 304 and the reference value are evaluated to determine if they accurately represent tne pickup of a supscriber telephone. Referring again to Table I, each value of loop current has a criteria which indicates a valid pick up indication m bloc-; 3C . Specifically, if the reference level is less than Oil, then tnere can be no valid pick up indication (described aoove . If the reference level is less than 020, then a valid pick up is indi¬ cated if the loop current read in block 304 is 000. If tne reference level is less than 060, a valid pickup is indicated if the loop current is less than or equal to 002. If the reference level is less than 100 then a valid pickup is indicated if the loop current is less than or equal to 010. If the reference level is less than 160, a valid pickup is indicated if the loop current drops by greater than 050. If the reference level is less than 180, a valid pickup is indicated if the loop current drops by greater than 025. If the reference level is less tnan 200, a valid pickup is indicated if the loop current drops by greater than 20. And, if the reference level is less than 256, a valid pickup is indicated if the loop current drops by greater than 15. If a valid pick up is indicated, then a count of valid pick up indications is incremented in block 308. The count is evalu¬ ated in block 310. If the count is greater than a predetermined maximum count, then it is assumed that the subscriber telephone has been picked up, and the call back modem hangs up m block 312. In a preferred embodiment, the predetermined maximum value is 7. In this case, the call back is repeated at a later time. If the count has not reached the maximum count, then block, then block 318 is entered. Referring again to block 304, if the loop current value read in block 304 is greater than the reference level, or the refer¬ ence level is too low for accurate pick up detection (less than Oil in the preferred embodiment, then block 314 is entered. In blocK 314, the valid pick up indication count is decremented until it reaches zero, then block 316 is entered. Referring again, to block 306, block 316 is also entered, if no valid pickup indication is received. In block 316, the reference level is adjusted to generally follow slow variations in the _oop current. In a preferred embodiment, an eight sample running average is maintained, as illustrated m equation (1) . After tne reference value is adjusted in block 316, block 318 is entered. Referring again to block 310, block 318 is also entered _f the valid pick up indication count is less than the predetermined maximum count. In block 318, the loop waits until it is time to take another loop current reading in block 304. In a preferred embodiment, the delay is approximately 100 milliseconds ' s) , and more specifically 110 ms . At the end of the delay time, another loop current reading is taken in block 304, and the process described above repeats. R_E__F REFol.d, x 7 + LOOP CURRENT (1] new = g The quality of the telephone transmission lines between tne callback modem and the remote computer can vary to such an extent that a means is necessary to adjust the signal power sufficiently to establish reliable data communications. Referring to Fig. 1, the controllable transmit attenuator 80 is conditioned to reduce signals from the modem 50 to the modem transformer 30 by -14 dB, by -10 dB, by -6 dB, or to pass them unchanged (i.e. 0 dB; m response to a control signal from the control circuit 60. In addition, it is known that a lower baud rate will be ab_e to reliably transmit data in the presence of noise which would prevent reliable transmission at a higher baud rate. I- the present mvention, both the amplification factor ana tne oaud rate are varied in an attempt to establish reliable data communi¬ cation. Fig. 8 is a block diagram illustrating the operation of the data connection verification process 400 illustrated m Fig. 2. Once the callback modem has connected to the remote computer, reliable data communications is established as illustrated in Fig. 8. First, an attempt is made to establish communications at the highest available data rate. In the illustrated embodiment, this data rate is 2400 baud. One skilled in the art wιl_ under¬ stand that faster modems (e.g. 9600 baud or 14,400 caud may also be used m the present invention. In Fig. 8, an attempt is made to establish communications at 2400 baud in block 410. In block 402, the baud rate of the modem 50 (of Fig. 1) is set to 2400 baud, and the transmit attenuator 80 is conditioned to produce an output signal at an attenuation factor of 0 dB (i.e. no attenua¬ tion) . An attempt is then made to log into the central computer by transmitting a log-m request. If the login attempt is suc- cessful, an acknowledgment will be received from the central computer, and the remainder of the data transfer will tac.e place with these parameters. If the login attempt is unsuccessful, then block 404 is entered, and the attenuation factor of the transmit attenuator 80 is set to -6 dB, and another log in attempt is made. Again, if successful, the data transfer continues using those parameters, otherwise clock 406 is entered. In block 406, the attenuation factor is set to -10 dB and a log m attempt made, and if that is unsuccessful, block 408 is entered in mch the attenuation factor is set to -14 dB. If none of the login attempts are successful at 241 " caua, then block 420 is entered in which the baud rate is set to 1200 baud, and four more attempts, at the same four respective attenu¬ ation factors illustrated in block 410, are made at 1200 caud. If none of these are successful, then block 430 is entered in which the baud rate is set to 300 baud. Four more attempts, at the same four respective attenuation factors illustrated m block 410, are made at 300 baud. If none of those are successful, then it is assumed that a singularly noisy telephone connection has been made, and the call is placed again in an attempt to connect via a less noisy telephone connection. Once the data connection has been made, then the data is transferred from the receiver 70 (of Fig. 1) to the central computer. In the preferred embodiment, the amount of data transferred from the callback modem to the central computer is relatively small, from around 400 bytes to 1,500 bytes. This data is partitioned as one, or possibly two packets. One skilled in the art will understand that more packets may be formed and transmitted if more data is required to be transferred. These packets are transferred from the callback modem to the central computer. Responses from the central computer to the callback modem are similarly made by partitioning the return data into packets. Each of the packets includes some form of error detec¬ tion code, e.g. a cyclic redundancy code (CRC) . Fig. 9 is a time line diagram illustrating the transfer of data between the callback modem and the central computer. Cms data transfer includes data verification and packet control, as illustrated in block 500 (of Fig. 2) . In Fig. 9 data is repre- sented py rectangles. Data transmitted from the callback modem to the central computer is represented by rectangles above tne time line, labeled "M" and return data from the central computer to the callback modem is represented by rectangles below the time line, labeled "CC" . The topmost time line A) represents the successful transfer of data from the callback modem to the central computer. A first packet, PACKET 1, is formed from a first portion of the callback data, and transmitted from the callback modem to the central computer. The central computer checks the CRC of the received packet. If the CRC check di- cates the packet was successfully received, the central computer sends an acknowledgment packet, ACK, back to the callback modem acknowledging successful receipt of the first packet within 200 ms of receipt. When the callback modem receives the acknowledg¬ ment packet, ACK, from the central computer, it sends the next packet, PACKET 2, to the central computer, which again sends an acknowledge packet, ACK, to indicate successful receipt. The data transfer from the callback modem to the central computer s now complete, and the callback modem terminates the call. The second time line B) in Fig. 9, represents an unsuccess- ful transfer from the callback modem to the central computer. As in time line A) , the callback modem transmits a first packet, PACKET 1, to the central computer. The central computer, however either does not receive the packet, or the CRC indicates the packet was corrupted on transmission, or some other problem arises making the packet unusable to the central computer. In this case, the central computer does not send an acknowledgment packet to the callback modem. It is also possible tnat an acknowledgment packet is transmitted by the central computer to the callback modem, but the check cf the CRC n the cailcack modem indicates that the packet was corrupted. In either case, no acknowledgment packet is successfully received. The callback modem waits 2 seconds to successfully receive an acknowledgment packet from the central computer. If it does not successfully receive one within 2 seconds, it resends the first packet (RESEND 1), and again waits for an acknowledgment packet from tne central computer. If the central computer successfully receives tne resent packet, it sends an acknowledgment packet; and if the callback modem successfully receives the acknowledgment packet, as m time line A) , the transmission proceeds as illustrated in However, in time line B) , the central computer, again does not successfully receive the data packet, and again, does not transmit an acknowledgment packet. Again, the callback rrodem waits 2 seconds to successfully receive an acknowledgment packet from the central computer. When none is received, the packet, RESEND 2, is resent a second time. If the central computer suc¬ cessfully receives the packet, it sends an acknowledgment packet; and if the callback modem successfully receives the acknowledg¬ ment packet, as in time line A), the transmission proceeds. However, in time line B) , the central computer, again does not successfully receive the data packet, and again, does net trans¬ mit an acknowledgment packet. After three unsuccessful attempts to transmit a packet, it is assumed that the communication line is too noisy to complete the data transfer, and the call is abandoned, and another call is placed. A similar protocol is followed for data transfers frorr the central computer to the callback modem. The data to ce trans¬ mitted from the central computer to the callback modem _s parti¬ tioned into packets, then a packet is transmitted from tne central computer to the callback modem. The third time _ιne C of Fig. 9 represents the successful transfer of data from the central computer to the callback modem. The central computer transmits a packet, PACKET, to the callback modem. The calloack modem receives the packet, PACKET, and checks the CRC If tne CRC check indicates successful reception of the data, an acknowledg¬ ment packet, ACK, is sent back to the central computer within 200 ms of receipt of the packet. If the central computer successful¬ ly receives the acknowledgment packet, it transmits tne next packet (not shown) , if necessary, until all data has been trans- ferred m this manner. The fourth time line D) of Fig. 9 represents an unsuccessful transfer cf data from the central computer to the callback modem. In time line D) , a packet, PACKET, is transmitted from the central computer to the callback modem, as in time line C; . That packet is not received successfully by the callback modem, for reasons described above, and the callback modem, consequently does not send an acknowledgment packet. The central computer waits for 2 seconds to receive an acknowledgment packet. When no acknowledgment packet is successfully received in 2 seconds, the packet, RESEND 1, is resent, in a similar manner to that illus¬ trated m time line B) . If no acknowledgment is received again within 2 seconds, the packet, RESEND 2, is resent again. If no acknowledgment packet is received again within 2 seconds, the connection is abandoned, and the call placed again. It is possible for the callback modem to be connected to a telephone system that is so non-standard, or has so ucn noise or. the connections that even the automatic connection process, described in detail above, will not successfully connect to the central computer. In such a case, the data from the satellite link to the callback modem may include other parameters which may be substituted for the default parameters included the auto¬ matic connection process described above. Referring again to Fig. 1, when a long enough time period has elapsed (e.g. a week) without communication from the satel¬ lite receiving system to the central computer via the callback modem, it is assumed that the parameters for the automatic call¬ back modem are not correct for establishing the data call. In this case, a block of data, containing new parameters to be used by the automatic connection process described above, is trans¬ mitted from a central program transmitting location to this satellite receiving system through the satellite link. This block of data is embedded m one or more packets, as necessary, each of which contain a destination address specifying the specific satellite receiver which has not communicated with the central computer. These packets are processed by this receiver alone, all in a known manner. The satellite receiving system receives these packets at the satellite antenna 72. The packets are processed by the receiver 70, which recognizes its own destination address, and operates tc extract the new callback modem parameters and pass those parame¬ ters to the control circuit 60. The control circuit 60, m turn, attempts to make another telephone call to the central computer using these newly received parameters. If the telephone call is not successfully placed with these parameters, another set of parameters may be transmitted from the transmitting location to this receiving system via the satellite link. This continues until communications is established. If communications cannot oe established by changing parameters, this indicates a severe prob¬ lem, which case the transmission of pay-per-view programs to this receiving system is suspended until the problem is diagnosed and corrected. In the preferred embodiment, the parameters which may be sent via the satellite link are maintained the receiving system in an electrically erasable and programmable read only memory (EEPROM), and may be embedded in a single packet. In the preferred embodiment, the packet transmitted from the transmit¬ ting location containing these parameters contains 11 bytes of parameters and one checksum byte. The tables below present tne arrangements of the bytes within the control packet, and the assignment of the bits within each byte. Table II illustrates the arrangement of the data bytes within the data portion of the packet. The first column indicates the byte number, the second column indicates the data contained within that byte, and the last two columns indicate the default values for that byte (stored m the EEPROM of the receiving system when manufactured in the factory) in hexadecimal and decimal. Table III illus¬ trates the assignment of bits in the first data byte the packet. These correspond to parameters settable m standard Hayes compatible modems, and will not be described in detail here. Table IV illustrates the assignment of bits in the second data byte of the packet. These control the enabling and dis- aoling of different functions the automatic connection process described in detail anove. Bit 7 controls whether tne data verification packet control, illustrated m Fig. 8, and descnoed m the associated detailed description, is enabled or cisaoled. Bit 4 controls whether the phone-m-use detector, illustrated m Fig. 3 and described the associated detailed description is enabled or disabled. Bit 2 controls whether dial tone detection, also illustrated m Fig. 3 is enabled or disabled. Bits 1 and υ control whether the callback modem will dial in tone mode, in pulse mode, or will determine the proper mode locally, as illus¬ trated in Fig. 5. Taole V illustrates the assignment of bits in the tr._rd data byte of the packet. These control the attenuation factor for tne DTMF tone dialing tones, the transmit attenuation factcr, and the pulse dialing characteristics. Bits 7 through 5 contro_ tne DTMF attenuation, as illustrated in Table V, and bits 4 through 2 control the transmit attenuation as illustrated in Table V, and also m Fig. 8 and described in the associated detailed descrip¬ tion. Bits 1 through 0 control the characteristics of the pulses used in pulse dialing. The characteristics represented cy the values 0 and 1 correspond to values available in Hayes compatible modems. The characteristics represented by values 2 and 3 correspond to the make/break ratios of the characteristics repre¬ sented by values 0 and 1, respectively, but with doubled dialing rates of 20 pulses per second. Byte 4 contains the delay in seconds from the end of dialing until the pickup detection is reenabled, as illustrated Fig. 4, and described m the associated detailed description. Byte 5 contains the number of consecutive pickup indicative samples which must be received before it is assumed that the suoscrioer has picked up the telephone. This is illustrated m Fig. and described in the associated detailed description. The remainder of the bytes in the control packet represent S register values, which are known m Hayes compatible modems, and are net described in detail here. The callback modem described above is able to automatically dial into a central computer with no operator intervention from a wide variety of telephone systems having a wide variety cf stan- dards, and variations from such standards. Such a modem is also able to receive new dialing and connection parameters f attempts to telephone the central computer are unsuccessful. S cn a mode is also able to detect when the telephone subscriber line is busy and wait until it is free, and further can detect when a sub- scriber picks up the telephone during a data call, and immediate¬ ly end the data call. Table II Callback Parameters Default Value Byte # Description Hexa¬ decimal Decimal I Data format/mode (See below) 0x37 55 2 Enable flags (See below) 0x3E 62 DTMF Atten. /Transmit Atten. /Make- 3 Break Ratio 0x00 0 (See below) Pick-up detection delay 4 (Delay from dialing to enabling OxoA 10 pickup detection in seconds) Pick-up detection samples 5 (Number of samples {100ms apart} 0x05 i> to declare valid pickup) S6 6 (Wait for dial tone in seconds 0x02 (blind dial pause time}) S7 - (Wait time for data carrier in 0x3C 60 seconds {no answer time out}) S8 3 (Pause time for comma in seconds) 0x02 2 S9 9 (Carrier detect response time in 0x06 6 100 ms units) S10 10 (Lost carrier to hang up delay m oxOE 14 100 ms units) SIl -* 1 j.1 (DTMF dialing speed in millisec¬ 0x5F 95 onds {DTMF tone on timer}) Table I I I Data Format/Mode t # Description 7 1 = 1800 Hz guard tone enabled 0= guard tone disabled 6 (Reserved) set to "0" 3 = mark/none parity 2 = odd parity -4 1 = space parity 0 = even parity 1 = BELL 3 0 = CCITT 3 = 2400 baud 2 = 1200 baud -1 1 = Reserved 0 = 300 baud 0 (Reserved) set to "1" Table IV Enable Flags t # Description 7 1 = Data verification packet control enabled 0 = Data verification packet control disabled 6 (Reserved) set to "0" 5 (Reserved) set to "1" 1 = Phone-in-use detect enabled 4 0 = Phone-in-use detect disabled 1 = Pickup detect enabled 3 0 = Pickup detect disabled 1 = Dial tone detection enabled 2 0 = Dial tone detection disabled 3 = Reserved 2 = Local capability test -0 1 = Tone dialing 0 = Pulse dialing Table V DTMF Attenuation/Transmit Attenuation/Make-break ratios t # Description -5 DTMF Attenuation in 2 dB steps, 0 to 14 dB -2 Transmit Attenuation in 2 dB steps, 0 to 14 α3 3 = = 33/67 @ 20 pps -0 2 = = 39/61 @ 20 pps 1 = = 33/67 @ 10 pps (UK/HK) 0 = = 39/61 @ 10 pps [USA/Canada)

Claims: CLAIMS 1. A subscriber callback system, comprising: a source of callback data; a modem, coupled to a subscriber telephone line; a control circuit, coupled between the data source and the modem, for automatically placing a call by conditioning the modem to connect to the subscriber telephone line, to call a central computer, to transfer the callback data from the data source to the central computer, and to disconnect from the subscriber telephone line. 2. The system of claim 1 further comprising: a controllable switch hook coupled between the subscriber telephone line and the control circuit; wherein: the control circuit connects to the subscriber telephone line by conditioning the switch hook circuit to become conduc- tive, and disconnects from the subscriber telephone line by conditioning the switch hook circuit to become non-conductive. 3. The system of claim 1 further comprising: a current detector, coupled between the subscriber telephone line and the control circuit, generating a signal representing loop current in the subscriber telephone line; wherein: the control circuit monitors the loop current representative signal, determines if the subscriber telephone line is in use, and, if the subscriber telephone line is in use, disconnects from the subscriber telephone line by conditioning the switch hook circuit to become non-conductive. 4. The system of claim 3 wherein the control circuit monitors the loop current by receiving successive loop current representative signals from the current detector and if a loop current representative signal represents a current level lower than a reference current level, determining that a valid pickup indication has been received, and if more than a predetermined number of valid pickup indications are received, determining that the subscriber telephone line is in use. 5. The system of claim 4 wherein the control circuit comprises a counter, wherein the counter is incremented when loop current representative signal is received representing a valid pickup indication, and decremented when a loop current represen- tative signal is received not representing a valid pickup mdi- cation, and the control circuit determines that the subscriber telephone line is in use when the count in the counter reaches a predetermined number. 6. The system of claim 4 wherein the control circuit maintains the reference current level as a running average of a predetermined number of consecutive current representative signals received not representing a valid pickup indication. 7. The system of claim 1 wherein: the control circuit automatically places the call in re- sponse to predetermined calling parameters; 4 the callback modem further comprises a receiver, cojpied tc 5 tne control circuit, capable of receiving new calling parameters, 6 tne control circuit replaces the predetermined calling "■ parameters with newly received calling parameters, ana repeats 5 automatically placing the call. 1 8. The system of claim 1 further comprising a controllable 2 transmit attenuator coupled between the modem and the subscriber 3 telephone line; wherein 4 the control circuit further conditions the modem, after 5 calling the central computer, to establish a data connection 6 between the modem and the central computer, to test the reliaoi- 7 lity of the data connection, and if the data connection is not 8 reliable, conditioning the transmit attenuator to increase its 9 attenuation, and conditioning the modem to connect to the sub- 0 scriber telephone line, to call the central computer, to estab- 1 lish a data connection and to retest the data connection. 1 9. The system of claim 1 further comprising: 2 a detector for detecting when the subscriber telephone is in 3 use; wherein: 4 the control circuit further conditions the m-use detector 5 to detect if the subscriber telephone line is in use, and if the 6 subscriber telephone line is m use to delay placing the call. 10. The system of claim 9 wherein: the m-use detector is comprised m the modem; and the control circuit, when detectmg when the sαbscnoer telephone line is use, conditions the modem to detect a dial tone, and if a dial tone is not detected, determining tr.at tne subscriber telephone line is in use, otherwise connecting to the central computer. 11. The system of claim 1 wherein the control circuit, upon the placing a first call, determines whether the dialing mode s pulse dialing, or tone dialing.

Inventors: KELLY MICHAEL GENE, LELEY SURESH VISHWANATH, PITSCH ROBERT ALAN, KELLY, MICHAEL, GENE, LELEY, SURESH, VISHWANATH, PITSCH, ROBERT, ALAN
Applicants: KELLY MICHAEL GENE, LELEY SURESH VISHWANATH, PITSCH ROBERT ALAN, THOMSON CONSUMER ELECTRONICS, KELLY, MICHAEL, GENE, LELEY, SURESH, VISHWANATH, PITSCH, ROBERT, ALAN, THOMSON CONSUMER ELECTRONICS, INC.
Application year: 1996
Main classification: H04M11
IPC codes: G06F3, G06K7, G06K17, G06K19, H02H9, H03J9, H03K17, H04B10, H04M1, H04M11, H04Q9, H05F3