Claims
- 1. A process for error correction in a packetized TTY stream, comprising:
receiving a first plurality of packets, each comprising audio information corresponding to at least a portion of one or more TTY tones in at least one sequence of TTY tones; ordering the packets; depacketizing the at least a portion of one or more TTY tones in the first plurality of packets to yield the at least one sequence of TTY tones; determining when at least a portion of a TTY tone is missing from the at least one sequence of TTY tones; when at least a portion of a TTY tone is missing, reconstructing the missing at least a portion of a TTY tone to form a reconstructed at least one sequence of TTY tones; thereafter repacketizing the reconstructed at least one sequence of TTY tones to form a second plurality of packets; and transmitting the second plurality of packets to a next node.
- 2. The method of claim 1, wherein the steps are performed by at least one of a gateway, a router, a proxy server, originating device, terminating device, a PBX system, a central office switch, and a device systems that translates automatically between TTY and voice or between TTY and other text protocols, such as “Instant Messaging.”
- 3. The method of claim 1, wherein first plurality of packets is part of a Voice-Over-Internet Protocol communication.
- 4. The method of claim 1, wherein the at least one sequence of TTY tones comprise start tones, stop tones, and TTY character tones.
- 5. The method of claim 1, wherein the depacketizing step comprises:
partitioning the audio information in the first plurality of packets into at least one TTY character defined by the at least one sequence of TTY tones.
- 6. The method of claim 5, wherein the partitioning step comprises:
determining a plurality of tone borders between adjacent TTY tones in the at least one sequence of TTY tones.
- 7. The method of claim 1, wherein the ordering step is based on sequence numbers in the first plurality of packets.
- 8. The method of claim 1, wherein the reconstructing step comprises:
(a) determining the at least a portion of a TTY tone based on at least a portion of a tone in one or more adjacent packets.
- 9. The method of claim 8, wherein the reconstructing step comprises:
(b) when the at least a portion of a TTY tone cannot be determined based on at least a portion of a tone in one or more adjacent packets, determining the at least a portion of a TTY tone based on a random or pseudo-random tone selection.
- 10. The method of claim 9, wherein the reconstructing step comprises:
(c) determining whether the at least a portion of a TTY tone corresponds to a letter or number; when the at least a portion of a TTY tone corresponds to a letter, performing determining step (b); and when the at least a portion of a TTY tone corresponds to a number, not performing step (b).
- 11. The method of claim 8, wherein the reconstructing step comprises:
(b) when the at least a portion of a TTY tone cannot be determined based on at least a portion of a tone in one or more adjacent packets, determining a first TTY character using a first tone having a first frequency for the missing at least a portion of a TTY tone and a second TTY character using a second tone having a second frequency for the missing at least a portion of a TTY tone, wherein the first and second frequencies are different; (c) comparing a first sequence of TTY characters incorporating the first TTY character with a library of TTY character sequences; (d) comparing a second sequence of TTY characters incorporating the second TTY character with the library of TTY character sequences; and (e) selecting the first TTY character when a match exists in step (c) and the second TTY character when a match exists in step (d).
- 12. The method of claim 11, wherein the reconstructing step comprises:
(f) determining whether the at least a portion of a TTY tone corresponds to a letter or number; when the at least a portion of a TTY tone corresponds to a letter, performing steps (b) through (e); and when the at least a portion of a TTY tone corresponds to a number, not performing steps (b) through (e).
- 13. The method of claim 8, wherein the reconstructing step comprises:
(b) when the at least a portion of a TTY tone cannot be determined based on at least a portion of a tone in one or more adjacent packets, determining a first TTY character using a first tone having a first frequency for the missing at least a portion of a TTY tone and a second TTY character using a second tone having a second frequency for the missing at least a portion of a TTY tone, wherein the first and second frequencies are different; (c) determining a first probability associated with the first TTY character; (d) determining a second probability associated with the second TTY character; and (e) selecting between the first and second TTY characters based upon the first and second probabilities.
- 14. The method of claim 13, wherein the reconstructing step comprises:
(f) determining whether the at least a portion of a TTY tone corresponds to a letter or number; when the at least a portion of a TTY tone corresponds to a letter, performing steps (b) through (e); and when the at least a portion of a TTY tone corresponds to a number, not performing steps (b) through (e).
- 15. The method of claim 1, wherein, when the at least a portion of a TTY tone cannot be determined based on at least a portion of a tone in one or more adjacent packets, inserting an unknown identifier for the TTY character containing the at least a portion of a TTY tone.
- 16. The method of claim 1, wherein the at least one sequence of TTY tones has a minimum and a maximum tone duration, wherein each of the packets in the first plurality of packets has an associated tone duration in a respective packet payload, and wherein the associated tone duration is greater than one-half of the minimum tone duration.
- 17. The method of claim 14, wherein the minimum tone duration is 22 ms and the maximum tone duration is one of 33 and 44 ms, and the associated tone duration is one of 20 ms and 30 ms.
- 18. A computer readable medium comprising instructions for performing the steps of claim 1.
- 19. A logic circuit operable to perform the steps of claim 1.
- 20. A process for error correction in a packetized TTY stream, comprising:
receiving a plurality of first packets, each comprising audio information corresponding to at least a portion of one or more TTY tones in at least one sequence of TTY tones and each packet containing one of 10 ms, 20 ms, and 30 ms of one or more TTY tones; ordering the packets; depacketizing the at least a portion of one or more TTY tones in the plurality of first packets to yield the at least one sequence of TTY tones; determining when at least a portion of a TTY tone is missing from the at least one sequence of TTY tones; and when at least a portion of a TTY tone is missing, reconstructing the missing at least a portion of a TTY tone to form a reconstructed at least one sequence of TTY tones.
- 21. The method of claim 20, wherein the steps are performed by at least one of a gateway, a router, a proxy server, originating device, terminating device, a PBX system, a central office switch, and a device systems that translates automatically between TTY and voice or between TTY and other text protocols, such as “Instant Messaging”, and wherein a start of the audio information in at least most of the first packets is asynchronous with respect to a start of a contained TTY tone.
- 22. The method of claim 20, wherein plurality of first packets is part of a Voice-Over-Internet Protocol communication.
- 23. The method of claim 20, wherein the TTY tones comprise start tones, stop tones, and TTY character tones.
- 24. The method of claim 20, wherein the ordering step is based on sequence numbers in the first plurality of packets.
- 25. The method of claim 20, wherein the depacketizing step comprises:
forming a plurality of tone slots corresponding to at least one TTY character for receiving the audio information; and copying the audio information into a corresponding slot in the plurality of tone slots.
- 26. The method of claim 25, wherein the forming step comprises:
determining a plurality of tone borders between adjacent TTY tones in the at least one sequence of TTY tones.
- 27. The method of claim 20, wherein the reconstructing step comprises:
(a) determining the at least a portion of a TTY tone based on at least a portion of a tone in one or more adjacent packets.
- 28. The method of claim 27, wherein the reconstructing step comprises:
(b) when the at least a portion of a TTY tone cannot be determined based on at least a portion of a tone in one or more adjacent packets, determining the at least a portion of a TTY tone based on a random or pseudo-random tone selection.
- 29. The method of claim 28, wherein the reconstructing step comprises:
(c) determining whether the at least a portion of a TTY tone corresponds to a letter or number; when the at least a portion of a TTY tone corresponds to a letter, performing determining step (b); and when the at least a portion of a TTY tone corresponds to a number, not performing step (b).
- 30. The method of claim 27, wherein the reconstructing step comprises:
(b) when the at least a portion of a TTY tone cannot be determined based on at least a portion of a tone in one or more adjacent packets, determining a first TTY character using a first tone for the missing at least a portion of a TTY tone and a second TTY character using a second tone for the missing at least a portion of a TTY tone; (c) comparing a first sequence of TTY characters incorporating the first TTY character with a library of TTY character sequences; (d) comparing a second sequence of TTY characters incorporating the second TTY character with the library of TTY character sequences; and (e) selecting the first TTY character when a match exists in step (c) and the second TTY character when a match exists in step (d).
- 31. The method of claim 30, wherein the reconstructing step comprises:
(f) determining whether the at least a portion of a TTY tone corresponds to a letter or number; when the at least a portion of a TTY tone corresponds to a letter, performing steps (b) through (e); and when the at least a portion of a TTY tone corresponds to a number, not performing steps (b) through (e).
- 32. The method of claim 27, wherein the reconstructing step comprises:
(b) when the at least a portion of a TTY tone cannot be determined based on at least a portion of a tone in one or more adjacent packets, determining a first TTY character using a first tone having a first frequency for the missing at least a portion of a TTY tone and a second TTY character using a second tone having a second frequency for the missing at least a portion of a TTY tone, wherein the first and second frequencies are different; (c) determining a first probability associated with the first TTY character; (d) determining a second probability associated with the second TTY character; and (e) selecting between the first and second TTY characters based upon the first and second probabilities.
- 33. The method of claim 32, wherein the reconstructing step comprises:
(f) determining whether the at least a portion of a TTY tone corresponds to a letter or number; when the at least a portion of a TTY tone corresponds to a letter, performing steps (b) through (e); and when the at least a portion of a TTY tone corresponds to a number, not performing steps (b) through (e).
- 34. The method of claim 20, wherein, when the at least a portion of a TTY tone cannot be determined based on at least a portion of a tone in one or more adjacent packets, inserting an unknown identifier for the TTY character containing the at least a portion of a TTY tone.
- 35. A computer readable medium comprising instructions for performing the steps of claim 18.
- 36. A logic circuit operable to perform the steps of claim 18.
- 37. A process for error correction in a packetized TTY stream, comprising:
(a) receiving a plurality of first packets, each comprising audio information corresponding to at least a portion of one or more TTY tones in at least one sequence of TTY tones; (b) ordering the packets; (c) depacketizing the audio information in the plurality of first packets to yield the at least one sequence of TTY tones; (d) determining when at least a portion of a TTY tone is missing from the at least one sequence of TTY tones; and (e) when at least a portion of a TTY tone is missing, performing at least one of the following steps:
(1) determining the at least a portion of a TTY tone based on at least a portion of the tone contained in an adjacent packet; and (2) determining the at least a portion of a TTY tone based on at least one of: (i) a random or pseudo-random tone selection, (ii) a comparison of a first probability associated with a first TTY character generated from a first tone having a first frequency, the first tone being substituted for the missing at least a portion of a TTY tone, with a second probability associated with a second TTY character generated from a second tone having a second different frequency, the second tone being substituted for the missing at least a portion of a TTY tone, and (iii) comparison of a first ordering of TTY characters comprising the first TTY character and a second ordering of TTY characters comprising the second TTY character with a library of TTY character orderings.
- 38. The method of claim 37, wherein the steps are performed by at least one of a gateway, a router, a proxy server, originating device, terminating device, a PBX system, a central office switch, and a device systems that translates automatically between TTY and voice or between TTY and other text protocols, such as “Instant Messaging.”
- 39. The method of claim 37, wherein plurality of first packets is part of a Voice-Over-Internet Protocol communication.
- 40. The method of claim 37, wherein the TTY tones comprise start tones, stop tones, and TTY character tones.
- 41. The method of claim 37, wherein the ordering step is based on sequence numbers in the first plurality of packets.
- 42. The method of claim 37, wherein the depacketizing step comprises:
forming a plurality of tone slots corresponding to at least one TTY character for receiving the audio information; and copying the audio information into a corresponding slot in the plurality of tone slots.
- 43. The method of claim 42, wherein the forming step comprises:
determining a plurality of tone borders between adjacent TTY tones in the at least one sequence of TTY tones.
- 44. The method of claim 37, wherein the step of determining the at least a portion of a TTY tone based on a random or pseudo-random tone selection is performed.
- 45. The method of claim 37, further comprising:
(c) determining whether the at least a portion of a TTY tone corresponds to a letter or number; when the at least a portion of a TTY tone corresponds to a letter, performing determining step (f); and when the at least a portion of a TTY tone corresponds to a number, not performing step (f).
- 46. The method of claim 37, wherein the step of comparing the first ordering of TTY characters and second orderings of TTY characters with a library of TTY character orderings is performed.
- 47. The method of claim 37, wherein the step of selecting between the first and second TTY characters based upon the first and second probabilities is performed.
- 48. The method of claim 37, wherein, when the at least a portion of a TTY tone cannot be determined based on at least a portion of the tone in an adjacent packet, inserting an unknown identifier for the TTY character containing the at least a portion of a TTY tone.
- 49. The method of claim 37, further comprising:
(f) determining whether the missing at least a portion of a TTY tone corresponds to at least one complete TTY tone; and (g) when the missing at least a portion of a TTY tone corresponds to at least one complete TTY tone, performing substep (2) with respect to the missing at least one complete TTY tone; and (h) when the missing at least a portion of a TTY tone corresponds to only a portion of a TTY tone, performing substep (1) with respect to the missing portion of the TTY tone.
- 50. The method of claim 49, further comprising:
(i) determining whether a gap in the at least one sequence of TTY tones, the gap comprising the missing at least a portion of a TTY tone, is less than 22 milliseconds in duration; (j) when the gap is less than 22 milliseconds in duration, performing substep (1); and (k) when the gap is not less than 22 milliseconds in duration, performing determining step (f).
- 51. A computer readable medium comprising instructions for performing the steps of claim 37.
- 52. A logic circuit operable to perform the steps of claim 37.
- 53. A system for error correction in a packetized TTY stream, comprising:
(a) an input operable to receive a plurality of first packets, each comprising audio information corresponding to at least a portion of one or more TTY tones in least one sequence of TTY tones; and (b) a processor operable to:
(i) order the packets; (ii) depacketize the audio information in the plurality of first packets; (iii) determine when at least a portion of a TTY tone is missing from the sequence of TTY tones; and (iv) when at least a portion of a TTY tone is missing, perform at least one of the following steps:
(1) determine the at least a portion of a TTY tone based on at least a portion of the tone contained in an adjacent packet; and (2) determine the at least a portion of a TTY tone based on at least one of (i) a random or pseudo-random tone selection, (ii) a comparison of a first probability associated with a first TTY character generated from a first tone of a first frequency, the first tone being substituted for the missing at least a portion of a TTY tone, with a second probability associated with a second TTY character generated from a second tone of a second different frequency, the second tone being substituted for the missing at least a portion of a TTY tone, and (iii) a comparison of a first ordering of TTY characters comprising the first TTY character and a second ordering of TTY characters comprising the second TTY character with a library of TTY character orderings.
- 54. The system of claim 53, wherein the processor is part of at least one of a gateway, a router, a proxy server, originating device, terminating device, a PBX system, a central office switch, and a device systems that translates automatically between TTY and voice or between TTY and other text protocols, such as “Instant Messaging.”
- 55. The system of claim 53, wherein plurality of first packets is part of a Voice-Over-Internet Protocol communication.
- 56. The system of claim 53, wherein the TTY tones comprise start tones, stop tones, and TTY character tones.
- 57. The system of claim 53, wherein the ordering step is based on sequence numbers in the first plurality of packets.
- 58. The system of claim 53, wherein the processor performs the function of determining the at least a portion of a TTY tone based on a random or pseudo-random tone selection is performed.
- 59. The system of claim 53, wherein the processor is further operable to (v) determine whether the at least a portion of a TTY tone corresponds to a letter or number; (vi) when the at least a portion of a TTY tone corresponds to a letter, perform function (iv); and (vii) when the at least a portion of a TTY tone corresponds to a number, not perform function (iv).
- 60. The system of claim 53, wherein the function of comparing the first ordering of TTY characters and second orderings of TTY characters with a library of TTY character orderings is performed.
- 61. The system of claim 53, wherein the function of selecting between the first and second TTY characters based upon the first and second probabilities is performed.
- 62. The system of claim 53, wherein the processor is operable, when the at least a portion of a TTY tone cannot be determined based on at least a portion of a tone in one or more adjacent packets, to (v) insert an unknown identifier for the TTY character containing the at least a portion of a TTY tone.
- 63. The system of claim 53, wherein the processor is further operable to:
(v) determine whether the missing at least a portion of a TTY tone corresponds to at least one complete TTY tone; and (vi) when the missing at least a portion of a TTY tone corresponds to at least one complete TTY tone, perform function (2) with respect to the missing at least one complete TTY tone; and (vii) when the missing at least a portion of a TTY tone corresponds to only a portion of a TTY tone, perform function (1) with respect to the missing portion of the TTY tone.
- 64. The system of claim 63, wherein the processor is further operable to:
(viii) determine whether a gap in the at least one sequence of TTY tones, the gap comprising the missing at least a portion of a TTY tone, is less than 22 milliseconds in duration; (ix) when the gap is less than 22 milliseconds in duration, perform function (1); and (x) when the gap is not less than 22 milliseconds in duration, perform determining function (v).
- 65. A process for error correction in a packetized TTY stream, comprising;
(a) receiving a plurality of first packets, each comprising at least portions of one or more TTY tones; (b) ordering the packets; (c) depacketizing the at least portions of one or more TTY tones in each of the plurality of first packets to form at least one sequence of TTY tones; (d) determining when at least a portion of a TTY tone is missing from the at least one sequence of TTY tones; and (e) when the at least a portion of a TTY tone is missing, substituting an unknown identifier for at least one of a TTY character corresponding to the at least one sequence of TTY tones and the missing at least a portion of a TTY tone.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present application contains subject matter related to the subject matter of copending U.S. application Ser. No. 10/192,978, filed Jul. 10, 2002, entitled “Error Correction Method and Apparatus for TTY on VOIP Transmissions”, to Michaelis, which is incorporated herein by this reference.