Skip to main content

MMS Media & Attachments

Purpose​

MMS Media & Attachments extends the two-way SMS stack with an MMS subject, media attachments, gateway-specific MMS request settings and incoming media references. It is a helper addon with no independent application menu. Its screens extend SMS Gateways and the native SMS composer.

Before you start​

Install corvus_mms_base with corvus_sms_inbound for the same Odoo major version. The dependency chain includes the SMS routing foundation, CRM, mail and web; no Enterprise-only dependency is declared. An existing provider must support MMS for the chosen sender and destination.

This guide describes the 19.0 source; no runtime, media retrieval or provider test was performed. Outbound attachment URLs require an additional implementation check: the inspected stack generates media-link records but does not supply the corresponding public media-serving route. Do not enable outbound attachment delivery until the installed package's media serving and expiry enforcement have been verified.

Access and roles​

The addon grants internal users (base.group_user) read, write, create and delete access to its MMS media records. It adds no separate MMS manager group or standalone media-management menu. Gateway configuration uses the routing base's Settings administrator permissions; ordinary document and attachment rights also remain relevant. Treat media URLs as sensitive references and share only files approved for the intended recipient.

Setup and menu​

In SMS Gateways, select MMS Enabled for an appropriate gateway. Default for Composer identifies a preferred gateway in compatible composers. The MMS Media tab contains:

FieldUse
MMS Base URLOptional MMS-specific provider endpoint.
MMS HTTP Method / MMS Request TypeGET or POST; form or JSON for POST.
MMS Body TemplateProvider-specific body with media placeholders.
MMS URL Expiry (hours)Default 72 hours for generated media records.
MMS Public Base URLOptional base address for generated links; otherwise the Odoo base URL is used.

The template supports {media_urls} as comma-separated text and __media_urls__ as a JSON array. {is_mms} and {subject} provide additional request context where supported by the provider template. Configure inbound media field paths in the dependency's Inbound Webhook tab.

The native SMS composer gains MMS Media, MMS Subject and Media Attachments. This module does not add a voice-recorder interface; that comes from SMS Inbox & Composer.

Workflow​

  1. Complete normal SMS routing and confirm the provider's MMS endpoint, media requirements and sender eligibility with the implementation administrator.
  2. Enable MMS Enabled, complete the MMS payload mapping and review the intended public base address and expiry period. A stored expiry timestamp alone does not prove a link will become inaccessible.
  3. Open an authorised business record's SMS composer. Write the message, optional subject and attach a harmless approved file. If an explicitly selected gateway does not support MMS, the reviewed comment-send logic omits the attachments.
  4. Before any real send, have the administrator validate provider access to the generated URLs in an approved test arrangement. A browser preview or attachment visible inside Odoo does not establish external reachability.
  5. Once delivery is authorised and the implementation is validated, review the resulting message and gateway status. The SMS transport and callback configuration remain responsible for send results.
  6. For an incoming media event, the inbound extension first runs the routing engine, then creates attachments with the supplied media URLs and links media metadata to the relevant SMS and message. The reviewed handler does not download those files into stored bytes. Inspect the resulting references and logs; access to the remote file remains a separate dependency.

Practice scenario​

In an authorised training database, draft a message for fictional Linden Workshop and add sample-label.png, containing no personal data. Inspect the MMS subject, selected gateway and attachment list, then cancel before sending. Discuss which provider payload field receives the URL array. This source-derived exercise was not executed and does not establish media-link reachability.

Troubleshooting and limitations​

Text success does not prove attachment success. Check MMS Enabled, the selected gateway, provider payload format and externally reachable media address. The generated URL uses HTTPS when the configured base begins with HTTP; that rewrite does not provision a certificate or reverse proxy.

The code has an expired-media cleanup helper, but the reviewed manifest installs no scheduled cleanup job. Do not assume automated retention or attachment deletion. Provider limits for size, MIME type, country and sender are not enforced as a comprehensive capability table here; confirm them before use. Incoming media attachments are created with URL references; this does not establish a local copy of the remote file.

Catalogue-qualified packages exist for 17.0–20.0. The 19.0 workflow is source-reviewed; selected comparisons show 17.0 tree-view adaptations and 20.0 framework changes to configuration reads, content disposition imports and ACL declarations. The media-serving prerequisite remains unresolved in the reviewed stack.

Select the exact version through the Corvus app catalogue, which provides applicable Live Test selectors. No demo was launched. Related guides: Two-Way SMS & CRM Inbox and SMS Inbox & Composer.