 Hello everyone, myself Rajeev from IIT Roppur and along with my teammates Anand from Bitsmishra, Faizan from ISM Dhanwad and Siddhant from VNIT in Nagpur. Our project was peer-to-peer communication on Android. Before going into peer-to-peer communication, I would like to recall what happens in a normal Wi-Fi connection. In a normal Wi-Fi connection, when we want to connect two or more devices, we need an access point. Our task was to eliminate this access point from the network. This elimination of access point would of course, reduce the cost and it might be beneficial in rural areas where it is not quite easy to get an access point. The technology which we have used for this purpose is Wi-Fi Direct. Wi-Fi Direct is a standard which allows two or more devices to connect to each other without the need of an access point. These are the things we will be discussing in our presentation. So first show the project plan. This was our project plan. In a Wi-Fi peer-to-peer connection, one device acts as a group owner and the other acts as a client. Our first aim was to connect a group owner to four other clients. Then we had to enable the app to transfer files from group owner to clients. Files can also be transferred from clients to group owner. Then we had to prevent clients from interacting with each other because in a student-teacher scenario, students should not be able to communicate with each other. Then we had to enhance this functionality to a large number of clients. Then we thought of implementing a simple chat functionality within the app. Then we had to integrate our app with an existing clicker app which used Wi-Fi for the connection. This is a brief introduction of our app. In accordance with the student-teacher scenario, we have developed two APIs, one for the instructor side and other for the student side. Instructor can announce his or her device's name and students can connect to it. Once all the devices are connected, they can transfer files among each other. Teacher can also turn on the chat server, then he can chat with any of the clients. That shows why we preferred Wi-Fi Direct over any other NFC or Bluetooth. First of all, Wi-Fi Direct has a wider bandwidth, so we can achieve a very high speed through Wi-Fi Direct. Theoretically, we can achieve a speed of 250 Mbps through Wi-Fi Direct. Wi-Fi Direct has a very wide range. We can achieve a range of up to 200 meter through Wi-Fi Direct. Next, we can connect multiple devices simultaneously through Wi-Fi Direct, which is not possible with Bluetooth. Also, Wi-Fi Direct does not cause any additional cost on the user's end. Next, Pazhan will continue with the presentation. I'll tell you about the hardware and software requirements. First of all, I think many of us believe that all the Wi-Fi devices are also Wi-Fi Direct devices. So, you're no exception because even the executive director of Wi-Fi Alliance, he said prior to launch of Wi-Fi Direct that all the Wi-Fi Direct devices which will work on the system will support Wi-Fi. But it's not true. The first applications that were launched, they needed additional hardware. Talking about the software, it uses Android OS with version 4.0.3 and above. Just as Rajiv said that there are two APKs. One for the group owner, one for client. We thought of making two APKs in accordance with the Clicker Android app. We have to make sure that two clients don't interact among themselves. Just like if two students interact among themselves, it won't be that fruitful. So, the two APKs are nearly the same. But group owner has certain advantages. Like group owner can send file simultaneously to a large number of clients. As the flow chart shows, first in the group owner's side app, the group owner will discover a PS. If Wi-Fi Direct is not on, then he will have to loop through and then once Wi-Fi Direct is on, he will click on the device name of any client. Once the first client is connected, group will be formed. And once group is formed, the group owner can announce his device name. Once all the clients know the device name, they can just connect to the group owner. Group owner has three functionalities to do. The first one is check, then send file, then receive file. If group owner intends to receive file from any of the clients, he just has to turn on his file receiver. Once he has turned on his file receiver, all the clients are free to send files to him. Next is sending files. If group owner intends to send file, then he just launches his gallery. And then he selects any file and then he can send it. It's very simple. But the thing here is that not all clients will receive the file sent by group owner until and unless they have turned on their receiver. Next about the chat server, the group owner can start the chat servers. Then he has the option to text anything to any of the client. Means once group owner has turned on the chat server, any of the client. The first one who connects to the server, to the group owner, will be able to chat with the group owner. If other clients try to chat in between, then they will get the message that the server is busy right now. Our other client side is nearly same as the group owner side with less advantages. If Wi-Fi Direct is on, then click on the just discover PS and click on the device name of group owner. Then client also has three functionalities. Chat, send file, receive files, if the client wants to receive file, he must turn on his file receiver. Next to send file, he must wait for the group owner to turn on his file receiver, then he can send file. If he wants to chat with the group owner, he will check for the availability of the server. If server is available, then he can chat. And if he wants to end the chat, or even if group owner wants to end the chat, he just have to type bye and then the server will get disconnected. Okay, to tell about the challenges I invite Siddhan. Good morning one and all. These are the list of challenges that we face and were tackled by us. The first was turning on the Wi-Fi Direct as soon as the app starts. So no human interaction is required for that. The next is the single transition of file sender with the file receiver on the main thread also and maintaining multiple threads for multiple clients while sending the files from the group owner to the all the clients that are present in the group. The next is establishment of group just by entering the MAC address. And presently we can connect from the list of the list that is being searched by the peers and after that we can connect but also by entering the MAC address is also possible. Next is the undissolved issues. In any network, sending the broadcast receiver is there, broadcast address is there. So if UDB packet is sent there, everyone in the client in that network can receive that packet. But when we tried the same thing in this, sending the UDB packet in through the broadcast address, it was not working. The next is the no callback from the client when it disconnects from the group. The next is as number of clients in the group increases, the connection becomes more and more unreliable. And the connection is very reliable with only less number of clients. There are some bugs involved in DHCP client. Whenever a group is formed, the group owner act as a DHCP server. It assigns the client IP address for a particular lease time period. But after that lease time period, it refreshes the again new IP addresses assigned to that client. For in Akash, there is only one lease time period. So it's very impossible for maintaining that IP address again and again after one R. Same device cannot act as a group owner and client, which is being also theoretical till now. Every time a client joins a P2P group, it is assigned the IP address. But we were thinking to keep that tablet as a permanent static IP address, but which was not possible as soon as the client disconnects and again connects to that group, the same IP address is not provided by it. Next, moving the application user interface. This is the UI of the group owner screen. This is the client home screen in which 1655 is the group owner and 756 is the client. Here, both the group owner and client will click on the discover. A list of peers will be displayed. Here, 75CC discovered, he gets a list of 1655, which is presently the group owner. He will send a request to the group owner. Group owner will receive a request. If you want to accept it, he will click OK, cancel it, click cancel. As soon as it gets connected, the group owner will get two options, send file to all and file receiver. Unless the file receiver is on, he will not be able to receive any files from the client. This is the client screen. He has four options that disconnect, receive packets in which he can receive files from the group owner as chat application and start sender for sending files to group owner. Here, the group owner has started the chat server. So he will just say sending hello client. That is received by the client side as owner says hello client. Now, client will also respond and like here, it's hello group owner. Now, about sending the file, the group owner will select his replies received on the group owner side also. On clicking the file receiver, he will be able to receive files. Now, the client want to send to the group owner. So he will select any file from the presently the list, whichever he wants. So he selects the 14.png, which is received at the client side. I'd like to ask Anand to continue. First, I'd like to give a demo of the app. There are two clients which are connected to this group owner. If I press the send file to all button, if we increase the number of clients, the connectivity poses some issues and one client gets disconnected. The other tablet was also connected, but it got disconnected in the middle. First file transfer was successful, but the second was happening, it got disconnected. Even in this one, it was quite delayed, but actually it is not so slow. We conducted a few tests regarding how reliable the connection is. First, we tested for one to one client, one group owner and one client. That was quite reliable, the connection did not break for about 30 minutes. It was quite successful. Yeah, it is mentioned there. Then for two clients, we tried, that was a little less, but that also lasted for about 30 minutes. But when as we move for the third one, as you can see, the group formation time only took about nearly half a minute, 25 seconds. It was quite a delay and this is one of the best timings we could achieve. In some tests, it must be mentioned, it was quite, it did not occur. One client got disconnected. This was one of the successful tests that occurred. And this also lasted for about 13 minutes. The clients were connected, they could continuously transfer. But that's the issue, the connection is not very reliable. You cannot, as you increase the number of clients, the connectivity breaks. Now, I'd like to talk about how we tried to integrate BIFI Direct into the Clicker app. The previous, the Clicker app which I was given was using BIFI to communicate from student and teacher. In this, the teacher had to announce his IP address and the students could enter it and they could communicate with him. They were using UDP packets to send data to the teacher and the teacher was sending UDP packets to the student. So what I did was, I, before trying to connect, as soon as the app turns on, as the student tries to connect, instead of connecting to the IP, I asked the teacher to announce his Mac. Because Mac of a device cannot change and IP will only be given once they are in the same group or same network. So, in order to get IP, they need to form the same group. So when the student presses connect, the teacher has to first log in into his home screen, then his WIFI Direct will automatically switch on. And as he announces his Mac, then the student can enter his Mac and he connects to the group owner or that is the teacher in this case. Then they are in the same network, then they can both get their IPs in a similar manner as they had done in previous versions. All I had to do was make sure that the socket connection was open when they were sending the apps, sending the data. A few problems were there, they were sending from main thread which was posing an error. So I had to create separate threads for sending packets and receiving packets. That was the major issue, WIFI Direct was easily integrated. And we'd like to talk about the future enhancements. As he said, it is theoretically believed that we can achieve up to 200 meters. But it is not currently possible about 10 to 20 meters you can achieve currently. And speed we tested about 650 MB file we sent over 8 minutes. It was approximately about 1.8 to 2 MBPS speed. It is not currently 250 MBPS. So if we could achieve that speed, it would be a huge advantage for any low land. Tablet can be capable of acting as group owner and client simultaneously. Currently it is not possible. If a group owner tries to become a client to another group owner, then the connection breaks. His first group is dissolved, which this we do not want. There is a theoretical protocol which we can use to achieve that. But for that we require to switch the power. There's a notice of absence protocol which you can use group owner dictates a time that I'll be active in this period. Then he switches off and then he can act as client to another channel. But that is currently not possible using the current APIs of Android. Also better control on the DHCP. We could not give static IPs to clients which were fixed. Means if they got disconnected and they connected again, we could not give them static IPs. We had no control over the DHCP. It was running on its own. No interface to interact with it. Stability of connection is of course an issue. As you could see as the clients were increasing, the connectivity time was dropping. So any queries? How does it compare with Bluetooth? So current Bluetooth is one-to-one communication. And it has standards that if two devices have Bluetooth, then they have fixed standards that these ports will be open for file transfer. But for Wi-Fi Direct, what it does is it creates a network. Then it allows you completely, you can choose what you want to do. So that is why we tried two apps. If you can connect to multiple people, also speed is much faster than Bluetooth. Though current Bluetooth is fast, but Bluetooth 4 new one will be faster. But this is quite high speed. You can send huge files and any format of files. You can send from one device to another. Now when I get an N-member group, what is the, how many communication channels? N square or still one-on-one? You can communicate. It is just like a simple LAN. LAN. It's a simple LAN. Somebody is acting as an active point. Yeah, that group owner is acting as a soft access point. It is a Wi-Fi Direct. Actually it is a way of implementing the legacy Wi-Fi network on a peer-to-peer basis. One will act as a group owner and other can communicate. Then once a network is formed, if you know the IP of the other person, you can easily communicate with them. There should be socket sending or whatever method you want. Let's give them a big hand. I think they have done a wonderful job. Thank you.