                       InterCom's History

v0.99 Beta 2

o dialing directory editing from quick dial dialog
o explanation machine message playback
o explanation for error messages
o configuration dialogs now in one notebook control
o configuration information stored in an INI file
o list of know ICTalk servers now included
o search button now default in ICPages search dialog
o last ICPages search criteria stored
o support for 8-bit sound cards
o ICPages search dialog no longer locks up when OK pressed
o call person dialog field errors fixed
o exits fast with better thread management
o capabilities of sound card now retrieved correctly
o changed input level to high
o improved message communication between threads
o corrected spelling errors in server configuration dialog
o type of sound card and status of TCP/IP now displayed in product
  information dialog
o OK changed to Close in ICPages search dialog
o help button works in Quick Dial dialog
o no longer locks up if error encountered trying to play or record
  sound
o consolidated all ICTalk dialogs into one dialog
o added login/logout of all ICTalk servers button
o added a volume control
o allow loading if TCP/IP fails, but all calling and answering
  disabled
o fixed slow send and receive of data due to blocking on send and
  recv calls on the socket
o answering machine threads now shut down properly
o main window and ictalk window now remember the position on the
  screen when they are closed
o fixed memory leaks caused by not freeing some allocated memory
  when certain dialogs closed
o dynamic IP management server to all calling of people with a
  dynamic IP
o sample rate adjustable when lossy compression on because some
  sounds cards don't support 8000 per second
o Minimum sample rate increased
o added icon to main dialog
o caller ID information received from person called added to caller
  ID information window
o login to ICTalk servers denied unless an alias is specified
o ability to add people to the dialing directory from the Caller ID
  information
o fixed memory deallocation bug at program exit

v0.99 Beta 3

o Incorrect dialog was loaded when an incompatible version of the
  remote client or server fixed
o Call button in ICTalk dialog box now enables and disables correctly
o Fixed incorrect help panels from being displayed
o Multicolumn list boxes now sort the entries case insensitively
o Duplicate names not shown in ICTalk user list
o Rearranged ICTalk dialog to show more of the user list
o Fixed collision that could occur if user clicked answer at the same
  time as the answering machine picked up.
o Fixed problem with scroll bars not working in the multicolumn list
  boxes
o Toggling of buttons and sliders no longer occurs in background
  threads
o New sound memory manager that reduces the demand on reallocation
  of memory
o Added buttons to clear entries from the caller id information
o Added Quick Control dialog so that talking entire dialog doesn't
  have to be displayed in order to talk
o ICTalk and Quick Control dialog now appear on the task list
o Added Activity LED's

v0.99 Beta 4

o  Main dialog box gets the focus when the quick control dialog
   closes
o  Multicolumn list boxes now grab focus when clicked upon by the
   mouse
o  Option to have quick control or main dialog box to float to top
   and take focus when the phone rings
o  Option to have quick control to float on top of desktop
o  Stop command sent to audio device after playing of sound finished
   to make sure speakers shut off etc.
o  Added dialog to show the progress of loading and decompressing
   an answering machine message
o  Added options page to the configuration notebook

v1.00

o  ICTalk server now uses a single thread to handle all the connected
   clients. This is more efficent and requires less system resources.
o  All thread stacks are now 32K or greater.  This solves the
   problem of running out of space on the stack (SYS3171 errors).
o  Major improvement in the send/recv protocol which speed up
   transmition time dramaticly over long distances.
o  Improved semaphore coordination on main thread which should help
   to stop any user interface lockups due to waiting on a semaphore.
o  Add to Dialing Directory button in Caller ID group now
   unhighlights if the caller ID entry already exists in the dialing directory.
o  Shifted help submenu to the right of the menu bar.
o  If dynamic IP chosen in the configuration notebook for the first
   time then InterCom automaticly logs into the ICDynaIP server when
   the configuration is saved instead of having to reload InterCom.
o  Fixed socket being set in blocking mode if you were called.
o  Removed memory leak checker which might have been locking up the
   user interface.

v1.01

o  Fixed invalid pointer to one of the record buffers.  This could
   have been causing an unknown number of problems including system
   or program crashing.
o  Reworked the way audio is stored and played.
o  Fixed the way the play thread ended.
o  If float to top upon ring is selected then Quick Control or the
   main dialog will now restore themself if minimized when the phone
   rings.
o  ICTalk dialog will now restore itself if minimized when ICTalk is
   selected from the InterCom menu.
o  When an entry in the ICPages Search dialog is selected to be
   added to the dialing directory it is deleted from the ICPages
   search results list box.
o  Wrote a smaller less complicated installation program to take the
   place of the installation program created with IBM's Software
   Installer.

v1.02

o  Reworked the MMPM recording playlists to make them move efficent
   when stopping the recording.
o  No more audio seek when starting to play or record audio.  Should
   remove some little amounts of delay.
o  Icon is now saved as VGA independent.  The artist of the icon had
   originally saved it as XGA/8514 and this was overlooked so it
   wouldn't display on some systems.
