mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-14 22:56:12 -04:00
109 lines
3.3 KiB
Protocol Buffer
109 lines
3.3 KiB
Protocol Buffer
// Copyright 2020 Google LLC
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// https://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
syntax = "proto2";
|
|
|
|
package location.nearby.mediums;
|
|
|
|
option optimize_for = LITE_RUNTIME;
|
|
option java_outer_classname = "WebRtcSignalingFramesProto";
|
|
option java_package = "com.google.location.nearby.mediums.proto";
|
|
|
|
message WebRtcSignalingFrame {
|
|
enum FrameType {
|
|
UNKNOWN_FRAME_TYPE = 0;
|
|
OFFER_TYPE = 1;
|
|
ANSWER_TYPE = 2;
|
|
ICE_CANDIDATES_TYPE = 3;
|
|
READY_FOR_SIGNALING_POKE_TYPE = 4;
|
|
}
|
|
|
|
optional PeerId sender_id = 1;
|
|
|
|
optional FrameType type = 2;
|
|
|
|
oneof Frame {
|
|
Offer offer = 3;
|
|
Answer answer = 4;
|
|
IceCandidates ice_candidates = 5;
|
|
ReadyForSignalingPoke ready_for_signaling_poke = 6;
|
|
}
|
|
}
|
|
|
|
// The id of the peer who sent the signaling frame.
|
|
message PeerId {
|
|
optional string id = 1;
|
|
}
|
|
|
|
// https://en.wikipedia.org/wiki/Session_Description_Protocol
|
|
// SDP (Session Description Protocol) is the standard describing a peer-to-peer
|
|
// connection. SDP contains the codec, source address, and timing information of
|
|
// audio and video. An example message is:
|
|
// v=0
|
|
// t=0 0
|
|
// a=group:BUNDLE data
|
|
// a=msid-semantic: WMS
|
|
// m=application 9 DTLS/SCTP 5000
|
|
// c=IN IP4 0.0.0.0
|
|
// b=AS:30
|
|
// a=ice-ufrag:zaEf
|
|
// a=ice-pwd:w9+RrqMj1RbC++15mNcRoRG5
|
|
// a=ice-options:trickle renomination
|
|
// a=fingerprint:sha-256
|
|
// B3:FE:B9:E1:F4:58:F6:05:A7:0D:3C:E6:E5:0A:44:A0:88:F4:50:90:41:D6:2E:A3:84:D8:C5:0C:40:2E:DB:6D
|
|
// a=setup:active
|
|
// a=mid:data
|
|
// a=sctpmap:5000 webrtc-datachannel 1024
|
|
// a=candidate:1 1 UDP 2130706431 10.0.1.1 8998 typ host
|
|
// a=candidate:2 1 UDP 1694498815 192.0.2.3 45664 typ srflx raddr
|
|
message SessionDescription {
|
|
// See the SDP example above.
|
|
optional string description = 1;
|
|
}
|
|
|
|
// https://en.wikipedia.org/wiki/Interactive_Connectivity_Establishment
|
|
// https://www.slideshare.net/saghul/ice-4414037
|
|
// An example message contains:
|
|
// sdp_mid = data
|
|
// sdp_m_line_index = 0
|
|
// sdp = candidate:198238137 1 udp 2122262783
|
|
// 620:0:1000:fd1f:1cc5:76e0:78ba:6c54 41539 typ host generation 0 ufrag kq7J
|
|
// network-id 4 network-cost 10:
|
|
message IceCandidate {
|
|
// See the lines beginning with a=candidate in the SDP example above.
|
|
optional string sdp = 1;
|
|
// For valid values, see https://tools.ietf.org/html/rfc4566 -> Media Types
|
|
// This ID uniquely identifies a given media stream with which the candidate
|
|
// is associated. Example: data
|
|
optional string sdp_mid = 2;
|
|
// A zero-based index of the m-line describing the media associated with the
|
|
// candidate. Example: 0
|
|
optional int32 sdp_m_line_index = 3;
|
|
}
|
|
|
|
message IceCandidates {
|
|
repeated IceCandidate ice_candidates = 1;
|
|
}
|
|
|
|
message Offer {
|
|
optional SessionDescription session_description = 1;
|
|
}
|
|
|
|
message Answer {
|
|
optional SessionDescription session_description = 1;
|
|
}
|
|
|
|
// Sent from answerer->offerer once the answerer is ready to receive the offer.
|
|
message ReadyForSignalingPoke {}
|