Commit Graph

62 Commits

Author SHA1 Message Date
Sean DuBois
3aab0355e0 Upgrade dtls, ice, stun and turn
New major version of all packages caused by DTLS upgrade
2024-08-12 13:45:35 -04:00
Eric Daniels
78c8a2e07c Add PeerConnection.GracefulClose 2024-08-06 09:51:54 -04:00
renovate[bot]
480be18a34 Update module github.com/pion/ice/v3 to v3.0.7
Generated by renovateBot
2024-05-02 13:56:06 -04:00
Stephan Rotolante
b8fcf99aa0 Expose STUNGatherTimeout via SettingEngine
Resolves pion/webrtc#2668
2024-04-03 09:57:18 -04:00
Dawei Feng
906f20c41d Add MaxBindingRequests to SettingEngine 2024-02-02 21:14:02 -05:00
Sean DuBois
218b0feb4f Update module github.com/pion/stun to v2
Generated by renovateBo
2023-09-08 14:48:19 -04:00
renovate[bot]
ea23dec2b9 Update module transport, srtp, ice and turn
ReplayDetector introduced a breaking change
2023-09-03 23:59:43 -04:00
Aleksandr Alekseev
2926b99173 Stats: improve JSON support, add missing structs
- Fix json marshalling of stats containing enums
- Add UnmarshalStatsJSON helper
- Add marshalling/unmarshalling tests
- Add missing AudioSourceStats, VideoSourceStats AudioPlayoutStats
  defined in https://www.w3.org/TR/webrtc-stats
- Deprecate ICECandidateStats' NetworkType, use plain string
  instead of enum which does not suite the definition:
  https://clck.ru/354H9r
2023-08-17 13:15:07 -04:00
David Zhao
678ddd46e4 Add SettingsEngine option to disable Active TCP
Use SettingsEngine.DisableActiveTCP(true)
2023-06-26 16:51:10 -07:00
Pouget-Abadie
1210046255 Upgrading pion/ice dependency 2023-05-14 21:42:24 -04:00
Steffen Vogel
683fc837d0 Make repo REUSE compliant 2023-05-05 11:58:49 -04:00
Steffen Vogel
eafdc7742a Use new pion/transport Net interface
This change adapts pion/ice to use a new interface for most network
related operations. The interface was formerly a simple struct vnet.Net
which was originally intended to facilicate testing. By replacing it
with an interface we have greater flexibility and allow users to hook
into the networking stack by providing their own implementation of
the interface.
2023-02-09 09:39:33 +01:00
cnderrauber
c75da54795 Add EnableLoopbackCandidate flag
Add EnableLoopbackCandidate flag
2022-11-23 12:58:57 +08:00
Yoon SeungYong
9509f736be Fix panics in ICEGatherer when it's already closed
ICEGatherer throws panics in GetLocalCandidates(), GetLocalParameters()
when it is already closed. Fix them.

Resolves pion#2261
2022-09-30 09:58:26 -07:00
cnderrauber
371d27cb57 Add IPFilter to SettingEngine
When machine's network interface have more than one ip address and
user don't want expose one of these ips to remote peer, interface
filter can't work in this case, so add a ip filter for that
2022-09-29 14:22:30 +08:00
David Zhao
26f673d847 Fixed panic in ICEGatherer.Gather
It's possible the ICEGatherer is closed shortly after Gather began
2022-05-20 22:38:09 -04:00
Forest Johnson
5c737e1f87 Add note to OnICECandidate on when ICE Gathering
ICE Gathering is triggered by SetLocalDescription and
SetRemoteDescription
2022-05-13 12:51:06 -04:00
Sean DuBois
a6981566c5 Update module github.com/pion/ice/v2 to v2.2.6
Generated by renovateBot
2022-04-22 15:25:21 -04:00
cnderrauber
8d816c3b08 Update ice for accept aggressive nomination
Update ice to 2.2.5 for accept aggressive nomination
2022-04-21 16:21:42 +08:00
Sean DuBois
157220e800 Run gofmt to add new build constraints
Also remove some 1.13 specific WASM code
2022-01-17 22:36:01 -05:00
David Zhao
d0a52518b0 Introduce UDPMux in SettingsEngine, single-port
When set, Pion will handle ICE connections over UDPMux
2021-04-15 10:49:14 -07:00
Assad Obaid
6e72493517 Set the proxy dialer
Sets the proxy dialer in the ice package.

Relates to pion/ice#284
2020-10-09 13:01:38 -07:00
Sean DuBois
89c51a156c Rename SettingEngine mDNS Config option
GenerateMulticastDNSCandidates -> SetICEMulticastDNSMode.
Before a user wasn't able to disable mDNS. By changing it we can
do more with this API.
2020-10-05 16:52:21 -07:00
soolaugust
6f6de25b24 Modify all hdlr to handler for better reading
change hdlr -> handler, Hdlr -> Handler for better reading.
Since this is first commit, add myself to contributors
2020-08-17 22:04:29 -07:00
Jerko Steiner
cd3beeab24 Upgrade pion/ice to v2.0.0-rc.9
Add support for more stable ICE TCP API.
2020-08-01 11:11:51 +02:00
Jerko Steiner
2236ddeafd Add experimental support for ICE TCP
See pion/ice issue and PR:

