# OutgoingCallView

The `OutgoingCallView` lets you easily build UI when you're calling or ringing other people in an app. It's used to show more information about the participants you're calling, as well as give you the option to cancel the call before anyone accepts.

## Usage

In order to create the `OutgoingCallView`, you need to instantiate it with the `outgoingCallMembers`, `callTopView` and the `callControls`.

```swift
public var body: some View {
    OutgoingCallView(
        outgoingCallMembers: outgoingCallMembers,
        callTopView: callTopView,
        callControls: callControls
    )
}
```

The `callTopView` and `callControls` parameter is a SwiftUI view that is showing the actions you can do during a call.

If you are using our `CallContainer` to add calling support to your views, this view is automatically shown when the `callingState` in the `CallViewModel` is `.outgoing`.

If you want to customize (or completely replace) the `OutgoingCallView`, you should use the `ViewFactory` method `makeOutgoingCallView`:

```swift
public func makeOutgoingCallView(viewModel: CallViewModel) -> some View {
    CustomOutgoingCallView(viewModel: viewModel)
}
```

## Sounds

By default, the outgoing call view plays ringing sound when the ringing is in progress. If you want to change the sounds, you should provide your own instance of the `Sounds` class in the `Appearance` object, while replacing the `outgoingCallSound` with your own sound file.

```swift
let sounds = Sounds()
sounds.outgoingCallSound = "your_sounds.m4a"
let appearance = Appearance(sounds: sounds)
streamVideoUI = StreamVideoUI(streamVideo: streamVideo, appearance: appearance)
```

## Localization and icons

You can change the texts and the icons in the `OutgoingCallView`. For more details about changing the texts, please check the localization [guide](/video/docs/ios/advanced/text-localization/).

In order to change the icons, you need to create your own version of the `Images` class and change the icons you want to customize.

For example, if we want to change the `hangup` icon, we can do the following:

```swift
let images = Images()
images.hangup = Image("custom_hangup_icon")
let appearance = Appearance(images: images)
streamVideoUI = StreamVideoUI(streamVideo: streamVideo, appearance: appearance)
```

---

This page was last updated at 2025-08-15T14:16:39.391Z.

For the most recent version of this documentation, visit [https://getstream.io/video/docs/ios/ui-components/call/outgoing-call/](https://getstream.io/video/docs/ios/ui-components/call/outgoing-call/).