Common control audio decryptor4591660Abstract Decryption of a plurality of simultaneously received, randomly phased signals is realized by employing a single data encryption standard module in a time shared manner. A plurality of process state counters, each of which is associated with a received signal, are employed to direct operations of the decryptor on a time shared basis. These operations include the generation on a time shared basis of so-called plain text data for each received signal, generation of corresponding encryption requests, and generation of cipher text data for each received signal which is used to decrypt associated received signal samples. Claims What is claimed is: Description RELATED APPLICATIONS
TABLE 1
__________________________________________________________________________
Cross-Connect Time-Slot Assignment
Time-Slot Assignment
VTS Input Contribution Bridge 103 Contribution
To Bridge 103 VTS Output Contribution
__________________________________________________________________________
L 1 v1w1
-- -- -- v1 v1W1
v1W2
V1Wn
v1WN
I 2 -- v2W2
-- -- V2 v2W1
v2W2
v2Wn
v2WN
N n -- -- vnwn
-- Vn vnW1
vnW2
vnWn
vnWN
K N -- -- -- vNwN
VN vNW1
vNW2
vNWn
vNWN
LEGENDA
__________________________________________________________________________
vn Video in word 1 of DS1 No. 1 from VTS Input Port n
Vn Video from VTS Input Port n
wn Control and Audio from VTS Input Port n
Wn Control and Bridged Audio to VTS Output Port n
-- Unassigned TimeSlot Group
Bridge FIG. 10 shows in simplified block diagram form details of MLCT bridge 103. Bridge 103 performs an access formatting function to cross-connect 102, an audio processing function and a conference control function. To this end, bridge 103 includes bridge input circuit (BIC) 1001, audio decryptor (DEC) 1002, audio bridge 1003, audio encryptor (ENC) 1004, bridge output (BOC) circuit 1005 and control processor (CP) 1006 which are interconnected by bus 1007. Details of the components of bridge 103 and their operation are shown in FIGS. 11 through 46 and described below. Briefly, outputs from time multiplexed switches 601-1 through 601-N (FIG. 6) in cross-connect 102 are supplied via 110-1 through 110-N to bridge input circuit (BIC) 1001. BIC 1001 is arranged under control of processor 1006 to accept the audio time slots associated with the VTS ports. These time slots include words 1, 2 and 3 as shown in the VTS data format of FIG. 3. It separates the video signaling bits FD, X, X from the control bit C and the remaining audio bits for each of VTS ports 500-1 through 500-N. The video signaling bits associated with VTS ports 500-1 through 500-N are supplied via circuit paths 1008-1 through 1008-N, respectively, directly to bridge output circuit (BOC) 1005. This is necessary to keep the current frame video signaling bits with the current frame video information bits. As will be apparent from the discussion below, there is some delay in the audio because of the processing. The audio and control bits associated with each VTS port are supplied to audio decryptor 1002 vis 1011. Audio decryptor (DEC) 1002 accesses BIC 1001 via 1012 for this purpose. DEC 1002 under control of processor 1006 separates the control bit C from the remaining audio associated with each VTS port and supplies them via 1009-1 through 1009-N to control processor 1006. DEC 1002 also decrypts, if necessary, the remaining audio for all the VTS ports and supplies it via 1001 to audio bridge 1003. The decryption process is performed using an appropriate decryption key supplied from microprocessor system 101 during the conference setup. The decryption process may be bypassed if the conference is not using encryption of the information. Audio bridge 1003 accesses an output port in DEC 1002 via 1014. Audio bridge 1003 generates the appropriate audio mixes for each VTS port. The audio mix for each of the VTS ports includes the audio from all othe ports except itself. For example, the audio mix for VTS port 1 includes only the audio from VTS ports 2 through N. The method with which audio bridge sums the audio varies according to the number of data presently employed in a conference and whether the audio sum is destined to a conference room or to another MLCT. The audio sums are then supplied via 1015 and 1016 to audio encryptor (ENC) 1004. Also supplied to ENC 1004 via 1010-1 through 1010-N are modified control bits associated with each of VTS ports 1 through N, respectively. ENC 1004 encrypts, if necessary, the audio sums in accordance with an encryption key supplied from microprocessor system 101 during setting up of the conference. Again, if no encryption is being used the encryption process is ENC 1004 is bypassed. Additionally, ENC 1004 combines the modified control bits generator by processor 1006 with the appropriate audio sums and supplies them via 1017 and 1018 to bridge output circuit (BOC) 1005. Bridge output circuit 1005 combines the processed audio from ENC 1004 with the video signaling bits from BIC 1001 and formats a cross-connect 102 compatible signal for each VTS port with time-slot assignments consistent with those of Table 3. Control processor 1006 in addition to control of bridge 103 performs all communications via the auxiliary C bit data channel to the conference rooms and other MLCTs in the conference for realizing necessary communications and video operations within the MLCT. Additionally, processor 1006 switches messages to be transmitted from room to room. Within bridge 103, processor 1006 communicates via parallel bus 1007. Bridge Input Circuit (BIC) FIG. 11 shows in simplified block diagram form details of bridge input circuit (BIC) 1001. As indicated above, BIC 1001 separates the video signaling bits FD, X, X from the audio information for each VTS port. To this end, the outputs from time multiplexed switches 601-1 through 601-N (FIG. 6) are supplied via 110-1 through 110-N, respectively, to inputs of N.times.1 data selector 1101. Selector 1101 is controlled by control codes stored in control memory 1102 to perform the space selection function of the audio signals from the VTS ports shown in cross-connect 102 time slot assignments in FIG. 9. The control codes are written into memory 1102 from control processor 1006 (FIG. 10) and include the time slot switching information for the supplied data links from the time multiplexed switches 601-1 through 601-N. The output from selector 1101 is supplied to the data input of video latch 1103 and to data memory 1104. Video latch 1103 includes N latch circuits which are assigned on a one-to-one basis to data links 110-1 through 110-N and are used to temporarily store the video signaling bits FD, X, X from those links. To this end, control memory 1102 also includes codes supplied from control processor 1006 (FIG. 10) for enabling the appropriate latch circuits in video latch 1103 to temporarily store the corresponding video signaling bits which are then supplied via 1008-1 through 1008-N to bridge output circuit 1005. Each code word includes 8 bits and is associted with a specific time slot in the cross connect frame format shown in FIG. 3. Two of the bits are spares and two bits are used for parity. The remaining four bits are so-called operational control bits and are defined as follows: b3--RVCSEN. Receive Video Control Slot. A logical 1 indicates that the respective time slot contains video control bits FD, X, X to be latched in latch 1103 and transmitted to BOC 1005. A logical 0 indicates a normal time slot. b2--RPA2. Receive Port Address (MSB). b1--RPA1. Receive Port Address. b0--RPA0. Receive Port Address (LSB). Bits b0-b2 form a three bit code indicating the origin of data to be received by bridge 103. Codes 0-5 select the respective VTS ports. Codes 6 or 7 will not select any port and BIC 1001 assumes that the associate time slot is idle. Data memory 1104 is a dual port memory written with the remaining audio and control information from selector 1101. Memory 1104 is accessed by decryptor 1002 via 1012 further to process the stored audio and control information. Data memory 1104 includes a RAM having duplicate sets of memory locations. A first set of the RAM locations is written with incoming data from selector 1101 while the second set of RAM locations is read by decryptor 1002 during a current frame. During a next subsequent frame the first set is read while the second set is written. Both control memory 1102 and data memory 1104 are sequentially addressed by time-slot counter 1105 which includes a modulo-256 binary counter synchronized to the internal frame time-slot boundaries. Once a code pattern is written into control memory 1102 no othe interaction is required unless a VTS port and, hence, a conference room is to be added to or deleted from the conference. Encryption/Decryption Process Audio decryptor (DEC) 1002, audio bridge 1003 and audio encrytor (ENC) 1004 form, in accordance with an aspect of the invention, a programmable audio mixing arrangement including common control decryption and encryption. Such an arrangement is advantageously utilized in controllably adding rooms to and/or deleting rooms from an ongoing conference. Private communication is realized by separately encrypting both the audio and video information. The audio information from the rooms must be decrypted in the MLCT to perform the audio mixing in bridge 1003. Then, the mixed audio is encrypted on a common control basis in ENC 1004. For clarity and simplicity of description the general encryption process shall be discussed first. As described below encryption of the audio is obtained by using the Data Encryption Standard (DES) promulgated by the National Bureau of Standards. The audio information is encrypted by adding each audio bit modulo-2 to a synchronous stream of cipher bits derived from the DES algorithm. The data input to be encrypted is derived from a 64-bit plain text counter having arbitrary contents which are known to both ENC 1004 and DEC 1002. The encryption process in the DES algorithm uses an appropriate 56 bit secret key in conjunction with the contents of the plain text counter to form the cipher bit stream which the audio is added modulo-2 bit-by-bit thereby forming the encrypted audio (A-bits). The encryption process may be easily bypassed. The audio information is sampled in a conference room by picture processor 123 (FIG. 1) and encoded with standard u-255 companding. Therefore, each 125 mu-sec frame includes two adjacent samples of the audio, as shown in Table 2 below. Decryptor 1002 employs a common control routine to decrypt a plurality of simultaneously received, randomly phased encrypted audio signals by adding modulo-2 to each received signal a cipher bit stream synchronized with the identical to the one used for encrypting the signal. This is realized by use of the 56 bit encryption key and knowledge of the 64 bit plain text counter contents at the time the cipher stream was generated. The plain text counter state is sent over the encryption decipherment bits (D-bits). Also included in the D-bits are a framing pattern and a parity bit which provides EVEN parity over the unencrypted audio samples. This parity bit is used by decryptor 1002 to verify that decryption has been performed correctly. If the decryption is incorrect because of a data link failure, the decryptor will cause that link's audio to be muted. This insures that the audio performance of the conference is not degraded by the link failure. FIG. 12 shows all the data associated with audio encryptor 1004 output signal for a VTS link in addition to the audio bits (A-bits) shown in Table 2. The relationship of the A-bits to the mu-255 companding law is shown in Table 2. Note that the A-bits do not represent the complemented values of the mu-255 codes as in a normal DS-1 format.
TABLE 2
______________________________________
VTS Data Format: Audio Group
A-bit Mu-law Description
______________________________________
A1 A9 M0 Mantissa Least Significant Bit
A2 A10 M1
A3 A11 M2
A4 A12 M3 Mantissa Most Significant Bit
A5 A13 L0 Cord Least Significant Bit
A6 A14 L1
A7 A15 L2 Cord Most Significant Bit
A8 A16 S Sign
______________________________________
FIG. 12 shows the D-bit sequence. The D-bits are decipherment control bits which are used for synchronization of the audio encryption and decryption circuitry. The D-bits are an 8 Kb/sec data stream organized into a 128 bit superframe. The D-bits are organized into an odd-numbered group and an even numbered group. The superframe also includes 32 most significant bits (MSB) of the counter contents, namely L1-L32 which are used during the next superframe interval, and 32 check bits, namely, R1-R32. The 32 plain text counter contents bits L1-L32 are subdivided into 8 blocks of 4 bits. Appended to each block of 4 bits is a respective block of 4 error control check bits labeled R1 through R32. The L and R bits implement eight blocks of (8, 4) extended Hamming code words. The even-numbered D-bits contain a fixed sequence of framing bits labeled S1 through S6 and FA0 through FA7 and a set of audio parity bits. The value of the audio parity bits is such that in the frame they occur, even parity is obtained over the on-the-clear audio sample represented by A9 through A16. This information is shown in TABLE 3 below.
TABLE 3
______________________________________
VTS Data Format: Audio Decipherment Group
______________________________________
Odd Numbered D-bits
n Counter Contents Check Bits
______________________________________
0 L1 L2 L3 L4 R1 R2 R3 R4
1 L5 L6 L7 L8 R5 R6 R7 R8
2 L9 L10 L11 L12 R9 R10 R11 R12
3 L13 L14 L15 L16 R13 R14 R15 R16
4 L17 L18 L19 L20 R17 R18 R19 R20
5 L21 L22 L23 L24 R21 R22 R23 R24
6 L25 L26 L27 L28 R25 R26 R27 R28
7 L29 L30 L31 L32 R29 R30 R31 R32
______________________________________
R4n+1 = L4n+1 .sym. L4n+2 .sym. L4n+3
R4n+2 = L4n+2 .sym. L4n+3 .sym. L4n+4
R4n+3 = L4n+1 .sym. L4n+2 .sym. L4n+4
R4n+4 = L4n+1 .sym. L4n+3 .sym. L4n+4
______________________________________
Even Numbered D-bits
n S1 S2 S3 S4 S5 S6 P FAn
______________________________________
0 1 0 0 1 1 1 P 0
1 1 0 0 1 1 1 P 0
2 1 0 0 1 1 1 P 0
3 1 0 0 1 1 1 P 0
4 1 0 0 1 1 1 P 1
5 1 0 0 1 1 1 P 1
6 1 0 0 1 1 1 P 1
7 1 0 0 1 1 1 P 1
______________________________________
The symbol .sym. indicates an "Exclusive OR" function.
For encryption, the 64 bit plain text counter used to obtain the cipher stream is subdivided into two sections, one including L1-L32 representing the most significant bits and another l1-l32 representing the 32 least significant bits (LSB). At the end of a D-bit superframe, the 32 most significant bits presently sent via the D-bits are utilized as a portion of the plain text during the next superframe and, therefore, are stored for that purpose. The L1-L32 section of the plain text counter is incremented by 1 and the resulting plain text counter contents are used for encryption. The l1-l32 bit section is reset to 0, and every 4 DS-1 frames (125 mu sec) the most 5 significant bits 28 through 32 are incremented and used to perform a plain text counter encryption. One encryption is required every 4 DS-1 frames, because in each frame 16 bits of the cipher stream are used to perform the bit-by-bit modulo-2 sum of the audio and cipher stream. This is turned to account, in accordance with an aspect of the invention, in obtaining the common control encryption and decryption processes described below. The decryptor is able to derive the same cipher stream that was used for encryption because it has obtained the most significant 32 bits (L1-L32) in use by the encryptor during the previous D-bit superframe. The process repeats after 32 encryptions of 128 D-bits have been transmitted. A timing diagram of the encryption process is shown in FIG. 13. The plain text counter section containing the most significant 32 bits L1-L32 is initialized to the preset values as shown in FIG. 13. The identifying code is an arbitrary number chosen by the user. In the decryption process, the plain text data input to the DES module is derived from the received 32 most significant bits L1-L32 used to derive the cipher bit stream during the encryption process. The least significant 32 bit portions of the DES plain text data input, namely, bits l1-l32, comprise a plain text counter identical to that used in the encryption process. A framer function locates the phase of the 128 bit superframe boundaries and extracts the information shown in TABLE 3 above, and supplies the audio parity bit to a parity checker during the frame in which the D-bits occur. The parity check generates a cipher error indication. In turn, the cipher error ORed with an out of D-bit superframe indication generates a mute signal which is used to inhibit any erroneous audio information from impairing the conference. As in the encryption process, the decryption process may readily be bypassed by generating a cipher stream of all 0's. Audio Decryptor (DEC) Details of audio decryptor (DEC) 1002 of FIG. 10 are shown in simplified block diagram form in FIG. 14. DEC 1002 provides, in accordance with an aspect of the invention, a common control arrangement for decrypting a multiplicity of VTS audio channels. Accordingly, shown are microcontroller 1401 and associated program memory 1402, BIC 1001 data input port 1403, BIC 1001 data read control port 1404, scratchpad RAM memory 1405, serial output port 1406, DES data encryption standard module 1407, control channel output port 1408 and control processor bus interface 1409. Microcontroller 1401 is interconnected with units 1403 through 1409 via bus 1410. Additionally, microcontroller 1401 receives a reset signal from interface 1409 and code instructions from program memory 1402 is response to address signals supplied thereto. Program memory 1402 is also connected to interface 1409. In this example, microcontroller 1401 is a Signetics 8.times.305 and DES module 1407 includes a Fairchild 9414-1,-2,-3,-4 DES chip set which implements the National Bureau of Standards (NBS) Data Encryption Standard (DES). DEC 1002 accesses the control channel audio, and audio decipherment bits (D-bits) stored in BIC 1001 data memory 1104 (FIG. 11) by supplying an appropriate address via BIC data read control port 1404 over 1012 and by reading the contents of BIC data memory 1104 via BIC data input port 1403. DEC 1002 under control of microcontroller 1401 separates the control C-bits from the stored information and stores them in control channel output port 1208 for further processing by control processor 1006. The audio and audio decipherment bits are operated on to generate deciphered audio for all the VTS ports. The deciphered audio is supplied via serial output port 1406 to audio bridge 1003 for further processing. Control processor 1006 accesses DEC 1002 via control processor bus interface 1409. Interface 1409 provides read-write access to microcontroller program memory 1402 for loading the decryptor program into memory 1402, for verifying that the program is stored properly and to halt and restart microprocessor 1401 as appropriate. Once microcontroller 1401 is in the run mode, control processor 1006 communicates to microcontroller 1401 via bus 1410 for communicating fault conditions associated with the audio decryption operators. These fault conditions are used, in accordance with an aspect of the invention, to determine whether a conference room can be added to or deleted from an ongoing conference without disruption of the conference. Additionally, control processor 1006 (FIG. 39) supplies the DES key and the encryption modes, namely, encrypted/clear via interface 1409 to DEC 1002. Moreover, DEC 1002 realizes common control decryption of the incoming audio signals under program control. Consequently, rooms may be dynamically added to or deleted from and ongoing conference without disrupting it, in accordance with an aspect of the invention. Operation of audio decryptor (DEC) 1002 is controlled by microcontroller 1401 under control of programs stored in program memory 1402. FIG. 15 is a flowchart of a program routine stored in program memory 1402 to effect, in accordance with an aspect of the invention, the common control decryption of the simultaneously received, randomly phased incoming VTS audio signals. Accordingly, the program is entered via oval 1501. Thereafter, operational block 1502 causes initialization of system variables to known states. For example, the ENC mode is set to bypass encryption if transmission is in the clear and AMUTST is set to muted until it is determined that the rooms are being decrypted properly, among others. Conditional branch point 1503 tests to determine the beginning of the DS-1 frame, i.e., DS-1 frame sync, of the VTS signal. If the test result is true, operational block 1504 sets counter J to 1. Operational block 1505 provides time slot address information for port J to BIC data read control port 1404. Operational block 1506 calls the PADEC subroutine to perform audio decryption and to extract the control channel information for port J. The PADEC subroutine is shown in FIGS. 16, 17, 18 and 19 and described below. Operational block 1507 causes the audio information for port J to be stored in an associated portion of scratchpad memory 1405. Operational block 1508 causes the control channel information i.e., bit CJ, to be supplied to control processor 1006 via an associated one of data links 1009-1 through 1009-N. Operational block 1509 causes the mute status supplied by subroutine PADEC to be stored in an AMUTST location associated with port J in scratchpad memory 1405. Operation block 1510 sets counter J equal to J+1. Conditional branch point 1511 tests to determine if J is greater than N. If the test result is false, control is returned to operational block 1507 and steps 1505 through 1511 are interated until the test result in step 1511 is true, i.e., yes. Conditional branch point 1512 tests to determine whether the mute status known by the decryptor is the same as the one known by the control processor 1006. If the test result is false, an interrupt is sent to control processor 1006 via operational block 1513. If the test result in step 1512 is true, no interrupt is sent to control processor 1006. Operational block 1514 causes the transferral of audio information from the scratchpad memory 1405 to audio bridge 1003 via data link 1013. Thereafter, control is returned to conditional branch point 1503. If the test result of conditional branch point 1503 is false, operational block 1515 calls subroutine CENCHR which performs a plain text counter encryption if requested and checks for requests from control processor 1006. The CENCHR subroutine is shown in FIGS. 20 and 21 and described below. FIGS. 16, 17, 18, and 19 connected as shown illustrate a flowchart of the PADEC subroutine employed in operational block 1506 of the decryptor program routine of FIG. 15. It is important to note that the D-bit sequences of the incoming audio signals are randomly aligned. Consequently, the entire decryption process cannot simply be performed N times and different operations must be performed on each VTS audio signal. These operations are achieved, in accordance with an aspect of the invention, by employing the PADEC subroutine. Accordingly, the PADEC subroutine is entered via oval 1601. Operational block 1602 causes the BIC data input port 1403 (FIG. 14) to read the data from bridge input circuit 1001 associated with the audio, control channel and audio decipherment information. The data is supplied via data link 1011 in accordance with the address supplied to bridge input circuit 1001 via operational block 1505 (FIG. 15). Operational blocks 1603, 1604 and 1605 cause segregation of the audio data, control channel data and decipherment information, respectively. Operational block 1606 increments a D-bit counter, i.e., a state counter, for VTS channel J. The state counter is a modulo-128 counter, i.e., counts from 0 to 127 and repeats. The D-bit counter is used on a per channel basis to keep track of operations in performing the decryption. Operational block 1607 implements a 128 way branch based on the state of the least seven significant bits of the D-bit counter. Operational block 1608 implements a set of operations based on each of the 128 states of the D-bit state counter on a per channel basis as shown in Table 4 below. The information provided in Table 4 is subdivided into 6 columns as shown. Column "K" is the D-bit number as described by the state of the D-bit counter in memory 1405 (FIG. 14). Column "D-bit K Processing" describes the operation that should be performed on each of the different D-bits as shown in FIG. 12. Column "Received Counter Contents Bookkeeping" assembles the counter contents to be utilized as plain text into the DES module 1407 (FIG. 14). Column "Counter Encryption Request" requests encryption of the plain text counter contents. Column "Cipher Byte Section to Decrypt Audio" determines which cipher text block is to be used to perform audio decryption as described below. Column "Flow Chart Node" directs the operation to one of flow chart nodes S, LR, or P. In TABLE 4 the following are used: LRTMP is a temporary register in memory 1405; NXTPT is a next plain text register in memory 1405; HAM(LRTMP) is the code correction of L bits as per TABLE 3; PRSPT is a present plain text register in memory 1405; ENCRQ is an encryption request flag including cipher text block [CT]1 or [CT]0; and CTADDR is a cipher text address in memory 1405. It is noted that during a present four (4) frame block of audio information, e.g., K=1 through 4, encryption of the plain text counter contents and the resulting cipher text generated by DES module 1407 to be stored, for example, in cipher text (CT) block 1, will be used to decrypt the next subsequent 4 frame block, e.g., K=5 through 8, of audio information. This is realizable because the cipher text is 64 bits and the audio sample is only 16 bits. Thus, the cipher text is used with four audio samples. Since only one cipher text word is needed for every four audio samples per channel the DES module is further freed-up for use with the other channels. During the next 4 frame block of audio information encryption of the plain text counter contents and resulting cipher text stored in [CT] block 0 will be used for decrypting the next block of audio information. That is to say, the cipher text blocks alternate for each 4 frame block of audio information. Moreover, since single DES module 1407 (FIG. 14) needs to be used on a per channel basis only once every 4 frames, and since the DES module performs the prescribed operation in a fraction of an audio sample period, it can be used to perform similar operations for the other VTS channels. Additionally, it is noted that DES module 1407 takes less time than one frame interval to perform the encryption operation on the plain text data. Thus, by employing common control techniques, in accordance with an aspect of the invention, the operations shown in TABLE 4 below are concurrently being performed for up to N randomly phased signals from N VTS channels.
TABLE 4
__________________________________________________________________________
Received
Counter Counter
Cipher Byte
Flow
D-bit K Contents Encryption
Selection to
Chart
K Processing
Bookkeeping
Request
Decrypt Audio
Node
__________________________________________________________________________
001
RTMPO=D=L1 ENCRQ CTADDR=*[Ct0]0
LR
(1,[Ct]1)
002
FRAMING=D+0 CTADDR=*[Ct1]0
S
003
LRTMP1=D=L2 CTADDR=*[Ct2]0
LR
004
FRAMING=D+1 CTADDR=*[Ct3]0
S
005
LRTMP2=D=L3 ENCRQ CTADDR=*[Ct0]1
LR
(2,[Ct]0)
006
FRAMING=D+1 CTADDR=*[Ct1]1
S
007
LRTMP3=D=L4 CTADDR=*[Ct2]1
LR
008
FRAMING=D+0 CTADDR=*[Ct3]1
S
009
LRTMP4=D=R1 EN CRQ
CTADDR=*[Ct0]0
LR
(3,[Ct]1)
010
FRAMING=D+0 CTADDR=*[Ct1]0
S
011
LRTMP5=D=R2 CTADDR=*[Ct2]0
LR
012
FRAMING=D+0 CTADDR=*[Ct3]0
S
013
LRTMP6=D=R3
NXTPTO= ENCRQ CTADDR=*[ Ct0]1
LR
HAM(LRTMP)
(4,[Ct]0)
014
PARITY=D CTADDR=*[Ct1]1
P
015 CTADDR=*[Ct2]1
LR
016
FRAMING=D+1 CTADDR=*[Ct3]1
S
017
LRTMPO=D=L5 ENCRQ CTADDR=*[Ct0]0
LR
(5,[Ct]1)
018
FRAMING=D+0 CTADDR=*[Ct1]0
S
019
LRTMP1=D=L6 CTADDR=*[Ct2]0
LR
020
FRAMING=D+1 CTADDR=*[Ct3]0
S
021
LRTMP2=D=L7 ENCRQ CTADDR=*[Ct0]1
LR
(6,[Ct]0)
022
FRAMING=D+1 CTADDR=*[Ct1]1
S
023
LRTMP3=D=L8 CTADDR=*[Ct2]1
LR
024
FRAMING=D+0 CTADDR=*[Ct3]1
S
025
LRTMP4=D=R5 ENCRQ CTADDR=*[Ct0]0
LR
(7,[Ct]1)
026
FRAMING=D+0 CTADDR=*[Ct1]0
S
027
LRTMP5=D=R6 CTADDR=*[Ct2]0
LR
028
FRAMING=D+0 CTADDR=*[Ct3]0
S
029
LRTMP6=D=R7
NXTPT1= ENCRQ CTADDR=*[Ct0]1
LR
HAM(LRTMP)
(8,[Ct]0)
030
PARITY=D CTADDR=*[Ct1]1
P
031 CTADDR=*[Ct2]1
LR
032
FRAMING=D+1 CTADDR=*[Ct3]1
S
033
LRTMPO=D=L9 ENCRQ CTADDR=*[Ct0]0
LR
(9,[Ct]1)
034
FRAMING=D+0 CTADDR=*[Ct1]0
S
035
LRTMP1=D=L10 CTADDR=*[Ct2]0
LR
036
FRAMING=D+1 CTADDR=*[Ct3]0
S
037
LRTMP2=D=L11 ENCRQ CTADDR=*[Ct0]1
LR
(10,[Ct]0)
038
FRAMING=D+1 CTADDR=*[Ct1]1
S
039
LRTMP3=D=L12 CTADDR=*[Ct2]1
LR
040
FRAMING=D+0 CTADDR=*[Ct3]1
S
041
LRTMP4=D=R9 ENCRQ CTADDR=*[Ct0]0
LR
(11,[Ct]1)
042
FRAMING=D+0 CTADDR=*[Ct1]0
S
043
LRTMP5=D=R10 CTADDR=*[Ct2]0
LR
044
FRAMING=D+0 CTADDR=*[Ct3]0
S
045
LRTMP6=D=R11
NXTPT2= ENCRQ CTADDR=*[Ct0]1
LR
HAM(LRTMP)
(12,[Ct]0)
046
PARITY=D CTADDR=*[Ct1]1
P
047 CTADDR=*[Ct2]1
LR
048
FRAMING=D+1 CTADDR=*[Ct3]1
S
049
LRTMPO=D=L13 ENCRQ CTADDR=*[Ct0]0
LR
(13,[Ct]1)
050
FRAMING=D+0 CTADDR=*[Ct1]0
S
051
LRTMP1=D=L14 CTADDR=*[Ct2]0
LR
052
FRAMING=D+1 CTADDR=*[Ct3]0
S
053
LRTMP2=D=L15 ENCRQ CTADDR=*[Ct0]1
LR
(14,[Ct]0)
054
FRAMING=D+1 CTADDR=*[Ct1]1
S
055
LRTMP3=D=L16 CTADDR=*[Ct2]1
LR
056
FRAMING=D+0 CTADDR=*[Ct3]1
S
057
LRTMP4=D=R13 ENCRQ CTADDR=*[Ct0]0
LR
(15,[Ct]1)
058
FRAMING=D+0 CTADDR=*[Ct1]0
S
059
LRTMP5=D=R14 CTADDR=*[Ct2]0
LR
060
FRAMING=D+0 CTADDR=*[Ct3]0
S
061
LRTMP6=D=R15
NXTPT3= ENCRQ CTADDR=*[ Ct0]1
LR
HAM(LRTMP)
(16,[Ct]0)
062
PARITY=D CTADDR=*[Ct1]1
P
063 CTADDR=*[Ct2]1
LR
064
FRAMING=D+1 CTADDR=*[Ct3]1
S
065
LRTMPO=D=L17 ENCRQ CTADDR=*[Ct0]0
LR
(17,[Ct]1)
066
FRAMING=D+0 CTADDR=*[Ct1]0
S
067
LRIMP1=D=L18 CTADDR=*[Ct2]0
LR
068
FRAMING=D+1 CTADDR=*[Ct3]0
S
069
LRTMP2=D=L19 ENCRQ CTADDR=*[Ct0]1
LR
(18,[Ct]0)
070
FRAMING=D+1 CTADDR=*[Ct1]1
S
071
LRTMP3=D=L20 CTADDR=*[Ct2]1
LR
072
FRAMING=D+0 CTADDR=*[Ct3]1
S
073
LRTMP4=D=R17 ENCRQ CTADDR=*[Ct0]0
Flow chart node S is entered as described in Table 4. Thereafter, operational block 1609 will choose the proper cipher text as shown in Table 4 to decrypt the audio information in bits A-1 through A-16 by performing an Exclusive OR function of the chosed cipher text portion and the audio sample AJ. Conditional branch point 1610 tests to determine whether the D-bit counter state is in synchronism with the audio deciphering bits super frame (D-bit super frame). If the test result is true, there is sunchronism and control is transferred to conditional branch point 1611. However, if the test result if false, operational block 1612 decrements the D-bit counter to search for D-bit superframe synchronism. Then, operational block 1613 mutes the audio by forcing bits A-1 through A-16 to be logical 0's and also sets the mute flag to a logical 1, thereby indicating that the audio has been muted to control processor 1006. Conditional branch point 1611 tests to determine whether the mute counter is equal to 0. If the test result is true, operational block 1614 sets the mute flag to a logical 0 thereby indicating that the audio is not muted. If the test result in step 1611 is false, the audio bits A-1 through A-16 are set to logical 0's and the mute flag is set to a logical 1, again indicating that the audio is muted. Control is returned to the decryptor program routine (FIG. 15) via oval 1616. Flow chart node LR is entered as described in Table 4. Thereafter, operational block 1617 will choose the proper cipher text as shown in Table 4 to decrypt the audio information in bits A-1 through A-16 by performing an Exclusive OR function of the chosen cipher text portion and the audio samples AJ. Conditional branch point 1618 tests to determine if the mute counter is set to 0. If the test result is true, operational block 1619 sets the mute flag to 0 indicating that the audio is not muted. If the test result in step 1618 is false, operational block 1620 sets audio bits A-1 through A-16 to logical 0's and sets the mute flag to a 1, thereby indicating that the audio is muted. Thereafter, control is returned to the decryptor program routine (FIG. 15) via oval 1621. Flowchart node P is entered as described in Table 4. Thereafter, operational block 1622 decrypts audio bits A-1 through A-16 by performing an Exclusive OR function of the chosed cipher text portion and the audio sample AJ. Operational block 1623 computes the modulo-2 sum over the decrypted bits A-9 through A-16 and the associated value of the D-bit. Conditional branch point 1624 tests to determine whether the modulo-2 sum recited in an error defined as odd parity over audio bits A-9 through a-16. If the test result is false, control is transferred to conditional branch point 1625. However, if the test result is true, operational block 1626 sets the mute counter to 15 to ensure at least 15 error free audio samples, corresponding to when the D-bit is a parity bit (a total of 240 audio samples), are received before the audio is unmuted. Operational block 1627 sets the audio bits A-1 through A-16 to logical 0's and sets the mute flag to 1, thereby indicating that the audio is muted. Conditional branch point 1625 tests whether the mute counter equals 0. If the test result is true, operational block 1628 sets the mute flag to 0, thereby indicating that the audio is unmuted. If the test result in step 1625 is false, operational block 1629 decrements the mute counter. Thereafter, operational block 1630 sets audio bits A-1 through A-16 to logical 0 and sets the mute flag to 1, thereby indicating that the audio is muted. Then, control is returned to the decryptor program routine (FIG. 15) via oval 1631. Thus, the PADEC routine controls operation of DEC 1002 to effect a common time shared function which is responsive to the decipherment control bits (D-bits) from each of a plurality of received audio signals for obtaining plain text date corresponding to each of the received audio signals and for generating corresponding encryption requests as set out in Table 4 above. Additionally, the PADEC routing controls DEC 1002 to controllably utilize, again on a common time shared basis, the cipher text data generated by the CENCHR routine described below for decrypting the received audio samples. As described above, the PADEC routine employs a plurality of process state counters, i.e., DBCNTRJ step 1616, for directing operations, in accordance with Table 4, for each of the received signal channels on a time shared basis. It is noted that the common control arrangement of the invention does not merely repeat the same function N times for the N audio signals but can perform any one of a multiplicity of operations for each of the N audio signals as directed by the process state counter, i.e., D-bit counter associated with the particular audio signal. Thus, the decryptor, in accordance with the invention, decrypts simultaneously received, randomly phased audio signals. In this example, 128 operations are directed by each of the D-bit counters and each of the N channels may require a different one of those operations. It is further noted, that although the invention is employed in this example to decrypt audio signals, it is equally applicable to any other type of data signal. FIGS. 20 and 21 connected as shown form a flowchart of the CENCHR subroutine called in operational blocks 1515 and 1517 of the decryptor program routine shown in FIG. 15. The CENCHR subroutine is the controller for performing the plain text encryption for each of the VTS audio signals. Accordingly, the CENCHR subroutine is entered via oval 2001. Thereafter, operational block 2002 sets counter J to 1. Conditional branch point 2003 tests whether data link J contains an encryption request according to Table 4 of operational block 1608 of the PADEC subroutine shown in FIG. 16. If the test is false, operational block 2004 sets counter J equal J+1. Conditional branch point 2005 tests whether J>N. If the test routine result is false, control is returned to conditional branch point 2003. If the test result in step 2005 is true, conditional branch point 2006 tests whether the control processor 1006 requested a command to be executed by the audio decryptor. If the test result in step 2006 is false, control is returned to the decryptor program routing of FIG. 15 via oval 2007. However, if the test result in step 2006 is true, operational block 2008 reads the control processor command and causes one of four operations to be effected depending on the command which is read. The operations are read encryption mode, set encryption mode, read memory 1405, and write memory 1405. which are effected by operational blocks 2009, 2010, 2011 and 2012, respectively. Operational block 2009 transfers the encryption mode in the ENCMODE register to register CPIO located in control processor bus interface 1409 of FIG. 14. Operational block 2010 sets the register ENCMODE to the value in register CPIO located in control processor bus interface 1409. Conditional branch point 2013 tests whether the decryption process is bypassed. If the condition is true, control is transferred to operational block 2014. If the test result is false, operational block 2015 transfers the decryption key information from the scratchpad memory 1405 into the DES module 1407. Operational block 2011 sets the MEMADDR register to the value of CPIO to indicate which location in memory 1405 should be read. Operational block 2016 reads the contents of memory 1405 as described by the address located in register MEMADDR and transfers the contents to register CPIO in control processor bus interface 1409. Operational block 2012 writes the location of memory 1405 at the address designated by MEMADDR with the contents described by register CPIO. Operational block 2017 transfers the contents of register MEMADDR to register CPIO to indicate to the control processor 1006 which location of memory 1405 was written. Operational block 2014 acknowledges command completion to control processor 1006. Control is returned to the decryptor program routing via oval 2007. Returning to conditional branch point 2003, which tests whether data link J contains an encryption request according to Table 4 of operational block 1608 of the PADEC subroutine shown in FIG. 16. If the test result in step 2003 is true, operational block 2018 clears the encryption request and proceeds through conditional branch point 2019. Conditional branch point 2019 tests whether the encryption mode is to bypass encryption. If the test result in step 2019 is true, conditional branch point 2020 tests which cipher text block located in scratchpad memory 1405 (FIG. 14) is to be cleared to 0. If the test result in step 2020 is false, operational block 2021 clears the cipher text block 1 in scratchpad memory 1405. If the test result in step 2020 is true, operational block 2022 is entered which clears the cipher text block 0 in scratchpad memory 1405. Returning to conditional branch point 2019, which tests whether the encryption mode is to bypass encryption. If the test result is false, operational block 2023 is entered, which transfers the plain text counter contents located in memory 1405 into the DES module 1407 (FIG. 14). Operational block 2024 instructs the DES module 1407 to perform the cipher rounds, i.e., the encryption of the plain text. Conditional branch point 2025 tests which cipher text block located in scratchpad memory 1405 (FIG. 14) is to be loaded with the DES module cipher text. If the condition is true, operational block 2026 is entered which transfers the cipher text from the DES module into the cipher text block 0. If the test result in step 2025 is false, operational block 2027 is entered which transfers the cipher text from the DES module into the cipher text (CT) block 1. Then, control is returned to the decryptor program routine shown in FIG. 15 via oval 2028. Thus, the CENCHR routine controls the operation of DEC 1002 to effect common time shared operation of DES module 1407 to generate in response to encryption requests from PADEC (Table 4) and utilizing the supplied plain text data from PADEC the corresponding cipher text data that is used to decrypt the incoming audio samples. Audio Bridge Details of audio bridge 1003 of FIG. 10 are shown in simplified block diagram form in FIG. 22. Audio bridge 1003 includes digital signal processor (DSP) 2201, digital signal processor (DSP) 2202, host processor 2203, program memory 2204, output register 2205, program memory 2206, output register 2207, interrupt controller 2208, timer module 2209, host processor memory 2210 and control processor interface 2211. Units 2204 through 2211 are inter-connected to host processor 2203 via bus 2212. Program memory 2204 and output register 2205 are associated with DSP 2201 while program memory 2206 and output register 2207 are associated with DSP 2202. Program memories 2204 and 2206 appear as dual port storage systems. DSPs 2201 and 2202 have read-only access to memories 2204 and 2206, respectively, for fetching instructions and program constants. Host processor 2203 has read-write access to memories 2204 and 2206 in order to down-line load the DSP programs and to modify certain of the memory locations that appear as constants. DSPs 2201 and 2202 communicate via output registers 2205 and 2207, respectively, to host processor 2203. DSP 2201 under program control can direct its output to output register 2205 or to DSP 2202. Similarly, DSP 2202 can direct its output to output register 2207 or via 1015 to audio encryptor 1004. Each of DSPs 2201 and 2202 includes RAM memory which as described below stores audio input samples AU and also processed audio output samples PAU. It is noted that two DSPs, i.e., 2201 and DSP 2202, are employed in this embodiment to enhance the audio bridge throughput, i.e., speed up the audio processing. To this end, DSP 2201 processes samples represented by bits A9 through A16 while DSP 2202 processes samples represented by bits A1 through A8. Anyone of a number of digital signals processing (DSP) units known in the art may be employed in audio bridge 1003. One such DSP unit is described in several articles in The Bell System Technical Journal, Vol. 60, No. 7, Part 2, dated September 1981 and manufactured by Western Electric Company. Similarly, host processor 2203 may be any of the known microprocessors. In this embodiment a Motorola MC 6809 microprocessor unit is employed. It is important to note that there is no fixed assignment of the VTS links to conference rooms and/or other MLCTs. Accordingly, audio bridge 1003 under pressure control effects, in accordance with an aspect of the invention, programmable audio mixing of the incoming audio signals from the VTS links. Additionally, it is possible to controllably reconfigure an on going conference without disrupting it. To this end, audio bridge 1003 processes the incoming audio from the rooms in the conference, in accordance with an aspect of the invention, by employing a partial sum algorithm which employs matrix multiplication to insure the appropriate audio mix is sent to the rooms in the conference. Use of the partial sum arrangement is important to obtain the desired audio mixes when more than one MLCT is used in a conference. Audio bridge 1003 of FIG. 22 must controllably process the audio information obtained from rooms serviced by the MLCT and also the audio information from rooms serviced by one or more remote MLCTs. Since more than one MLCT may be in a conference and since MLCT's communicate to one another over one out-going data link a straight summation of the audio information cannot readily be realized. This problem of audio mixing is overcome, in accordance with an aspect of the invention, by advantageously using a partial summing process in each MLCT. To this end, the audio information from rooms serviced by a particular MLCT are summed locally and transmitted as a partial sum to the other MLCTs in the conference. The partial sums from the other MLCTs are controllably selectively combined with the locally generated partial sum to generate the appropriate audio mixes for the rooms serviced by the MLCT. This summing is realized, in accordance with an aspect of the invention, by control processor 1006 (FIG. 39) under program control a programmable matrix operation which in this example employs two NxN matrices determined according to the MLCT in-links assignments and the desired audio mixes, namely, ##EQU1## Where the processed audio version PAU1 for out-link J is generated via matrices 1 from the in-link audio (AU) from the appropriate in-links. The process performed by DSP 2201 and DSP 2202 is ##EQU2## where PAU represents the processed audio information, J is the out-link, I is the in-link and AU is the in-link audio information. Constants K, I, and J are determined by control processor 1006 from the link assignments provided by processor 1006 and a noise guard algorithm provided from audio bridge 1003 host processor 2210 (FIG. 22). The first matrix provided from (1) is called a NO-LOSS matrix and the second is called a LOSS matrix. The NO-LOSS matrix contains either 0.0 or 1.0 as elements K depending on the conference link assignments, i.e., which rooms are active, namely, KNOLOSS[I, J]=KASSIGN[I, J], (3) and KLOSS[I, J]=KNOLOSS[I, J].multidot.L[I] (4) where L[I]=-12 db except when the particular link is a MLCT in-link. Then, L [I]=1.0 or 0 db. The noise guard algorithm described below chooses appropriate columns K from the NOLOSS matrix or the LOSS matrix depending on whether there is audio or no audio on a given in-link I. The constants K from the column chosen by control processor 1006 are provided to DSP 2201 and 2202 for multiplication with the incoming audio information AU and, therefore, generating the audio mixes as described below. This allows for the controllable insertion of loss in the audio information in those links in which no speech is present to attenuate noise. Thus, from matrix (3) it is seen that by appropriate selection of constant K any weighted sum of the input audio samples AU can be generated for each of the processed audio output samples PAU. Consequently, the partial audio sums to be transmitted to other MLCT and also the audio mixes for each conference location are readily obtainable under program control. Additionally, from gain matrix (4) it is seen that any predetermined loss value, can be readily inserted in any of the audio input signals AU. Moreover, if desired any predetermined gain value is also readily inserted in any of the audio input signals AU. In this example, not to be construed as limiting the scope of the invention a loss of -12 db is controllably inserted as desired. As shown in the flow charts and described below audio bridge 1003 operates under program control to generate the desired processed audio samples. To this end, the incoming audio samples are converted from mu-law PCM into linear form. The linear samples from a currently received frame are stored in a first buffer memory, e.g., ABUFA[I], while the linear samples from the last previous frame are stored in a second buffer memory, e.g., ABUFB[I]. While inputting audio samples into ABUFA[I], the audio samples in ABUFB[I] are processed via a matrix multiplication, in accordance with an aspect of the invention, to generate desired partial sum processed audio samples for each location in the conference, as well as, the appropriate partial summation of locations served by the MLCT for transmission to other MLCTs in the conference, if any. When inputting samples into ABUFB[I], the samples stored in ABUFA[I] are being processed. The processed samples are converted from linear to mu-law PCM and supplied to encryptor 1004 for further processing. FIGS. 23, 24, 25, and 26 connected as shown form a flowchart of a program stored in program memory 2204 for controlling operation of digital signal processor 2201 (FIG. 22). It is noted that the references to registers in the following flow charts are registers in the RAM memory of either DSP 2201 or DSP 2202. Accordingly, the program routine is entered via oval 2301 Thereafter, operational block 2302 initializes the digital signal processor interface (not shown in FIG. 22). Operational block 2303 sets counter J=1. Operational block 2304 initializes the register ABUFA containing audio information for port J to 0. Operational block 2305 initializes the audio energy accumulator MGRD associated with port J to a constant value of -NTHSLD. Operational block 2306 increments the counter J, i.e., sets J=J+1. Conditional branch point 2307 tests whether counter J is greater than N. If the test result is false, control is returned to operational block 2304 and steps 2304-2307 are iterated until step 2307 yields a true result. Then, operational block 2308 sets counter SMPLCT to the value NSMPL. Conditional branch point 2309 tests for the start of a DS-1 frame, i.e., for the DS-1 frame sync. If the test result is false, step 2309 loops until a true test result is obtained. Then, operational block 2310 sets counter J=1. Operational block 2311 sets counter I=1 and the audio accumulation sum register ASUM=0. Operational block 2312 sets the audio accumulation sum to its previous value plus the audio associated with port I after multiplying by a matrix element K[I,J] located in the data memory associated with the digital signal processor 2201 of FIG. 22. Operational block 2313 increments the counter I, i.e., sets I=I+1. Conditional branch point 2314 tests whether I>N. If the test result is false, control is returned to operational block 2312 and steps 2312, 2313 and 2314 are repeated until the test result in conditional branch point 2314 is true. When the test result in step 2314 is true, operational block 2315 is entered to receive audio information associated with port J (i.e., bits A-1 through A-8) from audio decryptor 1002 via link 1013 in FIGS. 14 and 22 and stores it in register AEVEN associated with port J. Operational block 2316 performs a linear to mu transformation on the contents of the audio accumulation contained in ASUM previously computed in operational block 2312 and stores it in register PAODD. Operational block 2317 sends audio information, i.e., bits A-1 through A-8 previously stored in register AEVEN in step 2315 to digital signal processor 2202. Operational block 2318 receives audio information, i.e., bits A-9 through A-16 from audio decryptor 1002 via link 1013 in FIG. 14 and performs a mu to linear transformation and then stores the result in register ABUFB associated with port J. Operational block 2319 sends to digital signal processor 2302 the contents of register PAODD which were computed in step 2316. Operational block 2320 increments counter J, i.e., sets J=J+1. Thus, steps 2310 through 2320. Conditional branch point 2321 tests whether J>N. If the test result is false, control is returned to operational block 2311 in which case steps 2311-2321 are iterated until step 2321 yields a true result. Then operational block 2322 sets counter J=1. Operational block 2323 causes the absolute value of register ABUFA associated with port J to be added to the absolute value of register ABUFB associated with port J. The result of the addition is multiplied by a predetermined constant AVGWT. The result of the multiplication is added to the value in register NGRD associated with port J. Operational block 2324 increments counter J, i.e., sets J=J+1. Conditional branch point 2325 tests whether J>N. If the test result is false, control is returned to operational block 2323 and step 2323-2325 are iterated until step 2325 yields a true result. Steps 2326-2338 are substantially identical to steps 2309-2321 except for several differences, namely, steps 2329 and 2335. In step 2329, ABUFB associated with J is utilized instead of ABUFA and in step, 2335 ABUFA associated with port J is utilized instead of ABUFB. Operational block 2339 decrements counter SMPLCT. Conditional branch point 2340 tests if counter SMPLCT is equal to 0. If the test result is false, control is returned to conditional branch point 2309. If the test result in step 2340 is true, operational block 2341 is entered which sets counter SMPLCT to a predetermined value NSMPL. Operational block 2342 sets counter J=1 and sets the active audio energy register AENGY=0. Operational block 2343 causes information to be supplied to host processor 2203 indicating which ports have active audio information. In the event that a port has audio information, an associated bit in register AENGY is set to be a logical 1. Operational block 2344 sets the audio energy accumulator NGRD associated with port J to a predetermined value -NTHSLD. Operational block 2345 increments counter J, i.e., sets J=J+1. Conditional branch point 2345 tests whether J>N. If the test result is false, control is returned to operational block 2343 and steps 2343-2345 are repeated until step 2345 yields a true result. Then, operational block 2346 sends the active audio register AENGY contents to the host processor 2203 via output register 2205 and link 2212. Thereafter, control is returned to conditional branch point 2309. FIGS. 27, 28, 29 and 30 connected as shown form a flowchart of a program routine stored in program memory 2206 for controlling digital signal processor 2202. Steps 2701-2746 of the program are substantially identical to steps 2301-2346 of the program routine shown in FIGS. 23-26 and described above. The differences are that the program routine shown in FIGS. 23-26 causes digital signal processor 2201 to pass audio bits A-1 through A-8 to digital signal processor 2202 and causes audio bits A-9 through A-16 to be mixed according to steps 2315-2320 (FIGS. 23-26). On the other hand, the program routine shown in FIGS. 27-30 passes through mixed audio bits A-9 through A-16 from digital signal processor 2201 and mixes audio bits A-1 through A-8 as described in steps 2715-2720. Accordingly, the remaining steps of the program routine shown in FIGS. 27-30 will not be described in detail again. FIG. 31 is a flowchart of a DSP control (DSPCTL) program task stored in host processor memory 2210 for operating host processor 2203 under control of a standard operating system to interact digital signal processors 2201 and 2202. Accordingly, the DSPCTL task program routine is entered via oval 3101. Thereafter, operational block 3102 sets counter J=1. Operational block 3103 sets noise guard holdover counter NGHCT equal to a predetermined value HOLDVR associated with port J. Operational block 3104 increments counter J, i.e., sets J=J+1. Conditional branch point 3105 tests whether J>N. If the test result is false, control is returned to operational block 3103 and, thereafter, steps 3103, 3104 and 3105 are repeated until the test result is true. Operational block 3106 places both Digital Signal Processor 2201 and Digital Signal Processor 2202 in the run state. Oval 3107 places a call to the operating system executed by host processor 2203 to suspend the operation of program task DSPCTL until digital signal processor 2201 has sent output data to output register 2205. Operational block 3108 calls a subroutine NGRD to perform the noise guard algorithm from audio energy samples associated with audio bits A-9 through A-16. A flowchart of the NGRD Subroutine is shown in FIG. 32 and is described below. Oval 3109 places a call to the operating system executed by host processor 2203 to suspend the operation of the program task DSPCTL until digital signal processor 2202 has sent data to output register 2207 associated with audio energy of the incoming audio information. Operational block 3110 calls subroutine NGRD to perform the noise guard algorithm from audio energy samples associated with audio bits A-0 through A-8 as described below. Control is returned to oval 3107 and steps 3107-3710 are repeated continuously in an endless loop. FIG. 32 shows a flowchart of the noise guard program subroutine (NGRD) utilized in the DSPCTL program task of FIG. 31. Accordingly, the NGRD subroutine is entered via oval 3201. Thereafter, operational block 3202 sets counter I=1. Conditional branch point 3203 tests to determine whether audio energy is present from link I. If the test result is true, operational block 3204 sets the noise guard holdover counter associated with port I equal to the predetermined value HOLDVR. If the test result in step 3203 is false, conditional branch point 3205 tests whether the noise guard holdover counter NGHCT associated with port I is equal to 0. If the test result is false, operational block 3206 will decrement counter NGHCT associated with port I. Operational block 3207 sets counter J=1. Operational block 3208 transfers to digital signal processor program memory 2204 and program memory 2206 (FIG. 22) column J of matrix KNOLOSS associated with port I. Operational block 3209 sets counter J=J+1. Conditional branch point 3210 tests whether counter J>N. If the result is false, control is returned to operational block 3208 and steps 3208-3210 are repeated until the step 3210 yields a true result and control is transferred to operational block 3211. Returning to conditional branch point 3205 if the test result is true, i.e., counter NGHCT=0 operational block 3213 sets counter J=1 indicating that loss is to be inserted. Opera | ||||||
