 Italian boy mafia for today Lorenzo number two Yes, thank you for the introduction and a slight change of program so the original presentation was intended to be about Homer six But we just decided after seeing the schedule that you know it would make sense just to show what it what it's all about With a real example so the example is gonna be Janus And it's a handover from Lorenzo to me We do not have those bodies under the clothes, but you probably guessed it. So I'm Lorenzo as well quicksip or QXIP Depending many people pronounce it differently. It's our company and a little bit of a family today. We have almost a big quorum So we're conquering the corner down there a bunch of us open source Is what we do what we love Homer has been for now many years our sort of flagship Product but it's not the only one so We're actually about to change this so the platform is really about correlation of packets correlation of data and We're gonna we're about to take it to To a new place so Homer up until so far has been a very sips centric application Which wanted to basically keep all of your data I wanted to decide how it was stored where it was stored how it was rotated and again It was sips centric so everything was Rounding around sips we have changed so we decided to move Into sort of a stack so Homer is the age of Hapk Hapk is gonna be the new container for the things that were released this year So again, we're moving from An application that was doing one thing into a framework and the magic word is gonna be correlation So we want to make it so that Homer becomes the place Where you know correlation can be created between different types of data may be hosted in different places using different technologies just helping people you know get to what they want and again many different features coming to play many different sockets, so This is something for a bigger presentation, but today we'll just go for a real example So we'll have a few pieces and we'll have a challenge challenges put into fruit all of the good things that Lorenzo one I guess Just blessed us with so the event Emitter in in the genus gateway, so just to jump straight into the challenge Of course, this is in relation to the classic Homer, so it's custom everything So we do now have a you know a standardized concept of signaling or you know even flows of messages, so there's a Completely different scenario we have cascading relations as learn to just explain so we have sessions We are handled transports plug-ins and each and every one of them emits their own structure With no correlation unless you're using the opaque these of course, which is an extent still optional So many plug-ins no correlation and a bunch of messages that just arrive and we need to make sense of so the Hepsperiment as we called it has been exactly first of all to create a new transaction type in Homer to be able to Search serve in index those messages, so we have a new type Which is called web RTC Without too much creativity there yet And it's a generic type that can be used for all of the the various gateways out there as long as I speak Jason To stream events data and so on We came up with an internal correlation logic in a similar way as we did for a free switch to To correlate ESL events and turn them into logs into Homer So a new type and we put the fruit or at least we hope we did the logic that Lorenzo and the John's Gate we offer so internally we sort of have a hash tables that keep The consistency between those so when we Decide that a certain session is related to a certain handle and this handle is related to a plug-in and this plug-in might have triggered Might have had interaction with a transport. We just put it all together. We keep track of it We also Split this data so for the purpose of showing you what's new in the platform Of course, we couldn't just keep it in Homer and show you what happens there So we're gonna have a second part where we show you what else you can do with this data in different ways that you can tap into it so the pieces of The the experiment today, so that's of course. There's Janus with the event socket Shipping to us all the information that we just seen the previous presentation. There's Homer in this case Homer It's more than let's say the the sip Homer So a concept that will introduce over time But what we do there is basically we receive those messages some of them stay within Homer So they are leveraging the HEP encapsulation protocol and they're just native to Homer others are just switched by Homer So their handle They're inspected and then they're sent depending on their type and their content to external platforms today We're gonna use a la Sandra Which is a very very interesting project the developers are actually sitting in the room and It's something that we decided to bet on actually here in this recipe. We have two forks. So a la Sandra integrates Cassandra and elastic search In ways that I'm not going to try to explain today But I suggest everybody looking into it if they're into big data and using it in non-standard ways and Kibbe Kibbe is a fork of Kibana by siren solutions, which is a company that we also cooperate with and it's a Platform where we moved our efforts in terms of creating reliable plugins that don't really depend on you know the crazy roadmap of Yeah, let's say a big company today So let's say the roadmap of elastic in terms of both the platform and Kibana are you know Hard to keep up with if you want to build an application on top. So this is how we're gonna Gamble so we're gonna use a la Sandra We're gonna use Kibbe instead of their originals with them We have several advantages the primary one in Kibbe is provided by An app that we have ourselves created It's called sentinel and basically it's a free version of the watcher for elastics or so It's it's an application where you can basically have running queries Overtime so as soon as you establish an interesting logic You can just have it run automatically and this is what we'll use now in terms of Janus meeting Homer and HEP So we said the challenge in this case is to convert Meaningful data so data that can be displayed and can be made useful in Homer and change its type So here we have a just a small table with the the primary one This is not everything that we did but it's a good picture. So basically every time we get a certain event type from Janus we Extract certain correlation data from it so from different types of events comes different correlation hooks as we call them that We can leverage when a different message comes that doesn't have this data So to provide this back to other messages within the same session And be more meaningful or more easier actually to display in Homer without having to do the lookup every time So it's a little helper as Janus does not speak HEP We use HEP pipe which is now migrating to HEP stash, which is a little more complex It's basically a custom application and opens a socket as inside Several helpers that can you know be used to extract specific application Information or a change of field to something else Transformations lookups argument the original packet. So we convert them to the HEP type that you see in the column So type 14 is a new one that we have created It contains just Jason, but it tells Homer how to handle that packet type one is the normal SIP So when we receive SIP messages from Janus, we just encapsulate them as such and then we take transport. So specifically for SIP Flows we do not know who's talking to who unless we go and correlate back to the transport that was attached to the plug-in and so on so So we try to just you know Field back in some correlation data that we were originally lacking What happens when we do it is the following so we transform basically Janus events into Packets that Homer can understand and search on so we using the new type and here I'm not going to show too much of that but it's going to be it's already available on the repository for the adventurous ones I want to try it out you can search by Different parameters. So right now there is a little bit of a hard association between The method was the call ID versus the session ID It's a work in progress, but the fact is that you can already search and find Messages we can also using the above methods. So correlating the transport with the messages Draft the the flow that Janus was having between of course the your the user agent the client and the server and then the server talking to for instance internal elements or Gateways so on so forth and as per anything else in Homer once you click something you can see its contents and I apologize here It's it's a little blurry. So you don't really see anything But I can guarantee you in there is the for instance this case is the SDP exchange from a session So a quick ability to Display the stuff in Homer for those that already use it. We think this is a good plus so when Janus connects to your already monitor gateway, this can be very easy and As a bonus point all of the media reports that Janus generates from its media legs. We convert into our pseudo RTCP format, which is a JSON basically a representation of RTCP that you we use within Homer to convert real RTCP into something we can interpret in this case We just adapted the information that we had there So for each session that you have there you will calculate the mouse and we show you if any I should have picked a back call with some better charts, but we have some just next so This concludes the armor part So what can you take from Janus and display in Homer and of course here you will also have automatically correlation. So if this Was a c-plugging call that correlated to a cip call that we monitor with Homer You would basically see them correlated and you would see the quality and the messages from both now Getting it a little more elastic. So we said that Homer and his new epic Stack are not just designed to take the data into hostage So we want to be a generic correlator We want to be able for those that already have an infrastructure or a monitoring design to just leverage this As a as a plug-in so something that you can use in your flow to categorize to argument and to correlate specifically So what we do here is exactly go on and use the second part Of the the project that we mentioned. So we're gonna have Homer Take every message. So in the previous part We were only using selected selected messages that were meaningful or that we could translate in this case We're taking everything and we're not just taking everything that comes from the API But we also modified the the client so Janus JS, which is running in the browser to also be able to stream Data to our car So we just want to get everything and see what comes out of it And the effort here is of course to automate some of the logic that Lorenzo Was giving us in the previous presentation So how do we quickly get you know from a session to its handles to the plugins that were involved the media the Transport and all of that so down here just a simple representation. So certain types And again, they will contain correlation hooks which are injected by Homer So those are not natively necessarily niche and every one of those packets. They might be inserted just to make it more meaningful or For to generate a full circle when we look at them different indices in elastic search so that we can Parallelize our searches and optimize also what we get into memory to do it What happens? As we said, we're gonna throw everything in QB So the next screenshots that you will see are from QB, which is a fork of Kibana When we get everything in there the primary keys that we're gonna look at are exactly the session ID Which you see in the first column the handle ID, which you cannot read then here We have the plug-in type and I wish you could be readable. We have the event type And I'm sorry. This is the event type and that's the Event name I guess Long story short, we want to find ways where we can Visualize the relations between those packages that we're getting And to do so I created a few dashboards in QB. So this is just a generic look What's Janos doing? So on the top part you see the different types of events They're categorized by the type of plug-in that they were triggered by in this case or the uniqueness of the session So that's just a generic how over time the system was used We see the number of sessions that we have received and we see the number of messages So for those 50 sessions we received 4,600 something events from Janos and the client combined We have a breakdown of the plugins that have Were responsible so some were generated by of course the echo test the video room see plug-in Playback whatever it is. We would break it down and it would be correlated. Let's say top to bottom here. I also Outlined and again, it's a shame. It's not readable But this is a correlation between three different types of events. So at the bottom we see an IP Which is extracted from a transport transaction going into an establishment with with Janos and Culminating up here with me joining the video room. So up here you see Lorenzo This is our guide in and this is my IP. So we already have a quick glance at you know a single Evolution so how we go from somebody login to the system in all the way into loading the plug-in and joining the video room Media is the most interesting part of what we can get out of it So in this case we made a little bit of an experiment Normally in Homer you find a session and then when you open it you get all the way into the media this time We'll do the opposite. So let's pretend that we're monitoring a Janos gateway this way And we want to look for specific media conditions So if the jitter spikes out if there's a lot of packet loss if something looks wrong From the media perspective I want to investigate this session and I want to find out who's behind these sessions So who triggered it on the right side? You see the cascading. So again, we go always from a session ID Into a handle then we have the type of plug-in and at the bottom we have Transactions so we try to find a vertical relation of all of those events together So if there's a session and we select Sorry if we select a specific media session from the system automatically we get already filtered out Where it was belonging to so we already have an idea of where it was coming from and how much it consumed and so on so forth It gets more interesting when we do the same with the c-plugin So if we load the c-plugin we register a c-plugin with our gateway we can generate a call and try to do the same thing So in this case, I'm looking at a media session that was Generated by the c-plugin of Janos so we can see that it was a big drop in between some packet loss and decent jitterfraw And we want to use this just to track who's behind this session So this session sucked for whatever reason there was a drop in the middle I want to find out who the user that was affected by is so in this case. I'm going to use the session ID as a pin filter that you see at the top left in green and I'm going to move to the tab Where we are indexing the CIP or well actually this is type 64 So it's more than CIP but it contains all of the CIP messages that Janos would Generate and in this case we can immediately fetch From just starting by the media session we can find the CIP legs which were related to this media being Been exchanged so we can see where actually was going and all of the CIP messages Of course, this would be a hook straight back into Homer So the same information would be available there in a classic way, but that's not what we're after and of course We could jump out and also with the same method So pinning Determinate elements or the session indeed a handle ID or specific plug-in across the various indices that we're having We can basically filter out automatically who they belong to so in this case once again jumping into the session and Seeing the the transport IP that was behind all of those transmissions that we see and Yeah, this is pretty much it so time's up We didn't have a bunch of time, you know to show you everything so in the next episodes we'll talk about open CIP's Capturing everything we're talking about a Homer 6 displaying everything that's a 7 isop integration Homer and so much more If you're interested those are the links. Those are the tanks Yes, well, let's see what the next presenter is and if they take it. Thank you very much