Version 4.34

Published by PC Micro Systems, Inc.
Thousand Oaks, California, USA
https://pcmicro.com


NetSerial Users Guide
Table of Contents

1..... Overview of NetSerial & Virtual COM Ports
2..... Installing the NetSerial Software
3..... Selecting Virtual COM ports
4..... Configuration Basics
5..... Configuring a Virtual COM port for Outbound
6..... Configuring a Virtual COM port for Inbound
7..... Configuring a Virtual COM port as a Virtual Modem
8..... Using a Virtual COM port for Inbound or Outbound
9..... Using a Virtual COM port as a Virtual Modem
10... Monitoring activity on the Virtual COM ports
11... User Credentials
12... SSL/TLS Encryption
13... Virtual Phone Books
14... Using Multiple Servers for Failover
15... Troubleshooting and Technical Notes
16... Request Technical Support
17... Update the License Key
18... Uninstalling the NetSerial Software

 




1.  Overview of NetSerial & Virtual COM Ports

NetSerial is software for Windows that creates virtual serial communication (COM) ports.

These Virtual COM ports appear as regular COM ports to PC application software. Up to 256 virtual COM port can be configured on one PC, and each can be uniquely configured to operate in one of the following modes:

  1. Outbound - Virtual COM port can automaticlly connect to a remote server over a TCP network. The connection is made as soon as the COM port is opened by an application. This allows PC application software to communicate with TCP based devices, including Serial Device Servers, Modem Servers, Telnet Servers, and a number of other devices. This allows serial communication programs to be used over a TCP local area network, wide area network, or over the the internet.
  2. Inbound - Virtual COM port can accept incoming TCP/IP connections, operating as a Telnet Server. This allows another PC running NetSerial to connect to it, creating a virtual serial cable between the two PC's.
  3. Virtual Modem - Virtual COM port can recognize Modem AT commands, which can be sent by the PC application software to 'Dial' an IP address, or to accept and answer incoming TCP/IP connections. This allows legacy modem based terminals and BBS software to be used over a network or the internet. Other common uses are for Compuserve TAPCIS or for the Stargate Home Controller.

All 3 modes can support either Raw TCP or the Telnet Protocol, and several telnet options can be uniquely configured for each COM port.

When operating in Mode 1 or Mode 2, NetSerial supports the COM Port Control extentions to the Telnet protocol, defined in RFC 2217. When both sides of the connection supports COM Port Control, this allows the PC application software to read the serial line status signals, and to change control settings of the remote COM ports, such as baud rate, line settings, and flow control. NetSerial is compaible with most serial device servers, and it is also compatible with the NetModem Server software which allows a PC to act as a Serial Device Server or a Modem Server.
.
When operating in Mode 3, The COM Port Control extentions are not used, because the remote connection is assumed to be a non-serial based TCP client or server.

NetSerial is a high performance kernel-level device driver, allowing the virtual COM ports to be used by PC Application software even without a user being logged into Windows. NetSerial uses a minimal amount of resources, and allows up to 256 virtual COM ports to be created, each configured independently of the other ports. NetSerial includes a monitoring utility to display COM port activity and trace level diagnostics.

The NetSerial Software was originally based on the NetModem Client software, which has been used by thousands of companies in 24x7 mission critical applications over many years. NetSerial is enhanced to support an even wider variaty of applications and serial devices.

Features:

  • Supports all popular versions of Windows, both 32-bit and 64-bit.
  • Runs as a Windows kernel-mode driver.
  • Supports Outbound, Inbound, and Virtual Modem modes.
  • Dynamic routing table creation.
  • Powerful client diagnostics allows application debugging.
  • Compatible with most communication applications for Windows or DOS.
  • Uses the TCP/IP Telnet protocol, with the RFC 2217 Telnet extentions
    for COM Port Control.
  • Includes SSL/TLS Encryption, using OpenSSL 1.1.1g and supports Intel's
    AES-NI hardware based Advanced Encryption Standard cipher.



2. Installing the NetSerial Software
Requirements:

Operating System Software:

  • Windows 10, 8, 7, Vista, XP, 2012/2008/2003 Server - both 32-bit and 64-bit (x64) editions.
    All editions are supported: Professional, Home, Premium, Ultimate, Workstation, Server, & Enterprise.
  • NetSerial also supports Windows Small Business Server, Terminal Server, Remote Desktop,
    Hyper-V, as well as Citrix XenApp, VMware, and Virtual PC environments.
Hardware:
  • PC equipped with an Intel Pentium compatible processor, single or multi core.
  • Network Card (configured to use the TCP/IP Protocol).
  • At least the minimum RAM recommended by Microsoft to run Windows.
  • At least 10 megabytes of free hard drive space.
  • Optionally, a serial device server, modem server, or telnet server located elsewhere on the network or the internet. If you wish you use a PC as a modem server (or serial device server), you should download and install the NetModem software, available at pcmicro.com

Before installing the NetSerial Software:

  • Make sure you are logged into Windows with Administrator privliges. This is not required if the PC's security policy is configured to allow "Privilege Elevation", which allows portions of the setup procedure to run at elevated privileges by a user that does not have Administrator privileges.
  • If you are performing an upgrade, exit any programs that are using virtual COM ports.

Run the NetSerial installer to begin the Installation Wizard. It will take you though the following steps:

  • Review the License Agreement and indicate whether you accept the terms or not. If you do not accept the terms, the software will not be installed.
  • Select the Destination Folder to install to. The default is c:\Program Files\NetSerial\
  • Review or change any settings, and Begin Installation.

The installation should only take a moment to finish. Once the installation completes, you will automatically be taken to the NetSerial"Select Ports" window shown below (if this is a first time installation).



3. Selecting virtual COM ports

NetSerial can create from 1 to as many as 256 virtual COM ports, which are each redirected by NetSerial to a remote server or client on the network (or over the internet). The first Step is to select which virtual COM ports you wish have the NetSerial create. When NetSerial is installed for the first time, it will automatically take you to the Select Ports dialog.


Virtual COM ports can be numbered from COM1 up to COM256.

You will only be able to select COM ports that don't already exist on the local PC.

Most applictions only require one COM port, but by creating several COM ports you can have each virtual COM port redirect to a different location, or they can be used to allow multiple incoming connections, depending which mode your virtual COM ports are configured for.

Some older communication applications only allow selecting a COM port between COM1 and COM4, inclusive. Therefore its usually best to select a virtual COM port numbered below COM5.

You can always change to a different virtual COM port, or add/remove virtual COM ports at a later time. This can be done by right clicking the NetSerial tray icon, and selecting "Configure" to get to the NetSerial Configuration window, and choose "Select Ports".

You can select or unselect a range of ports by clicking the first COM port, then hold down the Shift key as you click on the last COM port in the range, then click on either the Select Highlighted or Unselect Highlighted button.

The first time NetSerial is installed it starts at the Select Ports dialog, and after you select least one virtual COM port and clicked OK , it opens the NetSerial Configuration Window.

4. Configuration Basics

You can run the NetSerial Configuration by right clicking the NetSerial Tray Icon and selet Configure.
Or you can click Start > Programs > NetSerial > Configure.

The NetSerial Configuration window allows you manage the settings for each virtual COM port individually.
On the left side is a list of all the NetSerial virtual COM ports. To add or remove COM ports from this list, click the Select Ports button. Each COM port has its own set of Port Properties. You can click on any of the selected ports to see the port properties for that COM port.


The Port Mode can be one of the following:
Outbound
Inbound
Virtual Modem

User Credentials can be supplied if required by the server.


Encryption (SSL/TLS) is available in most countries, but is disabled by default when in evaluation mode.

The Connection Type can be one of the following:
Telnet
Telnet with CR padding
Raw TCP/IP

Choosing either of the Telnet types allows setting echo and binary handshaking options.



Connection Types:
NetSerial Supports 3 connection types:

  • Telnet - Uses the Telnet protocol, without carrage return padding
  • Telnet with CR Padding - Uses the Telnet protocol and pads carrage returns
  • Raw TCP/IP - Data stream is transfered without any changes

