# RPC Call Request

<figure><img src="https://111806075-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mg4otljWU9FsHKYhTsW%2Fuploads%2FPAimHWg5I8ouqNZuGUQh%2Fimage.png?alt=media&#x26;token=e52b449a-a5cc-48ac-9b81-8dda99d82718" alt=""><figcaption></figcaption></figure>

Sends RPC requests to the Device and routing response to the next Rule nodes. Message Originator must be a **Device** entity as RPC request can be initiated only to device.

Node configuration has **Timeout** field used to specify timeout waiting for response from device.

Message payload must have correct format for RPC request. It must contains **method** and **params** fields.

<figure><img src="https://111806075-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mg4otljWU9FsHKYhTsW%2Fuploads%2F2vTp3Obzf9vDc2fVa0NZ%2Fimage.png?alt=media&#x26;token=ab3709bb-9263-4ed0-a565-1321c5b57380" alt=""><figcaption></figcaption></figure>

If Message Payload contains **requestId** field, its value used to identify RPC request to the Device. Otherwise random requestId will be generated.

Outbound Message will have same originator and metadata as in inbound Message. Response from the Device will be added into Message payload.

Message will be routed via **Failure** chain in the following cases:

* Inbound Message originator is not a **Device** entity
* Inbound Message has missed **method** or **params** fields
* If Node will not receive a response during configured timeout

Otherwise Message will be routed via **Success** chain.
