Table of contents

Advanced settings

Some configuration settings (such as the port number SysManX operates on) are not accessible from the web-interface. This page shows how you can change these settings.

Change port number

By default, SysManX will listen on port number 5000. If you cannot use this port number or it is already in use by other applications, you can change it by editing the configuration file for the SysManX service.

Open the file SysManXService.exe.config with a text-editor.

Locate the Port-appSetting to change port number:

  <appSettings>
    <add key="Port" value="5000" />
  </appSettings>

Save the file and restart SysManX Windows Service to apply the new port number.

Logging

The SysManX service uses the popular Log4Net framework for logging. By default SysManX will produce a daily logfile using the RollingFileAppender. You may change the Log4Net configuration as needed to adopt to your organizations' logging regime.

Log4Net settings in SysManXService.exe.config file:

  <log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString" value="SysManX_%date{yyyyMMdd}.log" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyyMMdd" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{HH:mm:ss,fff} [%thread] %-5level %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="INFO" />
      <appender-ref ref="RollingFileAppender" />
    </root>
  </log4net>

Logging to the Windows Event Log

If you prefer to have SysManX log to the Windows Event Log, this can be enabled by adding an appender to the log4net configuration in the SysManXService.exe.config file:

<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
    <applicationName value="SysManX" />
      <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    <mapping>
      <level value="ERROR" />
      <eventLogEntryType value="Error" />
    </mapping>
    <mapping>
      <level value="INFO" />
      <eventLogEntryType value="Information" />
    </mapping>
</appender>

And then reference the EventLogAppender instead of, or in addition to, your RollingFileAppender:

<root>
    <level value="INFO" />
    <appender-ref ref="EventLogAppender" />
    <appender-ref ref="RollingFileAppender" />
</root>

Please note that in order for SysManX to create a new application source in the Event Log it needs to be run with Administrator privileges at least once.

Log all messages sent and received to CSV file

You can configure Log4Net to create a .CSV file containing messages sent and received, as well as delivery reports. This can be useful if you want to import the SMS traffic logs into other systems.

Sample logfile:

"SMS Submitted";"02.11.2018 11.00.47";"92929292";"";"02.11.2018 11.00.49";"Submitted";"MODEM_940";"137";"";"339";"test1"
"SMS Submitted";"02.11.2018 11.14.57";"99887766";"";"02.11.2018 11.14.57";"Submitted";"MODEM_940";"155";"";"341";"test2"
"SMS DeliveryReport";"02.11.2018 11.14.57";"99887766";"";"02.11.2018 11.14.57";"Submitted";"MODEM_940";"155";"";"341";"test2";"Success";"29.01.2018 21.03.34"

The following fields are logged:

  • Type of record:
    • SMS Submitted
    • SMS DeliveryReport
    • SMS Received

Remaining fields will vary depending on the record type.

SMS Submitted record fields:

  • Date and time when message was submitted to SysManX
  • Receiver number
  • Name of Numberlist (if sent using a numberlist)
  • Date and time when message was sent to SMSC.
  • Status of sent operation. "Submitted" means message was accepted by SMSC. "Rejected" means that SMSC did not accept the message.
  • Name of modem channel.
  • ID of message assigned by SMSC.
  • External id of message (as provided when sending through APIs)
  • ID of message assigned by SysManX
  • Message text

SMS DeliverReport record fields:

  • Date and time when message was submitted to SysManX
  • Receiver number
  • Name of Numberlist (if sent using a numberlist)
  • Date and time when message was sent to SMSC.
  • Status of sent operation. "Submitted" means message was accepted by SMSC. "Rejected" means that SMSC did not accept the message.
  • Name of modem channel.
  • ID of message assigned by SMSC.
  • External id of message (as provided when sending through APIs)
  • ID of message assigned by SysManX
  • Message text
  • Delivery status. "Success" means message was delivered. All other indicated various fail causes ("Delayed", "Undeliverable" etc).
  • Date and time of deliver status.

SMS Received record fields:

  • Date and time when message was received by SysManX
  • Date and time when message was received by SMSC
  • Sender number
  • ID of message assigned by SysManX
  • Message text

Note that for messages that has requested a delivery report, the SMS DeliveryReport record comes in addition to the SMS Submitted record for the same message.

To enable this, add the following in the SysManXService.exe.config file:

<appender name="MessageLogFileAppender" type="log4net.Appender.RollingFileAppender">
  <file type="log4net.Util.PatternString" value="logs/MessageLog_%date{yyyyMMdd}.log" />
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <datePattern value="yyyyMMdd" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%message%newline" />
  </layout>
</appender>

<logger name="MessageLogLogger" additivity="false">
   <level value="ALL" />
   <appender-ref ref="MessageLogFileAppender"/>
</logger>

This configuration shuld be placed right after the last existing appender-element.

You may change the appender settings, but the logger name must always be MessageLogLogger in order for the appender to receive the message information from SysManX.

For more information about logging, please read about the Log4Net Apache project.

Delivery report matching on receiver number only

Certain operators/SMSC may use 1-256 as message reference upon sending but 0-255 as corresponding message reference in delivery reports. This is a non-standard behaviour that requires special handling. To prevent delivery reports from being mismatched or non-matched with this behaviour you may set the following configuration setting in the SysManXService.exe.config configuration file:

  <appSettings>
    <add key="DeliveryReportMatchingOnNumberOnly" value="true" />
  </appSettings>

When this setting is enabled SysManX will only use the receiver number and timestamp to attempt to match delivery reports to previous sent messages. Exact matching cannot be guarranteed when multiple messages has been sent to the same receiver.