The connection type you select should match the connection type used by the remote site.

The Telnet protocol supports standard Telnet commands, and also supports COM Port Control extentions, allowing baud rates, flow control, and other line settings to be monitored/adjusted remotly. This is done by adding telnet codes to the outbound datastream and by filtering/processing received telnet codes found in the inbound datastream. When the Telnet session is established with the remote connection, NetSerial lets the other side know that it supports the COM Port Control telnet extentions, but if the other side refuses to support them then they are disabled. The telnet protocol allows adjusting Remote and Local character echoing, and also allows enabling binary transfers.

The Telnet with CR padding protocol specifies that all Carriage-Return characters (ASCII 13) which are sent without a Line-Feed character (ASCII 10) should be sent as "CR NUL" (ASCII 13 and ASCII 0). Selecting this
causes NetSerial to send a NUL character after any outbound Carriage-Return which is not directly followed by a Line-Feed character.

Raw TCP/IP ignores any telnet commands which appear in the data stream, and leaves all the data "as is".

When either Telnet opton is selected, some of these options will appear below it:

[  ] Request Remote Telnet Echo
[  ] Accept Local Telnet Echo
[X] Request Binary Connection

(The last one only appears when standard "Telnet" is selected.)

These options deal with how the Telnet protocol negotiates with the remote connection during the initial connection.

Request Remote Telnet Echo - This causes NetSerial to ask the remote connection to echo back any characters that are sent. Default=Disabled.

Accept Local Telnet Echo - This causes NetSerial to tell the remote connection that this end (the application software using the COM port) will agree to echo characters received back to the remote connection. Default=Disabled.

Request Binary Connection - This will cause NetSerial to ask the remote connection to transfer data in binary mode. Default=Enabled.


Port Modes:
NetSerial supports 3 port modes:

  • Outbound - Attempts to conect to another TCP IP address on the defined TCP port.
  • Inbound - Waits for an incoming TCP connection to occur on the defined TCP port.
  • Virtual Modem - Acts like a Modem, Allowing outbound "dialing", or inbound "answering".

The Outbound Mode allows NetSerial to act as a client, which connects to the defined Server IP address and TCP port each time the virtual COM port is opened, and data is redirected between the TCP connection and the COM port.

The Inbound mode allows NetSerial to act as a server, and accepts TCP connections when an inbound COM port is opened, and data is then redirected between the TCP connection and the COM port. A Firewall can be used to limit who is allowed to connect to this TCP port.

The Virtual Modem is used to fool application software into thinking that they are communicating with an analog modem, which recognizes modem AT commands such as ATD to dial an outgoing connection, or ATA to Answer an incoming connection. The Virtual Modem dial's the IP Address of a server. A Virtual Modem can also be configured to accept Inbound TCP connections, causing the appliation software to think it is recieving/answering a modem based phone call but it is actually answering a TCP connection.

The following 3 chapters describe how to configure these 3 Port modes.


5. Configuring a virtual COM port for Outbound


OutBound Mode
means the COM port will connect to a remote Server IP when the COM port is opened.

The Server IP Address (or its hostname) must be defined, as well as the TCP port to connect to.

The Test Server Connection
.button allows verifying thatt NetSerial is able to make the outbound connection..

User Credentials allows NetSerial to provide a username and password to device servers or modem servers which require user authentication.

Encryption allows using a secure connection to a remote device which supports encryption.

Connection type allows the following options:
Telnet
Telnet with CR padding.
Raw TCP/IP

In the above configuration, COM3 is set to Outbound Port Mode.
This allows the TCP Port and Server IP address to be defined, which is the address of the remote serial server which this COM port will connect to each time this COM port is opened by the local application software.

This configuration above shows that the User Credentials option is not currently enabled.
The User Credentials options are: None, Use Credentials Below, Windows Credentials, and Prompt at Login..
The default is None, which does not attempt to send a login or password to the serial server.
If the remote serial server is configured to require authentication, then the Credentials option in NetSerial should be set to either "Use Credentials Below" or "Use Windows Credentials". For more information see the User Credentials chapter.

The following COM port options are available in Outbound mode:
Set DSR High
Set CTS High
Set DCD High
DTR Emulation
Auto Reconnect

The DSR/CTS/DCD/DTR options are only used if the COM Port Control protocol is not available on the other end of the connection. They are explained below:

Set DSR High: This forces the Data Set Ready serial signal to always be on while there is an active connection. The signal is turned off when the connection is lost. Default=Enabled

Set CTS High: This forces the Clear To Send serial signal to always be on while there is an active connection. The signal is turned off when the connection is lost. Default=Enabled

Set DCD High: This forces the Data Carrier Detect serial signal to always be on while there is an active connection. The signal is turned off when the connection is lost. Default=Enabled

DTR Emulation: This causes NetSerial to force a remote modem to disconnect when the Data Terminal Ready signal is lowered by the application software. This should only be enabled if modems are connected to the remote serial server. Default=Disabled.

Auto Reconnect: This causes NetSerial to automaticly re-establish a connection to the remote server if the connection is closed by the remote server or by a failed network connection. Default=Disabled.

The following command buttons are found at the bottom of the NetSerial Configuration window:
Select Ports - Choose which NetSerial virtual COM ports should be created or removed.
Save - Saves the settings, and creates any new COM Ports that were added.
Close - Closes the NetSerial Configuration window, and saves changes.
Advanced - Allows configuring advanced options. See the Advanced options chapter for details.

Help - Displays this documentation.

Once you have assigned the correct Server IP address, TCP Port, and redirect method to each of the virtual COM ports, you should verify that each virtual COM port can communicate with the Serial Server by selecting the COM port, and clicking the Test Server Connection Button.

The Test Server Connection button will open a new window to display the results of the test. If everything is successful it will look like the picture on the right.

After NetSerial connects to the server, it checks to see if the server supports the Telnet protocol, and the RFC 2217 Telnet Protocol extention. Next it attempts to detect the name and version of the Server.

Finally it checks to see if the modem on the server responds to an "AT" Command. If a modem is available it should always respond.

When the test stops, you can click on "Start" to test the port again, or click "Close" to exit the test window.

If your virtual COM ports tested with similar results as above, then you have successfuly configured the COM port for outbound use..

If the result says "Connection Failed" then either the remote server is not accepting connections for some reason, or there is a firewall blocking access. See the Troubleshooting Chapter.

Once you have successfully configured the virtual COM ports which were created, and you Save or Close the NetSerial Configuration window. If you defined any Outbound mode ports, you will be provided with a reminder to install modem drivers which will guide you through the process.


6. Configuring a virtual COM port for Inbound


Inbound Mode
means that while this COM port is open, NetSerial accepts incoming connections on the defined TCP port, which are then redirected to the virtual COM port(s).

The Inbound TCP Port must be defined.

If multiple COM ports are configured for the same Inbound TCP port, then each incoming connection is passed to the next available COM port, starting with the lowest numbered COM port available.

User Credentials are only supported in Outbound mode.



The default "Telnet" connection type and telnet options are shown here.

The default "COM port options" are shown here.


The following COM port options are available in Inbound mode:
Set DSR High
Set CTS High
Set DCD High
DTR Emulation

These options are only used if the COM Port Control protocol is not available on the other end of the connection. The options are explained below:

Set DSR High: This forces the Data Set Ready serial signal to always be on while there is an active connection. The signal is turned off when the connection is lost. Default=Enabled

Set CTS High: This forces the Clear To Send serial signal to always be on while there is an active connection. The signal is turned off when the connection is lost. Default=Enabled

Set DCD High: This forces the Data Carrier Detect serial signal to always be on while there is an active connection. The signal is turned off when the connection is lost. Default=Enabled

DTR Emulation: This causes NetSerial to force a remote modem to disconnect when the Data Terminal Ready signal is lowered. This should only be enabled if modems are connected to the remote server. Default=Disabled.

The following command buttons are found at the bottom of the NetSerial Configuration window:
Select Ports - Choose which NetSerial virtual COM ports should be created or removed.
Save - Saves the settings, and creates any new COM Ports that were added.
Close - Closes the NetSerial Configuration window, and saves changes.
Advanced - Allows configuring advanced options. See the Advanced options chapter for details.
Help - Displays this documentation.

