 Hi everybody welcome to this webinar in which we will talk about automation of telecommunications platforms and in particular those legacy telecommunication platforms. So again hi everyone, hi Svavek, hi Tomasz. So what's the plan for today? After shortly introducing ourselves we will briefly describe what Cisco Broadworks is and the platform which we are going to automate in this webinar. We'll discuss briefly the tools that we used, what was difficult in this undertaking and then last but not least we will show you a complete demo of automated deployment of a Cisco Broadworks voice platform. Who are we? I will start by introducing myself. My name is David Mielnik, I am the delivery director of the telco service unit here at SoftwareMind. We carry out projects related to collaboration, co-control, observability and automation of core network telco platforms. And my name is Svavek Bedmachek, I'm a principal system engineer in SoftwareMind and I'm also a team leader. My team is involved in broadsoft products. My name is Tomasz Czławski and I'm a systems architect with a telco background and also I'm leading DevOps Guild in our company where we are trying to develop and promote DevOps culture, expand people's awareness of the need for continuous software improvement as well as knowledge about cloud native and automation technologies. What we'll show you in this webinar is an extract of a much wider project in which of course there are cloud native applications, there are Kubernetes but like we said we want to focus on legacy telco platforms and this is what we are going to discuss, what we're going to show you and then in the end we are going to demonstrate the deployment of a automated deployment of Cisco Broadworks platform. Soft is a communication software platform that is delivered by Cisco, it's in general it's embedded in service provided network and provides you various services for unified communicators, for mobile users, for SIP trunks for SIP terminals and those combined users with mesh of services that also broadsoft provides you, you may build from big-scale businesses to small businesses, fully mesh of services that simply drives your business and in general this may be services from broadsoft are offered to the customers and sometimes even if you call some call center in example you may not even be aware that you use broadsoft because you just call in transparent let's say way and you reach some call center from I don't know bank or any other enterprise and you don't know that you've been served by broadsoft right now. So let's talk about let's say broadsoft components that we will use today during our demo. So we have the application server, it's a let's say main server with logic inside, with subscribers inside, it has timestamp database installed in the memory that is efficient for real-time applications and for users here. Moreover, database can be replicated so we can build a cluster to provide some high availability and so today during our demo we'll build application server as a cluster setup. We have also media server mainly RTP streams so whenever you have any conferences, you know bridge calls, whenever you have any announcement heard from broadsoft, media server is involved. Network server is something additional, it simply supports application server and other elements of broadsoft components to serve traffic. And network function manager is something that is not strictly involved or directly involved doing the call service but it supports operational team simply to monitor broadsoft network components. In our case, we'll use NFM as a license broker because you must know that broadsoft is a licensed software and before you proceed with broadsoft configuration you need to provide license and for this purpose we use a network function manager as a license broker so we have let's say set of licenses installed on NFM and we use API simply to install license on the servers that we'll have in this demo. So guys, tell us a little bit more about infrastructure as a code tools and the ones that we have used and why. Okay, regarding the infrastructure as a code tools available on the market we have several right now projects and we may simply divide them into say tools that operate based on the domain right so we can have a management infrastructure tools and some configuration management tools as you can see on this chart we have several tools that can even overlap domains right so some of tools may operate on management infrastructure and application management configuration as well but there are also some other tools that are focused mainly on the single domain in example terraform operates rather on as a management infrastructure tool while in example puppet of chef can you know you may achieve some infrastructure management and infrastructure configuration moreover you can also say apply this one to application configuration domain as well. So Swabek there is an apparent question why we have chosen Ansible in Terraform and not only Ansible if we see that it also covers the infrastructure management area. In general terraform is very useful for management infrastructure and I would tell you a little bit more about the terraform and probably you may let's say guess why I let's say I choose terraform to build our infrastructure let's say from our perspective terraform is easier to be used and it's more let's say much flexible for infrastructure provisioning so let's use a tool that's let's say is more aligned to our requirements and needs rather than putting putting everything on Ansible's side. I think terraform is also the most popular now tool nowadays for provisioning the infrastructures. Yeah the choice is the popularity it might be also a point right but hopefully that on the next few slides we will go a little bit deeper into terraform Ansible and we will simply discuss it why we decided to have it that way. Sure okay. Okay so we're getting terraforms so extra words about terraforms so as I mentioned before it's rather provisioning infrastructure tool and it has a HCL files that are let's say written in human readable form where you may simply define some on premise or cloud resources and moreover it has a declarative approach what it means what is behind that in general you put you define some infrastructure so you described some infrastructure inside and up to terraform to deliver this infrastructure for you so we don't care about the order we simply define some files where we describe the infrastructure even if it's somehow combined a little bit in an example like Kubernetes cluster and so on so this is a very let's say a big advantage from our perspective moreover terraform detects the state so it it recognizes what element were created and simply detects the state of this element later on and another let's say big advantage from my point of view is that terraform is provided diagnostics so we are not let's say glued to some single solution and this gives us this gives us some flexibility during the project process right. Okay so let's talk about about Ansible a little bit so it's rather a configuration management tool and Ansible is used mainly for application installation and application management moreover it might be used also for your operating system preparation because it may simply change single files single lines in the file and so on so it tracks also those and decided that you that you have you know proper configuration inside moreover it's rather a pseudo approach than the class effect what it means that the order of our tasks in the playbook is important. So we can I can see already that there are some benefits of why we have chosen Ansible for someone that knows how the installation of Broadworks is arranged and having in mind that the operating system have to be prepared in a special way according to the prerequisites and and installation would require a more procedural approach but the obvious question is why we have chosen Ansible and for example not other not other application and configuration management tools like Chef for example. My response is quickly agentless in general Ansible from my point of view requires only SSH connectivity while with other tools we have to also install some agents so it brings some additional efforts on the environment that is let's say provisioned and so that's why we used Ansible from my point of view agentless is a big advantage for that. Yeah I think also that venture is also the simplicity of its configuration files yeah we use YAML language YAML syntax in Ansible playbooks which which is well known I think worldwide in IT world so this is also the advantage. So we have already touched a little bit about the challenges of installing Cisco Broadworks prerequisites interactive approach not declarative configuration so let's go into the details what what did we have to face and how did we overcome it. Okay we had let's say challenges or steps that we had to address so first of all we had to choose some infrastructure provisioning so regarding we need to choose our infrastructure provider and the tool that we that we use for provisioning management right. Second is that Broadsoft requires some additional proportion of the Linux system so we need to be very strict in scope of providing Linux machine and it should be configured according to to Cisco Broadworks requirements. Moreover we have to also install third-party installations so what it means that we should provide some additional software because without Broadsoft application won't be installed correctly. Next challenge we had is providing Broadsoft software itself perform the installation then Broadsoft has also post-installed tasks so before we started an application before we licensed application we need to perform some additional steps so after Broadsoft after Broadsoft installation extra task has to be done right so extra task has to be performed before before server is let's say operational and ready for for configuration so this this task has to be also addressed for us and then next challenge is to proper license delivery as I mentioned you before we have NFM so we need to somehow combine NFM to provide licenses in automatic manner for us and the last but not least probably Broadsoft configuration Broadsoft do not support doesn't Broadsoft simply doesn't support config flat config files right it uses BWCLI interface so you may simply say that it's a kind of shell where you configure Broadsoft being in front of the keyboard right and performed all tasks that are required to to configure Broadsoft for you and what is important here is that we decided in that case that so if we are not able to provide you flat config right like in example for Apache we may simply provide some template with the config and Apache or nginx will is configured properly for you and and that's what you want to here we need to process let's say figure out some different solution so I will tell you a little more how we address it on next slide so how we challenge the addresses so as you can see on infrastructure provisioning we decided to have Proxmox and Terraform so for Linux system preparation and the third part of solution installation and so on we use Ansible the fact that as I said that it's very handy for configuring operating system in scope of very single and very detailed way also for Broadsoft installation and post-install task we also use Ansible here with some tricky part for license delivery NFM has REST API that can be used so we also let's say put some parts of code that simply addresses issues and it's triggered by Ansible this communication and at the end we should get software licensed properly and Broadsoft configuration this is also part that has to be let's say a little bit I'd like to say a few more comments so Broadsoft Broadsoft applications do not have flat config files I mean it have let's say they have some part but in general from our perspective to properly configure Broadsoft you have to use BW CLI interface you may say that is kind of shell and being front of the shell you may simply you know configure all required changes that you want to have and to configure properly Broadsoft applications so if you are not able to provide flat files we decided to use expect right expect script and this expect script can be treated as a config file so you might template it you might you know change the let's say perform all required changes that you want to achieve right and then this expect which is delivered to the server and executed and at the end we should get correct configuration inside the Broadsoft application so it's a trick to overcome CLI based configuration with an expect script to kind of give you a file based approach to configuring we're actually in the fire there commands that are then executed through the CLI I'm not sure if we if everyone is let's say if everyone know what what what expect is right so maybe we could say a few words about expect itself so in general expect is a tool simply that allows us to detect what is let's say output right and depending on the output we can we can define some input data and execute them so whenever we want to let's say put some put some script that simply let's say doing a tricks like we would be in front of the shell or in front of our let's say computer you know we you may simply put it in the expect script and execute it later on so it's the next automation tool we used in our project here yeah exactly so it's instead of being in the say in front of the keyboard you may simply put it in there in the script and do it do it by yourself right okay so i think it's time for architecture part so in general approach that we'd like to achieve is that we have operator with CICD tool and based on this tool Ansible or Terraform is triggered with proper playbook and proper template inside and at the end we should achieve let's say Cisco blocks of operation in operational style state additionally we may also as you can see here that we have also elastic search to you know the purpose of having elastic with Cisco blocks of is observability so today we mainly focus on the central part of our diagram so we'll show you how you may simply achieve the the goal with Ansible Terraform to build Cisco blocks of platform and ready for handling traffic so in a typical project the goal that we want to achieve is to have the deployment of Broadworks handled in the same way as the rest of the code and the rest of the application so trigger from the CICD and then handled by observability tools but for the purpose of this demo we will deploy the platform and trigger Ansible scripts by by hand basically yeah yeah okay so a little bit more about the architecture here so as you can see on the top of the screen you have a two application server Broadworks H1 and Broadworks H2 that combined they let's say got glued together as a cluster in the center of our diagram we have also Broadworks network server one and two and those two tools servers are also clustered because let's say we may also bring some high availability in scope of network servers so let's do it that way and on the bottom we have a media server and for our demo one media server is enough so let's build the only one and on the left side you can see NFM today we will not be deliver we won't deliver NFM because we have already installed NFM and why we do that in general NFM is a license broker as I mentioned before so after NFM installation you have to provide a fingerprint to Cisco and based on this fingerprint license is generated for you and before you proceed with other tasks you have to have this license already installed on NFM because without that you won't be able to you know even to start lots of applications so that's what we decided for today's demo demo to have already NFM provided with license installed and the next step is to provide rest of infrastructure we want to have in our setup okay guys so I think we can also discuss some sequence flow how we want to achieve it before we make any code review so first of all we have Ansible as I mentioned before perhaps I haven't in general Ansible and Terraform can be combined together and depending on your needs you may even trigger Ansible from Terraform or doing let's say vice versa I mean the Ansible may trigger Terraform to build in some infrastructure for us today we decided to have Ansible and Ansible will trigger Terraform and Terraform will build infrastructure on Proxmox and at the end we should get Linux servers ready for communication for us then as I mentioned we have to configure and prepare Linux servers accordingly to browse of requirements so Ansible is used to is used to configure operating system properly for us so you can see it in the center of the screen then we will also trigger Ansible to deliver binaries and config files and patches to to the target servers perform installation and when installation is ready and post task is done we may provide license so we will again use Ansible and REST API to communicate with our NFM mode and NFM will license our newly installed servers when servers are licensed we may perform configurations so again we will involve our Ansible to provide expect scripts and execute them on our behalf so at the end of this process we should get browse soft installation completed and all let's say servers should be in operational state and ready to handle calls Svabek how do you execute each next step you have some kind of triggers here in your Ansible playbooks or is it one playbook it's built in the we will see in the code review but it's built in general in the single playbook but the single playbook contains roles right so depending on depending on the step I'd like to achieve right I'm simply executing role that was built you know to let's say to to address some specific parts of configuration steps moreover we also use attacks because you know using roles also may let's say contains a lot of additional functionalities for our demo we don't need to do it all the stuff of preparation like like we do on an example on production sites so we'll limit some part of our of our roles to single tasks just to make sure that it contains let's say basic configuration required for for our demo and was it difficult to deploy for example the application servers in the cluster mode for you as we know for people familiar with the broad works these require some steps first to be done on the first node and the second node and yeah let's say let's say it depends on if you know a little bit broadsoft right if you are familiar with broadsoft and you let's say get used to installations and so on you you know what is inside then you need to simply let's say think about how you would perform in Ansible way right so there's some tricky parts in example that depending on the broadsoft release some files are in different places so you need to be aware of that and put some statements that simply address it properly depending on the broadsoft release you also may have some let's say different behavior in example after broadsoft broadsoft binary is installed right and again depending on the release that you are installing you may have spontaneous reboot server reboot or not right because in at the end some binary installation it requires some server reboot and it performs for you and an example Ansible doesn't like it right it you need to you know handle this let's say in some order that it's not a failure we know about it please proceed with rest of the steps right so if you if you let's say are familiar with Ansible and you are familiar with with broadsoft it's rather let's say some way that you may simply address it properly and because we are you know that is not error something that that simply occurs right especially for example post install task because depending on the release and depending on the type of server a post install task script might be in different places for example so you need to detect it detect it properly and execute proper script so it's not just a simple application deployment but rather a complicated platform which is which you need a deep knowledge of it yeah yeah engineer yeah you should be familiar with some gears that are inside the boss off yeah so knowledge of the tools and experience with the with the platform and these problems can be overcome that's correct so we have talked about some difficulties that we might have when deploying this Cisco Broadworks platform we know that there's prior requests to be addressed on the OS level before we can proceed with the installation we know there's there's some difficult parts which have to be addressed by Ansible like like interactive and post install behaviors and scripts we know there's some not very friendly for automation CLI there's a licensing involved as well so show us suavek how how you have how you have overcome all these all these points and show us show us the demo so what can we expect at the end of the demo okay so i suppose that first of all we would make some short call review right to to you know to to our to get our to get everyone a familiar familiar with what we what we did and how we did it and then we can simply execute the the playbook and see how the installation goes okay i understand that we'll place a live call at the end to see everything yeah surely is up and running keep keep finger crossed that yeah in general after after this execution of the Ansible playbook we should get a platform fully operational and ready for to handle calls and you know to create users and so on exciting let's go okay so let's do that all right guys so let's go through our code that we built for to for setup so first of all as i said we can ask a terraform to be true to to be triggered let's say by ansible and this is a part so we have already terraform template and those are simply executed by ansible so instead of doing you know in a terraform apply right we have this part of code and at the end we should have our our infrastructure driver later i can show you in general before we start both both of installation i can show you more or less how it looks like if we let's say if you would do it from terraform perspective so i can apply some terraform plan and you will see that how many servers will be built and to and what the details more or less will be introduced by the terraform then we give some we give some time simply to spin up all servers and later on we what we do is starting we are starting configuring centOS operating system to bring us brings our linux up already and ready for a browser installation but before we we do that let's go to terraform so we have tf files here defined as you can see here we are using proxmox provider as a as a provider of our solution and then we need to also define some servers as an example i'd like to show you how applications ever looks like so we have you know some target nodes in our cluster we have some disk requirements network or even we have some cloud in script that is executed later on that's why we're also giving some additional time and moreover we we have also we have all we have also some app already assigned for the network for the server so at the end we should get linux linux machine ready to be ready for communication with our control node it's a pack then we have also as you can see packet beat but i will be i will be discussing this later on why we have this packet bit here let's let's focus on broad soft install so as i said before configurations and we need to perform some configuration of the linux so we use the role that simply brings us some configuration steps for linux in example let me let me at the at the beginning we are providing some proxy information for yam to be updated then we checking if you have all packages installed that's simply both of requires then we also design as i said linux because this is one of recommended parts or for our setup in this release we also introduce some ntp we also make some dns setup what we also do is that we need to prepare etc host allow deny and the host itself we are using templates for that and also what is important at the end we also you introduce a block host depending on the host name that we execute this playbook right so depending on the host we need to add lock host information because this is this is what broad soft requires as well as you can see also we use tags so depending on the tags right we introduce some specific part of our configuration we are we for our setup will not be executing executing all tasks here because we don't need to right so whenever we be let's say whenever we will be executing our our playbook i will add all required tags that should be executed you will see later on why we need that so let's go back to our installation webinar here playbook so as i said we are introducing some centers with the role then we have a role that simply build for us application server let's take a smaller view i will not be showing you each server because the idea more or less is the same so we have a we need to create a directory for installation then we copy we are we copy binaries and patches that are required for initial installation next topic is that we also deliver installation config file so you may install it you may install broad soft in in active mode or deliver already pre-configured file that contains some configuration and you simply execute it with the config file or application with the patches so as you can see later on we start we are installing application server binary with initial patch and installation com file depending on our server okay more or less the same we do for for rest of the servers depending if we have the if we if you use the some it is release-based or it's the independent release right or with independent release we don't use initial patch packages yeah exactly this is broad so specific next topic is we need to prepare post install task so whenever you install broadsoft later on as a bw a admin user you need to perform post install what we do here is that instead of doing it so login to the each server perform this post install task and so on we simply ask Ansible to do it for us depending depending on on the let's say server and release we need to simply change one of param parameter from false to be true so we can perform our auto post post install task on our behalf later on as you can see we have introduced a role bwks post install so let's see what we have here so depending on the on the release we need to replace flag from false to true and then what we need to do is we're checking because it's also depending on broadsoft release where this post install setup file is located so reach 22 23 or 24 you may find this this this file in few different places so we also have to let's say address this this one and replace in the proper place okay so that's why you have one statement here and as you can see we target as a post install task then what we need to do we are installing media server media server is more or less the same way let's say the same idea as we had for application server the only difference is that i created a different role for the for this type of server in example if we let's say start thinking that we need to also add something for media server we can introduce it therapy to the role um what is next that i would like to mention it here okay post install task execution so whenever you have cluster you need to also take a word about order where you perform this post install task so let's say the general idea is that you need to perform post install task um on the primary first then on secondary so this is why we also use here a order of execution from from as a different task so at the beginning we are performing post install task on the primary one then we perform post install task on secondary server so if we fail for some reason with the primary we will not do it on the on the secondary so all these tasks needs to be done in sequence yeah and uh you have to uh explicitly take care of it in the in the in the ansible uh scripts yes uh what i see what i see uh that to achieve our our automated automated installed platform we we need to have a deep knowledge of automated automation tools but not not only we also need a deep knowledge of broad soft and maybe this is the most important yeah you need to you need to know broad soft let's say what is inside what gears are inside and how they are let's say launched uh quite deeply right to to understand why behavior as a good example because you you too much mentioned this one you can also see here that i have a statement ignore unreachable yes why because depending on the release uh suddenly uh your after installation process your server may be rebooted so uh if you are aware of it and you know that it may happen and it happens right because simply at the end it reboots is required and both applications simply perform this reboot ansible would stop right because something wow why i lost my connectivity to the server right so that's why i put it here you know unusable yes so only if we reach unreachable statements so if we if you face another error uh let's say playbook will stop and will simply return an error that this we could not perform some steps but if we reach unreachable state uh it will go on right so uh this is what you mentioned already that uh yeah some uh the big deal is not let's say prepare the biggest deal is not to prepare a playbook it's rather uh to understand how broad soft installation behaves and how it proceeds proceeds so how to use different tricks how to bend the tools knowing how the platform underneath behaves in order to achieve this full installation taking into account all those all those different that's correct tips and tricks um okay so let's let's go to the some post install tasks um so i already introduced your the role so this is how we execute post install as i said primary first secondary later and nfm so what we how we do it we simply use a c url tool let me let me show you some uh so we have uh we have some uh xml associated um then what we do is uh we are trying to use c url command right and we use a network function manager api uh to uh to simply uh trigger nfm and perform for us some uh some binding and also uh we are asking with api uh to uh perform license of the servers okay uh i know probably tom will ask for that why we don't use a uh url uh url uh module of ansible uh i decided to use url because uh it was more handy for me in general right because we have you we use here a body uh and in general you know uh i would need to struggle more let's say uh more uninstallable while we simply can use uh c url with handy uh in handy way so i decided to use url here okay guys so then after license is being assigned so as you can see here we have a loop and perform uh perform a license assignment let's go up uh so when you have a license already in place we can start our browse of application okay uh as you can see i'm using simply shell module to start browse soft uh what is important here that instead of uh root user or something like that i'm i i simply do it as a b-works user okay later on when you have uh all applications started we can start configure it configure those nodes so as you can see here uh this part is configure ms node and this part is configure application server node so what we do is simply we provide uh roll uh pwks configure so let's go there let's check it okay guys so this is how we do it in general we uh we simply uh checking if you have uh export uh expect directory right this is how i decided then i deliver with a template uh expect script so at the end we should get some uh some expect script in place uh in the the directory that that we created here then we are executing aspect with the shell command uh this expect script after execution and success and successfully execution uh we are stopping and starting boggles why because mainly in the initial configuration you need to do a lot of uh config changes that requires both the freestyle so i'm doing that way so i'm not using here uh any handlers because i would need to define services and it was it was quite handy to to perform the start and stop with the false command okay guys so in general this is that's it what i want to to show you here we can check it uh how it works uh in our like demo i'm eager to see it in action yeah let's let's go okay guys so we are ready to proceed with uh executing our um playbook uh as you can see uh we are using the install web in a yaml file that was discussed in previous section uh with following tags basic uh broadcast install post install license um like broadcast config and also terraform simply um this those tags limit our actions that are required for our setup let's proceed let's try to execute it as you can see the first task is the terraform so mainly we are provisioning our infrastructure first it may take up to five minutes even so let's fast forward this section and we will we will slow down only on uh moments when any commands is required so let's proceed and please stay with us okay so after five minutes as you can see our infrastructure has been provisioned um right now we're giving some extra time simply to those servers to spin up and then we will start uh links configuration and broad works uh and broad work installation so um let's move to the next section just after that we are starting right now uh linux configuration as you can see packages are being checked if i installed or not and after this section uh our linux operating system should be ready for broad soft software installation as you can see here uh our application servers are installed also we uh hit a unreachable issue that i mentioned before mainly we need to expect such behavior so we need to address it we simply wait until application servers are booted again and after that we may proceed with post install tasks right now we are starting post install tasks on the first server and uh after first one after primary server is done we proceed with secondary server so let's fast forward this section as well okay so as you can see both uh application servers uh are done also um post install tasks are done install tasks are done on those servers uh we've started with media server installation process in general uh it will look very similar to application server as well so we'll have a binary installation and then we will proceed we will proceed with uh post install tasks very similar also we'll have our network servers so um let's jump into license delivery section okay so all servers are installed with post install tasks um so right now we are triggering nfm node to bind to nodes and also provide license as you can see uh it's been done already so right now we are starting with uh broad soft application um application uh on each server is started and after that we will uh proceed with the broad soft configuration section it looks that uh we've done all tasks as you can see in summary we hit three unreadable states here uh as i mentioned it is expected it seems that application uh broad soft application um has been uh configured with success application has been started as well so next step is to check the cluster status um and if everything is fine then we may proceed with the uh enterprise creation with uh group creation and the uh and add some users and make a test call okay so uh as playbook is done i'd like to check right now uh how application server cluster looks like what's the stage there so uh let me log in first okay let me check if uh all required processes are running okay it looks fine we have all all processes up so let's proceed with uh health check so i'm uh i'm checking it's with health mode command it may take some time and we'll check if any alarms are present on the platform okay we have no alarms present that's good so right now i'm checking uh cluster status as you can see application server one is a primary one it's in unlocked state and uh application server two is also in unlocked so it means that the second one is secondary node so let me check the time uh replication status now okay it looks fine so we may simply proceed with uh enterprise group and user creation and then hopefully we'll make a test call okay so let's open uh compiler now if my config is in place um i should have my account created so let's try to log in with this account okay it it is uh asking me to change my password so it's it's not my behavior so let's update the password and then we may proceed with uh enterprise group and user creation so let's proceed with that first okay my account is updated so let's proceed with rest okay guys so i have got in my password and i created also enterprise uh group and users that we will use during our call so let me show you as you can see i prepared two users one is 48 from one to nine and second one is 48 from nine to one so let me show you right now um how the user looks like as you can see it has line port assigned also it has authentication because we will register our user through applications ever so we have to this we have to have this uh authentication service enabled and also um created credentials for that user let me show you assigned services so we have some basic services authentication external and internal call line id delivery so that's all that's what we what is required to proceed our test call okay guys so uh what we did was uh we built our uh cluster we built fully operational broadsoft and as i showed you uh it seems that it's ready to handle calls moreover um i was able to create enterprise groups and add users i already passed my some credentials to tomash so first the step is let's try us to register so i'm going to register now yeah i'm logged in as you can see here tomash how's your site then i'm logged in we're waiting for your call okay so tomash and i uh have registered successfully so right now i'm going to make a call to tomash okay it's calling okay tomash can you hear me yes i can hear you oh there's some voice okay so it works great thank you okay so um so let's try to um to make a call to some uh unknown or not existing number uh so we could see if you have a media server triggered and we should have heard some announcement that call cannot be completed so let's try this one your call cannot be completed as dialed please check the number and try your call again thank you okay so it looks that media server is being triggered and it plays on the announcement that the call is not being is not being completed right now all right guys so um in general you may notice that i also installed some packet bit uh for our uh in our setup and why i did it uh in general uh i have prepared some elastic search um and just uh those two uh let's say dashboards are simply so to to show how to show you that you can easily combine with some bits that are created by elastic and you may let's say bring some uh observable observability to our setup here as you can see uh i traced some invites right cp invites here are cp messages this one were achieved by simply um installing packet bit on our application server and this starts are collected by elastic search now on the bottom uh you may see uh hip usage right now what we have here on the server mainly uh this one are achieved by um by lockstash uh with a SNMP agent installed plugin um this is like let's say kind of heads up for you guys that perhaps in the next webinar we may show you uh how you might introduce elastic search for your bloatsoft platform so this was also deployed uh automatically uh via answer book right yes i mean if you noticed on in our let's say playbook we had a part where a packet bit was installed on the application server okay so not only can we uh automatically deploy uh traditional legacy telco platform we can also use modern tools for observability like elastic search to interface with a SNMP and to bring and take out and bring it to the dashboards some interesting information from from within the platform right yeah but it's an SNMP it's just just a part and with packet bit we are simply taking uh let's say network traffic and visualize it here right so we can recognize that this is a cp message and here we we can inside check what's inside the packet and recognize that it's invite you know the method inside the cp so on the top we have a packet bit let's say uh output let's say output we have a output from uh data that are collected by packet bit to elastic search on the bottom uh we have uh we have a output that is delivered to to lockstash and lockstash has additionally installed uh SNMP agent uh plugin that allows us simply to query our bots of setup and get some additional informations you should mention that packet bit is supporting now uh natively and natively uh cp traffic so this is it's very this is really easy to integrate yeah platforms into elastic so to be honest i to be honest i didn't have to even check too much regarding the uh what's inside just you know um taking uh discovery from the index we starting collecting uh we started collecting and you know it was easy to to figure out how to build such uh such dashboard for us excellent but what is uh quite insightful and important to me is that you can have a legacy platform and automated and you can have a legacy interface and also use it to to to achieve observability that's correct thank you for joining this webinar i hope that the tricks the challenges the tools that we have showed you can also be obvious in in your own projects thank you guys thank you and see you next time