o  The record buttons now have the option of functioning  like a CB
   button does. Hold it down with the mouse or use the SPACE or
   ENTER key on the keyboard. When you release the mouse or key the
   recording stops.
o  The send/recv thread is more efficent and does better full duplex
   transmittion of data on a single socket.
o  0 byte registration key no longer created if the real registration
   key doesn't exist in the directory.
o  Added connection statistics to the ICTalk server dialog box.
o  Removed error messages from ICTalk server commonly generated when
   client breaks the connection instead of logging out.
o  Error message function was not correctly allocating memory to hold
   the filename of the module where the error occurred.
o  Space not allocated for NULL that terminates the string in the
   error message data structure.  Could have caused program to crash
   previously when trying to display a simple error message.
o  Space not allocated for NULL for server update string that is sent
   to ICTalk dialog box.  This could have caused the program to crash
   when logging into a server or logging out.
o  Space not allocated for NULL when storing the address of the server
   connected to in the connected servers information array.
o  Fixed Clear button on the caller ID box shifting the array
   incorrecting.
o  Fixed dialing directory array shifting incorrectly when an entry
   was deleted.
o  Caller ID edit button now works correctly.
o  Fixed call blocking array shifting incorrectly when an entry was
   deleted.
o  Corrected minor documentation errors.
o  Help panel IDs are no longer shown.
o  Added Quick Start help information.

v1.03

o  Bug reading answering machine data when initializing fixed.
o  If answering machine encounter a error it would cause the current
   conversation to hangup.
o  Recording buttons were processing mouse clicks and keyboard
   activity even when disabled.
o  Fixed memory leaks in some custom controls
o  Lossy compressor for answering machine recording now
   deinitializes at program exit.
o  Answering machine record thread now exits correctly.
o  Main dialog box now destroyed when program exits.
o  Object thread window now destroyed when program exits.
o  Memory now freed for results received from ICPages server.
o  Memory for ICTalk server list deallocated when new server list is
   saved from the configuration notebook.
o  Blocking setting on socket not changed when send/recv thread exits.
o  If there is an error in a conversation and there is any of the
   audio in the incoming buffers it is now deallocated.
o  Link listed now correctly deallocates memory allocated for sound.
o  Packet header memory deallocated if no data accompanied the header
   now.

v1.04

o  Moved ICTalk menu option from InterCom submenu to the an action
   button on the bar for easier access to the ICTalk dialog.
o  Rewrote the entire send/recv thread.  This will hopefully eliminate
   the bug that was causing the protocol that InterCom uses to get out
   of sync and therefore cause a memory allocation error.  This
   rewrite also hopefully stops the bug which caused the send/recv
   thread to take up the entire CPU time which made the system act
   like it was locked up even though it wasn't.

v1.05

o  When answering machine message is sent to remote user it is not
   opened in read only mode to prevent access violations if multiple
   people connect to the answering machine at the same time.
o  Fixed adding of duplicate names to the ICTalk connected people
   list box due to connecting to multiple servers.
o  If another user was on two servers that you were connected to and
   he logged off one of them it will now update the list to reflect
   the server address change.
o  Removed high priority threads.  This option wasn't needed and had
   no effect on the quality of performance.
o  Added ICPages search result counter.
o  ICTalk server statistics box added to the dialog to show the
   number of people on the servers and the number of connected servers.
o  Fixed CB Style button in Quick Control dialog.
o  Multicolumn list box now has self adjusting column widths to use
   no more of the column than is needed to display the longest
   string in the column.
o  Fixed the DOS subsystem unknown error 95 being returned whily
   waiting on a semaphore.
o  Changed calling window spin buttons to include the minute.  Time
   window is now completely flexible.
o  Removed alias from configuration and use name instead.  Comment
   field moved from server page to the general configuration.
o  Added language spin button to general configuration.  The
   language is displayed as part of the user information on the
   ICTalk connected people list.
o  Error message no longer displayed if someone calls and gets the
   answering machine, but no answering machine message has been
   recorded yet.
o  Replaced all calls to send with a call to a looping function
   which makes sure the data gets sent in case the socket
   is in non-blocking mode.
o  Reworked tab stops and order of controls in each dialog.
o  Added configuration option to force remote to use 11025 while
   recording.
o  ICTalk connected people list now shows who is registered.
o  ICTalk connected people list now shows who is talking to some one
   at the current time.
o  Ring on callers side more consistent because it isn't based on
   the ring packets received from the called user's system.
o  Ring know heard through the audio device.  PC Speaker is still an
   option.
o  Added replay last sound button so that messages can be replayed
   over and over.
o  Added manual dial entry field to the call person dialog box.

v1.06

o  Now spawning another thread to handle hangup so that object
   window thread can not pause.
o  Phone stops ringing if error encountered in the send/recv thread
   while the phone was ringing.
o  Server count is now correct when someone clicks login all and one
   of the server logins fails.
o  When the InterCom ringing the answer button automaticly receives
   focus so that all that is needed is to click enter real quick to
   answer.