Note: When Using NetSerial to answer inbound calls coming into a Cisco router (or access server) with digial modems, see Chapter 15.5.



7. Configuring a virtual COM port as a Virtual Modem

The Virtual Modem fools application software into thinking there is a modem attached to the COM port.

The COM port will interpet AT modem commands as if a modem were attached to the COM port.

This allows the PC Application software to 'dial' an IP address and port by using an ATD command, passing the remote IP address and TCP port to connect to, rather then a phone number.

The Virtual Modem can optionally be configured to also accept inbound connections, which allows Modem Server applications (such as BBS software) to accept Telnet or Raw TCP connections as if it they are incoming modem calls.

The Virtual Phone Book option allows a set of pseudo phone numbes to be defined, and when the virtual modem is told to dial one of these number it will redirect to a matching IP address or hostname.

The following port options are available in Virtual Modem mode:

Inbound TCP Port: This is ignored unless "Accept Inbound Connection" is enabled.
It then defines which TCP port will accept TCP connections for this COM port.
Be sure to allow incoming traffic for this port in your firewall software.

Accept Inbound Conection: This allows Inbound connections to the defined Inbound TCP port. If More then one Virtual COM port is configured for the same TCP port, then the incoming connection will be routed to the first one of those ports which is not already in use. The Application Software will need to set the modem using AT commands to either enable either Auto-Answer mode or to manually answer an incoming RING.

Use Virtual Phone Book: This allows pseudo phone numbers to be "dialed" by the application software, which are translated to a hostname, domain name, or IP address to connect to by NetSerial.

The following command buttons are found at the bottom of the NetSerial Configuration window:
Select Ports - Choose which NetSerial virtual COM ports should be created or removed.
Save - Saves the settings, and creates any new COM Ports that were added.
Close - Closes the NetSerial Configuration window, and saves changes.
Advanced - Select the close port delay, and choose to see a pop-up message if a port is not available.
Help - Displays this documentation.





8. Using a Virtual COM port for Inbound or Outbound Modes

Once you have configured a Virtual COM port for inbound or Outbound mode, you can use it by simply selecting to use that COM port number from within your application software.

The COM port used by an application is generally defined in the "settings" or "configurations" section of the application software.

Select one of the NetSerial virtual COM ports that you have configured.

Your application software can now use this COM port as if it was talking to a local COM port.

When using NetSerial virtual COM ports, you can open the NetSerial Monitor to see the real-time Status of each Virtual COM port, such as current baud rate, connection state, and what IP address it is connected to.

From the NetSerial Monitor, you can also click the Trace tab to see a detailed real-time trace log of COM port commands and data passed to and from the remote serial server.





9. Using A Virtual COM port in Virtual Modem Mode

NetSerial Virtual Modems can be configured to allow outbound and inbound connections.
There are several considerations to keep in mind when doing either.

Outbound Connections via a Virtual Modem

NetSerial's Virtual Modem allows you to connect to a remote system by telling your communication software to "Dial" the IP address of the remote system you wish to connect to, rather then a phone number.

In some cases you can specify a hostname instead of an IP address, but often this will not work because communication programs usually don't expect a phone number to contain non-numeric values.


To make an Outbound Connection via a Virtual Modem, the following must be done:

  • The NetSerial software must be properly configured to create one or more COM ports defined as a Virtual Modem on your PC.

  • Your application software must be properly configured to use one of NetSerial's Virtual Modems. It must also be configured to use a "Phone Number" that the Virtual Modem will be told to "Dial".
    Instead of actually dialing a phone number, NetSerial will connect to a TCP/IP address and port instead.

  • The IP address you are connecting to must be reachable over your network before the Virtual Modem can be used. If you need to connect to the internet via a Dial-Up Networking connection to reach the outbound connection, then complete DUN connection to your ISP before using using the Virtual Modem.

  • In most cases, you will need to know both the IP address and TCP port that you wish to connect to.
    Some application software will allow you to use a hostname instead of an IP address, but most applications will fail to pass the hostname properly after sending the ATD command to the Virtual Modem. Therefore it is best to provide the IP Address, rather then a hostname of the destination.

Some application software will only allow digits to be passed in a "Dial" command, so other characters such as the periods found in an IP Address would be stripped out. To avoid such issues, the recomended method is to define the IP address in a 12-digit format which can be passed unaltered to NetSerials Virtual Modem from the application software.

The 12-digit IP format

A standard IP address consists of 4 numbers each between 0-255, so they are each up to 3 digits long.

To convert to the 12-digit format, pad each of the 4 numbers with leading zeros as needed so that each of the numbers is exactly 3 digits long. Then remove the periods between the numbers, so that only the 12 digit number remains.

Examples:

  • The IP address "111.22.3.4" converts to these 12 digits: "111022003004"

  • The IP address "192.168.0.1" converts to these 12 digits: "192168000001"

IP addresses converted to the 12-digit format look like phone number to the application software, and are converted back to the IP address by NetSeral when it is told to "Dial" the number.

The 17-digit IP format

NetSerial's Virtual Modems connect to the telnet port (TCP port 23) by default, but the application software can specify an alternative TCP port to connect to by adding 5 more digits to the 12-digit format, for a total of 17 digits alltogether. The last 5 digits represent the TCP port to connect to, which also needs to be padded with leading zeros so thatit is exactly 5 digits.

Examples:

  • The IP address "111.22.3.4" with TCP port 24 converts to these 17 digits: "11102200300400024"

  • The IP address "192.168.0.1" with TCP port 6000 converts to these 17 digits: "19216800000106000"

Other formats

The following formats are not recomended, because they are not supported by all application software:

  • Standard IP Address. Example: 111.22.3.4
  • Hostname or DNS name. Example: domain.com

Either of these methods will default to using TCP port 23 (the Telnet port), unless another TCP port is specified. This can be done by adding a colen followed by the TCP port number to the end of the IP or hostname. For example to connect to TCP port 1000 you could use 1.2.3.4:1000 or domain.com:1000.

Inbound Connections via a Virtual Modem

NetSerial's Virtual Modems can be optionally be configured to allow inbound connections.

To allow Inbound Connection via a Virtual Modem, the following must be done:

  • The NetSerial software must be properly configured to create one or more COM ports defined as a Virtual Modem on your PC, and configured to accept incoming connections to these COM ports on a specified TCP port.

  • Your application software must be properly configured to use one of NetSerial's Virtual Modems. It must also be configured to answer incoming calls.

  • The remote site that is connecting to your PC must be able to reach your IP on the defined incoming TCP port over the network or internet. If you are running a firewall it must be configured to allow inbound connections on the specified TCP port.

If the application is a BBS software operating with NetSerial performing as a telnet server, the following settings are suggested:

Connection type: Telnet
[  ] Request Remote Telnet Echo
[X] Accept Local Telnet Echo
[X] Request Binary Connection
Port Mode: Virtual Modem
Inbound TCP Port: 23
[X] Accept inbound connections

The suggested BBS Init string is AT&D2
This forces the virtual modem to disconnect when the BBS software lowers the DTR line.

Note: If DOS based BBS software is used, only COM1 thru COM4 can be used, unless the software supports a FOSSIL driver and a Win32 FOSSIL driver such as NetFoss is used.



10. Monitoring Activity on the Virtual COM ports

You can display the NetSerial Monitor Status screen by right clicking the NetSerial system tray icon and selecting Status.

Each Virtual COM port created by NetSerial is Listed under "Ports" in the Status screen.
When a COM port is open, its Baud, State, and IP Address fields will appear.
Once a COM port is closed, these fields are removed a few seconds later.

Baud: The number of times per second that an RS-232 serial signal can change on this port.
            Common values are 300, 1200, 2400, 9600, 19200, 38400, 56700, 115200, and 230400.


State: The number of Data Bits, Parity Type, and number of Stop Bits the port is configured for.
            (I.E.: the above "8,N,1" means 8 Data Bits, No Parity, and 1 Stop Bit.)

