Commit Graph

35 Commits

Author SHA1 Message Date
Sean DuBois
f3fa47ce89 Remove IceControlled/Priority from ICE keepalive
IceControlled is incorrect if agent is controlling, instead of fixing
remove instead. We don't need these two values in the keepalive.

Resolves #187
2018-09-29 15:48:25 -07:00
Sean DuBois
45ba620e1d Add MessageIntegrity + Username in ICE keepalive
libnice is discarding our keepalives without them

Resolves #178
2018-09-26 00:05:09 -07:00
backkem
75b59db8f0 ICE: Cleanup agent notifier
Relates to #159
2018-09-22 14:58:34 -07:00
backkem
8d0ee4d171 ICE: Improve nomination
- Avoid USE-CANDIDATE attribute in controlled agent binding requests.
- Don't respond to success responses in handleInboundControlled.
- Controlling agent now re-sends binding with USE-CANDIDATE when
  receiving a binding request from a controlled agent.

Resolves #164
2018-09-22 14:12:53 -07:00
backkem
5798f394a3 ICE: Implement keep-alive
- Periodically send a keep-alive Binding Indication.
- Downgrade connection state to disconnected after timeout.

Resolves #163
2018-09-22 13:00:54 -07:00
Sean DuBois
b489b33a57 Fix IceAgent improperly returning XorAddress
IceAgent improperly returns XorAddress when finding ports.
This would cause the portManager to fail finding the relevant port
since we are bound on the local (and not our public XorAddress)

Resolves #140
2018-09-14 22:34:02 -07:00
Konstantin Itskov
951e6eb77c Change package title documentation for ice and rtcerr 2018-09-04 16:31:45 -07:00
Sean DuBois
43bef20c8e Partial revert of 17992910bf
Commit added debugging Printfs
2018-09-04 16:29:37 -07:00
Sean DuBois
41e7adbb2b Run GoFmt 2018-09-03 12:50:54 -07:00
wattanakorn495
17992910bf clean agent.go 2018-09-03 12:50:08 -07:00
wattanakorn495
de4750ba7b fix gofmt 2018-09-03 12:50:08 -07:00
wattanakorn495
274ea378e4 both controlling and controlled agent can pingcadidate 2018-09-03 12:50:08 -07:00
Konstantin Itskov
12894d097b Fix all issues related to math/rand 2018-08-28 01:03:09 -07:00
Konstantin Itskov
7b7a349071 Add a bunch of documentation all over the library strucutres 2018-08-28 01:03:09 -07:00
Konstantin Itskov
0008c7263d Fix a unittest failure due to closing nil channel 2018-08-28 01:03:09 -07:00
Konstantin Itskov
e8364dc5e9 Add fully working RTCIceServer with 100% unit-test code coverage 2018-08-28 01:03:09 -07:00
Sean DuBois
0bafbf4867 Unexport ice.NewCandidatePair 2018-08-18 00:18:23 -07:00
Sean DuBois
a268c1e86e Fix all lint errors 2018-08-18 00:18:23 -07:00
backkem
aa22a92b18 datachannel: handle data before final ICE pair selection, fix agent deadlock 2018-08-18 00:18:23 -07:00
Sean DuBois
ceed0bb590 When comparing candidates check Host+Srflx 2018-08-17 00:00:44 -07:00
Sean DuBois
78b6a76cc5 Revert "Move ICE package from public to internal folder structure"
ICE Package needs to be public for peerConnection.OnICEConnectionStateChange

This reverts commit b831f87d28.
2018-08-16 10:10:29 -07:00
Konstantin Itskov
b831f87d28 Move ICE package from public to internal folder structure 2018-08-16 01:28:48 -07:00
Sean DuBois
ae2ee106e6 Fix deadlock in ICEAgent, early exit failed to unlock mutex
Reported+Fixed by @backkem
2018-08-15 12:05:39 -07:00
Konstantin Itskov
46231d9c39 [WIP] Add complete sdp parsing improved implementation 2018-08-14 00:56:51 -04:00
Sean DuBois
02e72796d4 Emit ICEConnectionState to user API again 2018-08-11 13:56:28 -07:00
Sean DuBois
283404bd6c Remove all panics in library code 2018-08-11 13:56:28 -07:00
Sean DuBois
938e490c39 Fix all lint errors, move SDP code to proper package 2018-08-11 13:56:28 -07:00
Sean DuBois
9cb64036b2 Finish ICE implementation 2018-08-11 13:56:28 -07:00
Sean DuBois
4de5016f96 Everything works, bug with MessageIntegrity
pion-WebRTC passes through every step, but messages get discared because
MI check is failing. We are able to Offer (or answer) to Chrome after
this is done
2018-08-11 13:56:28 -07:00
Sean DuBois
571bfc7c4f Start to refactor signaling so we can support Offers 2018-08-11 13:56:28 -07:00
Sean DuBois
e4b3defcc1 Everything works again!
All the examples need to be updated, SDP should only be
emitted after gathering is done (until we support trickle)

Currently we can't be controlling-ICE, but that is probably a days
worth of work. After that is done pion-WebRTC should be able to talk
to itself.
2018-08-11 13:56:28 -07:00
Sean DuBois
1be721e5fa ICE works again, with proper agent implementation
Candidates are now generated with real priority, and actually pay
attention to the inbound messages.

Next we just need to pluck use-candidate + ice-controlling from the
messages and we will have a full-ice implementation (but we are not
controlling)

We then need to add timers to alert when the peer goes away OR when we
need to send again.
2018-08-11 13:56:28 -07:00
Sean DuBois
3ebc6fe428 Create Local Candidates 2018-08-11 13:56:28 -07:00
Sean DuBois
0c08a67e20 Start full ICE implementation for #23 2018-08-11 13:56:28 -07:00
backkem
7f682d2d2e api: match WebRTC api more closely 2018-07-16 14:20:18 -07:00