Commit Graph

94 Commits

Author SHA1 Message Date
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
Sean DuBois
c8b7aa386a Disable MediaEngine Copy by Default
If an API is shared between PeerConnections they would use the same
MediaEngine. A MediaEngine contains negotiated PayloadTypes so if the
PeerConnections were answering you would end up in invalid states.

Add DisableMediaEngineCopy to SettingEngine in case user needs old
behavior.

Resolves #1662
2021-02-09 21:31:57 -08:00
OrlandoCo
6ef4c1bba8 Add buffer factory
Allow to configure a buffer factory on SettingEngine to provide
a custom buffer for RTP/RTCP
2021-01-03 23:00:57 -05:00
Sean DuBois
7edfb701e0 New Track API
The Pion WebRTC API has been dramatically redesigned. The design docs
are located here [0]

You can also read the release notes [1] on how to migrate your
application.

[0] https://github.com/pion/webrtc-v3-design
[1] https://github.com/pion/webrtc/wiki/Release-WebRTC@v3.0.0
2020-11-15 09:20:47 -08:00
Pion
ae5c0046da Update CI configs to v0.4.12
Update lint scripts and CI configs.
2020-11-06 20:33:59 -08: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
Sean DuBois
804a12fed3 Update CI configs to v0.4.7
Update lint scripts and CI configs.
2020-09-30 09:06:34 -07:00
Sean DuBois
2155a7d703 Move candidate parsing to pion/ice
Instead of having logic in pion/webrtc and pion/sdp move all logic to
pion/ice. Users of pion/ice don't want to import these packages to use
basic pion/ice functionality.
2020-09-13 00:05:09 -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
ef1d5a4a8b Add extmap support
Extmaps are configured via the SettingEngine. This allows a user
to set arbitrary values, and when answering ids and entries are
properly excluded.

Co-authored-by: Gabor Pongracz <gabor.pongracz@proemergotech.com>
2020-07-03 01:01:56 -07:00
Woodrow Douglass
baf14a9af4 Media Level Fingerprints Configuration Option
This commit adds an option to put DTLS Fingerprint specification
at the media description level rather then the session description
level. This enhances compatibility with some 3rd party webrtc
implementations (notably Kurento).
2020-06-30 01:37:15 -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
Simon Eisenmann
b95ee52c41 Add helpers to disable replay protection
Sometimes the replay protection of SRTP and SRTCP needs to be disabled.
This change adds disableSRTPReplayProtection and
DisableSRTCPReplayProtection helpers to SettingEngine.
2020-04-06 08:37:16 +02:00
Atsushi Watanabe
438ac1eb2f Add replay protection setting to SettingEngine
Set windows size of each protocol by:
- SetDTLSReplayProtectionWindow
- SetSRTPReplayProtectionWindow
- SetSRTCPReplayProtectionWindow
2020-03-29 12:22:55 -07: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
7584762124 Expose Answering DTLSRole via SettingEngine
User can now control what DTLSRole the local client
takes when answering via the SettingEngine.

Relates to #880
2019-10-22 01:11:21 -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
Hugo Arregui
3d7235b4ed Add missing SettingEngine setters
ICE timeout options were added but not exposed
2019-06-14 11:45:07 +00:00
Konstantin Itskov
8c7f769e86 Fix race issue caused by multiple gathering
resolves #707
2019-06-07 20:05:55 -07:00
Hugo Arregui
8572527a86 Expose new ICE options
Expose new ICE timeouts in the setting engine
2019-06-05 14:19:01 -07:00
Adam Kiss
a8148e4ac6 Bump pion/ice
SetEphemeralUDPPortRange now affects server reflexive candidates
as well.
2019-05-10 18:03:39 -05:00
Sean DuBois
1cdfc10c84 Mass replace pions -> pion
Pions organization was renamed to pion
2019-04-04 15:32:03 -07:00
Hugo Arregui
87897285b1 Custom Loggers
Define LoggerFactory as part of the SettingEngine
2019-04-01 11:14:13 -03:00
Sean DuBois
b4bc4798b9 Move ICE out of tree
Relates to #361
2019-03-25 23:31:43 -07:00
Alex Browne
012a7ea686 Improve build tags for Wasm
Fixes #515

This includes a few small and closely related changes:

1. All occurrences of the build tag `+build js` have been changed to the
   more precise `+build js,wasm`. This will exclude the files from being
   included by third-party compilers like GopherJS, with which they are
   incompatible.
2. Some files which are incompatible with JavaScript/Wasm now have the
   correct build tag (`+build -js`) so they will be excluded from Wasm
   builds.
3. Some configuration options which are incompatible with
   JavaScript/Wasm (or at least the current bindings) will now no longer
   appear in Wasm builds. This meant creating new files with new struct
   definitions and the appropriate build tags.
2019-03-22 10:48:03 -07:00
Konstantin Itskov
d23ceed6d4 Add a customization to control network types
- Fix an issue with ipv6 srflx candidates gathering.
- Add SetNetworkTypes config to SettingEngine to control what network
  types are allowed to be connected.

Resolves #460
2019-03-12 21:36:52 -04:00
Michael MacDonald
5084ad3370 Move pkg/ice to internal/ice
Avoid exposing any non-standard API.
2019-03-01 08:07:42 -05:00
Max Hawkins
0e7086d37a Remove RTC prefix from all names
Let's pull off the bandaid!

* Reduces studdering: webrtc.RTCTrack -> webrtc.Track
* Makes it easier to find types by editor autocomplete
* Makes code read more fluently (less repetition)

Since we're breaking the API in 2.0, our only chance to
do this is now.

Relates to #408
2019-02-17 16:22:56 -08:00
backkem
db15e20c54 API: Expose SettingEngine
Enable passing custom settings and media engine to an API.
2019-01-24 20:35:49 +01:00
Woodrow Douglass
e906728df3 Factor out an API object
Relates to #333
2019-01-23 16:21:13 +01:00
Woodrow Douglass
69571ee135 Nullable timeout settings
Allow connection timeout and keepalive interval
to have a valid 0 value, in which case nil denotes the default.

Relates to #325
2019-01-07 13:11:27 -08:00
Woodrow Douglass
c9bb14e6c3 Add settingEngine hooks to modify ICE timeouts
Relates to #324
2019-01-07 13:11:27 -08:00
backkem
3762e8a09e Detach: Expose data channel networking
Resolves #277
2018-12-24 17:51:01 +01:00
backkem
ae0a2a075f Settings Engine: Add documentation
Relates to #281
2018-12-24 13:21:55 +01:00
Woodrow Douglass
a2819a1b93 Add an engine for global webrtc settings
* hook up UDP limitation to it.
This was Michiel De Backker's suggestion

relates to #281
2018-12-24 13:21:55 +01:00