IP Address: The IP Address of the NetSerial Server PC which this COM port is redirecting to.

Encryption: When Encryption is enabled on an open COM port, the Encryption field will display the current Encryption Cipher.


The following buttons are usually available are on the right:

Configure: Opens the NetSerial Configuration Window. (This button may be removed by the Administrator to prevent users from making changes to the configuration).

Help: Opens the Users Guide.

About: Displays the copyright and contact information.

You can monitor the Data Flow occurring on all of the Virtual COM ports by selecting the Trace Tab in the NetSerial Monitor.

The trace Window normally only displays messages when virtual COM ports are created or removed, or the virtual serial port driver is restarted.

When you select the Enable Trace checkbox, you are shown the serial data moving to and from the client and server along with the timestamp and name of the COM port. You can also enabled the Hex Display checkbox to show the data in hexadecimal numeric format instead of the default ASCII code format, and you can enable Auto Scroll checkbox to have the window scroll as more data is logged.

Enabling the Trace can be a valuable tool for troubleshooting misconfigured application software.
Trace should normally be left disabled, as enabling it will cause a slight decrease in the performance and will increase the amount of RAM used.

There are three color codes used in the trace data:

  • Control Information
    Black text preceded with a "|" is Control Information, such as a changing Status Line, Baud Rate, or State setting, or when a COM port is opened or closed.
     
  • Transmit Data
    Blue text preceded with a "»"is data transmitted over the COM port by the application software. This can be viewed in either ASCII code format, or Hexidecimal numeric format.

  • Receive Data
    Red text preceded with a "«" is data received over the COM port by the application software. This can be viewed in either ASCII code format, or Hexadecimal numeric format.

There are four buttons used to control the trace log:

Clear: Erases the entire log from the window.

Save Log: Saves the log file in either ASCII format (.log) or binary format (.trc)

Open Log: Opens a binary format (.trc) trace file that was previously saved.

Trace Options: The following Trace Options are available:


Select Ports to Trace: Allows limiting the number of COM ports that will be traced. For applications using a large number of COM ports, this option can lower the system overhead required for tracing.

Select Ports to Display: Allows limiting the number of COM ports whos data is displayed in the trace window, to specific ports that are being traced. For applications using a large number of COM ports, this allows focusing on specific ports among all the COM ports being traced.

Select trace buffer memory size: Allows choosing the amount of RAM used for tracing. Options are Normal and Large. Normal uses 512KB of RAM, and Large uses 10MB of RAM.

Send trace data to system debug channel: By enabling this option, all trace data is also sent to the system debug channel. This data can be collected using third party applications such as DebugView. An optional prefix can be defined, which is added to the beginning of each event line.

DebugView is an application that lets you monitor debug output on your local system, or any computer on the network that you can reach via TCP/IP. DebugView is a free product from Sysinterrnals, which can be downloaded here: http://www.microsoft.com/technet/sysinternals/miscellaneous/debugview.mspx

DebugView can be used to send the Trace Log data directly to a file by using the File > Log to File command. Otherwise, DebugView defaults to filling its buffer with the Trace data which can be saved to a file manually by using the File >Save as command.

DebugView can include the Timestamp of each event that is logged by enabling the Options > Show Time option.




11. User Credentials

Credentials are a username and password which can be provided when connecting to a remote server in Outbound mode.
You can configure Netserial to provide credentials from the NetSerial Configuration window, which you can open by right clicking the NetSerial Tray icon and select Configure.

The NetSerial Configuration Window allows you setting different credential settings for each outbound Virtual COM port you have defined.

The following Credential options are available
None
Use Credentials Below
Use Windows Credentials
Prompt at Login


By default Credentials are disabled. When you enable the "Use Credentials" checkbox, the pulldown menu is enabled, allowing you to choose one of the options listed above.

Use Credentials Below will provide the remote server with a specific login and password each time a virtual COM port is opened. When you select this option, the Username and Password fields below this should be filled in.

Use Windows Credentials will provide the remote server with the username and password that was used to login to Windows, each time the COM port is opened..

Once you have enabled one of the Credential options in the NetSerial Configuration, you should run the "Test Server Connection" to make sure that the security handshaking between the client and server are sucessful.




12. SSL/TLS Encryption

12.1 Encryption overview

The SSL/TLS Encryption option allows the data passed between the NetSerial and the remote connection to remain secure, even when used over an insecure network such as the internet. The remote connection must also support SSL/TLS encryption and be configured with compatible encryption settings. 

NetSerial supports both the older SSL version 3 and the more advanced TLS version 1.x cryptography protocols. The latest TLS 1.2 proto is recommended for maximum seciurity.

Both SSL and TLS protocols support several different encryption algorithems (which are known as Ciphers), and each cipher supports several key lengths (which are known as Encryption Strengths).

NetSerial supports the following common ciphers: RC4,  3DES, Camellia, ChaCha20 and AES.
AES (Advanced Encryption Standard) and ChaCha20 are  the recommended ciphers.

