ℹ️ The Auron SMS Server is now Auron Omni. Learn more here.

How can we help?

Add new channel type (WISe only)


In Auron WISe, you can add custom channel types. A channel type is any communication medium or interface that sends or receives messages. Channels run asynchronously and may also implement business logic that is specific to that channel. Learn more about channels here.

While Auron Omni comes with a fixed set of channel types, you can add your own custom channel types to Auron WISe.

Please note that adding a new channel type requires technical knowledge. If you are unsure how to do this, feel free to contact us.

For the remainder of this article we assume that you are able and authorized to connect to the Auron WISe server and database.

Channel_Types table

Add a new channel type to Auron WISe by adding a new record to the Channel_Types table. You also need to add a data table to the WISe message database. Here is a relation diagram.

Channel_Types table in a relation diagram

Channel_Types table in a relation diagram

These are the fields in the Channel_Types table:

Field name Description
ID Primary key and identifier. Must be an uppercase string without spaces, no longer than 32 characters. For example: CUSTOM_CHANNEL_TYPE.
MessageTypeID Foreign key that refers to the primary message type for this channel type. Leave it empty to support any message type or multiple message types.

Must be an uppercase string without spaces, no longer than 32 characters. For example: CUSTOM_MESSAGE_TYPE.

DataTable Name of the table that holds channel data. The channel data table links to the channels table and stores channel type specific data. The structure of this table defines the fields for this channel type.

This table does not exist yet and must be created manually. Learn more below.

Description The display name.
InfoUrl (Optional) Link to a URL with more information about this channel type.
LongDescription The full description.
IsManaged 1 if this channel is managed by WISe. 0 if this is an external channel.

A managed channel is a Windows console application on the same server as Auron WISe. The WISe service starts the application when the channel is enabled and stops it when the channel is disabled or the service stops. On startup WISe passes these arguments:

/ID /LOG

When creating a managed channel in .NET you can use plugin.dll. This assembly is included with WISe and exposes CChannelBase to simplify implementation.

An external channel is not managed by WISe. Its lifecycle is separate from the WISe service. It can run on another server or as a web application. You must handle the channel ID and log path yourself.

An external channel can also be virtual, meaning there is no implementation and the definition is only used for configuration structure.

ProcessPath If IsManaged = 1 this is the path to the channel process. This must be a Windows console application on the same server, following the rules above.
EditorPath (Optional) Path to a custom editor for channel properties. Leave empty to use the default editor.

When creating an editor in .NET you can use plugin.dll, which exposes CChannelWizard to help build a configuration wizard similar to built in WISe channels.

When opening a channel editor from WISe Manager, the application is started with:

/CTID /CD

Icon (Optional) Binary field containing a 48×48 PNG icon that represents the channel type.

You can generate a binary dump using:

SELECT * FROM OPENROWSET(BULK N’C:\dir\filename.png’, SINGLE_BLOB) rs

DisplayOrder Controls the order of the channel type in the selection dialog in WISe Manager. Lower values appear higher in the list.

Data table

The data table stores custom channel fields and defines the structure of the channel type. Only one field is required:

ChannelID NVARCHAR(32)

The following SQL data types are supported in the data table:

  • DATETIMEOFFSET, DATETIME: date values. Prefer DATETIMEOFFSET
  • INT: whole numbers
  • FLOAT: decimal numbers
  • BIT: boolean values
  • NVARCHAR, VARCHAR: strings. Prefer NVARCHAR

Example

To add an example channel type, run the following SQL statement:

INSERT INTO Channel_Types(ID, MessageTypeID, Description, LongDescription,
  InfoUrl, DataTable, EditorPath, Icon, DisplayOrder, IsManaged, ProcessPath)
VALUES(
  'CUSTOM_CHANNEL_TYPE',      -- ID
  'CUSTOM_MESSAGE_TYPE',      -- MessageTypeID
  'Custom channel',           -- Description
  '', '',                     -- LongDescription, InfoUrl
  'Channels_CustomChannel',   -- DataTable
  '"ChnCustomChannel.exe"',   -- EditorPath
  NULL, 1, 1,                 -- Icon, DisplayOrder, IsManaged
  'ChnProcCustomChannel.exe') -- ProcessPath

This example assumes that CUSTOM_MESSAGE_TYPE already exists, ChnCustomChannel.exe is an existing editor, and ChnProcCustomChannel.exe is an existing channel process.

Find an example for setting up a custom channel process in the Auron Software GitHub.

To create the data table, run a SQL statement like this:

CREATE TABLE Channels_CustomChannel
(
  ChannelID NVARCHAR(32),
  TestConfigString NVARCHAR(MAX)
  -- add more custom properties
)

Reset service and restart manager

After adding a new channel type you need to restart both the Auron WISe service and the manager to use the new channel type.

You can now add and remove channels of your custom channel type.