Developing mission critical service is one of the critical projects in my career. These services are based on 3GPP specs which define different communication protocols security spec for transmitting data between different nodes. I will write a separate article about my expertise in 3GPP specs over LTE and 5G. Let’s focus on these specific mission critical services in this article.
Mission Critical services consist of different communication services for different security agencies. Main purpose of this project is to help all the first responder nationwide to ensure public safety.
Here is some news about market demand of mission critical service: "1.3 million connections, 12,000 agencies
However, in the line of duty, mission critical services can help first responders by ensuring seamless connectivity so that they can communicate data in the form of messaging, audio and video to control emergency situations and maintain groups to exchanges value information which can save lives.
It’s a complete package of hardware and software solutions run on four types of client devices and services run on server. All the client devices are based on android and iPhone where we have developed the hardware and client software for android and for iOS we have developed the client software only.
It is a robust system where different network and millions of client nodes are involved. To maintain system scalability, we need balance the load of different nodes by setting session border controller (load balancer ) between application server and client nodes. Load balancer job is to forward all client request in such a fashion that every application servers have same amount of client request. Even application server should have micro-service architecture to handle different services as a master-slaves way. As all first responder contact information is very important, this is maintained in a separate server and encapsulated the request by not directly accessing the server, rather by loading webview and access with user authentications. All services- like configuration, groups, sessions are maintained in a separate server with micro service architecture.
For the client side, we had to design and develop lower network protocol based on TCP and UDP over TLS 1.3 to establish the connection for identity management and get the access token. After that, we had implement Session Initiation protocol (SIP) for the registration, subscription of different services and manage the ongoing call session. For transmitting key and other session information, we had used service description protocol (SDP) as a part of SIP message. These are one of the coolest technologies that I am working on for very long time.
Now, the best part is transmitting Audio and Video data with secure channel. We have used Secure Real Time Protocol (SRTP) for audio/video transmission. But as SRTP only can encrypt the payload, not the header, we have used mikey-saake to ensure two ways encryption on SRTP data. For transmitting all the control information of every single packet, we have used Real Time Control Protocol (RTCP) along SRTP. Media Burst Control protocol (MBCP) is the perfect way to notify different responses to the client.
This is the best summary, I can write. There are so many cutting edge technologies are there that to describe all this, it will take passages. Here is the link for google play store. I have used all the public images, published in google play store.