When AES is selected, NetSerial will automaticlly use the hardware based AES-NI when an Intel 2010 family CPU is detected (Intel 32nm microarchitecture CPU's including Core i5, and i7). Intel's AES-NI provides up to 12 times the encryption speed of software based AES, while lowering CPU overhead.

Multiple encryption strengths are available for each cipher, which range from 56 bits to 256 bits depending on the cipher.

When Encryption is enabled, both sides can be configured to request an SSL Certificate from the other side, which is used to validate the remote connections identity by confirming that the certificate was issued and signed by a Certificate Authority (known as a CA). A built-in list of CA's (exported from Internet Explorer), is included with NetSerial, or a custom list of CA's can be used instead. NetSerial also allows an unsigned/selfsigned cerficate to be used.

A Sample unsigned certificate is included with NetSerial, named Sample.pem. This is useful in the testing phase, but it should not be used in a production environment since it uses a known password "password".

When creating your own certificate, be sure to use an RSA private key length of at least 1024 bits. Older versions of OpenSSL defaulted to using RSA private key lengths of 512 bits, which is no longer considered secure.

12.2 Enabling Encryption

For SSL/TLS encryption to be used, both NetSerial and the remote connection must both be configured to enable encryption and to negotiate a common protocol, cipher, and cipher strength. An SSL certificate must be provided by the server side of the connection, and can optionally be provided by the client side as well.

  1. Ensure that NetSerial has a license key which supports the SSL/TLS Encryption option.
    If you are evaluating NetSerial you can request a key from your account manager. Once an SSL/TLS encryption enabled key is entered. Run the NetSerial Configuration program, click on the "Advanced" button, and, the "SSL Encryption" Tab will appear at the top of the Advanced Window.


  2. Open the NetSerial Configuration window, and from the Encryption pull-down menu select one of the following::
      TLSv1 or SSLv3
      TLSv1 only
      SSLv3 only




    It is best to select the "TSLv1 or SSLv3" option, as this allows the remote connection to choose which will be used.


  1. Click the Advanced button, and from the Advanced window click on the SSL Encryption tab.



  2. Select the Minumum / Maximum Encryption Strengths and the Encryption Ciphers that NetSerial will offer to negotiate with the remote connection. You will need to have at least one Cipher selected which the remote connection is also configured to to allow.

  3. If NetSerial is being used as a Server rather then a Client (using either Inbound mode, or using Virtual Modems configured for inbound use) then NetSerial must be configured to supply a certificate to the remote connection.

    If NetSerial is being used as a Client (using either outbound mode, or Virtual Modems that make outbound connections) then supplying a certificate to the Server is only needed if the Server requires a certificate.

    To supply a certificate, enable the checkbox named Supply Certificate to remote connection, And specify the certificate file and certificate password to be used by clicking the Choose File button to select your Certificate .PEM file and then click the Change Certificate Password button to enter the password that was used to create the certificate. The password for the sample.pem certificate is "password". Note: The sample.pem certificate provided with NetSerial should only be used for testing, since any publicly distributed certificate with a known password can not be considered secure.

  4. If you wish to confirm the identity of the certificate provided to NetSerial by the remote connection, enable the "Require Validated Certificate" checkbox, and optionally enter the Common name (usually a domain name), and/or the Organization (Usually the company name) of the certificate you are expecting to be provided. You can use the %C macro in the Common Name field which is replaced with the server IP address or hostname of the current COM port.

    If the certificate being provided by the remote connection is not signed by a Certificate Authority then you will need to select "Do not require certificate to be signed". The sample.pem certificate included with NetSerial is not signed. Otherwise you should select to use either the built-in certificate authority file, or provide a custom certificate authority file. Review the CA.pem file to for information on creating a custom CA file.

  5. Click the OK button to close the Advanced window.

  6. If NetSerial is configured for Outbound mode, you can click the Test Server Connection button to verify that the Encryption options you specified are compatible with the settings defined on the remote Server.
    If there are any encryption issues found by the test, it will ask you if you wish to fix the problems. Answering yes will change the local encryption options to match what the server requires. If this is done, be sure to review the Advanced SSL Encryption settings afterwards to see what settings have been changed.

  7. Once the test is sucessful, be sure to click the "Save" button in the main NetSerial Configuration window.

You can see which Encryption Cipher is being used by each active COM port in the NetSerial Monitor Status Window.

Note: Changes made to the NeSerial Configuration change affects subsequent sessions. Current sessions are not affected.

 




13. Virtual Phone Books

Virtual Phone books allows the administrator to assign pseudo phone numbers to clients, which are translated to the actual hostname and TCP port when the NetSerial Virtual Modem is told to dial a phone number. This allows hostnames (resolvable by a DNS server) to be used instead of hardcoded IP addresses, which eliminates the need to update the application software phone number settings when a server IP address changes.

A unique Virtual Phone book can be assigned to each Virtual Modem, or you can choose to use the same Phone book for all Virtual Modems.

Viewing or Editing a Virtual Phone Book:

From the NetSerial Configuration screen, select a COM port , and click the "View/Edit Virtual Phone Book" button near the bottom.




Virtual Phone Books are lists containing Virtual Phone ID's and the hostname or IP Address and optionally the TCP port they will be translated to.

A separate Virtual Phone Book can be assigned to Virtual Modem, or multiple Virtual Modems can share a common Virtual Phone Book.

Each Virtual Phone book is stored in a flat text file, defined in the "Phone Book Location" field..

When the "Use Virtual Phone Book" checkbox is enabled on a Virtual Modem, this configures NetSerial to process ATD dial commands by translating a dialed Phone Number to a hostname or IP address. A TCP port can optionally be included in the translation as well.

In the above image, there are two virtual phone numbers defined. If the dialed phone number begins with either of these phone numbers, NetSerial will translate it to the defined hostname and TCP port.

The dialed phone number is compared starting at the first numeric digit after the ATD command, and ending prior to a space, comma, colen, or Carrage Return character.
If a dialed number does not begin with a digit, or contains a dotted ip address, then the translation is not performed.

The remote Computer name can contain letters, digits, dash or period characters.

The remote TCP port can be left blank (which defaults to TCP Port 23 the dialed phone number does not include a colen followed by the TCP port value), or it can contain a value up to 99999.




14. Using Multiple Servers for Failover

If you have multiple device servers or modem servers installed, you can allow NetSerial to maintain a list of servers to attempt to connect to each time a Virtual COM port is opened. If the first server on the list is either full or unreachable for any reason, the client tries the next Server on the list.

The Client Configuration Screen looks different when Use Multiple Server failover is enabled. The usual input fields for IP Address, Port, and Pool are replaced with the Server List options. These allow you to choose from several different lists of servers, and will allow you to edit any one of those lists.

Up to 20 Server Lists can be defined, and each server list allows up to 5 Servers to be specified.




In the Edit Server List you can defined up to 5 servers to be specified, in the order you want the client to connect to.

A Server list needs at least two servers defined. Each Server entry must have the IP Address (or hostname) of the Server, and the TCP Port. A Pool Name is optional, if no Pool Name is defined, the default pool will be accessed.

When an application opens a COM port that is configured to use multiple servers, NetModem Client first attempts to connect to the first server on the list. If that server is either full or unreachable, the client attempts to connect to the next server on the list. This continues until a server with an available modem is reached, or until all the servers have failed.

Each Server List is stored in an ASCII text file in the NetSerial folder, allowing lists to be pre-installed by the administrator. The list files are named as serverX.txt, where X= the list number.

When using multiple servers, you can fine tune how long NetSerial waits for each server to respond when the Client requests a COM port from a server. By default it waits up to 3 seconds for the server to respond, and if there is no response then it switches to the next server in the list. The settings can be found under the "Advanced" button in the NetSerial Configuration window. The value is in milliseconds (1/1000th of a second), so the default value of 3000 = 3 seconds maximum. On a slow Network you might need to increase this value, and on a Network in which Several Failover Servers are defined, you might need to decrease the value in order to speed up the search.

 



15. Troubleshooting and Technical Notes


15.1..... If Outbound Mode connections fail
15.2..... If Inbound Mode connections fail
15.3..... If Virtual Modem connections fail
15.4..... Advanced Configuration Options
15.5..... How to answer calls though a Cisco router with digital modems
15.6..... Preventing accidental configuration changes
15.7..... Configuring a Firewall to work with NetSerial
15.8..... NetSerial support for DOS applications
15.9..... NetSerial under Terminal Services, Remote Desktop or Citrix XenApp

15.10... Virtual Modem AT Command List
15.11... Virtual Modem S-Register List
15.12... Virtual Modem Result Codes


15.1. If Outbound Mode connections fail.

First run the NetSerial Configuration and check that the virtual COM port being used has the correct IP address (or hostname) and TCP port defined for the remote server.

Next run the "Test Server Connection" in the NetSerial Configuration. This is an simple way of determining if NetSerial is able to connect to the remote server.





If the Server Connection Test fails to connect, it indicates that either the server is not accepting incoming connections from the NetSerial PC or there is a network/firewall issue blocking the connection. You can confirm this using telnet.exe from the NetSerial PC by opening a Command Prompt and typing in the following command line and pressing [Enter] :
telnet 192.168.0.1 23
(replace 192.168.0.1 with the IP address of the server, and replace 23 with the TCP port to connect to)
If the telnet connection is sucessful, the screen will be cleared to all black, and the remote server may or may not display some text or prompts afterwards. Otherwise Telnet.exe will display an error message such as
"Could not open connection". If telnet.exe fails to connect to the remote server, then NetSerial will also fail to connect.

If The Server Connection Test sucessfully connects, yet your application software is still not functioning properly you should create a trace log to determine the cause.
Review the Monitoring Activity on the Virtual COM ports chapter for further information.



15.2. If Inbound Mode Connections Fail.

Take the following steps to determine why an Inbound Mode connection fails.

  1. Open the NetSerial Monitor and view the Status tab to verify that the virtual COM port has been opened by your application software.



    If the COM ports Baud and State fields in the below image are empty then the COM port is not open. In the above example COM4 is open and has received a connection, and COM5 is closed. If a COM port is closed then NetSerial can not accept incoming connections for this COM port.

  2. Check if you are able to connect to the TCP port locally using telnet.exe from the same computer which NetSerial is installed on. Do this by opening a Command Prompt (Click on Start > Accessories > Command Prompt) and type in the following command line and press [Enter]:
    telnet localhost 23
    (Replace 23 with the actual TCP port number you defined in the NetSerial Configuration)
    If the connection is sucessful, the NetSerial Status monitor will show the IP address 127.0.0.1 (which means it's a localhost connection).

  3. If you connected sucessfully using telnet.exe from the local computer, then try the same test from a remote computer (perferably the remote computer you will be using to connect to NetSerial from), but use the IP Address of the Netserial PC instead of using the word localhost. For example:
    telnet 192.168.0.1 23
    If the telnet test fails remotely, but connected sucessfully during the local test, then the cause is either a firewall setting or a network issue. Review the Firewall Configuration Chapter for assistance.

  4. If you connected sucesfully using telnet.exe from the remote computer, then any other application on this remote computer should also be able to connect to NetSerial. To further diagnose the cause you will need to create a trace log of a failed session. Review the Monitoring Activity on the Virtual COM ports chapter for information on creating a trace log.



15.3. If Virtual Modem Connections Fail.

Virtual Modem Mode can support both inbound and outbound connections.

If an Inbound Virtual Modem connection fails, check the following:

  • If you are running a firewall, it needs to be configured to allow inbound access.

  • The COM port configured for "Virtual Modem" mode must have the "Accept Inbound connections" option checkmarked, and must also have the the Inbound TCP Port field defined.

  • The Application software must open the COM port and send one of the following modem commands to:allow the Virtual Modem to accept an incoming connection.
    ATS0={any non-zero value}   This command enables auto-answer mode.
    ATA                                              This forces the Virtual Modem to manually answer an incoming call.

You can confirm that your appliaction software sends one of these modem commands to the Virtual Modem by creating a trace log of a failed session. Review the Monitoring Activity on the Virtual COM ports chapter for information on creating a trace log.

If an Outbound Virtual Modem connection fails, check the following:

  • The Application software must open the COM port and send a Dial command to the Virtual Modem's COM port in order to establish an outbound connection. A Dial command contains the letters ATD followed by either a hostname or a properly formatted IP address and tcp port.

  • The NetSerial PC must be able to reach the remote IP address and tcp port.

You can confirm that your application software sends a Dial command by creating a trace log of a failed session. Review the Monitoring Activity on the Virtual COM ports chapter for information on creating a trace log. Review the Using a Virtual COM port as a Virtual Modem chapter for information on proper IP address formats.

You can confirm that the NetSerial PC can reach the remote IP address by using the telnet.exe tool, as described in the If Outbound Mode connections fail chapter.




15.4. Advanced configuration options


To access the NetSerial advanced configuration options, click on the Advanced button from the NetSerial Configuration screen.

The following options are found under the Options tab:

  • Delay closing COM port for [7500] ms.

When this option is enabled, it causes NetSerial to remain connected to the server for the specified amount of time in milliseconds that begins when the virtual COM port is closed by the application. This ensures that the modem or other remote device is not assigned to another client while a client application closes and reopens the virtual COM port, and ensures that an active connection is not lost if one application or process hands off a COM port to another one.

By default this option is Enabled, with a value of 7500 ms. (7.5 seconds).

  • Show message if port not available

When this option is enabled, NetSerial will display a pop-up message when an application attempts to open a NetSerial Virtual COM port and Server is unable to provide access to the remote device. The pop-up message displayed to the client user says "Server reports COM port not available"..

By default this option is Enabled.

  • Update Routing Table if needed

When this option is enabled, NetSerial will add a direct route to the server when a virtual COM port is opened, if the server is not on the same subnet as the NetSerialt PC and there is not already a direct route defined. Once the virtual COM port is closed, the added route will then be removed. The reason for adding a direct route, is that some PPP applications such as Windows Dial-Up Networking will change the computer's default route in the IP routing table when they have established a connection to the remote network. Once this change is made, the NetSerialPC will no longer have a route to the server PC if the two PC's are not on the same subnet. Without a valid route, the client will lose its connection to the Server.

Some third-party VPN software will not permit changes to the routing table. If the NetSerial PC is connected to a remote modem on a Server PC through a VPN, this option may need to be disabled. In such a case, the VPN users would be unable to use NetSerial to establish a dial-up networking connection.

By default this option is Enabled.

  • Maximum time to wait for a Failover Server

When this option is enabled, and the NetSerial virtual COM port (Outbound mode) is configured to use Multiple Server Failover this option will limit the time that NetSerial waits for each server to respond before it gives up and attempts to connect to the next server in the failover list.

By default this option is Enabled, with a value of 3000 milliseconds (3 seconds).

  • Synchronize with server during COM port open

When this option is enabled, each time an application requests to open a virtual COM port, the
COM port open request is not completed until the following events occur between the client and server:

1. The TCP connection to the server is established.
2. The SSL/TLS encryption negotiation is established (if encryption is used).
3. The COM Port Control protocol is negotiated.
4. The user authentication is sucessful (if security is used).
Some applications may require that the COM port open function will synchronize with the server by waiting until the server provides the modem before returning a sucess status, or returning a fail status otherwise.

By default this option is Enabled.




15.5. How to answer calls through a Cisco router with digital modems

Cisco routers and access servers with digital modems (such as the AS5xxx series, and 2800/3800 series with PVDM) are not able to accept incoming calls while there is a reverse-telnet session to the modem. This means that NetSerial can not use the Outbound mode to allow dial-in connections to reach the NetSerial PC.

Instead, you must configure a NetSerial virtual COM port for Virtual Modem mode. Virtual Modem mode won't let you make outbound calls to a Cisco, so you can configure a seperate virtual COM port for Outbound mode in order to also do that.

Configuring the Cisco device

The Cisco device must be configured to make a TCP/IP connection to the NetSerial PC when the incoming call is received by a specific modem. In our example, the IP address of the NetSerial PC is 192.168.0.10 and the TCP port number is 6000. The IOS configuration for the Cisco device to allow this on line 1 is:
autocommand telnet 192.168.0.10 6000 /stream

Here is how the IOS Line Configuration would look:

line 1
modem inout
transport input telnet
modem autoconfigure type mica
autocommand telnet 192.168.0.10 6000 /stream
escape-character NONE (this line is only needed for an AS5350 / AS5400)

line 2 47
modem inout
transport input telnet
modem autoconfigure type mica
rotary 1
escape-character NONE (this line is only needed for an AS5300 / AS5400)

For each additional incoming phone line that you wish to redirect to a NetSerial Virtual Modem, another "autocommand telnet" line will need to be added in the Cisco IOS configuration.

Configuring the NetSerial Virtual Modem

The PC with the IP address used above (192.168.0.10) will need to have NetSerial installed and have a Virtual COM port configured for "Virtual Modem" mode, and the NetSerial Modem driver will need to be installed on the virtual Modem(s) that you create with NetSerial.

In the NetSerial Configuration, you will want to set the virtual COM port for the following settings:
Port Mode: Virtual Modem
[x] Accept incoming connection
TCP Port: 6000
Connection Type: Telnet

This will allow the application software installed on the PC to use the NetSerial Modem driver (which is connected to the NetSerial virtual modem's COM port), to receive an incoming call from the Cisco device.




15.6. Preventing accidental client configuration changes.

If an Administrator is concerned about the possibility of a client user misconfiguring the virtual com port settings, there are two ways they can prevent the user from making changes to the Client configuration:

  1. The user can be given a limited account type in Windows. This is done from the "User Accounts" option in the Windows control panel.

  2. If the user requires an Administrator account, then the configure.exe file can simply be removed from the NetSerial folder. This is usually located in c:\program files\NetSerial\
    This will also prevent the configure option from appearing in the system tray menu or on the NetSerial Monitor window.



15.7. Configuring a Firewall to work with NetSerial

If a firewall is being used on your network, and NetSerial needs to accept incoming connections (Inbound mode, or Virtual Modem mode allowing Inbound) then you need to configure your firewall to allow the incoming connections.

This is done by permitting network traffic on the specific TCP port(s) configured in NetSerial (TCP port 23 by default).

Some software firewalls (for example the Windows XP Firewall) can be configured to allow incoming connections to a particular application specifically. This feature will not work if the application is a Windows Service (such as NetSerial is). Instead, you will need to allow incoming connections on a specific TCP port.

How to configure the Windows XP Firewall to allow incoming connections to NetSerial:
(This Firewall is only included with Windows XP Service Pack 2 or later)

  1. From the Windows Control Panel, select the Security Center icon.

  2. Select the Windows Firewall link under "Manage security settings".

  3. Select the Exceptions Tab.

  4. To allow incoming connections only on the the TCP port used by NetSerial:

    • Select Add Port
    • Type in the application Name (ie: NetSerial)
    • Type in the Port number NetSerial uses (usually 23).
    • Leave the TCP option selected (not UDP).
    • Optionally you can select Change Scope to limit where the clients can connect from.
    • Select OK

NetSerial never accepts connections on any TCP port other then the ones defined for each Inbound virtual COM port, and each Virtual Modem configured to accept inbound connections. Only a single TCP connection is used to carry both data and control information between each virtual COM port and the remote location.

Windows XP Firewall only blocks incoming connections, so it does not need to be configured to allow NetSerial to make outbound connections. If there is other firewall software installed on the NetSerial PC's which block outgoing connections, it should be be configured to allow the NetSerial COM ports to reach the outbound destinations.

 

15.8. NetSerial Support for DOS applications


NetSerial is compatible with Windows applications and also DOS applications running under Windows.
Generally a DOS application which uses a COM port will do so by accessing the serial port hardware directly. This hardware is called a UART, which stands for Universal Asynchronous Receiver-Transmitter.

32-bit versions of Windows include a subsytstem to run DOS applications known as the NTVDM, which stands for NT Virtual DOS Machine. The NTVDM monitors the standard UART I/O ports for activity by DOS applications on COM1, COM2, COM3, and COM4. The NTVDM redirects any activity on these ports to the Windows COM port of the same name. For this reason, DOS applications can only be used with NetSerial on COM1-COM4 (Unless a Windows based FOSSIL driver is used and your DOS application supports this).

Some DOS applications allow you to configure the UART settings for the COM ports. The NTVDM only works with the standard UART settings shown below:

Serial Port Base Address Interupt
COM1 3F8 IRQ4
COM2 2F8 IRQ3
COM3 3E8 IRQ4
COM4 2E8 IRQ3

While most DOS applications communicate with a COM port directly through the UART, there are a few DOS applications that can communicate by using the PC's BIOS Interrupt 14h or an enhanced version of the Interrupt 14h interface called a FOSSIL driver. If your DOS application says that it is compatible with Interrupt 14h or a FOSSIL, then you can install a third-party driver called ADF which will enhance performance of your DOS communication software. ADF is a free program which can be downloaded from: http://digsys.se/adf.html

An example command line to load ADF on COM4 would be:
ADF.exe COM4 2E8 3 57600 4096 1024

This should be loaded in the same DOS window that your DOS application is started from afterwards, which can be easily done in a batch file. For more information on ADF, please refer to the ADF documentation.

ADF is a DOS based FOSSIL driver, so it is limited to only working on COM1 thru COM4. There are some Windows based FOSSIL drivers available (such as WinFossil, NTFos, INT14) which can be used to support up to 256 COM ports.

 

15.9. Using NetSerial under Terminal Services or Citrix XenApp.

Windows Terminal Services and Citrix XenApp are both multi-user environments which can be used with NetSerial. When using either of these to allow "Thin-Clients" to access the Virtual COM Ports, you should use the following procedure:

  1. Install the NetSerial on the Terminal Server or Citrix XenApp PC.

  2. Select 1 virtual COM port in the NetSerial configuration, and configure this port as needed. For example if this is an Outbound Mode port you should assign the IP address and TCP port of the remote server.

  3. Next select as many additional Virtual COM ports as needed. (Usually you will want to select one virtual COM port for each thin-client user). Up to 256 Virtual COM port can be selected. All the additional virtual COM ports will default to using the same configuration settings as you assigned in step 2..

  4. When you click either the Save or the Close button, all the virtual COM ports you selected are created, and you will be guided to install a modem driver. If your application software does not require a modem driver you can skip this step. If you do install a modem driver, you will save time by selecting all the COM ports you created to have the modem driver installed to all of them.

  5. Assign one of the virtual COM ports to each thin-client user. Just like a real hardware COM port, each virtual COM port my only be opened by one user/application at any given time. Therefore a unique virtual COM port should be created for each user.

  6. Under the Advanced options in the NetSerial configuration, disable the "show message if COM port not available" checkbox, as otherwise these messages would be sent to every terminal services user.. If no COM port is available on the remote server, the thin client will be informed by an error message in their application software attempting to use a COM port.


Remapping COM ports in Windows Server 2003 / 2008 / 2012

Windows Server 2003 and 2008 (all versions except the Web Edition) includes a command line utility called change.exe which can map any COM port to a different port number under the current user's Terminal Server session.
For example, a Terminal Services user could enter this command line:

change port COM12=COM1

This allows the current user to access COM1 in their application software, which is redirected to COM12 by Windows Server. COM12 could be either a physical COM port, or a virtual COM port created by NeSerial.

A second Terminal Services user could enter this command:

change port COM13=COM1

Now both users can access COM1 at the same time in their application software, and they will really be using COM12 and COM13 respectively.

This allows all users to use application software configured for a particular COM port, and allows legacy applications that only supported COM1-COM4 (or in some cases COM1-COM9) to be used by more then 4 or 9 Terminal Services users at the same time. However, this will not work with TAPI, so applications that need to communicate with a Modem Driver name rather then a COM port value can not take advantage of this feature.

The change port command can be used as part of each users login script to map COM1 to a specific NetSerial virtual COM port which is reserved for that user. For example if COM99 is reserved for a particular user, the following would be added to that users login script: change port COM99=COM1

You can run change port without any parameters to display the available COM ports and the current COM port mappings.

 

Limitations under Terminal Server, Remote Desktop, and Citrix XenApp

  1. Only one outbound PPP (Point to Point Protocol) modem connection can be made at a time from any Windows PC, even under a multiuser operating system such as Terminal Server, Remote Desktop, and Citrix XenApp. This is not a limitation of NetSerial, but rather a limitation within Windows.
    For example, A Dial-Up Networking connection to an ISP uses the PPP protocol. This causes the Windows routing table to be changed so that all TCP packets that are sent outside of the local subnet are directed to this PPP connection. If another PPP connection is created, Windows again changes the routing table which causes the first PPP connection to fail. If you need to allow multiple users to use NetSerial's Virtual COM ports to make simultanious outbound PPP modem connections, you will need to install the NetSerial software on each users PC instead.

  2. Citrix XenApp prevents more then one outbound VPN (Virtual Private Networking) Connection to be made using a modem.

  3. If a VPN connection is used to connect to the network containing NetSerial, then it is not possible to make a secondary VPN connection on a modem, (including a remote Modem accessed by NetSerial). This is due to a limitation in the VPN protocol.

 


15.10. Virtual Modem AT Command List

The following Modem AT commands are supported by the NetSerial Virtual Modems:

A - Answer
Manually accept an incoming connection. The Answer command is normally sent to the modem after the application software receives a "RING" response from the virtual modem. When the connection is sucessfuly established, the application software recieves a "CONNECT" response from the virtual modem.

D, DT or DP - Dial
Dial the following network (or internet) address. With a real modem, this command is followed by a phone number to dial, but with the Virtual Modem a network IP address or hostname is used instead. If the connection is sucessful the application software recieves a "CONNECT" response from the virtual modem, otherwise it receives a "NO CARRIER" response.

E0 or E1 -Command Mode local Echo
Turns local character echoing on or off while the virtual modem is in Command Mode. E0 disables echoing, E1 enables echoing. Command mode means the modem is not online, so it is accepting AT commands. Default = Enabled.

F0 or F1 - Online Mode local Echo
Turns local character echoing on or off while the virtual modem is in Online Mode. F0 disables echoing, F1 enables echoing. Online mode means the modem is connected to a remote location. Default=Disabled

H or H0 - Hook
Disconnects the current connection. If there is not an active connection this is ignored.

O - Online
If a connection has been established, this causes the modem to exit "Command Mode" and resume the telnet connection. Otherwise this command is ignored.

Sr=n - S-Register Write
Set S-register number {r} to the value {n}. The supported set of S registers is given below.

Sr=? - S-Register Read
Display the current value (setting) of S-register number {r}.

V0 or V1 - Verbose Responses
Sets the modem to use Verbose (text) or Numeric responses. V0 sets numeric responses (ie: "0" instead of "OK"), and V1 sets text responses. Default=V1

Z - Reset
This resets the virtual modem to use all the default settings.

&C0, &C1 or &C2 - Data Carrier Detect (DCD) Options
Controls how the the DCD signal is provided by the virtual modem:
&C0 forces the DCD signal to always be ON.
&C1 causes the DCD signal to indicate the true state of the remote carrier signal.
&C2 causes the DCD signal to always be OFF except while a connection is being established.
Default = C1.

&D0, &D1, &D2 or &D3 - Data Terminal Ready (DTR) Options
Controls how the virtual modem reacts to the DTR signal provided by the application software:
&D0 ignores the DTR signal.
&D1 causes the modem to return to command mode when the DTR signal is changed from ON to OFF.
&D2 and &D3 causes the modem to close an active connection and return to command mode when the DTR signal is changed from ON to OFF.
Default = D0.

&F or &F1 - Factory Defaults
Resets the virtual modem to use all the default settings. (Same as the "Z" command).

&S0, &S1, &S2 - Data Set Ready (DSR) Options
Controls how the Data Set Ready signal is provided by the virtual modem:
&S0 forces the DSR signal to always be ON.
&S1 causes the virtual modem to turn the DSR Signal OFF when there is no connection opened, turns it ON when attempting to open a connection, and turns it OFF when the connection is closed.
&S2 causes the virtual modem to turn DSR signal OFF while there is no connection opened, turns it ON when a connection is opened, then OFF again once the connection is closed.
The default is &S0.

&V - View Profile
Displays the current settings used by the virtual modem.

&T - Terminal Type string
Allows specification of a quoted string that Virtual modem will report to a remote as the terminal type for Telnet sessions. ie AT&T"ANSI". This setting is reset to "ANSI" when ATZ is executed.



15.11. Virtual Modem S-Register List

The following Modem S-Registers are supported by the NetSerial Virtual Modems:

S0 - Auto-Answer
When this register is set to a non zero value, this is the number of RING's that occur before this virtual modem will Auto-Answer an Inbound Connection (This is ignored If Inbound Connections have been not been enabled for this virtual Modem or its inbound TCP port was not defined).

When this register is zero, Auto-Answer mode is disabled.

When a virtual modem has been configured to accept inbound connections, and an inbound connection is detected on the defined TCP port the following occurs:
The virtual modem sends a RING message to the application software every 2 seconds, and waits for either auto-answer to occur or for the application software manually answers by sending the ATA command to the COM port. Once either of these occur, the virtual modem sends a CONNECT message to the application software, accepts the inbound connection and switches from command mode to online mode. If the connection does not occur by the 9th RING, then the connection fails.

S1 - Ring Counter
This register is usually zero, but is incremented each time a RING message is sent by the virtual modem, until the Inbound Connection is answered or aborted.

S2 - Escape Character
This register contains the decimal value of the ASCII character used in the escape sequence. The escape sequence consists of a period of inactivity (defined in register S12) followed by three escape characters, followed by an equal period of inactivity. If the modem is in online mode this switches it to command mode. The default is 43 (ASCII character "+" ).

S3 - Carriage Return Character
This register contains the decimal value of the ASCII character used as a command line and result code terminator. The default is 13.

S4 - Line Feed Character
This register contains the decimal value of the ASCII character used for a line feed. The default is 10.

S5 - Backspace Character
This register contains the decimal value of the ASCII character used for a backspace. The default is 8.

S7 - Wait for Carrier after Dial
This register contains the number of seconds to wait for a connection when dialing. The default is 20.

S12 - Escape Sequence Guard Time
This register contains the the decimal value of the period of inactivity required when issuing an escape sequence, in 1/50th of a second increments. The default is 50 (1 second).

S19 - Idle Timeout
When this register is set to a non-zero value, it sets the inactivity timer to disconnect after this many minutes of inactivity. This is currently ignored.

S32 - XON Character
This register contains the decimal value of the ASCII character used for XON. The Default is 17.

S33 - XOFF Character
This register contains the decimal value of the ASCII character used for XOFF. The Default is 19.

S95 — Extended Result Codes
When this register is set to a non-zero value, it is used to override some of the Wn command options. A bit Set to 1 will enabled the corresponding result codes:
      Bit 0 - Connect message indicates DCE speed
      Bit 1 - Append /ARQ to CONNECT XXXX
      Bit 2 - Enable CARRIER XXXX message
      Bit 3 - Enable PROTOCOL message
      Bit 4 - Reserved
      Bit 5 - Enable COMPRESSION XXXX
      Bit 6 - Reserved
      Bit 7 - Reserved
The default is 0.

S100— S100 RING Message Interval
This register specifies (in 1/10th second units) the interval between RING messages sent to the application when a connection is received. After 7 RING messages, NetSerial will close the incoming connection. The default value is 30, causing a delay of 3 seconds.

S101— Answer CONNECT delay
This register contains the decimal value of the number of milliseconds that NetSerial should wait after an inbound virtual modem answer command (ATA) is received, before the CONNECT message is sent to the application. It's also used in autoanswer mode. Lowering this value will allow some BBS software to connect sooner. The default is 1000, causing a delay of 1 second.


15.12. Virtual Modem Result Codes

The following Modem Result codes are supported by NetSerial's Virtual Modems:

NO CARRIER
This result is is returned when a dialing timeout occurs or when an established connection terminates. The timeout interval is specified in register S7.

NO DIALTONE
This result is returned when the virtual modem could not obtain address information from the name server (or HOSTS file), or that the given Internet address is invalid. This result code is also returned if TCP/IP is not responding.

BUSY
This result is returned when a connection to the virtual modem port was established at the remote site. However, no available communications ports (COM1, COM2 etc) were available to assign the connection to.

CONNECT 57600/ARQ
.This result means the dialing and session establishment occurred without problems and is ready for user
data flow using the Virtual Modem Protocol. The given bit rate of 57600 is given only to satisfy the application program.

 



16. Request Technical Support


You can request technical support by filling out a request form at http://pcmicro.com/netserial/support.html
Usual response time is well under 2 hours during normal business hours, Pacific Standard Time, and may be longer during evenings and weekends.

If you purchased or are evaluating NetSerial through another reseller or a consultant, they may provide an additional level of technical support.

 



17. Update the License Key

NetSerial allows a fully functional 30 day evaluation if no license key is entered into the NetSerial. If you decide to purchase a license key, you are provided with an electronic license certificate (PDF file) which contains a license key that can be entered into the NetSerial to unlock the 30 day limitation. Each PC which NetSerial is installed on requires a seperate license key.

To update your NetSerial License Key, do the following:

  1. Open the NetSerial Monitor window by double clicking on the system tray icon.

  2. Select the License button. The current license information is displayed, including how many days are left if the software is running in evaluation mode.

  3. Select the Change button.

  4. Type in your License Key in the field titled License Key.

  5. The User Name and Company Name. These fields must be entered, but any name can be used.

  6. Select OK to accept the new information.

 



18. Uninstalling the NetSerial Software

To Uninstall the NetSerial software do the following:

If using Windows XP, 2003, or 2000:

  • Navigate to the Windows Control Panel and select the "Add or Remove Programs" Icon.
  • Select NetSerial in the list of installed programs.
  • Click the Change/Remove button to begin the Uninstall process.
  • Select Uninstall, and click Next

If using Windows 10, 8, 7, Vista, or Windows Server 2008 or later):

  • Navigate to the Windows Control Panel and select the "Programs and features" Icon.
  • Select NetSerial in the list of installed programs.
  • Select Uninstall, and click Next

Windows does not need to be restarted after installing or uninstalling the NetSerial software.

 


Copyright © 1997-2020 PC Micro Systems. Portions Copyright © 1997-2020 Microsoft Corporation. Portions Copyright © 1998-2020 The OpenSSL Project. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org). All Rights Reserved. NetSerial and NetModem are TradeMarks or Registered Trademarks of PC Micro Systems, Inc.. Windows and Microsoft are Trademarks or Registered Trademarks of Microsoft Corporation. Citrix and XenApp are Trademarks or Registered Trademarks of Citrix Systems, Inc. RC2 and RC4 are Trademarks of RSA Security, Inc. VMWare is a Trademark or Registered Trademark of VMware, Inc. PC Micro is a Trademark or Registered Trademark of PC Micro Systems, Inc.