# WebRTC development

The currently supported platforms are Windows, Mac OS X, Linux, Android and
iOS. See the [Android][webrtc-android-development] and [iOS][webrtc-ios-development]
pages for build instructions and example applications specific to these mobile platforms.


## Before You Start

First, be sure to install the [prerequisite software][webrtc-prerequisite-sw].

[webrtc-prerequisite-sw]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/prerequisite-sw/index.md


## Getting the Code

For desktop development:

1. Create a working directory, enter it, and run `fetch webrtc`:

```
$ mkdir webrtc-checkout
$ cd webrtc-checkout
$ fetch --nohooks webrtc
$ gclient sync
```

NOTICE: During your first sync, you'll have to accept the license agreement of the Google Play Services SDK.

The checkout size is large due the use of the Chromium build toolchain and many dependencies. Estimated size:

* Linux: 6.4 GB.
* Linux (with Android): 16 GB (of which ~8 GB is Android SDK+NDK images).
* Mac (with iOS support): 5.6GB

2. Optionally you can specify how new branches should be tracked:

```
$ git config branch.autosetupmerge always
$ git config branch.autosetuprebase always
```

3. Alternatively, you can create new local branches like this (recommended):

```
$ cd src
$ git checkout master
$ git new-branch your-branch-name
```

See the [Android][webrtc-android-development] and [iOS][webrtc-ios-development] pages for separate instructions.

**NOTICE:** if you get `Remote: Daily bandwidth rate limit exceeded for <ip>`,
make sure you're logged in. The quota is much larger for logged in users.

## Updating the Code

Update your current branch with:

```
$ git checkout master
$ git pull origin master
$ gclient sync
$ git checkout my-branch
$ git merge master
```

## Building

[Ninja][ninja] is the default build system for all platforms.

See the [Android][webrtc-android-development] and [iOS][webrtc-ios-development] pages for build
instructions specific to those platforms.

## Generating Ninja project files

[Ninja][ninja] project files are generated using [GN][gn]. They're put in a
directory of your choice, like `out/Debug` or `out/Release`, but you can
use any directory for keeping multiple configurations handy.

To generate project files using the defaults (Debug build), run (standing in
the src/ directory of your checkout):

```
$ gn gen out/Default
```

To generate ninja project files for a Release build instead:

```
$ gn gen out/Default --args='is_debug=false'
```

To clean all build artifacts in a directory but leave the current GN
configuration untouched (stored in the args.gn file), do:

```
$ gn clean out/Default
```

See the [GN][gn-doc] documentation for all available options. There are also more
platform specific tips on the [Android][webrtc-android-development] and
[iOS][webrtc-ios-development] instructions.

## Compiling

When you have Ninja project files generated (see previous section), compile
(standing in `src/`) using:

For [Ninja][ninja] project files generated in `out/Default`:

```
$ ninja -C out/Default
```


## Using Another Build System

Other build systems are **not supported** (and may fail), such as Visual
Studio on Windows or Xcode on OSX. GN supports a hybrid approach of using
[Ninja][ninja] for building, but Visual Studio/Xcode for editing and driving
compilation.

To generate IDE project files, pass the `--ide` flag to the [GN][gn] command.
See the [GN reference][gn-doc] for more details on the supported IDEs.


## Working with Release Branches

To see available release branches, run:

```
$ git branch -r
```

To create a local branch tracking a remote release branch (in this example,
the 43 branch):

```
$ git checkout -b my_branch refs/remotes/branch-heads/43
$ gclient sync
```

**NOTICE**: depot_tools are not tracked with your checkout, so it's possible gclient
sync will break on sufficiently old branches. In that case, you can try using
an older depot_tools:

```
which gclient
$ # cd to depot_tools dir
$ # edit update_depot_tools; add an exit command at the top of the file
$ git log  # find a hash close to the date when the branch happened
$ git checkout <hash>
$ cd ~/dev/webrtc/src
$ gclient sync
$ # When done, go back to depot_tools, git reset --hard, run gclient again and
$ # verify the current branch becomes REMOTE:origin/master
```

