Soracom Funnel
Overview
Soracom Funnel is an adapter service that transfers data from a device directly to a specified cloud service. Funnel allows you to offload encryption workloads to the cloud and integrate devices that have protocol limitations.
Much like Soracom Beam, data sent from a device to the Soracom platform is secured through closed carrier networks and dedicated private lines to Soracom, allowing you to utilize lightweight protocols between your device and Soracom. In turn, Funnel performs encryption on the cloud, and takes care of sending your data directly to a cloud service.
Compared to Beam
Simpler Setup
While Beam and Funnel both provide similar functionality in receiving data from your device and sending it to a specified endpoint, Beam is more general purpose and allows you to mix and match various incoming and outgoing protocols, as well as specify endpoints other than cloud services such as your application server. While Beam provides flexibility with extended protocol and endpoint support, it also requires additional configuration, even when using it with cloud services.
On the other hand, Funnel provides a greatly simplified configuration for applications that leverage cloud services. Funnel takes care of most of the forwarding protocol configuration required for certain cloud services, allowing you to simply specify only the forwarding destination and credentials in order to start sending data.
Asynchronous Design
Funnel prioritizes scalability, so it handles device requests asynchronously. Data is buffered in Soracom's backend and then forwarded to the designated service without sending a direct response to the device. As a result, the device cannot immediately determine whether the data was processed successfully.
If you require immediate confirmation of data processing or need the device to retry sending data, Beam is a better option.
Funnel’s asynchronous nature does not guarantee data delivery order, and data may occasionally be duplicated. For instance, if two requests are sent to Funnel in quick succession, the second request may arrive at the destination before the first, or the same data may be delivered multiple times. If maintaining sequence or avoiding duplication is critical, consider including a timestamp and unique identifier in your payload to preserve context.
Available Adapters
Currently, Funnel is compatible with the following cloud services:
- AWS Kinesis Streams
- AWS Kinesis Firehose
- AWS IoT
- Microsoft Azure Event Hubs
- Google Cloud Pub/Sub
Entry Points
To utilize Funnel, your devices must be compatible with at least one of the following entry point protocols:
Air for Cellular
Entry Point | Address | Description |
---|---|---|
TCP | tcp://funnel.soracom.io:23080 |
Receive TCP packets from a device and forward them to your cloud service |
UDP | udp://funnel.soracom.io:23080 |
Receive UDP packets from a device and forward them to your cloud service |
HTTP | http://funnel.soracom.io |
Receive HTTP requests from a device and forward them to your cloud service |
SMS | 901021 |
Receive SMS messages from a device and forward them to your cloud service |
USSD | *901021*{data}# |
Receive USSD messages from a device and forward them to your cloud service |
Currently, the SMS and USSD entry points are available only for plan01s, plan01s - LDV, plan-NA1, and planX3 SIMs.
Air for Sigfox and Air for LoRaWAN
Data is captured automatically from the device. Configuring the device to send data to a specific entry point is not required.
Soracom Inventory
Data is captured automatically from the device. Configuring the device to send data to a specific entry point is not required.
Data Format
When Funnel captures data from your device, it will put it in a JSON object containing additional information about the device and forwarding request, with the following format. This JSON is then sent to your cloud service.
{
"operatorid": "OP0012345678",
"timestamp": "1520001234",
"destination" : {
"resourceUrl": "<YOUR-CLOUD-SERVICE-URL>",
"provider": "aws"|"azure"|"google",
"service": "kinesis"|"firehose"|"aws-iot"|"eventhubs"|"pubsub"
},
"credentialId": "<YOUR-CREDENTIALS-SET-ID>",
"payloads": "<DEVICE-DATA>",
"sourceProtocol": "tcp"|"udp"|"http"|"unspecified",
"imsi": "295000012345678"
}
Limitations
SMS entry point - When sending data to Funnel using SMS, ensure that your device's SMS header option is disabled. If a header is included, the SMS User Data field will be processed as-is and will result in unwanted or malformed text content.
Free Tier
Soracom provides a free tier for Funnel with each Soracom account. Refer to the Pricing & Fee Schedule for more information.