                       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.

v2.04b

o If CB style record buttons were on and the button was just clicked
  it would start two threads recording instead of stopping the
  recording is fixed.
o Fixed the control button toggling from hangup to call when the
  answering picked up.

v3.00

o Dynamicly create ICTalk filter popup menu instead of loading it from the
  resource file.  This should stop it from appearing at the top of the ICTalk
  dialog.
o Fixed user interface lockup caused by a popup menu being open and the user
  clicking on the normal menu.
o Improved shutdown.
o If instant shutdown is chosen from the wait for disconnect dialog there will
  no longer be any TCP/IP errors such as socket operation on nonsocket.
o Fixed bug in the file transfer status field.  It would keep putting finished
  there when it wasn't supposed to.
o Added busy answering machine which is played if you are on the phone talking
  to someone.
o Removed divider in the ICTalk connected people list.
o The audio device is now accessed exclusively during recording and playback.
  This will prevent interruption by other system sounds.  This will also stop
  the inactive instance error messages.
o Fixed bug that allowed auto connect to the ICTalk server even if there was no
  name in the configuration information.
o Local video page has quick adjustments for the QuickCam.
o LEDs are now in a independent dialog.
o Seperate LEDs now for audio, video, and file data.
o Added ICTalk login notify feature.
o Added support for answering machine messages for specific users.
o Replaced stop light control with new flashing light bar.
o ICTalk servers are now networkable.
o ICTalk servers now place sockets in nonblocking mode to enhance the
  the performance under critical loads.
o Added two more ICTalk servers to the list.
o ICTalk connected people list now has a column to show if they have video
  support.
o Created high priority outbound queue to speed things like file transfer
  exceptance up.
o Custom PM controls now contained in a seperate DLL
o Custom User Interface now contained in a seperate DLL
o Introduction screen now shows the first time the program is loaded.
o Change Dial Dir. to Phonebook.
o Added a popup dialog to let the user know that the remote user's answering
  machine received the call and that the greeting is being transferred.
o More additions to the FAQ concerning things like IBM ThinkPads.

v3.01

o Fixed SYS3175 occasionally caused by updating of the ICTalk connected people
  list.  ICTalk server wasn't initializing one of the fields in the data sent.
o Fixed sockets not being closed when connection to ICTalk server had a problem
  and it had to automaticly reconnect.
o Fixes server sending an incorrect alive packet to the client so the client
  thought the server had been disconnected.
o Right click popup menu on the connnected people list now has a default server
  menu item which allows you to change the default server really easily.
o Fixed the Quick Control at startup feature.
o Fixesd when a server connected to its uplink and negotiated the version
  successfully the uplink server was passing down the names of all the people
  on the server at the time they connected.
o Removed some code in the program that was responsible for giving the error
  code "OS/2 Error" from the TCP/IP recv function.
o Made it set the socket send/recv buffer size to 16K instead of whatever the
  default was.  This should provide some better performance on the connection.
o Fixed bug in ICTalk server network that caused blank names to appear in the
  connected people list on the client side.
o Added total number of people on the ICTalk server network counter.

v3.02

o Fixed the network counter error in the ICTalk server caused by an occassional
  duplicate login being reported from one server to another server.
o Fixed file transfers stopping if video was enabled, but muted.
o ICTalk list now uses a case insensitive sort routine.
o Logout packet sent to the ICTalk server if the application is closed without
  the user clicking disconnect.
o Fixed the problem with the dialog floating to the top when the phone rang
  when it wasn't supposed to.
o Added feature to delete the saved window positions.  This is useful if you
  change resolutions and the status or another dialog is not visible on the
  screen.
o Status dialog now appears on the tasklist when open.
o Fixed some of the custom PM controls not getting the focus for the dialog
  when they were clicked.
o Reworked the configuration reading code so that it deletes version of the INI
  that are sold old that they are not upgradable. Ver < 3.00 gets initialized
  to the default values.
o Added scaler compression to file transfer feature.  If the comppression ratio
  is good it will read large chunks of data from the drive.  50% read twice the
  data and 66% reads three times the data.
o Fixed bug which could cause the thread that handles the client and server
  data to halt.
o Fixed auto reconnect to uplink server in the ICTalk server.
o Added field to ICTalk server connection statistics box to tell whether or
  not the server is connected to its uplink.
o Added a field to the ICTalk server connection statistics box to tell how
  many downlink servers have connected to your ICTalk server.
o Servers now notify all the clients and the other connected servers that they
  are being shutdown.  This will make a cleaner reconnect since the other
  clients and servers won't have to wait for a socket connection break which
  could take a few minutes.
o Added Off Hook feature to the popup menu that is available by right clicking
  on the connected people list.
o Now loads the status dialog box if it was opened the last time the program
  was shut down.
o Added option of having the notebook pages automaticly turn if a call is
  recieved, and answering machine message left, a file transfer initiated, or
  a new message in the text chat window.

v3.03

o Answering machine messages are now always recorded at 11025 sampling rate
  because some sound cards can not handle the 8000 sampling rate.
o Fixed hangup button on the waiting for answering machine greeting dialog.
o Video light on the ICTalk server now shows if the camera is enabled, but now
  does not reflect whether it is muted.
o The conversation input MLE will not export more than one line if it wraps
  around.
