Skip to main content
Skip table of contents

Admin: Appendix D - Callback Service Configuration

Overview

The RPI Callback Service is used to retrieve results from the following channel providers:

  • SendGrid

  • MPulse

Configuration

The redpoint-interaction-plugins-callbackservicewebapi container's port 8080 or 8443 must be exposed. The following application settings JSON file provides an example of a Callback service configured to use the RabbitMQ and Azure Storage providers.

CODE
{
    "CallbackServiceConfig": {
        "QueueEnabled": true,
        "QueueProvider": {
            "ChannelLabel": "SendGrid",
            "CallbackServiceQueuePath": "RPICallbackService",
            "CallbackServiceQueueSettings": {
                "Assembly": "RedPoint.Resonance.RabbitMQAccess",
                "Type": "RedPoint.Resonance.RabbitMQAccess.RabbitMQFactory",
                "Settings": [
                    {
                        "Key": "HostName",
                        "Value": "queueservice",
                        "Values": []
                    },
                    {
                        "Key": "VirtualHost",
                        "Value": "/",
                        "Values": []
                    },
                    {
                        "Key": "UserName",
                        "Value": "redpointdev",
                        "Values": []
                    },
                    {
                        "Key": "Password",
                        "Value": "RP$v51wGtDDvqIYuf/L6vJ1c09Bw==",
                        "Values": []
                    }
                ]
            }
        },
        "ExternalContentProvider": {
            "Folder": "https://rpidevstorage3.blob.core.windows.net/rpi",
            "SaveEmailEvents": false,
            "ExternalContentSettings": {
                "Assembly": "RedPoint.Azure.Shared",
                "Type": "RedPoint.Azure.Shared.AzureStorage.AzureStorageConnector",
                "Settings": [
                    {
                        "Key": "StorageAccount",
                        "Value": "rpidevstorage3",
                        "Values": null
                    },
                    {
                        "Key": "AccessKey",
                        "Value": "$v51lxxxxxxxxxO",
                        "Values": null
                    },
                    {
                        "Key": "EnableCdn",
                        "Value": false,
                        "Values": null
                    },
                    {
                        "Key": "BlobServiceEndpoint",
                        "Value": null,
                        "Values": null
                    },
                    {
                        "Key": "CdnEndpoint",
                        "Value": null,
                        "Values": null
                    },
                    {
                        "Key": "UseAzureIdentityAuthentication",
                        "Value": true,
                        "Values": null
                    }
                ]
            }
        },
        "EnableHttpsRedirection": false
    }
}

The QueueProvider setting can be sourced from the RPI Realtime Queue Providers Configuration interface, by selecting the Copy JSON configuration to clipboard button.

The ExternalContentProvider setting is only utilized for the Events external folder property in the SendGrid channel configuration setting. This can be done selecting the Copy JSON configuration to clipboard button in the RPI External Content Providers configuration interface.

The setting is not used when configuring the Callback Service for use with mPulse. If the ExternalContentProvider setting is not configured, a call to the /status API endpoint will return an overall Error state. However, this error has no bearing on processing callback service events if QueueEnabled is set to true.

API Endpoints

The Callback service supports the following API endpoints (where <channel label> is one of 'SendGrid' or 'mPulse'):

  • /test: tests service accessibility

  • /status?channelLabel=<channel label>: returns specified channel's overall state

  • /postevents?channelLabel=<channel label>: returns captures specified channel events

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.