A method, apparatus, system, and computer software for compressing and
decompressing a message for transmission. The method of compressing a
text message for transmission may include parsing text strings and
encoding numerical values with a binary representation and analyzing
values of the text strings and populating a session specific codebook
with partial strings from the values. The method of compressing a message
for transmission may also include parsing the message with a template and
generating at least one substring to be transmitted; parsing the at least
one substring with entries in a session specific codebook and generating
a first part of the compressed message; populating the session specific
codebook with entries for unknown field values; parsing any unmatched
substrings with entries from a first static dictionary and generating a
second part of the compressed message; parsing any still unmatched
substrings with entries from a second static dictionary and generating a
third part of the compressed message; compressing a remainder of the
substrings with a compression algorithm; and combining the first part,
the second part, and the third part of the compressed message to obtain a
compressed message for transmission.