 Good morning everybody. Our project is Audio-Video Classroom Interaction on Akash. Then the agenda of our project is this presentation is that first we start with what is our project, Audio-Video Classroom Interaction on Akash and then we go on by discussing what the technologies we have used like HTML5, WebRTC and then the Node.js and Socket.ivo. Then we carry on by discussing the functionalities of this project, the peer-to-peer video streaming between the instructor and the student and then the audio doubts and the text doubts and then the video broadcasting of the instructor to the students and then we continue by discussing challenges faced and then the limitations of our project and the demonstration. Then first of all what is Audio-Video Classroom Interaction on Akash? The main back and backbone of our project is that is to enable a proper interaction between the instructor and the student. Usually in a traditional classroom scenario what happens is the instructor comes and then he gives some lecture and then the students whoever has the doubt has to stand in the class and has to ask the doubts to the instructor. Some of the students actually they feel shy to ask in the classroom or some other reasons may be there so that they may not ask the doubts. So what this application does is a student can directly ask his doubt to the student to the instructor sitting in his own place using an Akash tablet and also asking the doubt also have provided several means of communicating and the main aim of this thing is to it can replace the user passage of the microphone to the student in order to ask doubts to the instructor. Without passing on the time delay for passing on the microphone to the students can be avoided by using this thing and then the technologies we have used are HTML5, this thing this is a new technology and then the WabarTC technology this is also a very new technology which is a part of HTML5 itself and then the node.js this is a server this is a server thing we have used additionally and then the socket.io this thing we have used to for socket connections and all and then the JSP server and android also we have used and then the technologies in detail HTML5 the main reason we have used is using HTML5 we can develop the applications without use of any extra plugin example for video streaming and all for example Skype we need to have some Skype plugin but here we need not have any extra plugin to be installed direct communication can occur without an extra plugin it's also easier to code for the programmers just for example if you take this thing exclamatory dock type HTML by writing this thing in the first line itself the browser will be able to understand that this is a HTML page so many such sort of features are there in HTML5 and also it the new feature is that it starts it has offline application cache that means every application can have its own memory in the browser itself for every application next next technology is the WabarTC this is it is web real-time communications this is an open source project which was started by Google and has been open sourced in 2011 and then what this technology does is it stores a built-in stack in the browser itself and then whatever will be there some extra we need not store it in the actual system or somewhat we can directly store it in the browser some data then it uses just simple JavaScript to access this WabarTC API so it's very easy to understand also code it then the signaling process is given to the choice of the developer in WabarTC what happens is we can establish a direct peer-to-peer connection between the two systems and then the interaction can go on directly between those two peers in order for communicating between those two peers the identification must be done this peer must know that this peer is there and this peer must know the addresses or the means of communication of this peer for that purpose we need some signaling process what happens in signaling process is the IP or the IP and port of one peer will be transferred to the other peer and that peer IP and port will be transferred to the other peer so that they can directly communicate between them after the signaling process that choice is been given to the developer of the application itself in WabarTC WabarTC doesn't specify any default signaling mechanism to be used then some of the examples are video calling peer-to-peer file sharing and etc can be done using WabarTC next WabarTC it has mainly three APIs the first thing is media stream API using this API one can stream the video and audio between the two peers it enables the direct streaming without any third-party plugins or anything then next one is RTC peer connection API using this API one can successfully establish a peer connection between two systems then next one is RTC data channel this using this API one can transfer any sort of text file or binary format anything between two systems these are the three main APIs in WabarTC coming to WabarTC architecture initially all the web applications they access go through the web API and through that they can access the WabarTC API directly in the browser itself and then next we have the third one there is session management or abstract signaling session that thing is the actual signaling process between the two peers once that signaling process is done then the two peers can directly communicate between them using this below things in these three main features are that network Kyvo network Kyvo what it does is in order for these two peers to communicate all the means of transfer all that thing is taken care of by network Kyvo then these both are audio capture render and video capture for capturing the video on streaming such sort of purposes these two things help this is a brief architecture of WabarTC next that we have used an extra server called node.js this node.js server what it does is we can code the server side coding in javascript actually we use javascript for client side coding we can use the javascript same in server side coding also using node.js server node.js server is event driven non-blocking model event driven whenever some event occurs it does some action this server so it will not work throughout the application is run but whenever some event occurs then it responds to that thing so there we can see the comparison of simple some apache server and node.js server the horizontal axis is the number of request and the y axis is the response time the above red color graph is the apache server and below node.js server green one we can see the response times of node.js server is very lesser than compared to the apache server this is because main thing is node.js is an event driven model so that is why we can have very less response time and then socket.ivo for socket connections and so we have used socket.ivo module this can be integrated with the node.js server we can use web sockets or sockets or anything else but we have used socket.ivo because socket.ivo doesn't have only one option by default it uses web sockets for communication and then if some browser may not support web sockets the old browser in such cases socket.ivo bypasses web sockets and uses some other alternatives like sockets or Ajax long polling etc. such sort of techniques it uses by default the developer need not specify them by default it uses web sockets in case of failure it goes to some other alternatives and then we have jsp and serverlets also then android we have used for developing the apk of and the student side next this is the these are the four steps that occur in video streaming in our application the first thing is the local streaming here the student all the student will have an aakash tablet and the instructor may use an aakash tablet or a system also that depends upon the flexibility of the instructor and then the student first he starts the local streaming on his tablet he gets access to his permissions and then he allows them and next step what happens is the signaling process first of all for signaling process the student will send offer to the instructor offer instance sdp sdp session description protocol it contains three parts session description time description and media description session description contains about the session details of this particular peer and then the time and media about the media codex whatever the support is there all that information will be passed and then that will be received by the other peer and then once that peer receives the offer from first peer he responds to the offer in the form of an answer in the answer he also will send second peer will send the same sdp information of his own thing session time and media also after this thing this is what is signaling process and then what happens is next what happens to establish peer connection some ip port some sort of things must be there to directly communicate between two peers so the student one peer will send his ice candidate ice is interactive connectivity establishment to establish a connectivity some measure some ip's or ports and some other information must be there to communicate between them this ice candidates and indexes will be there this will be sent to the instructor this step is done once he receives the answer from the second peer only before receiving answer or offer this will not happen once the offer is received sent from there and the answer is get back from there then ice candidates will be exchanged ice candidate will be sent there and return also the ice candidate of that person will be sent to this person once this step is completed then the two peers can directly communicate with them between each other without any intermediate thing and now the connection established and then this video's local streaming of the student can be directly streamed to the instructor without any note j server also we need not include in it so direct communication, direct streaming can occur from browser to another browser browser of android to desktop or anywhere android to desktop windows ubuntu anywhere we can stream the video directly browser to browser the functionalities of this project there are mainly four functionalities the first thing is live video streaming in the student and the instructor and then this next is audio doubts the student can post an audio doubt also to an instructor and then he can also text the message also one more option is that the broadcasting of video from the instructor to the students first thing peer to peer live video streaming what happens in this module is the assumption we have considered is that every student will have an aakash tablet to use this application and then when a student when an instructor is present in the classroom the student can ask a request to the professor just he will send whenever student connects to the professor in his tablet some information the list of students will be displayed to the instructor and then an instructor can select a student from the list of students who are asking the doubts and whenever this instructor clicks on a particular student then a particular peer connection will be established and then this video will be streamed from the student to the instructor and then the instructor will attend to the doubt and can answer the doubt open in the classroom we may give the option of returning back through the application also but we did not give it because if a student asks a doubt and then the instructor answers to a particular student only then the other person also may have the same doubt for that purpose whenever an instructor student asks a doubt instructor will answer in open so that the doubts of other students also will be there actually audio and text doubts this thing the video doubts that is possible only in a classroom but it is not possible to answer it is not possible for the instructor to answer the doubts of all the students in a single class so for that purpose we have created this audio and text doubts a student can post these doubts to the particular instructor when the instructor is unavailable in the classroom also so that the instructor can when he was free he can see those audio and text doubts and can answer to the students in the next class then the live broadcasting module this thing what happens is some professor is delivering a lecture in one class the other students in the other classes also may want to attend to that lecture but the space is not sufficient using this broadcasting we can the lecture in this classroom can be viewed to the other classrooms also broadcasting thing and then the challenges that we have faced and the solutions we have found in the develop in this application is first of all choosing technology for video streaming for video streaming there are several other technologies for example in desktop browsers we can directly use HTTP live streaming and do it but in android flash support is not there in android 4.0 onwards so we are not able to use that option in this also we have explored several options we have come to a conclusion of using VabbhaTC and then the search for VabbhaTC supporting browser since VabbhaTC is a very new technology it has been introduced over the one over one and half years back it is still a work in progress so that is why we all that old browsers will not support it so we have searched for the new browsers which will support it and have tested our sample codes in them to identify the browser and then the selection of server for signaling process for signaling we have we have searched and selected the node.js server because it is an event event model then the multi peer connections from a single browser problem we have encountered in video broadcasting individual peer to peer connections is okay but from a single browser multiple peer connections is somewhat difficult this one we have overcome by using RTC multi peer connection and then the audio recording for audio recording new API VabbhaDio API has to be supported in some browsers it is supported in Chrome we have found that and we have done it next the limitations of our application are first is the browser compatibility from Chrome 23 and Firefox 22 from desktop it supports all the browser above those versions support this application and then in Android Chrome 27 and above will support but one flag needs to be enabled that is enable VabbhaTC in Android Chrome in desktop we need not enable any browsers there are any flags they are enabled by default in Android itself a single flag needs to be enabled next the VabbhaDio API this API is used for used when storing the audio doubts of the student for this thing Chrome 28 onwards it supports Chrome 28 will be released in next 1 or 2 weeks it was announced by Google and Chrome 28 beta version has already come it already supports this VabbhaDio API in Android it supports in desktop but in Android the next release will support this audio API and next 10 pair connection for broadcasting we can have from my single browser at most 10 pair connections are possible more than 10 is not possible that these are the limitations of our project then the demonstration this is the instructor module this page is after the instructor logs in here after the instructor logs in with his username and password this is the home page which the instructor can view as we can see there are some decisions request text doubts send audio doubts and broadcast initially the student will be in the instructor will be in video request spin in this first division whatever the students will send request they will be listed in this section we can see all at one request has been sent from the tablet once the instructor clicks on that chooses a person from the list of request the stream will be started access from this tablet the student now they are connected and the student can ask his doubt to the professor whatever I am speaking here it will be transferred to their audio and video also this video streaming multiple any number of tablets can be there but at a time connection will be between only two tablets one tablet and then the switching also may occur whenever the instructor switches from one person to the other person the previous one is I am disconnected here you can see here disconnected also this student is disconnected and then the next one when he choose that system tablet is connected whatever the doubt is asked there will be reflected over here and the instructor can disconnect a particular student using the disconnect option be disconnected and request is gone and next that text doubts part and then a student can text his doubt to the instructor I am sending a text out now I have send the doubt and the question has been submitted and then we can see that the third thing that is what the doubt I have text to the instructor those are visible to the instructor and the instructor can read those doubts and he can delete those doubts by using the done option once the instructor reads them he can read them not only in the classroom he has outside the classroom or anywhere but the network connection is there he can see attend to those doubts and can answer them to the in the next class next thing is a saved audio doubts this thing we have a limitation from the akash tablets because the browser version is not yet released which supports this audio request in the tablet in the next 2-3 weeks it will be released it was announced by google we can we will show the demo in the system itself what we are trying is instructor is in the system and the student is also in the system for desktop browser it is working fine for android the version is not yet released so we like to show a demo on tablet in the system itself this is the student this is the student view and then here clicking here this is the audio by clicking here we will redirect it to the audio doubts pin and then then once the instructor the student clicks on start recording then the permissions will be asked for microphone once the student clicks allow and his doubt will be requested what is what is he and once the student asks his thought he can stop recording and then he is given he is also given an option of preview whenever he clicks preview whenever he clicks preview after listening to the sound after previewing his own doubt he can click on forward once he clicks on forward then the doubt will be submitted to the professor you can see here the status has been uploaded the file has been submitted successfully and then in the instructor side we can see all the audio requests sent are listed over here to the instructor and then the instructor can play them listen to them and answer in the classroom and the other option other feature we have is the broadcasting and when the this broadcasting can be initiated by the instructor only whenever the instructor clicks on this broadcast button whenever the instructor clicks on broadcast his stream will be viewed and then whenever the student goes on to the broadcast view a list of instructors who are online will be displayed to the instructor and then a student can select from the list any one person from the list and then that stream will be broadcasted to the tablets to all the students whoever are connected the audio and video can also can be transferred and then the limitation of this thing is up to now whatever the robot is it multiplayer connection API is there it supports still 10 multi connections so 10 students can view this lecture or else we can access from the system and if a instructor gives his lecture in this room some other 10 rooms can be connected and then connected to the projector why is it necessary for the student to record the verbal question and then transmit can I not stream the question as the student speaks audio audio once when the instructor is present in the classroom we are enabling the video request now video automatically includes audio is that what you are seeing that is different and this is different modules first thing is when the instructor is present in the classroom direct the video and audio will be streamed from the student to the instructor when the instructor is not present in the classroom you don't understand one thing the requirement for this streaming by the way is different the requirement is for recording every question that the student asks the biggest problem in our large scaling of our education is when there are thousands of people each individual person asking a question that question has to be recorded and the answer has to be recorded and that is where we need we lose a whole lot of time in moving around the microphones and so on so that was one of the reasons why so therefore we actually wanted to insert a microphone in the original clicker device that was Professor Prakash when there is idea so that when you get up if you are permitted to speak you press a button and speak so what you speak is actually streamed to the central station which need not be a Akash or anything and that is fed into the public addresses so if somebody for example I am holding this microphone and you are all listening to me because my voice is being streamed into those speakers but if somebody from there asks a question how does the class listen to that question so that was the original intention that you speak and the speech is fed into the thing as also recorded now in your audio module is that still possible because the way you have written it is only a pre-recorded content which is streamed but there should not be any problem in streaming the speech as it is spoken or there is a problem that is happening but what I would like to also have is that the video part is suppressed use the same module but use it only to stream audio alternately if the bandwidth is good enough if the connection is good enough you can stream both audio and video and the audio stream can be separated out and fed it to the public address system anyway extremely good work this has been a pending work in progress for almost 2 years we have given it up but please understand that when we conduct training program for 10,000 teachers and there are 30 teachers in Coimbatore and one teacher wants to ask a question the interaction time is extremely limited because everybody in the country is watching what is going on and almost minute, minute and a half is lost in just taking a microphone to that teacher and 50% of the time that microphone does not work so this would be a great operational time saver for people if it works so you are confident that this system will work can I try it in actual field in this December when I conduct the 10,000 teachers workshop so if some teachers in the country cannot hear or cannot see then I will send them to you anyway my compliments personal thanks very good work let's give them a big hand