GB2390181A - Method for storing data received over a telephone network - Google Patents
Method for storing data received over a telephone network Download PDFInfo
- Publication number
- GB2390181A GB2390181A GB0214278A GB0214278A GB2390181A GB 2390181 A GB2390181 A GB 2390181A GB 0214278 A GB0214278 A GB 0214278A GB 0214278 A GB0214278 A GB 0214278A GB 2390181 A GB2390181 A GB 2390181A
- Authority
- GB
- United Kingdom
- Prior art keywords
- bitmap
- user
- ctn
- telephone
- answer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/51—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
- H04M3/5158—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing in combination with automated outdialling systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q3/00—Selecting arrangements
- H04Q3/0016—Arrangements providing connection between exchanges
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2201/00—Electronic components, circuits, software, systems or apparatus used in telephone systems
- H04M2201/36—Memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/42025—Calling or Called party identification service
- H04M3/42085—Called party identification service
- H04M3/42102—Making use of the called party identifier
- H04M3/4211—Making use of the called party identifier where the identifier is used to access a profile
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Telephonic Communication Services (AREA)
Abstract
A method for storing data indicating a condition associated with a user of user equipment in a communication system, comprising the steps of: ```determining a unique identifier associated with said user equipment; ```identifying a unique location, associated with said unique identifier, in a bitmap stored at a storage node in said communication system; and ```storing a value at said unique location, said value indicating said condition. In an embodiment, the data consists on answer received over a telephone network and the bitmap is a data array covering all possible sources and answers.
Description
23901 81
CALLER RESPONSE AND REGISTRATION SYSTEM
The present invention relates to a method and apparatus for storing data indicating a condition associated with a user of user equipment in a communication system. In particular, but not exclusively, the invention relates to the registration of answers provided by telephone users in response to a sequence of pre-posed questions.
User equipment (UK) such as telephones, mobile telephones, computers and personal data assistants are well known to the skilled person. These may be used to communicate with other user equipment in a communication system.
Mobile user equipment is sometimes termed a mobile station (MS) and is user equipment that is capable of communication via a wireless interface with another device.
It is well known that users of such user equipment can use such equipment to gain access to open or local area networks from which access to data and/or services can be provided. The Internet is an example of an open communication network which can be used to connect large numbers of local area networks. Many businesses have been set up to provide services to users who access those services by interaction with a user interface of their respective user equipment.
It is often required for data comprising data input by a user to be stored so that it can be recalled at a later date. Examples of this logging user data procedure are when people are asked to respond via a telephone on a particular topic or when answering questions posed as part of market research or otherwise.
Under such circumstances if response to the questions is strong it may prove impossible using commonly applied technical techniques for some people
wishing to take part in market research or a debate to log their views/answers. This is unsatisfactory for the members of the audience.
Sometimes people are charged, either by a telephone company (telco) or service provider, or both, for having their views/answers registered. The fact that some people wishing to participate are not able to because of a limited capacity in the system is unattractive to the telco or service provider.
Also telephone voter polls usually register only the number of responses in each possible category, but are unable to later identify individual responder choices. As individual responder choices cannot be later identified, it is impossible to ask follow-up questions to which only those who answered in a certain way in earlier questions may participate. It would also be impossible to identify individual responders in subsequent responses in order to analyse their choices across multiple response sessions. This information would be useful for various reasons such as market research.
Some of these problems can be overcome by increasing capacity in terms of storage space, for storing user answers/views, and/or number of lines (or communication links) via which a user may access the service. Such solutions can, however, prove costly and a trade off is often made as a compromise. Problems are particularly apparent where very large number of responders register responses in a very short amount of time where each responder's response is individually recorded. Existing techniques would store the eligibility and response made in a variable size database structure. These variable size database structures have limited data throughput due to the overhead required to manage the variable size database. In addition, high throughput demands on variable size database structures have been known to result in data loss. The data throughput requirement may be too high to be
able to record a very large number of responders in a short period of time without being certain that no errors have occurred.
It is an aim of embodiments of the present invention to at least partly mitigate the above referenced problems.
According to a first aspect of the present invention there is provided a method for storing data indicating a condition associated with a user of user equipment in a communication system, comprising the steps of: determining a unique identifier associated with said user equipment; identifying a unique location, associated with said unique identifier, in a bitmap stored at a storage node in said communication system; and storing a value at said unique location, said value indicating said condition.
According to a second aspect of the present invention there is provided method for registering answers submitted by a plurality of callers to a service provider node in a communication system comprising the steps of: identifying the CTN of respective telephones used by each of said plurality of callers; identifying which of said plurality of callers are eligible to provide answers; for each identified CTN corresponding to an eligible caller, identifying a unique location associated therewith in a bitmap memory array; and for each said unique memory location, storing a value at said memory location indicating the answer submitted by a respective user, said data input thereby registering said answer.
According to a third aspect of the present invention there is provided apparatus for storing data, indicating a condition associated with a user in a communication system, comprising: user equipment arranged to enable a user thereof to communicate, via a communication link with a server node in said communication system, said user equipment having a unique equipment identifier associated therewith; means for identifying said unique identifier; a bitmap stored at a storage node of said communication system, said bitmap
comprising a plurality of addressable bit locations each of which is associated with a respective one unique equipment identifier; and means for storing a value at each bit location in said bitmap whereby each said value indicates a condition associated with a respective user.
Embodiments of the present invention provide the advantage that variable size database structures are not required since a bitmap is utilised.
Embodiments of the present invention provide the advantage that data input by a user may be stored quickly since the data structure is bounded in nature, and/or fixed in size.
Embodiments of the present invention provide the advantage that data bits, indicating a user's eligibility to provide user input, or the input data itself, may be easily written to the bitmaps via a low level Boolean AND or OR operation.
Embodiments of the present invention provide the advantage that data bits, Indicating a user's eligibility to provide user input, or the input data itself, and locations in the bitmap are addressed via a simple bit shift calculation.
For a better understanding of the present invention reference will now be made, by way of example only, to the accompanying drawings in which: Figure 1 illustrates a communication system incorporating user data storage; Figure 2 illustrates a CLI and CTN; Figure 3 illustrates indexing of an eligibility bitmap; Figure 4 '11ustrates an answer bitmap; and
Figure 5 shows one possible implementation of the system.
In the drawings like reference numerals refer to like parts.
Embodiments of the present invention will now be described in respect of a telephone response system that enables users of telephones to call into a central response node of a communication system and lodge their answers to proposed questions. It will be appreciated that other embodiments of the present invention can be used in order to record other user input data.
Figure 1 illustrates a communication system 100 including telephones 101' to 1013 which are connected via respective fixed connections 102' to 1023 to a telephone network 103. For the sake of brevity, only three telephones have been shown, although all telephones connected to the network 103 may participate. A mobile station 104 is connected via a wireless link Um to a base transceiver station 105 which itself is connected to the telephone network 103 via fixed line 106. It will be understood that much of the communication system 100 is omitted for the sake of brevity. Likewise it will be understood that the network 103 may incorporate the Internet.
Three voice response servers 107, 108 and 109 are connected to the telephone network 103 via respective connections 1 10, 1 1 1 and 1 12. For the sake of brevity, only three voice response servers 107 to 109 have been shown, although any number of voice response servers may be used. The connections 1 10, 1 1 1 and 1 12 may carry a number of telephone lines. It will be understood that the voice servers 107, 108 and 109 may be displaced geographically around a country rather than being at a central node in the communication system 100. As an alternative all voice response servers could be disposed at a single node. In order to process calls from large numbers of lines (for example 90, 000) each voice response server may be connected to more than one Digital Local Exchange (DLE) in the
communication system. Each voice response server is connected to a i central response computer 113 via one or more secured connections 114.
Each voice response server receives user input, in the form of speech; patterns, DTMF tones or from the Called Directory Number (CON), extracts information from this data and transmits the extracted data onwards.
Likewise the voice response servers can generate artificial speech patterns which are played to a listening caller to provide the callers with information. 3 Voice patterns can be translated using any suitable speech codec. I Alternative embodiments of the present invention can use pre-recorded responses for playback to a caller, these are indexed according to predetermined circumstances. It will be understood that embodiments of the present invention can be used without voice synthesis being used. For l example a caller may use DTMF tones or may simply type in user input data using a user interface on the telephone. Information may alternatively be communicated to the user using an electronic beep.
The central response computer 113 is arranged so that data processed by each of the voice response servers can be processed and stored. The voice response servers operate to process the contents of calls from the 3 telephones 101 and mobile stations 104 of the communication system which are incoming via lines 110, 111 and 112. Each of these lines can support many thousands of simultaneous phone calls. This will be described further hereinafter. The central response computer 113 includes an eligibility bitmap 115, an answer bitmap 1 16 and an offset table 1 17 stored in a data storage unit 1 18.
Details of these elements will be described hereinafter in more detail. The central response computer 113 also includes a data store 119 which is arranged to hold, maintain and provide a secure question database and may I include a backup of the bitmap data and offset table data. The data store 119 will also contain details of individual responders who choose to register with the system. These details can be used to provide individualized
services to each responder. The system may provide a discount service to those responders who choose to register their details in the data store 1 19.
The system also contains a method to select questions from the question database and present these to a broadcast system to broadcast the questions to all potential users. The system contains a method to feedback information to the system administrators and users as required by the I embodiment in real time.
The system thus consists of a voice processing system with a very large number of lines, a database of questions and answers and a central; response computer. All elements of the system are advantageously highly secure and auditable. The voice processing system 107, 108 and 109; answers incoming calls and a recorded voice will inform the caller as to whether the answer given by a caller was correct, incorrect, response re'gistered or alternatively the fact that the caller is ineligible to register a response. Such feedback may be through automated voice response (AVR) and an electronic beep or any other manner which enables a user of 3 telephone 101 or mobile station 104 who has called to lodge their answer with the outcome. Questions may be sourced randomly or systematically from a database 119 of questions.
The system is arranged to identify the calling line identification (CLI) of the calling user equipment 101 or 104. This is illustrated in Figure 2. A CLI 200 is a standardized set of bytes generated by the telephone network comprising information such as the caller's telephone number, the date and the time of the call. Usually when placing a telephone call a CLI number is automatically sent to the person being called which uniquely identifies the caller. However, the caller may have the option of not sending the CLI when placing calls (it is common for businesses for example to withhold the CLI).
As the system depends on the CLI it is a requirement for lodging user data that sending the CLI option has not been turned off. Callers will be informed
that they should activate the CLI and call again if the CLI is being withheld from some particular equipment. It will be understood that when some other unique identifier, identifying the user equipment with which a caller calls to i record their user data, is used the CLI will not be required.
Other identification tags are commonly used in telecommunications, such as the IMEI. The usage of mobile telephone IMEI (terminal ID) may be used according to further embodiments of the present invention. However I according to preferred embodiments the CLI is used. The CLI is a secure! form of identification since it is generated by the telephone exchange and is thus outside of the user's control and has the advantage that it is common to both mobile and fixed telephone communication systems. I The actual caller, or user who made the phone call is not the person deemed to have lodged a response but rather the registered owner of the telephone attached to the CLI. This requirement may be stipulated prior to users phoning in to provide answers to questions or their opinions on a particular matter. The requirement is needed because only the CLI and not the actual caller's details are captured. The system is able to extract from the CLI 200 the digits 202 that uniquely identify the calling telephone number (CTN) 201.
The digits exclude the initial "zero" in all number's area codes. By way of an example, it is assumed that the CTN has eleven digits, although this number will vary depending on the country.
Assuming, by way of example only, that the telephone response system 120 were to be required to record all CTNs and the answers provided by users for each respective CTN, within a period of four seconds per call using forty thousand lines. Then the system would need to be able to support a calling audience of six hundred thousand people per minute. Where very large I numbers of callers are expected, ordinary recording structures based on binary trees or other complex algorithms may be unable to handle the load and prove unpredictable. According to embodiments of the present invention
this problem is overcome by recording these details in data structures that are bounded fixed in size. In the current embodiment, the bounded data structure is a bitmap.
Bitmaps are well known as being useful for data warehousing environments.
The bitmaps provide an efficient method for retrieving and storing data having a low-cardinality. Such low-cardinality data is data which comprises a very limited number of possible values.
The central response computer 113 will have a large store of memory containing two bitmaps. The first bitmap 115 is an eligibility bitmap which records those CTNs that are eligible to answer a question. The second bitmap 116 is an answer bitmap which is used to record an answer selected by a respective user of each CTN.
The eligibility bitmap 115 references a single bit in the bitmap to each CTN.
The size of the bitmap will equal the number of CTNs. This may be locally or country wide. As the CTN, in the example, is expected to be eleven digits long the bitmap may be expected to require a maximum of 10, bits or approximately 11.64 Gigabytes.
I\lore particularly, if the number of digit positions in the CTN is n the size of the bitmap required is given by equation 1.1 below: Bitmap size (GB) = 8 23 (1.1) The bit corresponding to a CTN which has correctly answered all questions in all previous rounds will be set to 1. All other bits will be set to O indicating that the CTNs corresponding to those respective bit positions are no longer eligible to attempt to answer questions. It will be understood that rather than
storing a 1 to indicate eligibility and a 0 to indicate non-eligibility the values could be reversed.
The answer bitmap references a number of bits to each respective CTN. The number of bits per CTN depends on the number of potential answers available to users, such that (2Anumber of bits) > number of potential answers. It is assumed for the purposes of example only that three bits per CTN will be used in the bitmap. As the CTN is assumed for the purposes of example to be eleven digits long, the bitmap needs 3 x 104i bits or approximately 34.9 Gigabytes of memory.
The bits in the answer bitmap 116 are set to a value corresponding to the response given by a user of user equipment having a CTN corresponding to the bit locations in the bitmap. Those CTNs which do not submit an answer will have their corresponding bits in the answer bitmap set to zero. It will be understood that the bits could be set to any default setting in order to indicate CTNs which have not provided an answer.
More particularly, if the number of digit positions in the CTN is n and the number of bits which needs to be stored for each CTN is b the size of the bitmap required is given by equation 1.2 below.
Bitmap size (GB) = to 6 (1.2) With an eleven digit CTN a total main store requirement for the eligibility bitmap and answer bitmap is 46.5 Gigabytes (11.6GB + 34.9GB).
In practice the size of the bitmaps can be reduced by removing all combinations of area codes which do not exist in a local area or in a country.
For example if by removing unused telephone area code ranges, one determines that there are a total possible 500 million CTNs the total memory requirement for the bitmaps will be 238 Megabytes.
More generally if by removing non-existent telephone area code ranges the total number of potential CTNs is N; 1 bit is stored for each CTN in the eligibility bitmap; and the number of bits which needs to be stored for each CTN in the answer bitmap is b the size of the two bitmaps described above is given by equation 1.3 below.
Bitmap size (MB) = (220) (13) Prior to a first round every bit in the eligibility bitmap is set to 1 indicating that all CTNs are eligible to enter the response process. Following the closing of each round each bit in the eligibility bitmap is set to a 1 only if the corresponding CTN correctly answered the question posed during that round, or to a O if either the question was incorrectly answered or no phone call attempting to answer the question was received from that CTN. By this process only those who called into the system and correctly answered a question are able to continue submitting further answers. Before each round begins all bits in the answer bitmap 116 are set to zero.
When a caller calls during a subsequent follow-up market response question, the system will verify that the associated CTN's bit in the eligibility bitmap is set to a 1. If the bit is O the caller will be advised that he or she is ineligible to continue providing answers and the communication link comprising a call is ended. It is possible using certain digital exchanges to refuse to accept an incoming call from an ineligible CTN, thereby increasing the probability that eligible callers will be able to lodge responses. If the eligibility bitmap 115 corresponding to a particular CTN is set to 1 the system will check the status of the three bits in the answer bitmap. If any of these bits are a 1 it means a
user of the user equipment having that particular CTN has already submitted an answer for the particular question if allowed the user may change their answer by submitting a new answer which is thereafter recorded by overwriting the pre-existing answer. Otherwise the user will be informed via a user interface of the user equipment 101, 104 that an answer has already been submitted and that no further modifications to that answer are permitted. If the three bits in the answer bitmap 116 which are dedicated to the CTN of the user equipment being used by a caller are set to 0 the data input provided by the user is stored and the caller is thereafter informed of this fact.
The bits will be set as 001 for an answer of A, 010 for B and continuing to count in binary for all possible answers. Using three bits a total of seven possible answers are available to be chosen by callers.
More generally if the number of bits stored for each CTN in the answer bitmap is b the number of potential answers is given by equation 1.4 below.
Number of potential answers = 2b _ 1 (1.4) Figure 3 illustrates an eligibility bitmap in accordance with a first embodiment of the present invention. The eligibility bitmap is stored as a memory array in the central response computer 113 and is used to indicate user equipment from which answers, to pre-posed questions, can be provided. It will be understood that the eligibility bitmap could be used to indicate any other characteristic associated with a plurality of user equipment. The eligibility bitmap 115 includes a large number of bytes 300 each of which includes eight bits 3010 to 3017. Each bit 301 is allocated to a respective CTN which itself is associated with a particular user equipment. This may be a mobile phone or mobile station or other device. As an alternative each bit may be associated with any one device which itself is identified by some other unique identifier. In accordance with the first embodiment of the present invention
there is a bit allocated to every single possible CTN. For example, for an eleven digit CTN there are 100,000,000,000 (i.e. 10) bit positions. There are therefore 100,000,000,000 8 bytes in the bitmap 115. The first byte in the bitmap is addressed as byte 0, the following as byte 1 and so on according to the size of the array. The first bit in each byte Is addressed as bit 0, the following as bit 1 and so on up to bit 7.
When a user of telephone 101 calls to register their opinion or view or answer to a proposed question their call is routed via connection 102 through E network 103 to one of the lines 110, 111 or 112 and into a respective voice response server. The voice response server which answers the call will be selected according to the geographical location of the telephone 101 or dependent upon load restrictions placed on the communication system 100.
The voice processing system determines the CTN from the CLI of the device 101 used by a user to call in their answer. In addition the voice processing system determines an answer given by a user and a time stamp of the call.
The voice processing system may be any voice processing system which is able to extract information from spoken words. As an alternative embodiments of the present invention can be adapted so that a caller does not speak an answer but rather this is done through an alphanumeric keypad on the user equipment or through identification of the number dialled by the user. When a call is made, the CLI information is received by the voice processing systems 109 before the call is answered. In the current embodiment, the voice response servers will transmit the required information to the central response computer 113 over the communications link 114 and await an answer from the central response computer before the call is answered.
Callers will thus hear a ringing tone while this communication takes place.
When the call is answered, the system will provide its response immediately which is to the benefit of the caller.
The particular voice processing system sends a message via connection 117 to the central response computer for each caller which calls to that voice response server. The central response computer then identifies the bit in bitmap 115 corresponding to the CTN of the telephone 101 used by the user to call in their answer.
As an example, say the caller's telephone number is 01904792402. The voice response server extracts the CTN 1904792402 provided originally with the CLI when a call is initiated, stripping the leading 0. This number is stored in binary format and then a divide by eight process is operated on it. The divide by eight process identifies the byte in the bitmap 115 in which the bit associated with that CTN is located. Dividing by eight in a binary system is an extremely efficient operation as it consists of shifting the bits three places to the right. The remainder equals the lowest three bits whilst the integer portion is the remaining bits. This is well known in the art. In this way the integer portion of the divide process is used to index the byte position in the bitmap 111. Using the example noted above a divide by eight process gives the answer 238099050.25. This identifies the 238099050'h byte as being the relevant byte in which the bit associated with the CTN is located. Since the 1St byte is addresses as byte 0, we need to subtract 1 from this result to get the address of the related byte. In this example, the addressed byte is 238099049. The remainder should be multiplied by eight to provide the bit position 301 in the indexed byte. The bit position is thus tO.25 x 8 = 2) two.
Since the first bit in the byte 300 is bit 0 the remainder indicates that the third bit in byte 300 is the relevant bit. Whichever value is stored in bit 310 is used to identify the eligibility of the telephone 101 for a user to provide an answer.
For example a 1 loaded in this location might indicate that a user can be permitted to provide an answer. If a O value is loaded into bit 310 the telephone 101 is not eligible for providing an answer. This might be the case when in an earlier round a user has used that telephone to call in an answer which has been incorrect. Alternatively the telephone may be identified as
being located in an area from which answers may not be provided. This i process may be used to restrict access to a service.
To begin a phase of data input all bits in the bitmap 115 may be set to a value indicating that all telephone numbers are enabled to provide data input.
For example each bit in the bitmap 115 is set to 1. This may be carried out by a bulk write operation by setting every byte 300 in the eligibility bitmap 115 to a decimal value of 255. At an appropriate moment individual bits in the bitmap will be set to a O to indicate that the corresponding user equipment is no longer enabled to provide answers/opinions/data input.
In order to set a particular bit in any byte to O without affecting the remaining bits in the byte, a Boolean AND operation may be used according to the following table.
To Set Bit No. BinaryDecimal I 0 011111111 127
1 10111111 191
2 11011111223
3 11101111239
4 11110111 247
l 6 11111011 251 6 11111101 253
7 111111101 254
TABLE 1
In this way setting bit number 2 to a 0 is carried out by using a Boolean AND operation on all bits 301 from byte 300 with the binary operand 11011111.
The data used for Table 1 may be stored at an appropriate data store in the central response computer. In this way if during the stage the caller from telephones 101, provides an incorrect answer the bit 310 is set to 0.
Thereafter during any subsequent phase if a caller uses telephone 101, to attempt to provide an answer the eligibility bitmap 111 will indicate that that is not possible.
As an alternative where eligibility is indicated by a 0, bits in theeligibility bitmap 111 are set to a 1 to indicate ineligibility. This is done by using a Boolean OR operation on the reference byte identified with the number of the calling telephone. This is carried out in accordance with Table 2 set out I below. To Set Bit No. Bina Decimal ry 0 10000000 128
1 01000000 64
2 00100000 32
3 00010000 16
4 00001000 8
5 00000100 4
6 00000010 2
7 00000001 1
TABLE 2
A person skilled in the art would recognise that it is possible to set multiple bits in a byte to 1 or 0 by using OR or AND operators corresponding to all the binary positions in the byte. For example to set all the bits in the last three places in a byte to zero an AND operator is used with a value of 11111000.
This method may particularly be used in setting bits in the answer bitmap.
Figure 4 illustrates an answer bitmap 116 in accordance with a first embodiment of the present invention. The answer bitmap stores answers provided by callers, using a respective telephone, to pre-posed questions.
Alternatively it will be understood that the answer bitmap could be used to store any other data input by a caller using a user device. The answer bitmap is divided into a large number of bytes 400 each of which include eight bits 4010 to 4017. The answer bitmap may be configured in a manner similar an eligibility bitmap in which case answers can only be of a two state type i.e. yes/no. It is preferable to provide callers with an opportunity to i select one from a number of possible answers. For example this might be one of four answers such as "Is the answer A, B. C or D" or any other
number. Conveniently in accordance with the first embodiment of the present invention three bits are allocated per CTN which enables up to seven answers to be provided for. When a caller calls to register their answer a check is made as to whether they are eligible to provide an answer as noted above. When eligible the answer provided by the user is stored in the answer bitmap 116. This is done by first identifying a starting bit 410 in the answer bitmap 116 followed by second bit 411 and third bit 412 the answer provided by the caller is identified by the voice response server 107, 108 or 109 and provided in digital format via line 114 to the computer 113. For example if a user answers A to a question this may be stored as 001. If the answer is a B this may be stored as a 010. A C may be 011 whilst a D may be 100. It will be understood that any other arrangement of bits could be used providing each specific answer has an analogous unique binary representation. The storage of data in the answer bitmap 116 is carried out so that information identifying the answer provided from a telephone having the next sequential CTN number is begun after the final bit 412 allocated to the preceding CTN number i.e. at position 4015. l This is achieved by adding an offset value to the calculated bit position where data is to be stored in the bit map. This is discussed in detail hereinafter.
Briefly the first bit in the bitmap where data is to be written is identified using the CTN and the number of bits to be written per CTN. When three bits are to be written, to enable up to seven answers to be accommodated, the bit locations for each CTN will not be consecutive in the bitmap. Rather the next CTN user data will be written in the three bit positions immediately following the last of the three positions allocated to the preceding CTN.
It will be understood that in the particular example described above three bits are utilised to store data identifying the answers given by users. Since each byte is eight bits long this means that some three bit answers will appear in two bytes i.e. the eighth bit of one byte followed by the first two bits of a subsequent byte. As an alternative four bits may be allocated to define each
answer given in which case two CTNs can be allocated to each byte.
Alternatively eight bits may be allocated to each CTN.
It will be understood that according to the examples described above many bit positions in the eligibility and answer bitmaps will be unused. This is because each bit position is associated with a possible CTN. In fact in many instances the number of actual CTNs in use is far less than the total number of possible CTNs. According to a second embodiment of the present invention the eligibility bitmap 1 15 and answer bitmap 116 may be reduced in size to account for the defunct bitmap positions. In this way the efficiency of the bitmaps can be improved so that bit positions are not allocated to ranges of CTNs which do not correspond to CTNs in use. It will be understood that where memory space used to provide the bitmaps is not an issue the reduction of defunct subject matter is not necessary. In accordance with the second embodiment of the present invention a technique for removing non-
existent telephone area code ranges is used. This makes use of an offset table 117 which stores ranges of telephone numbers in use and provides an I offset (i.e. a number of bit positions) which should be subtracted from the computed bit position. Typically this may be done by identifying area codes, that is the first few digits of a telephone number, which do not exist. The reduction is carried out by listing valid telephone numbers and providing those valid ranges of numbers with an offset value. The offset value is the bit offset from the relevant bitmap which must be made in order to identify the bit position in the bitmap for calling CTNs. As an example consider a simple I case of a system using one digit telephone numbers with telephone numbers 1, 2 or 3 possible. If number 2 is identified as a non-existent telephone number then the first bit in a bitmap will be allocated to telephone number 1 1 whilst bit position 2 will be allocated to telephone number 3. A 2 bit bitmap could thus be used rather than a 3 bit bitmap having one bit never used.
Telephone number 3 must thus have an offset number minus 1 associated with it so that its position in a bitmap is identified by the position which would normally be allocated to telephone number 3 minus 1, the offset. More
generally if c is an index number generated by the CTN, b is the number of bits to be recorded per CTN and r Is the offset bit to be referenced by the sequence (where r is less than b) in the bitmap, and where if the number of bits to be recorded is greater than 1 the first bit offset is 0, the second bit offset is 1 and the third bit offset is 2 and so on, the table will be structured as a look-up table such that for each range of CTNs a unique offset On is resumed. The offset is calculated to reduce the CTN to an index number that takes into account all the missing area code ranges up to the lower limit in the CTN range. In this case c is calculated as: c = CTN + On (1.5) Where On in the range In to hn is calculated as on = (-1 x (all CTNs relating to non-existent telephone area codes from O to In) (1.6) hn = In+, (1.7) For example a CTN of 2,055, 555,555 and the relevant portion of the look-up table shown in Table 3 below then c = 2,055,555,555 - 500,000,000 = 1,555,555,555.
Low (In) High (hn) Offset (on) 2,000,000,ooo 2,100,000,000 -500,000,000 TABLE 3
If removal of non-existent telephone area code ranges is not used, c is calculated as c = CTN since the offset (on) will equal O for all possible CTNs.
In either case the reference of a particular bit from a particular CTN is calculated as follows: let x = integer portion of [(c x b) / 8] - 1, and let y = remainder of tic x b) t 8] If r = 0, then: Reference byte = x and Reference bit - y If r > 0 then: Reference byte = x + (integer portion of [(y + r) / 8]) and Reference bit = remainder of [(y + r) / 8] It will be understood that the use of an offset value as above-described is also used in accordance with the first embodiment described when more than one bit is to be stored per CTN.
According to embodiments of the present invention the CLI generation process happens before the telephone rings. In the UK this typically takes between 0.73 and 0.97 seconds from starting the CLI delivery sequence until its completion which is marked by sending a ringing signal to the dialled number. A CLI data field which contains information such as time, date and
calling number has a total of 26 bytes and its transmission period is about 173ms. It is likely that the time required to record a call will be mostly taken by the time to required to speak the response. For example "Response recorded" may take 1 second while "Your response has been recorded" may take 2 seconds.
As an example the Sun Fire System provides up to 576GB of memory per system consisting of up to 18 CPU/Memory Boards each holding up to 4 processors and 32GB of memory. The Sun Fire System has an overall
sustained inpuVoutput bandwidth rating of 21.6GBps and an overall sustained system bandwidth of 43.2 GBps.
Embodiments of the present invention can be used with voice processing systems which operate in parallel and are therefore able to support a very large number of lines. Messages passed from the voice processing systems to the central response computer will be less than 0.25kB in size consisting of only the CTN (in the above example, 11 bytes), the answer given, the identification number of the voice processing system, the line identification number and a time stamp. Messages returning to the voice processing systems will be even smaller, consisting only of a success or fail message.
Persons skilled in the art will recognise that other data will be useful for later analysis although not essential in this embodiment of the present invention.
It will be noted by those skilled in the art that Embodiments of the present invention can be used in conjunction with a call centre. It is possible that following a large marketing effort, significant numbers of callers could contact the call centre in a short period of time. This may occur, for example, where a company were to place large numbers of simultaneous advertisements across multiple broadcast media, wherein a limited number of a range of products in large demand is offered at a low price for a very limited period of time. It will be noted by those skilled in the art that call centres often receive calls in excess of the call centre's ability to handle them within a suitable amount of time. This is undesirable for callers since their calls are not answered timeously. It is also undesirable for businesses who wish to maintain a good relationship with their customers. It will also be noted by those skilled in the art that call centres often cannot identify callers waiting in the queuing system to determine the importance of the caller to the business.
Embodiments of the present invention can assist call centres by recording their CTN and informing callers that they will have their call returned shortly.
Businesses often wish to be seen to be treating their existing customers with greater care that other callers. In this case only those bits in the eligibility bitmap associated with CTNs for all their clients are set to 1. Another example would be that, where businesses wish to target certain geographical areas, only those bits associated with CTNs located within those geographical areas are set to 1 in the eligibility bitmap. In each case, the system would check the status of the bit associated with the CTN for each caller to the call centre. Where the bit has been set to 1, the call centre would place a higher priority on the telephone call that a simple queuing system would place. Where the bit has been set to 0, the system will determine that the caller is less important and will simply ask the caller to call again later. The fact that a particular CTN has called is recorded by setting the first bit in the answer bitmap associated with each CTN to 1, while all CTNs for which no call was received will have a bit set to 0.
Embodiments of the present invention further allow callers to select from a list of menu options details on the nature of the query (e.g. press "1" for "account queries", "2" for sales etc) or how the caller wishes the call to be returned (e.g. press "1" for "within 2 hours", "2" for "before 9 p.m. today" etc).
Options selected by callers will be stored in the answer bitmap using the bits following the first bit which is used to record whether a CTN had called or not.
When the call centre is able to return the calls, the system would identify all the CTNs that called the call centre by examining the status of the first bit in the answer bitmap associated with each CTN. Using this information and by recompiling the telephone number from the CTN, the call centre operators will be able to return the calls. The CTN will allow the operator to look up the caller from a database of customer information to assist in any queries. The operator could further increase efficiency of the call by using the selection made by the caller during the call and stored in the answer bitmap (e.g.
having the customer's account information available when the customer indicated that it was an "account query').
The call centre system must be able to cope with high traffic volumes while remaining secure and fully auditable.
Figure 5 illustrates one possible implementation of the present system.
With reference to figure 5: A. The device accepts calls from one or more telephone operators. The configuration is such that the number of voice lines that can be deployed concurrently is very large. For example, between 50000 and t 00000 concurrent calls in operation. The calls need not all enter the system at a single telephone operators location, and there can be any number of telephone operators connected to the device. In its entirety, the device itself need not comprise a single logical unit all the time; and can, depending on the current phase of operation, comprise separate independent operating portions. This is with the specific purpose of processing a large number of calls within a short period of time. In the figure, two telephone operators' (or TELCOs') networks are connected to the device in a phase of operation which does not require that the entire device to be a single logical entity.
B. The TELCOs connect with the device using voice lines. The portion of the device to which the TELCO connects comprises either a Voice Processing Server or Private Exchange, or similar equipment. In either case, the purpose of this piece of equipment is to packetise details of the incoming call and to transmit them over a local communications network using a data link typical of LAN bandwidths (for example 100Mbps). Typically only a small amount of information regarding each call will be transmitted over the LAN data link or network. At minimum, this information will include the originating equipments telephone number (calling line identifier or CLI) and the dialled number. The
voice processing server or private exchange equipment functionality required by device is limited to that described above and the communication of the messages to a front end processor or FEP application.
C. As an aid to the scalability of the configuration of the device, the VPS or BPXs can communicate over data links with any number of FEPs. In the figure each VPS or PBX is communicating with two FEPs.
D. The front end processors or FEPs are the components of the device which maintain the high speed data structures. The maintenance of the data structures is described in the patent. The function of the high- speed data structure is to record limited information regarding the call. For example, the fact that a particular CLI originated a call and the number that was called (or in some cases last called).
E. Depending on the configuration of the device and the purpose the device is being put to, the application maintaining the high speed data structure also passes all the information received from the VPS or PBX equipment regarding the calls to a back end processor or database server. This is done so that the call information can persist or can be processed offline or during a later phase. In certain configurations there may be no requirement for information to persist.
E. In order to cope with the possibly smaller bandwidth to the persistent storage the device can be configured to simultaneously use multiple persistent storage devices or back end database servers.
F. The back end processors or database servers provide the device with a persistent store. The nature of this portion of the equipment is that it provides a high bandwidth recording mechanism with a relatively highlatency (a few orders of magnitude higher than the latency of the highspeed data structure).
The effect of the coupling of the hgh-speed data structure and the persistent data structure is a latency hiding mechanism which provides certain Information regarding a possible previous call without the latency hit of the persistent storage. This avoidance of querying the persistent storage during operational phases which are required to support high rates of incoming calls means that persistent data structure itself can be implemented using a mechanism which is optimised for write operations during these phases.
G. The actual equipment which provides the persistent storage has a relatively high bandwidth attachment to the back end processors. The latency of this connection is much higher than that of the high-speed data structure but further optimisations are possible as the device operates in phases.
During the phase of processing in which the high bandwidth to the persistent store is required, only write access to the store is required. During this phase, all read accesses of the data structure are satisfied by the high-speed data structure. During phases of processing in which calls are not being taken the bandwidth requirements to the data structure are more relaxed.
This means that the persistent store can be optimized for inserts and in particular can simply be a sequential non-indexed or flat file. In particular if a database server is chosen as the persistent store, then during the phase of processing in which a large number of telephone calls are being received all indexes on the data structure can be dropped. This should further improve the bandwidth to the persistent data structure as no indexes will need to be maintained during the insert operations. During phases of processing in which calls are not being taken, any indexes required for processing which requires fast retrieval can simply be built to support those phases.
In Figure 1 the various components are shown separately and as though the data links are LAN connections. This is not necessary in the implementation of the device and each component in the chain of information flow can be co
located with its upstream or downstream component; or both. For example, the processor which contains the VPS application component can house both the FEP and database server components. In this case, the data links between the components can be implemented using IPC mechanisms such as pipes, shared memory and semaphore operations, etc. in the system as described above, the high speed data structure could contain one or a few bits per entry. Such a data structure could be implemented as a memory mapped shared file (in Solaris this could be a large file which is only limited to the size of the file system).
To have multiple servers process this file, if necessary, the processing address spaces could independently memory map the file or memory map the file and then fork copies of the process with the open memory mapped file. It would be a simple matter to place the update under the protection of compare and swap which would allow a non-locking protocol to update the memory. One significant speed advantage that can arise from the highspeed data structure derives from the fact that it can be an 'in-core' data structure. The cost of receiving a message then outweighs the cost of maintaining the data structure and hence, if the data structure were any less efficient, hardly any slow down would be noticed. For example, if the data structure were a tree, then maintenance and access costs would go up, but could still be inexpensive. For different purposes the device could be configured for different modes of operation: 1. All accepted calls could be recorded unless there is a catastrophic failure, which we would definitely know about.
2. Voting to solicit opinion might not require such an elaborate configuration and may allow a larger volume of calls on the same amount of equipment. In
this case, there may be not need to persist any data as all that is required is a count of the number of votes for particular options in an opinion poll. In this case the data structures could also be simplified as there is no penalty for (very) small percentage errors.
Embodiments of the present invention overcome problems associated with variable size database structures using a bounded storage structure since any overhead in managing a variable size database structure is avoided and hence data throughput is much higher. Bounded database structures can be proven to be reliable since a 100 per cent check that all potential inputs have been correctly recorded is possible. An example of a bounded storage structure is a bitmap.
Embodiments of the present invention provide a method and system for assisting multiple callers to a call centre.
Embodiments of the present invention provide the advantage that addressing bits of data stored is a simple bit shift calculation which enables the process to be carried out very quickly. Also setting bits is a low level Boolean AND or OR operation. Furthermore embodiments of the present invention function without the use of binary tree or other complex recording structures.
Embodiments of the present invention provide a method and apparatus for distinguishing individual responders, or more particularly individual user equipment associated with those responders. Responders answering correctly a pre-posed question, may thereafter be contacted automatically by the system and asked for further input. This may be an answer to a further question or an opinion being selected from a number of different choices.
It is noted that while the above describes preferred embodiments of the present invention, various modifications may be made without departing from the scope of the present invention.
Claims (17)
1. A method for storing data indicating a condition associated with a user of user equipment in a communication system, comprising the steps of: determining a unique identifier associated with said user equipment; identifying a unique location, associated with said unique identifier, in a bitmap stored at a storage node in said communication system; and storing a value at said unique location, said value indicating said condition.
2. A method as claimed in claim 1 wherein said user equipment comprises a telephone and said unique identifier comprises a calling telephone number (CTN) associated with said telephone.
3. The method as claimed in any preceding claim further comprising the step of: selecting said value from a plurality of predetermined selectable data values each being associated with a respective condition.
4. The method as claimed in any one of claims 2 to 3 further comprising the steps of: posing a question to said user; via said telephone, said user calling a server node of said communication systems; inputting data via a user interface of said telephone indicating said user's answer to said question; and storing said value at said unique location, in a first bitmap, indicating said user's answer.
5. The method as claimed in any one of claims 2 to 4 further comprising the steps of: determining if said user is eligible to answer said question; and
storing a value indicating said user's eligibility at said unique location of a second bitmap.
6. The method as claimed in claim 5 further comprising the steps of: during a call from said telephone to a server node of said communication system, subsequent to said user being posed a question, identifying the CTN of said telephone and retrieving said a value in said second bitmap associated with said CTN; and verifying the users eligibility to answer the posed question responsive to the value retrieved from said second bitmap.
7. The method as claimed in claim 6 further comprising the steps of: if said user is eligible to answer said question, generating a value indicating an answer using data input by said user of the telephone; and storing said generated value at the unique location associated with the CTN of said telephone in said first bitmap.
8. The method as claimed in claim 7 further comprising the steps of: if said user is not eligible to answer said question, indicating the fact to said user via a user interface of said telephone and subsequently terminating said call.
9. The method as claimed in any one of claims 2 to 8 wherein said step of identifying said CTN comprises: identifying the calling line identification (CLI) number of the telephone; and selecting bits from said CLI which uniquely identify said CTN.
10. The method as claimed in any one of claims 2 to 9 further comprising the steps of: forming a binary representation of said CTN;
performing a divide by eight procedure on said binary representation; and indexing a byte position in said bitmap using the result of said divide by eight procedure.
11. The method as claimed in claim 10 further comprising the steps of: performing a multiply by eight procedure on any remainder of the divide by eight procedure; and indexing a bit position in said indexed byte using the result of said multiply by eight procedure.
12. The method as claimed in any one of claims 2 to 11 further comprising the steps of: reducing the dimensions of at least one memory array, used for said bitmap, by ensuring at least one non existent CTN is not allocated with a corresponding unique locations.
13. The method as claimed in any one of claims 2 to 12 when said step of storing a value at said unique location comprises storing a one at said location further comprising: identifying a byte in said bitmap corresponding to said CTN; and performing a Boolean OR operation with the eight bits of said byte according to the following table: To Set Bit No. Binary O 1 0000000
1 01000000
2 00100000
3 00010000
4 00001000
5 00000100
6 00000010
7 00000001
TABLE 1
14. The method as claimed in any one of claim 2 to 12 when said step or storing a value at said unique location comprises storing a zero at said location further comprising: identifying a byte in said bitmap at a location corresponding to said CTN; and performing a Boolean AND operation with the eight bits of said byte according to the following table: To Set Bit No. Binary 0 01111111
1 1 011 1 1 1 1
3 11101111
4 1 1 1 1 011 1
_ 5 11111011
7 1 1 1 1 1 1 1 0
TABLE 2
15. A method for registering responses submitted by a plurality of callers to a service provider node in a communication system comprising the steps of: identifying the CTN of respective telephones used by each of said plurality of callers; identifying which of said plurality of callers are eligible to provide responses; for each identified CTN corresponding to an eligible caller, identifying a unique location associated therewith in a bitmap memory array; and for each said unique memory location, storing a value at said memory location indicating the response submitted by a respective user, said data input thereby registering said answer.
l
16. The method as claimed in claim 15 wherein said step of identifying the CTN comprises identifying a respective Calling Line Identification (CLI) number and converting the CLI to the CTN consisting of the caller's telephone number with the leading O digit removed.
17. Apparatus for storing data, indicating a condition associated with a user in a communication system, comprising: user equipment arranged to enable a user thereof to communicate, via a communication link with a server node in said communication system, said user equipment having a unique equipment identifier associated therewith; means fomdentifying said unique identifier; a bitmap stored at a storage node of said communication system, said bitmap comprising a plurality of addressable bit locations each of which is associated with a respective one unique equipment identifier; and means for storing a value at each bit location in said bitmap whereby each said value indicates a condition associated with a respective user.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0214278A GB2390181A (en) | 2002-06-20 | 2002-06-20 | Method for storing data received over a telephone network |
PCT/GB2003/002641 WO2004002122A1 (en) | 2002-06-20 | 2003-06-19 | Method and system to register a caller's response in a bitmap using the caller's telephone number |
AU2003240122A AU2003240122A1 (en) | 2002-06-20 | 2003-06-19 | Method and system to register a caller's response in a bitmap using the caller's telephone number |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0214278A GB2390181A (en) | 2002-06-20 | 2002-06-20 | Method for storing data received over a telephone network |
Publications (3)
Publication Number | Publication Date |
---|---|
GB0214278D0 GB0214278D0 (en) | 2002-07-31 |
GB2390181A true GB2390181A (en) | 2003-12-31 |
GB2390181A8 GB2390181A8 (en) | 2004-07-15 |
Family
ID=9938997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB0214278A Withdrawn GB2390181A (en) | 2002-06-20 | 2002-06-20 | Method for storing data received over a telephone network |
Country Status (3)
Country | Link |
---|---|
AU (1) | AU2003240122A1 (en) |
GB (1) | GB2390181A (en) |
WO (1) | WO2004002122A1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0632364A1 (en) * | 1993-06-30 | 1995-01-04 | Microsoft Corporation | Efficient storage of object in a file system |
US5884298A (en) * | 1996-03-29 | 1999-03-16 | Cygnet Storage Solutions, Inc. | Method for accessing and updating a library of optical discs |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040071278A1 (en) * | 1985-07-10 | 2004-04-15 | Ronald A. Katz | Multiple format telephonic interface control system |
CA2171493C (en) * | 1995-04-21 | 1999-12-28 | Andrew Thomas Schnable | Method for selecting ama records using individual directory numbers |
US5740239A (en) * | 1995-09-27 | 1998-04-14 | Lucent Technologies Inc. | Method and apparatus using bit maps to access data for processing telephone calls |
US6016336A (en) * | 1997-11-18 | 2000-01-18 | At&T Corp | Interactive voice response system with call trainable routing |
US6175833B1 (en) * | 1998-04-22 | 2001-01-16 | Microsoft Corporation | System and method for interactive live online voting with tallies for updating voting results |
CA2354359A1 (en) * | 2000-09-08 | 2002-03-08 | Richard Alan Becker | Method and apparatus for storing information regarding a telephone |
-
2002
- 2002-06-20 GB GB0214278A patent/GB2390181A/en not_active Withdrawn
-
2003
- 2003-06-19 AU AU2003240122A patent/AU2003240122A1/en not_active Abandoned
- 2003-06-19 WO PCT/GB2003/002641 patent/WO2004002122A1/en not_active Application Discontinuation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0632364A1 (en) * | 1993-06-30 | 1995-01-04 | Microsoft Corporation | Efficient storage of object in a file system |
US5884298A (en) * | 1996-03-29 | 1999-03-16 | Cygnet Storage Solutions, Inc. | Method for accessing and updating a library of optical discs |
Also Published As
Publication number | Publication date |
---|---|
AU2003240122A1 (en) | 2004-01-06 |
GB2390181A8 (en) | 2004-07-15 |
GB0214278D0 (en) | 2002-07-31 |
AU2003240122A8 (en) | 2004-01-06 |
WO2004002122A1 (en) | 2003-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2133426C (en) | Automated telecommunication peripheral system | |
US5715306A (en) | Automatic call distribution system with user definable logging and method therefor | |
EP1044551B1 (en) | Metadata-based network routing | |
JP3967384B2 (en) | Method and system for extended addressing planning | |
EP1884110B1 (en) | Call handling | |
CA2258616C (en) | Telephone polling method | |
US8199899B2 (en) | Call management system with call control from user workstation computers | |
USRE43205E1 (en) | Skill based chat function in a communication system | |
US20010043697A1 (en) | Monitoring of and remote access to call center activity | |
CN1110849A (en) | Telephone call notification feature | |
CN101827176A (en) | Method and equipment for a user to call back | |
US20070147599A1 (en) | Call routing management based on caller language | |
US8577009B2 (en) | Automatic complaint registration for violations of telephonic communication regulations | |
US7206400B2 (en) | Method and system for data field reuse | |
US6226363B1 (en) | Method and system for the recording and selective accessing of messages using a computer, a remote unit, and a public communication system | |
EP1077563A2 (en) | Telecommunications apparatus and method of processing telecommunicating calls | |
GB2390181A (en) | Method for storing data received over a telephone network | |
CA2444725C (en) | Call centres | |
CN101170609A (en) | A seal personalized work number reporting system and method | |
US7099454B1 (en) | Caller identification in a communication system | |
US7474738B1 (en) | System and method for providing recorded messages on a communications network | |
KR20040110060A (en) | Answering System for Customer Service | |
CN1719851A (en) | Once input anti-forge inquiring method | |
KR20050046886A (en) | System and method for providing call controlling service using 030 temporary number | |
CN1588972A (en) | Onced input anti-fake searching method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WAP | Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1) |