- https://github.com/pion/ice/tree/issue-196
- https://github.com/pion/ice/pull/226
2020-07-15 15:08:37 +02:00
Sean DuBois
9ed5fd393c Remove CandidateSelectionTimeout
pion/ice now will use any valid candidate pair to exchange data.
Before we needed this we would wait to be selected before sending data,
now we just use anything that is connected.
2020-07-06 01:04:22 -07:00
Sean DuBois
f2941469f4 Implement ICE Restarts
Resolves #1251
2020-06-29 23:09:18 -07:00
Sean DuBois
bb3aa9717f Move to pion/ice@v2
Removed support for trickle ice

Resolves #1274
2020-06-28 00:01:47 -07:00
Atsushi Watanabe
be9fde1fd3 Fix ICEGatherer state change callback order
Don't call handlers in goroutine to guarantee the ordering and
avoid changing internal state during callback.
2020-03-10 16:32:44 +09:00
Jorropo
8fe6f7fa34 Adding documentation about OnICECandidate
Follow up to #1051.
2020-02-26 20:30:15 -08:00
Sean DuBois
e45c256e6c Fix GetStats SEGV
Fix crash when GetStats called on Closed PeerConnection

Resolves #1005
2020-02-06 14:17:43 -08:00
Sean DuBois
efe2c58d4e Add test for OnICEGatheringStateChange
Resolves #767
2020-01-30 00:19:32 -08:00
Sean DuBois
d10941f2a4 Add SettingEngine entries needed for offline sync
Allow users to set statice ICECredentials and to disable
DTLS Certificate Verification
2019-12-09 16:43:44 -08:00
Sean DuBois
70157302b6 Bump pion/ice
SettingEngine now allows setting static MulticastDNS HostName
2019-12-08 22:17:30 -08:00
Sean DuBois
99c0f8d32c GenerateMulticastDNSCandidates in SettingEngine
Users can now generate MulticastDNS candidates by enabling this option
in the SettingEngine.
2019-12-08 14:15:27 -08:00
Sean DuBois
1d42a11bde Add vnet to SettingEngine
Also add simple example to show usage

Resolves #778
2019-12-08 01:03:17 -08:00
Sean DuBois
b5154b499e Only create ICEGather via API
Use values directly from SettingValues instead of just copying
when calling NewICEGatherer. This greatly reduces the LoC and makes
the public API a little cleaner.

Resolves #872
2019-11-21 11:18:05 -08:00
Vicken Simonian
5f25df2209 Various spell fixes
For error types, vars, docs and comments
2019-10-17 23:31:21 -07:00
Sebastian Waisbrot
c12ebcf0e2 Honor nat 1to1 config when creating agent
NAT 1to1 config was set and not used
2019-09-26 15:02:24 -07:00
Yutaka Takeda
d4053a8b71 Updates per code reviews
Use ICECandidateType instead of string
Combine two methods to one SetNAT1To1IPs
Resolves #835
2019-09-26 02:15:34 -07:00
Yutaka Takeda
918412679f Support 1:1 NAT option
Resolves #835
2019-09-26 02:15:34 -07:00
Aaron France
cabbd8b52f Add InterfaceFilter to SettingEngine
This allows users to filter interfaces from ICE gathering

Resolves #843

Co-authored-by: Sean DuBois <sean@siobud.com>
2019-09-25 01:16:17 -07:00
Sebastian Waisbrot
e0aab79044 Support running ICE lite locally and on a remote
* Parse ice-lite property from remote SessionDescription
* Add option to SettingEngine that allows the local ICEAgent to run
  in lite mode
2019-09-12 11:42:16 -07:00
Atsushi Watanabe
ea81c1804b Fix possible ill-order of OnLocalCandidate call
onLocalCandidateHdlr was called in one candidate per one goroutine.
It is not guaranteed to be called in-order,
and nil can be sent before the final candidate.
2019-08-17 00:49:37 -07:00
Sean DuBois
fd9dfab0af Guard against nil OnLocalCandidate handler
Currently the ICEGather will crash if trickle is enabled and
OnLocalCandidate hasn't been defined. This adds a simple nil check
to make sure we don't crash if the user doesn't set a OnLocalCandidate
callback
2019-07-29 17:28:24 -07:00
Sean DuBois
10d2ca3d88 Enable gochecknoglobals linter
Resolves #434
2019-07-09 23:31:56 +01:00
Hugo Arregui
93261960b1 Basic stats
Load DC, CandidatePair and Candidate basic stats
2019-06-25 19:36:57 +00:00
Sean DuBois
2838b1a836 Move ICE code out of internal
Users are unable to use the callbacks inside `internal/ice`.
Even though we alias things like OnSelectedCandidatePairChange
are unusable since in the package they use `ice.Candidate` instead of
`ICECandidate`
2019-06-15 01:29:08 -07:00
Adam Kiss
7756848a4c Moved ice related files to internal/ice
Moved ice related files to internal/ice. Added ice.go and
ice_go.go files containing aliases to internal/ice. Added
internal/tools/gen/genaliasdocs.go helper script for generating the
documentation for these aliases. Dropped ice
prefix from file names in internal/ice package.
2019-06-03 10:57:27 -07:00