Frequently Asked Questions

Installation and Start-Up Questions

Where do I install the software?

For UNIX install (default):

SwitchKit = installed in /usr/local/switchkit

License = /usr/local/switchkit/sk_license.dat

Symbolic link to the system software location = /usr/local/switchkit/system_software.bin

For Windows NT® install:

SwitchKit = C:\ProgramFiles\Excel Switching Corporation\SwitchKit

Licenses = C:\Program Files\Excel Switching Corporation\SwitchKit\sk_license.dat

Software = C:\Program Files\Excel Switching Corporation\SwitchKit\System-software.bin

How can I modify the default behavior of the SwitchKit modules?

The behavior of the components of the SwitchKit can be modified by using a system-wide defaults file. This file is /usr/local/switchkit/Defaults or C:\Program Files\Excel Switching Corporation\SwitchKit\Defaults. Entries in the file are of the form <fieldName> : value.

fieldName is not case sensitive. Comments begin with the pound sign (#). Blank lines are allowed. The valid fieldNames are compress_polls, llc_host, system_software_file, and password.

In what order should I start the modules?

You must start the LLC before any other modules are run. We suggest you start the SwitchManager before starting any applications.

Why won’t the LLC run?

If the LLC fails to run, it most likely means that it could not connect to the switch, or did not find a valid license file. Also, make sure that you have permission to write to the directory it started from, so that it can create and write to its log files. Pay careful attention to the error messages it outputs to standard out as well as looking at the maintenance.log file.

Why won’t the SwitchManager run?

If the SwitchManager fails to run, it most likely means that it could not connect to the LLC, or was unable to parse the configuration file it was given as input. Pay careful attention to the error messages it outputs to standard out, and to the SwitchManager maintenance.log file.

Do I have to run the SwitchManager?

It is not necessary to run the SwitchManager module in order to run applications, but the SwitchManager is responsible for configuring the switch, maintaining the switch, and handling alarms and other fault conditions. Therefore, it is advisable that the SwitchManager always be running in order to handle these conditions. For more information, refer to Running SwitchKit Components.

What should I do when SwitchManager shows a NACK for AssignSpan?

SwitchManager prints the following when you have not downloaded a system software license to your CSP:

A system software license is required to unlock the CSP software. For more information, see the CSP Developer’s Guide: Overview, DSP Resource Points (9-95).

In a configuration file, does the order of configuration messages matter?

No. SwitchManager sorts the messages and sends them in the correct order.

In a message, does the order of parameters matter?

No. But spelling and the use of commas to separate the parameters in a message is important.

What are the advantages and disadvantages of running Switchkit (LLC & SwitchManager) as a Windows NT® service?

The advantages of running SwitchKit as a service:

Services can be configured to start automatically when Windows NT® is rebooted. This saves time not having to have someone manually start the service. A Windows NT® utility in the control panel called TweakUI allows the user the option to automatically log in to NT.

DOS windows take additional memory and other system resources that can affect performance. Running Switchkit in a DOS window prints the LLC Maintenance & SwitchMgr Alarm logs to the screen. This also takes additional memory and affects system performance to print each message.

In SwitchKit 8.0 Service Icon's have been added to the system tray so the user can quickly see the status of LLC & Switchmgr. These icons identify the service as Active/Primary or Standby/Secondary. There are also options on the service to open the log files. These icons also change color to indicate the current state.

The only disadvantage is in releases, Switchkit 5.6 and below, the service icons are not available so there is no easy way to identify whether LLC & SwitchMgr are running or not.

Messages and Logging

Where are the log files?

By default, the logs are written to the current directory of the application. To change this, set SK_LOG_DIR.

What messages are sent to the switch and what messages are sent to the host?

The messages.log file is the place to look. The LLC will normally log all messages passing to the switch in the messages.log file. Use this file to see precisely what messages are being sent to the switch, and how the switch is responding.

Can I stop the LLC from writing to the messages .log file on my production system?

You can set the LLC to log everything or to log nothing.

The time stamp in the SwitchKit .log files is not correct. What causes this?

LLC uses a system call to obtain the timestamp for logging. If the system call returns the incorrect information, the timestamps in the .log files will be inaccurate. This can happen when the system time is changed on a machine.

Configuration

How can I tell the result of the configuration given to the SwitchManager?

The SwitchManager will notify you of the status of every configuration message. It will notify when messages are successful, and when they fail (with the reason why), and it will notify when messages are not sent (e.g. if the board the message is for is not present). Pay careful attention to the alarm.log generated by the SwitchManager to understand the status of the configuration.

I want a channel group with just channels 3 and 7. How can I build non-contiguous channel groups?

AssociateChannelGroup messages are cumulative. Just issue two AssociateChannelGroup messages, one with just channel 3, and another with just channel 7.

Should I set the Poll Interval for the switch, and, if so, what should I set it to?

Normally, you should not have to set the Poll Interval. The LLC automatically sets it to the default, 2 seconds, upon start-up. If you do set the Poll Interval yourself, consider the value carefully. The LLC needs to check a variety of things periodically, such as dropped messages by the switch, loss of switch connection, etc. It is recommended that the poll interval be between 1 and 5 seconds. Turning off polls will disable some of the functionality of the SwitchKit, and is strongly discouraged.

Where are some sample configuration files and source code?

For UNIX, the source code is located in /usr/local/switchkit/samples/src and the configuration files are located in /usr/local/switchkit/samples/cfg

For NT, the source code is located in C:\Program Files\EXCEL\SwitchKit\samples and the configuration files are located in C:\Program Files\EXCEL\SwitchKit\samples\cfg

There are various sample applications for both C programmers (*.c) and C++ programmers (*.cpp). SimpleTandem and CallSim are the example applications described in the documentation. A sample configuration file for these applications and for a specific hardware and network configuration is tandem.cfg.

I do an sk_requestOutseizedChannel on a channel group that I've configured in my config file, but it says SK_NO_CHANNELS. Why?

The LLC allocates channels that are in service and are not in any kind of alarm state, such as red or yellow alarm, and that have not already been allocated. For all available channels, the maintenance.log file of the LLC should show "Channel <span>:<offset> has come up". Also, make sure that the channel group has been configured properly.

Error Messages

Where can I find SwitchKit status codes and error responses?

The Windows NT® default path to status codes and error responses is:

C:\Program Files\Excel Switching Corporation\SwitchKit\include\SK_API.h

 

The UNIX default path to status codes and error responses is:

 

/usr/local/switchkit/include/SK_API.h

LAN

How do I distribute the SwitchKit modules and my call processing applications across a local or wide area network?

To run modules on separate host machines from the LLC, the modules must be told where the LLC is running and must be able to connect to that machine over the network. The location of the machine is specified through the environment variable SK_LLC_HOST, or through the llc_host field in the system-wide defaults file as mentioned above. The value of this variable can be either a host name, or an IP address in dot notation.

Is this secure? Can anyone else connect to my LLC?

If you want secure connections to the LLC, set the SK_PASSWORD environment variable, or the password field in the system-wide defaults file on both the machine that is running the LLC and the machine that is running the module that will connect to the LLC. Only by knowing the value of that password will anyone be able to connect to the LLC.

Applications

How do I load share a single application across multiple machines?

Run the application on all the machines you wish to load share it across, and the load sharing will be accomplished automatically. Because the application will always be registering for the same inbound channel groups, the LLC will evenly distribute incoming calls among the various instances of the application. For more information, refer to the SwitchKit Programmer’s Guide and the Redundant Application Feature.

How does an application establish a connection with the LLC?

Refer to the SwitchKit Programmer’s Guide, Connection Management Functions. The SwitchKit API offers two connection models to set up a connect between your applications and the LLC.

When I first start my application, channels are allocated correctly, but after a while, I start getting SK_NO_CHANNELS error messages?

Make sure that any channel that is assigned to the application, either from an inbound call or via sk_requestOutseizedChannel, is returned to the LLC via sk_returnChannel, when the application is finished with it. Just like a dynamic memory leak, any channels that are not returned to the LLC will not be available to be allocated. It is important to realize that you must return not only the channels that you explicitly allocate via sk_requestOutseizedChannel, but also the channels that the LLC is implicitly allocating to you on inbound calls because of sk_watchChannelGroup.

I’m trying to send a message to the switch, but my application doesn’t get a reply. In fact, there isn’t even any mention of it in messages.log. What happened?

If a message that is supposed to be sent to the switch does not appear in messages.log, the most likely explanation is that your application was not able to send it to the LLC correctly. Check the return value from your call to the appropriate send function.

Why does any application that I compile, when run, give an error message about static initializers not being called?

All applications using the SwitchKit libraries must be linked with a C++-aware linker. In particular, the static initializers in the SwitchKit library must be called, and only a C++-aware linker knows how to call them. Whether your C compiler can handle static initializers depends on your system and the compiler. For example, cc on SCO UNIX will work fine, whereas cc on UNIXWare will not. GCC will work on all platforms, and is recommended.

CSA

How can I save custom configurations without the CSA view resetting every time we restart?

By default when you connect to an LLC, CSA opens an event view for that LLC. The default filter is all events selected, except for PPL events. CSA stores all event views and filters in CSA’s default file. On restart (assuming Open with last setting is checked), CSA will re-open all the event views with the corresponding filters.

What file does the output of the event viewer dump to?

The messages seen in the event viewer are stored in memory. Therefore, the event viewer does not move messages to other files. CSA currently stores a maximum of 2500 messages in memory. When new messages come in, CSA begins to delete old messages. This is done to limit CSA’s memory usage. All messages, even those that CSA or event viewer may or may not be registered to receive, are stored in the alarm.log file.