---
title: "ConverseJS: An in-depth view into my GSoC'22 project!"
date: 2022-07-03
author: PawBud
categories: ['Google Summer of Code']
---

In this blog, I will discuss my GSoC project, and post an update about the work done since the GSoC contribution period started. Ok, so I would like to split the whole project in two phases, with the first GSoC evaluation (29th July) as being the divider. Since it's only been three weeks, I will only write about the first phase of the project.

## About my project

- Expected Hours: 175 Hrs(Medium Project)
  - Adding support for Audio/Video Communication via Jingle.
  - Deliverables / Expected Results:
    - The goal is to create a Converse plugin that adds the ability to make one-on-one audio/video calls from Converse
    - The audio/video calls must be compatible with other XMPP clients such as [Conversations](https://conversations.im/).

Jingle protocol works something like this:

![Jingle Protocol](/images/blog/GSoC_intro_images/Jingle-Protocol.png)

In short it signals [WebRTC](https://webrtc.org/) to start/end or modify the status of a session.

## Proposed Plan

The first phase, as it stands, will consist of the UI implementation, it's associated tests and implementaion of [XEP 0353](https://xmpp.org/extensions/xep-0353.html). I genuinely thought that I would be done with the UI implementation till now, but choosing a UI can be surprisingly tough. Given the deadline, I want to make sure that I complete the implementation of the project in time, so for now we (me & my mentor JC) decided to implement a decent looking UI that would be enough to cover all the edge cases and functionality of the project.

### UI

Here is a screenshot which shows the current UI.

![Call pending state](/images/blog/GSoC_intro_images/PendingState-Call.png)

Do mind the spacing between the **Call Initiated** text and the **End Call** button. The call can simply be ended after clicking either the end call button or the call button in the toolbar.
Having said that, I presented [Discord's](https://discord.com/) UI to my mentor and he seemed to like it.

![Discord's Call UI](/images/blog/GSoC_intro_images/Discord-Call-ui.png)

Although, we plan to build something much more simpler for converse, it's good to have a long term vision for this feature.

### Tests

As on this date of writing this blog, I am working on integrating XEP 0353. The XEP makes it easier to keep track of my progress since it splits the feature into sections.

**You can track my progress through this [Pull Request](https://github.com/conversejs/converse.js/pull/2956)**
