Added a TAPI thread so that you can do other things while TAPI is connecting. Also added the ability for you to set your own TAPI timeout value for when a connect gives up.
Added ComOpenWriteFile, ComOpenReadFile, ComWriteFile, ComReadFile, ComCloseFile, and ComSetFilePointer to add to portability between languages and facilitate easier file I/O in the .NET languages.
Added ComGetSystemDate, ComGetSystemTime, Com_PlaySound, and ComSetCurrentDirectory to help facilitate portable system behaviour between languages.
Added the ability to set custom port settings for FTP, HTTP, and HTTPS. Added the ability to connect to FTP in "passive" mode. Added the ability to rename FTP file extensions in batch mode. Added ability to fetch last HTTP error. Optimized FTP file transfer behaviour.
Added new conversion routines to convert HEX numbers to ASCII strings and vice-versa. This was added to help facilitate easier log file entries in multiple languages.
CrystalCOMM now allows you to set up the dialing parameters for a dialup connection with the Internet on the fly.
CrystalCOMM now allows you to receive FTP files using wild cards to receive multiple files.
One of the best ways to increase the thruput of your communication path is to compress the data. Modern modems attempt to do this on a few byte at a time basis. CrystalCOMM now has calls to compress your files using sophisticated string pattern and run-length encoding to achieve up to 90% compression on a file.
To secure the information that you are sending, we have added a simple API to encrypt and decrypt buffers, strings, or files. We now support up to 512 bit encryption through a very fast algorithm. This allows you to protect the information you are communicating, even over the Internet.
Now you can take advantage of TAPI capabilities with the CrystalCOMM library. You can enumerate TAPI devices (modems) on your system and you can connect to another system using one of your TAPI devices. TAPI allows your modem (TAPI device) to be initialized according to the systems settings for that modem, avoiding the pains in knowing or finding out a good init string for that modem. TAPI will also allow you to open shared TAPI devices when they are not in use. Our TAPI implementation allows you to dial out for a connection or go into Auto-Answer mode. TAPI also allows you to get the caller ID using modems that support caller ID.
Our modem database has been updated to now include just under 2400 modems. Thus, we have increased the number of modems supported by a factor of 3. These include ISDN and 56K modems that have been released by major modem manufacturers.
We have added a simplified modem setup procedure. You tell us the name of the modem and the settings that you want, and we go through the process of setting up your modem. We look up your modem in the database, pull in all of the settings, and then reset, initialize, set the compression on or off, set the flow control, and set the error control.
If you have an application for creating a VISA or VISA II Host program, we have a simple API for creating a VISA Host. This allows you to receive the client messages, perform computing operations on those messages, and send response messages back to the client. In addition, we have made improvements to the VISA protocol to be completely VISA II compatible.
If you have an application for creating a host for the TAP protocol for dispensing Electronic Pager messages, then we have a solution for you. We have a simple API for creating a Host control program for the TAP protocol. This allows you to receive the client messages, perform computing operations on those messages.
Our 32-bit version now allows you to run your file transfers on a background thread routine if you choose. This still allows you to poll for the status of the transfer and paste your status to your display. But your code is simplified by not having to worry about the protocol itself. We have done that for you.
Now you can turn on the port log and capture all of the characters going into our out of the port along with a time stamp. This is very useful in debugging those difficult communication problems.
We have a new feature that allows you to replace incoming characters with alternate characters. For example, some applications may transmit a NULL character or some other character that is problamatic to your application. This feature allows you to map those characters so that they are not encountered.