Menu

Expand
Rate this page:

Command Resource

The Command resource enables you to exchange simple machine-to-machine messages with SMS-capable devices. For example, you could use a Command resource to instruct a device to take a sensor reading.

While SMS is used as the transport, the SIM does not require an addressable phone number to receive a Command. This is the major distinction from Twilio’s Messages resource, which can be used for conversational messaging.

Any SMS message sent from a SIM to a pre-determined phone number — see Receive a Command from a SIM — is interpreted as a Command and sent to the Command callback URL of the Sim resource.

Commands can be sent and received using the SMS text mode or binary (PDU) mode. Text-mode Commands have a maximum length of 160 single-byte characters. Binary-mode Commands have a maximum length of 140 bytes.

To receive and process a Command sent to your device, you will interface with the modem directly, probably using AT commands. You should consult with the module manufacturer's documentation for information about receiving SMS messages.

Asynchronous resources

The Command resource performs asynchronous operations. To receive an asynchronous notification when a Command resource has finished updating, provide a callback URL, and optionally a callback method, GET or POST, when you create the Command.

Retention period

Commands are retained for 30 days from the time they are created. Commands older than 30 days will no longer be readable from this resource.

Command properties

Resource Properties in REST API format
sid
sid<DC> Not PII

The unique string that we created to identify the Command resource.

account_sid
sid<AC> Not PII

The SID of the Account that created the Command resource.

sim_sid
sid<DE> Not PII

The SID of the Sim resource that the Command was sent to or from.

command

The message being sent to or from the SIM. For text mode messages, this can be up to 160 characters. For binary mode messages, this is a series of up to 140 bytes of data encoded using base64.

command_mode
enum:command_mode Not PII

The mode used to send the SMS message. Can be: text or binary. The default SMS mode is text.

transport
enum:transport Not PII

The type of transport used. Can be: sms or ip.

delivery_receipt_requested
boolean Not PII

Whether to request a delivery receipt.

status
enum:status Not PII

The status of the Command. Can be: queued, sent, delivered, received, or failed. See Status Values for a description of each state.

direction
enum:direction Not PII

The direction of the Command. Can be to_sim or from_sim. The value of to_sim is synonymous with the term mobile terminated, and from_sim is synonymous with the term mobile originated.

date_created
date_time<iso8601> Not PII

The date and time in GMT when the resource was created specified in ISO 8601 format.

date_updated
date_time<iso8601> Not PII

The date and time in GMT when the resource was last updated specified in ISO 8601 format.

url
url Not PII

The absolute URL of the resource.

Status values

Status Description
queued The Command is queued in our network waiting to be sent to the SIM.
sent The Command has been sent to the SIM.
delivered The Command has been delivered to the SIM. For to_sim Commands only.
received The Command has been received from the SIM. For from_sim Commands only.
failed The Command has failed to be transmitted.

Create a Command resource

post
https://wireless.twilio.com/v1/Commands

Creating a Command resource sends the command to the SIM.

Callback values

Outgoing Command delivery is asynchronous, so we recommend that you pass a callback URL when you create the new Command.

When you providea callback URL, we call it when the attempt to send the Command completes.

We send these parameters to the callback URL:

Parameter Description
CommandSid The Command this callback is in reference to.
CommandStatus The current status of the Command.
SimSid The SIM this Command was sent to.
SimUniqueName The receiving SIM’s UniqueName, if it has one.
ErrorCode If an error occurred, an error code is provided.
ErrorMessage If an error occurred, an error message is provided.
ApiVersion The version of the API that your initial request was made to.
AccountSid The SID of the Account that this Command belongs to.
CommandMode A string representing which mode the SMS was sent using. May be text or binary.

If the CallbackMethod parameter was set to POST, or not provided, the callback parameters are delivered as HTML form parameters. If the CallbackMethod parameter was set to GET, the callback parameters are delivered as a query string.

Parameters
Parameters in REST API format
command
Required
post string PII MTL: 30 DAYS

The message body of the Command. Can be plain text in text mode or a Base64 encoded byte string in binary mode.

sim
Optional
post string Not PII

The sid or unique_name of the SIM to send the Command to.

callback_method
Optional
post http_method Not PII

The HTTP method we use to call callback_url. Can be: POST or GET, and the default is POST.

