# Incoming Call

The `StreamCallContainer` widget provides built-in support for displaying incoming calls.
To handle incoming calls when your app is in the foreground, you can listen for the incoming call event and display the `StreamCallContainer` with the associated call.

```dart
import 'package:flutter/material.dart';
import 'package:stream_video_flutter/stream_video_flutter.dart';

// Example initState method in some top level widget
@override
void initState() {
  super.initState();

  final subscription = StreamVideo.instance.state.incomingCall.listen((call) {
        Navigator.push(
            context,
            MaterialPageRoute(builder: (context) => MyCallScreen(call)),
        );
    });
}

// remember to cancel the subscription when you no longer need it

class MyCallScreen extends StatelessWidget {
    const MyCallScreen(this.call, {super.key});

    final Call call;

    @override
    Widget build(BuildContext context) {
        return StreamCallContainer(
            call: call,
        );
    }
}
```

![Preview of Incoming Call Screen](/data/docs/video/flutter/_assets/cookbook/call/incoming_call.png)

### Customization

You can customize how the incoming call screen looks by providing your own widget:

```dart
StreamCallContainer(
    call: call,
    incomingCallWidgetBuilder: (context, call) {
      return MyOwnIncomingCallScreen(call: call);
    },
)
```


---

This page was last updated at 2026-03-13T13:18:02.511Z.

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