Salami Gateway supports multiple messaging channels beyond plain SMS. This document covers how channel selection works, which providers support which channels, and how to use the channel field.
| Channel | Value | Description |
|---|---|---|
| SMS | sms |
Standard text messaging (GSM/CDMA). Supported by virtually all providers. |
| MMS | mms |
Multimedia Messaging Service. Supports images, video, audio, and rich content. |
| Voice | voice |
Voice calls, text-to-speech, and IVR. |
whatsapp |
WhatsApp Business messaging via official or unofficial APIs. |
The channel is determined by the SMS App configuration, not per-message. When you create an SMS App, you select its channel type. All messages sent through that app use that channel.
When creating an SMS App in the dashboard, select the channel:
| Field | Type | Values |
|---|---|---|
channel |
string | sms, mms, voice, whatsapp |
You can query apps by channel using the scope:
// Internal usage example
SmsApp::channel('whatsapp')->get();
The API currently returns all apps; filter by the channel field in the response.
message_parts field tracks the count.MMS-capable providers:
| Provider | Notes |
|---|---|
| Bandwidth | Full MMS support |
| FlowRoute | Full MMS support |
| GupshupIO | MMS via WhatsApp |
| MessageBird | MMS support |
| PlivoPowerpack | MMS support |
| Plivo | MMS support |
| SMSGlobal | MMS support |
| Skyetel | MMS support |
| Telnyx | MMS support |
| TelnyxNumberPool | MMS support |
| TextLocal | MMS support |
| Twilio | MMS support |
| WaApi | MMS via WhatsApp |
| WhatsAppChatApi | MMS via WhatsApp |
| Whatsender | MMS via WhatsApp |
| YooAPI | MMS via WhatsApp |
calls table, accessible via GET /api/sms/apps/{app}/calls.Voice-capable providers:
| Provider | Notes |
|---|---|
| Infobip | Voice messaging |
| MessageBird | Voice calls |
| Plivo | Voice calls and IVR |
| SignalWire | Voice calls |
| Twilio | Voice calls, IVR, TwiML |
WhatsApp-capable providers:
| Provider | Notes |
|---|---|
| GupshupIO | Official WhatsApp Business API |
| MessageBird | WhatsApp via Conversations API |
| MetaWhatsApp | Direct Meta/Facebook WhatsApp API |
| MidasAppBr | WhatsApp support |
| Twilio | WhatsApp via Twilio |
| WaApi | WhatsApp API |
| WhatsAppChatApi | WhatsApp via Chat API |
| Whatsender | WhatsApp gateway |
| Xmsway | WhatsApp gateway |
| YooAPI | WhatsApp API |
The channel field is stored on each message record, indicating which channel was used:
{
"id": 156,
"to": "254712345678",
"from": "+15551234567",
"message": "Hello!",
"channel": "sms",
"folder": "outbox",
"status": "delivered"
}
For WhatsApp messages:
{
"id": 157,
"to": "254712345678",
"from": "+15551234567",
"message": "Hello via WhatsApp!",
"channel": "whatsapp",
"folder": "outbox",
"status": "delivered"
}
| Use Case | Recommended Channel | Why |
|---|---|---|
| Transactional alerts (OTP, confirmations) | SMS | Universal reach, no app required |
| Marketing with images | MMS or WhatsApp | Rich media support |
| Two-way conversations | Better UX, read receipts | |
| Voice notifications | Voice | Urgent alerts, accessibility |
| Bulk messaging | SMS | Widest provider selection, lowest cost |
| International messaging | SMS or WhatsApp | Best cross-border support |
See Providers for the complete matrix with all 128+ providers and their supported channels.