Create an answer
After receiving an offer, the call recipient creates an answer and stores it inside a structured data with an ID based on the random ID provided by the caller. This answer includes a session description in SDP format, and it needs to be delivered to the caller (the person initiating the call).
Contents
Create a new WebRTC peer connection
The app creates a new RTCPeerConnection using the simple-peer module. If you are joining a room where another user is waiting for you, props.peerPayload contains the offer of that user and therefore the value of initiator will be false. This means that the app will create an answer.
PeerView.js
const initiator = !props.peerPayload
const peer = new Peer({ initiator: initiator,
stream: props.stream,
config : {
iceServers: CONFIG.iceServers
},
trickle: false })PeerView.js
if (!initiator) {
// let's connect to the other peer
peer.signal(props.peerPayload.payload)
}For now, only the connection establishment is done using the SAFE Network. The actual connection is either peer-to-peer (STUN) or via a TURN server. At some point later, we will integrate this functionality directly in CRUST.
Store the answer inside a structured data
After the answer is created, the signal event is fired.
PeerView.js
The app creates a structured data with an ID based on the random ID provided by the caller.
PeerView.js
Create a structured data
The app creates a structured data handle for the answer.
store.js
The address of the structured data is based on the app ID (example.signaling.v1) and the random ID provided by the caller. The structured data is unversioned (type 500). The data is stored as a base64 string.
store.js
Save the structured data
The app saves the structured data by sending a PUT request to the SAFE Network.
store.js
Last updated
Was this helpful?