An enumeration of current transport metadata.
Unless otherwise noted, these only support outbound messages that are replies to a previous message and only one reply per message.
Outbound messages are completely unsupported.
- http_user (unused on outbound)
- session_id (unused on outbound)
- session_id (unused on outbound)
- session_id (unused on outbound)
Non-reply outbound messages are not supported. Replies are supported.
- session_id (required)
Non-reply outbound messages are supported.
- irc_channel (optional, overridable by helper_metadata)
Non-reply outbound messages are supported.
- provider (unused on outbound)
- deliver_at (optional, not relevant to vumi applications)
- expire_at (optional)
- priority (optional)
- receipt (optional)
- from_addr is not used
- transport_type is not used
Non-reply outbound messages are supported.
SMPP shoves some values into delivery report transport_metadata (which seems odd) but doesn't appear to use transport_metadata in user messages.
- from_addr is used but can be overriden by transport configuration.
- transport_type is not used.
Non-reply outbound messages are currently not supported. Replies are supported.
- session_id (required)
Non-reply outbound messages are supported.
The Twitter transport shoves all of original Twitter message dictionary into the transport metadata but none of it is need on outbound messages.
- from_addr is not used
- transport_type is not used
Non-reply outbound messages are supported.
Vas2nets encodes some vas2nets IDs into its vumi message ids. These should probably go into transport_metadata instead.
- original_message_id (unused on outbound)
- timestamp (unused on outbound)
- network_id (required)
- keyword (optional)
- tariff (optional)
- from_addr is used
- transport_type is not used
Non-reply outbound messages are supported.
- xmpp_id (unused on outbound)
- from_addr is not used
- transport_type is not used
Required arguments to send:
- to_addr
- content
Optional arguments:
- from_addr (defaults to None, transports or dispatchers should override as necessary)
- transport_name (defaults to None, may be set by dispatchers)
- transport_type (defaults to None, may be set by dispatchers)
- transport_metadata (defaults to {}, transports should support empty transport metadata for outgoing messages)
- helper_metadata (defaults to {}, transports should support empty helper_metadata for outgoing messages)
All optional arguments are also overrideable via Application Worker config.
Arguments that should not be specified:
- in_reply_to (always None)
- session_event (always SESSION_NEW)
I also thought about allowing transports to declare their capabilites (kinds of replies they can receive and transport types they support) but I think that's something for another branch / and ticket (praekeltfoundation/vumi#152).