Admin: Appendix D - Callback Service Configuration
Overview
The RPI Callback Service is used to retrieve results from the following channel providers:
SendGrid
mPulse
Twilio
Outbound Delivery
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.
Ensure that "CallbackServiceQueuePath" is unique across all tenants, applicable to all relevant providers with Callback Services (Twilio, SendGrid, mPulse, and Outbound Delivery).
{
"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, mPulse, Twilio, or Outbound%20Delivery):
api/test: tests service accessibility.api/status?channelLabel=<channel label>: returns specified channel's overall state.api/postevents?channelLabel=<channel label>: returns captures specified channel events.