o Added file transfer resume feature.
o Fixed a bug in the function that waited for data to be available on a socket.
  This caused problems with people not being able to log in to the ICTalk
  server or hold conversations.
o Increased the linger time on a socket when being closed to allow for the data
  that needs to be transmitted to be send before the socket is closed.
o Fixed SYS3175 caused when attached to the ICTalk server because of an invalid
  language type index value from a login report packet.  ICTalk server and the
  InterCom client now check and correct this variable if it is invalid.
o Increased the font size in the text chat conversation window.

v 3.10

o Added a new multithreaded TCP/IP class which the send/recv thread now relies
  on.  This should improve the preformance some.
o Added top/bottom of notebook arrow buttons to the main dialog.
o Status bar now says if the copy of InterCom that is running is registered or
  not.
o Added call button to the ICPages search dialog so that you don't have to add
  the person to the phonebook before you can call them.
o ICPages search dialog is now independently floating so it can stay up once
  someone has been called etc.
o Added resizeable main dialog which also stretchs some of the pages in the
  notebook located in the center.
o Removed connection broken error message from the answering machine send/recv
  thread because this is caused by the people who called closing the program
  without hanging up.
o Fixed bug in the answering machine which would cause 100% CPU usage if the two
  minute connection timeout expired.
o Added private text messaging through the ICTalk server.
o Added voice activated recording support and retained the support for using
  the older style of recording buttons.
o Added support to send end packet in the audio stream when the recording senses
  a pause in the audio.
o Moved ICPages submenu to the action bar instead of having it under the
  InterCom submenu.
o Moved delete saved window pos and status option from the other submenu to
  the InterCom submenu.
o Removed the option for no compression on the audio.  There is no reason why
  loseless would not be used in place of none.
o Moved the option for CB Style record buttons from the system page to the
  audio page in the configuration notebook.
o Made sure that buttons were CB Style enabled/disabled probably when this
  option was changed in the configuration notebook.
o The connected people list now reflect in the connected people counter that
  there is one person on if you are the only one on the ICTalk server.
o Answering machine no longer automaticly hangs up after recieving one segment
  of audio.  This was needed because of the new VOX system and some of the
  options for the audio streaming.
o Option to have floating video windows instead of using the pages located in
  the main window's notebook.
o Added language filter to the right click popup menu for the ICTalk connected
  people list.
o Fixed the help on the ictalk login notify page of the configuration notebook.

v3.11

o Fixed bug where the sample rate packet would not get sent.  This would cause
  the audio to play really slow on the remote client.
o Integrated the phonebook editing, call blocking, and dialing in to one new
  dialog.
o Added comment field to the phonebook.
o Fixed bug with the mute not being reset on the VOX once a call ended.

v 3.12

o Fixed bug in the multimedia code when running under the Merlin beta 1.
o Fixed the busy/unregistered/language filtering.
o Added a reply button to the ICTalk private message received window.
o Added support for InterCom loading without multimedia hardware being present
  in the system.  This will allow for people to use it for just chat, file
  transfers, and video.
o Added cut/paste support to the text conversation window.

v 3.13

o Fixed the sample rate packet not being sent which caused slow play on the
  other end.
o Added icon to the system menu button.
o Floating video windows are now destroyed upon exit.  This keeps them from
  leaving zombie window entries in the Warp Center (part of merlin) task list.
o Fixed some memory leaks in the closing of the windows at exit and in the
  connection to the ICTalk server.

v3.14

o Created ICEcho server.  Allows for testing of audio, video, and text messages
  without having another InterCom client present.
o Added handling for unrecognized packets in the clients and servers to make
  sure that no memory could be leaked if a future packet was added that the
  client or server did not recognize.
o Fixed direct opening of a specific page in the configuration notebook.
o Fixed Zorder bug in the ICTalk private message window when reply was chosen.
o Floating video windows will now be created from the default size and position
  if they where minimized when the program exited.
o Created ICReport server.  Allows for the sending of bug reports, suggestions,
  and product ratings to the authors.
o The local video window will now disable a message stating the remote user
  does not want video if they are refusing it.
o The video windows in the main notebook now have message saying to see the
  floating video windows if the floating windows are enabled.
o Introduction image no longer takes up the entire screen.
o Fixed bug in the answering machine which caused the messages not to be saved.

v3.15

o Filter busy/unregistered is now only available from the right click menu
  for the connected people's list.
o Moved the ICTalk server controls to the bottom of the notebook page and
  widened the list so it takes up the entire width of the notebook page.
o Video windows now erase images or messages about refused video when the
  call is terminated.
o Added scrolling notice box to the ICTalk server page.
o Added persistant reconnect option to the ICTalk options.
o Added toggle on system page of the configuration notebook to allow choosing
  of whether the pages of in the main window's notebook will hide will offline.
o Now only one error message at a time can be displayed.  This will prevent
  multiple error messages from causing a sys3175.
o Added CPS and ETA feature to the file transfer page.
o The default file transfer block size is now 1024 instead of 512.
o Added simple text chat to the ICTalk server.  This provides a primitive type
  IRC chat.
o Fixed some problems related to the reading of the configuration and the forcing of 11025
  recording.
o Added support for configurable ring sounds using .WAV files.