callback_url
Optional
post url Not PII

The URL we call using the callback_url when the Command has finished sending, whether the command was delivered or it failed.

command_mode
Optional
post enum:command_mode Not PII

The mode to use when sending the SMS message. Can be: text or binary. The default SMS mode is text.

include_sid
Optional
post string Not PII

Whether to include the SID of the command in the message body. Can be: none, start, or end, and the default behavior is none. When sending a Command to a SIM in text mode, we can automatically include the SID of the Command in the message body, which could be used to ensure that the device does not process the same Command more than once. A value of start will prepend the message with the Command SID, and end will append it to the end, separating the Command SID from the message body with a space. The length of the Command SID is included in the 160 character limit so the SMS body must be 128 characters or less before the Command SID is included.

delivery_receipt_requested
Optional
post boolean Not PII

Whether to request delivery receipt from the recipient. For Commands that request delivery receipt, the Command state transitions to 'delivered' once the server has received a delivery receipt from the device. The default value is true.

Example 1
Loading Code Sample...
        
        
        Send the ‘wakeup’ command to the ‘AliceSmithSmartMeter’ SIM

        Create a text Command resource

        Send the ‘wakeup’ command to the ‘AliceSmithSmartMeter’ SIM
        Example 2
        Loading Code Sample...
              
              
              Send a binary command to the ‘AliceSmithSmartMeter’ SIM

              Create a binary Command resource

              Send a binary command to the ‘AliceSmithSmartMeter’ SIM

              Fetch a Command resource

              get
              https://wireless.twilio.com/v1/Commands/{Sid}
              Parameters
              Parameters in REST API format
              sid
              Path
              get sid<DC> Not PII

              The SID of the Command resource to fetch.

              Example 1
              Loading Code Sample...
                    
                    

                    Fetch a Command resource

                    Read multiple Command resources

                    get
                    https://wireless.twilio.com/v1/Commands

                    The maximum PageSize you can request when reading Commands is 100.

                    Parameters
                    Parameters in REST API format
                    sim
                    Optional
                    get string Not PII

                    The sid or unique_name of the Sim resources to read.

                    status
                    Optional
                    get enum:status Not PII

                    The status of the resources to read. Can be: queued, sent, delivered, received, or failed.

                    direction
                    Optional
                    get enum:direction Not PII

                    Only return Commands with this direction value.

                    transport
                    Optional
                    get ienum:transport Not PII

                    Only return Commands with this transport value. Can be: sms or ip.

                    Example 1
                    Loading Code Sample...
                          
                          

                          Read multiple Command resources

                          Delete a Command resource

                          delete
                          https://wireless.twilio.com/v1/Commands/{Sid}
                          Parameters
                          Parameters in REST API format
                          sid
                          Path
                          delete sid<DC> Not PII

                          The SID of the Command resource to delete.

                          Example 1
                          Loading Code Sample...
                                
                                

                                Delete a Command resource

                                Receive a Command from a SIM

                                To receive a Command from a SIM — called a “mobile-originated” Command — you should create or update an existing Sim instance and provide a CommandsCallbackUrl property. Optionally, you may also include a CommandsCallbackMethod property.

                                When a SIM sends an SMS message to the reserved phone number 2936, a Command resource will be created, and your Commands Callback URL will be invoked. The callback request will include the following parameters.

                                Parameter Description
                                CommandSid The SID of this Command.
                                SimSid The SIM this Command was sent by.
                                SimUniqueName The sending SIM’s friendly name, if it has one.
                                Command The body of the Command message. In text mode, this value can be up to 160 characters of text. In binary mode, this value is a Base64 encoded byte string with a maximum size of 140 bytes.
                                Status Will always be the string received.
                                ApiVersion The version of the API that your initial request was made to.
                                AccountSid The SID of the Account that this Command belongs to.
                                CommandMode A string representing which mode the SMS was received as. May be text or binary.
                                Rate this page:

                                Need some help?

                                We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.

                                Loading Code Sample...
                                      
                                      
                                      

                                      Thank you for your feedback!

                                      Please select the reason(s) for your feedback. The additional information you provide helps us improve our documentation:

                                      Sending your feedback...
                                      🎉 Thank you for your feedback!
                                      Something went wrong. Please try again.

                                      Thanks for your feedback!

                                      thanks-feedback-gif