Share via


3.1.1.2 OOB Connector Object

An OOB Connector object encapsulates the state for an OOB connection between two peers.

Role:  The role of the OOB Connector object. One peer is the connector, and the other peer is the listener. The roles are distinguished as follows:

  • The connector is the peer that sends the OOB Connector Service Activation message (section 2.2.5) and waits for the OOB Connector Service ACK message (section 2.2.4).

  • The listener is the peer that receives the OOB Connector Service Activation message and sends the OOB Connector Service ACK message.

State:  The current state of the OOB Connector object. The meaning of the state depends on the object role; this allows an asymmetric client/server message exchange. For the connector role, the state can be one of the following.

Value

Meaning

WaitingForAck

The object has published the OOB Connector Service Activation message (section 2.2.5) and is waiting to receive the OOB Connector Service ACK message (section 2.2.4).

Incomplete

The OOB Connector protocol timed out. The object is still alive to facilitate object continuity across multiple taps.

Ready

The object has received the OOB Connector Service ACK message and has all the information required to facilitate communications between the two peers.

The following is a diagram that shows the state transitions for the connector role of an OOB Connector object.

OOB Connector state transitions: Connector role

Figure 4: OOB Connector state transitions: Connector role

For the listener role, the state can be one of the following.

Value

Meaning

WaitingForTransmit

The object has received the OOB Connector Service Activation message, has published the OOB Connector Service ACK message to the transport, and is waiting for the transport to indicate the ACK message has been transmitted to a remote peer

Incomplete

The OOB Connector protocol timed out. The object is still alive to facilitate object continuity across multiple taps.

Ready

This object has received notification of successful transmission of the ACK message and has all the information required to facilitate communication between two peers.

The following is a diagram that shows the state transitions for the listener role of an OOB Connector object.

OOB Connector state transitions: Listener role

Figure 5: OOB Connector state transitions: Listener role

RemoteSourceID:  This identifies the peer to which a given OOB Connector object is connected. For the connector, this is copied from the ActivationChannelID field in the received Service Descriptor message (section 2.2.8). For the listener, this is copied from the SourceID field in the Service Activation header (section 2.2.7) of the received OOB Connector Service Activation message.

OOBConnectorID:  For the connector, this is randomly generated and used in the OOB Connector Service Activation message. For the listener, this is copied from the received OOB Connector Service Activation message.

WFDPeerConnected:  A Boolean value that indicates whether the OOB Connector object has an active Wi-Fi Direct (WFD) connection to the peer.

OOB Connector WFDPeerConnected transitions

Figure 6: OOB Connector WFDPeerConnected transitions

LocalAddresses (Public Read):  The list of local addresses collected by the OOB Connector object from the local machine and sent to the remote machine via either the Activation or ACK message.

RemoteAddresses (Public Read):  The list of remote addresses received by the OOB Connector object from the remote machine via either the Activation or ACK message.

ReferenceCount:  A count of references to the OOB Connector object by either Session objects or KeepAlive timers.