The above is untested and unsupported, but it might help.

Commit log for the branch: [https://webrtc.googlesource.com/src/+log/branch-heads/43][m43-log]
To browse it: [https://webrtc.googlesource.com/src/+/branch-heads/43][m43]

For more details, read Chromium's [Working with Branches][chromium-work-branches] and
[Working with Release Branches][chromium-work-release-branches] pages.


## Contributing Patches

Please see [Contributing Fixes][webrtc-contributing] for information on how to run
`git cl upload`, getting your patch reviewed, and getting it submitted.

This also includes information on how to run tryjobs, if you're a committer.

## Chromium Committers

Many WebRTC committers are also Chromium committers. To make sure to use the
right account for pushing commits to WebRTC, use the `user.email` Git config
setting. The recommended way is to have the chromium.org account set globally
as described at the [depot tools setup page][depot-tools] and then set `user.email`
locally for the WebRTC repos using (change to your webrtc.org address):

```
$ cd /path/to/webrtc/src
$ git config user.email yourname@webrtc.org
```

## Example Applications

WebRTC contains several example applications, which can be found under
`src/webrtc/examples`. Higher level applications are listed first.


### Peerconnection

Peerconnection consist of two applications using the WebRTC Native APIs:

* A server application, with target name `peerconnection_server`
* A client application, with target name `peerconnection_client` (not currently supported on Mac/Android)

The client application has simple voice and video capabilities. The server
enables client applications to initiate a call between clients by managing
signaling messages generated by the clients.


#### Setting up P2P calls between peerconnection_clients

Start `peerconnection_server`. You should see the following message indicating
that it is running:

```
Server listening on port 8888
```

Start any number of `peerconnection_clients` and connect them to the server.
The client UI consists of a few parts:

**Connecting to a server:** When the application is started you must specify
which machine (by IP address) the server application is running on. Once that
is done you can press **Connect** or the return button.

**Select a peer:** Once successfully connected to a server, you can connect to
a peer by double-clicking or select+press return on a peer's name.

**Video chat:** When a peer has been successfully connected to, a video chat
will be displayed in full window.

**Ending chat session:** Press **Esc**. You will now be back to selecting a
peer.

**Ending connection:** Press **Esc** and you will now be able to select which
server to connect to.


#### Testing peerconnection_server

Start an instance of `peerconnection_server` application.

Open `src/webrtc/examples/peerconnection/server/server_test.html` in your
browser. Click **Connect**. Observe that the `peerconnection_server` announces
your connection. Open one more tab using the same page. Connect it too (with a
different name). It is now possible to exchange messages between the connected
peers.

### Relay Server

Target name `relayserver`. Relays traffic when a direct peer-to-peer
connection can't be established. Can be used with the call application above.


### STUN Server

Target name `stunserver`. Implements the STUN protocol for Session Traversal
Utilities for NAT as documented in [RFC 5389][rfc-5389].


### TURN Server

Target name `turnserver`. In active development to reach compatibility with
[RFC 5766][rfc-5766].


[ninja]: https://ninja-build.org/
[gn]: https://gn.googlesource.com/gn/+/master/README.md
[gn-doc]: https://gn.googlesource.com/gn/+/master/docs/reference.md#IDE-options
[webrtc-android-development]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/android/index.md
[webrtc-ios-development]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/ios/index.md
[chromium-work-branches]: https://www.chromium.org/developers/how-tos/get-the-code/working-with-branches
[chromium-work-release-branches]: https://www.chromium.org/developers/how-tos/get-the-code/working-with-release-branches
[webrtc-contributing]: https://webrtc.org/contributing/
[depot-tools]: http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up
[rfc-5389]: https://tools.ietf.org/html/rfc5389
[rfc-5766]: https://tools.ietf.org/html/rfc5766
[m43-log]: https://webrtc.googlesource.com/src/+log/branch-heads/43
[m43]: https://webrtc.googlesource.com/src/+/branch-heads/43