o  Manual dial entry field on call dialog now enables OK button when
   text is entered.
o  Fixed scrolling bug in location and comment field in the general
   page of the configuration notebook.
o  Removed most of the buttons in the CallerID and Answering machine
   group boxes and replaced them with a right mouse click popup menu.
o  Review answering machine greeting only works if a greeting exists.
o  If a new answering machine message is received the answering
   machine group box displays changes to show the new message
   instead of just incrementing the counter.  Make it easier to
   notice.
o  Start recording button doesn't highlight until the remote user
   answers the phone.  It was highlighting prematurely after the
   first ring.
o  Pending rings are cleared once answer clicked or the remote user
   answers.
o  New thread handling for the answering machine.  Should cope with
   errors and shutdown of the answering machine alot better.
o  Option to force sound card to work in 8 bit mode.  This was
   needed by some people because their hardware will not function
   in 16 bit mode even if it is supposedly a 16 bit card.
o  If multiple calls at the same time it synchronizes them so that
   there is no conflicts.  The first one causes it to ring the
   phone.  The second one gets the answering machine.
o  Added return call selection to the caller ID popup menu.
o  Moved sample rate slider from main dialog to the compression page
   in the configuration notebook.
o  Added clock and the elapsed time since the call started.
o  Fixed bug that caused long pause if a sound is waiting to play
   while the user was recording.
o  Added wait for disconnect popup dialog with option of immediate
   disconnect. This will allow you to wait for pending data to be
   transmitted if it exists.
o  Reworked talk thread synchronization.

v2.00

o  Input level and gain no longer adjusted when recording.  This was
   causing problems on some cards with auto gain adjust.
o  Fixed one byte memory leak in ICTalk server.
o  Reworked thread synchronization of ICTalk server.
o  Added conditional cascade to menu bar for configuration selection.
o  Added QuickCam support.  This was a major enhancement and took a
   lot of time.
o  INI upgrading.  This version will import and convert your
   configuration from 1.06

v2.01

o  The send/recv loops have been optimized.  This has resulted in
   substantial increase in data transfer speeds.
o  Camera icon now has a red "X" over it when the video is muted.
o  InterCom now automaticly tries to reconnect to the ICTalk server
   if there is a break in the connection.
o  Shutdown of DynamicIP server connection thread is much faster and
   smoother.
o  Added return call menu option to answering machine popup menu.
o  Fixed a major bug in the ICTalk server that was causing frequent
   SYS3175s.
o  Fixed statistics bug on the ICTalk server that caused the current
   connection count to go below zero.

v2.02

o  Add support for transmition of static bitmaps as privacy images.
   This is also another way for those people who don't have cameras
   to have video support.
o  Redesigned the layout of the configuration notebook.
o  Allow snapping of test images from the QuickCam Adjust page of
   the configuration notebook while online.  This allows for quick
   correction of bad image settings.
o  IP addresses are now converted back to name format instead of
   dotted decimal format when caller ID, answering machine, and
   other parts of the program are udpated.
o  Product information screen now shows if the FASTIO.SYS driver is
   installed in the system.
o  ICTalk server now shows IP addresses in name format instead of
   dotted decimal.
o  ICTalk server no login prints login/logout statements to the
   status listbox, but instead keeps an up-to-date list of all the
   people logged in.

v2.03

o  Rewrote a majority of the documentation.
o  Replaced the multicolumn list box control used for the ICTalk
   Connected People list with a container control in detailed view.
o  Added support to filter out busy and unregistered users from
   appearing in the ICTalk connected people list.
o  Added option to toggle whether or not convert IP from dotted form
   to hostnames.  This was built in feature in 2.02 that was causing
   some delays if the domain name server took a long time to resolve
   the IP.
o  Rewrote playback system to better coordinate the semaphores used
   to control access to the audio device and help eliminate chances
   of user interface slowdowns.
o  Reworked the multithreading of the recording to improve the
   access to the audio device.
o  Added playback support using DART (Direct Audio)

v2.04

o Fixed bug with the statistics not updating on the ICTalk dialog
o Added call forwarding
o Reorder some of the tabing in the configuration notebook dialogs
o Added adaptive compression file transfers
o Consolidated call, answer, and hangup in to one button sense only
  one was active at any one time during the program.
o Reworked multithreading of the answering machine.
o Added replay button to quick control dialog.
o Fixed bug.  If duplicate keys called each other it would hangup,
  but the transmit thread would block itself from ending and caused
  other threads from ending.
o Most of the major dialogs save their position when closed now.
o Enhanced message communication between threads.
o Fixed small memory leak in ICTalk connected people list
o Added autoconnect to all servers option.
o Added start minimized option.
o Installation program now has an option to create an icon on the
  desktop.
o Added option to show quick control upon startup instead of the
  main dialog box.
o Alphabetized the lists of checkboxes on the options pages in the
  configuration notebook.
o If the float to top upon ring is activate and the phone rings it
  will now restore the dialog if it is minimized.
