APT https://aptsoftware.com Boutique Software Firm Sat, 13 Jan 2024 09:12:54 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://aptsoftware.com/wp-content/uploads/2023/05/cropped-APTlogoHead200-32x32.png APT https://aptsoftware.com 32 32 Voice / SMS over LTE https://aptsoftware.com/voice-sms-over-lte/ https://aptsoftware.com/voice-sms-over-lte/#respond Wed, 13 Dec 2023 15:53:56 +0000 https://aptsoftware.com/?p=1041 A mobile Voice (VOLTE) and SMS (SOLTE) application over packet switched network for LTE networks

]]>
https://aptsoftware.com/voice-sms-over-lte/feed/ 0
OData Standard: The Protocol for REST API https://aptsoftware.com/odata-standard-the-protocol-for-rest-api/ Mon, 06 Jun 2022 07:05:55 +0000 https://aptsoftware.com/?p=312

OData Standard: The Protocol for REST API

Open Data Protocol, commonly known as OData, is used for creating interoperable and queryable REST APIs in a more convenient way. REST APIs are generally used by web clients for publishing or editing resources. Data services based on REST APIs allow resource identification using URLs and define them in Entry Data Models. Web clients can edit or publish those data and information using HTTP messages within the OData ecosystem.

OData standard enables information accessibility from different types of sources including traditional websites, file systems, and relational databases. It is used to increase the data shared value by breaking down data silos. It allows data producers to interoperate with data consumers in a convenient way.

Advantages of OData Standard

  • Developers use this protocol to interact with information through REST services.
  • One can create custom methods.
  • It doesn’t require creating a proxy class like a web service.
  • It provides metadata about a service interface which is used for generating client code for service access.
  • It supports generic queries for data filtering on the client side.

The OASIS Open Standards Consortium has approved OData 4.0 and OData JSON format 4.0 as international standards for open data exchange. A draft of the latest version of the OData protocol, known as OData 4.01, has been published by OASIS as a committee specification. While OData 4.0 proves to be a suitable protocol for creating REST APIs, the recent version not only adds a variety of new features but also removes a few restrictions from the previous version. These modifications are based on –

  • Simplified syntax
  • Extended query language
  • Simplified payloads

New features related to syntax and query language are supported by OData 4.0 as extensions.

New Features of OData 4.01

Some of the new features of OData 4.01are mentioned below:

1. Default namespace: OData 4.0 is used to reference model elements with qualified names that are added as prefixes with the model element namespace. The latest version defines a default namespace as a reference to a model element instead of suitable names.

2. Schema versioning: OData 4.01 allows schema versioning, i.e. same URL service root can be used for serving old as well as new schema.

3. Isolation of Header without prefix: The latest version accepts header isolation without using the OData prefix.

4. Omit values: OData 4.01 reduces the message size of a sparsely populated entity with multiple properties by omitting null and default values.

5. Ordered collections: Unlike version 4.0 which treats a collection as an unordered list of stuff; OData 4.01 follows ordered collection and allows a zero-based indexing method for inserting as well as updating items of a collection.

6. Deep update: With this new feature, one can create or update entities with an update payload containing nested entities.

7. Alternate keys: Entities can now contain alternate keys along with primary keys for parentheses style key syntax.

8. ‘matchesPattern’ function: OData 4.01 introduces a new function called ‘matchesPattern’ that is used for checking similarities between a string and a regular expression.

OData 4.01 service is compatible with clients of the previous version; the ODataVersion header facilitates content negotiation to ensure that version 4.0 clients don’t experience unexpected constructs within response payloads.

APT Software has been providing top-class services related to big data and analytics and ODATA-related software development services to the Oil and gas industry.

Do visit our official website www.aptsoftware.com to learn more about our services and email [email protected] for any queries.

Tags: , , ,

]]>
Talent Crunch Vs Talent Hunt in India https://aptsoftware.com/talent-crunch-vs-talent-hunt-in-india/ Mon, 22 Nov 2021 07:08:48 +0000 https://aptsoftware.com/?p=315

Talent Crunch Vs Talent Hunt in India

There is a serious challenge running for ages – the industry’s resource need and employable resources available and the IT industry has been dealing with it through various innovative means.

India being the world’s IT outsourcing hub, faces a huge skill gap in the type of resources it needs, and what it gets out of new hires – a huge challenge for the HR managers.

One of the top MNCs in India ended up recruiting double the number of fresh candidates they needed, for which they had run a hiring campaign. The main reason for this is the talent gap and for such a huge recruitment, they will be unable to recruit further for the next 2-3 years, as per their statement in a media conference.

Because of the pandemic, suddenly the situation has worsened.

Globally, there is renewed emphasis on Automation, Digitization across industries and upsurge of new age automation in the era of Industry 4.0 and Education 4.0.

The CHROs now suddenly have new challenge to solve. They need plenty of new resources as there’s host of projects lined-up in new age technologies and niche digital skills.

As a result, to cope with this pressure, a hiring frenzy is going on with large IT companies and some funded Tech Startups product companies in India. Hiring talented individuals, mainly Software engineers and product managers has become a mandate.

Amazing pay structures, joining bonus, referral goodies and a lot of perks offered by such companies, is becoming a resource acquisition strategy rather than a hiring one. With a lot of disposable funds and a strong brand value they are offering insane salaries to resources.

Campus recruitment this year has been overwhelming – more than 1.2 lakhs hired with 40% higher average salary offers than those of the last year fresh graduates.

 

For lateral hiring, perks and up to 70% hike in salary with amazing roles is being offered but there is still about 50% dropouts!!!

Attrition has also gone up to 25% from last year’s 10%.

This situation has actually made some of the resources even more adventurous to take this one step further and negotiate salaries with other organizations beyond industry standard. Amidst the pandemic, resources are using an offer letter as a tool for negotiating salary with other hiring companies and finally joining the highest paying company escalating the salary up to even 60%.

On the other hand, this scenario is becoming more and more challenging for the recruiting agencies as well as mid-sized IT companies who can’t afford to pay that kind of hefty salaries breaking all norms to retain talents or hire fresh candidates.

Experts are of the opinion that this bubble will also burst as this seems to be a temporary phase based on a pseudo demand spike which will settle in sometime.

Till then, it’s rejoicing for young resources and worrying for mid-sized IT companies and staffing agencies.

]]>
SESSION MANAGEMENT TECHNIQUES IN WEB APPLICATIONS https://aptsoftware.com/session-management-techniques-in-web-applications/ Mon, 23 Aug 2021 07:12:27 +0000 https://aptsoftware.com/?p=317 SESSION MANAGEMENT TECHNIQUES IN WEB APPLICATIONS

A session or ‘web session’ is a collection of online activities done by an individual to web applications within a given period of time. A web session includes activities that are interactive to visitors such as filling out online forms, searching options, and exploring the web application content. Web applications retain session information for multiple requests as well as differentiate between authenticated users and anonymous users.

To manage security controls, protect private data, and provide access to authorized users a session requires a session ID which is used by web application servers to identify authentic users in network communications. An efficient session management technique is required to keep track of multiple session IDs. The different techniques used by web applications for identifying individual sessions are cookies, URL rewriting, SSL, and hidden form fields.

Cookies: A cookie is a small piece of information that is used to identify an individual session. It is created by a web server whenever a user accesses a web application. A cookie gets saved by the web browser to the user’s device and can be used for recognizing users by the web server. Sometimes, multiple cookies are stored in a particular device during a single session. Cookies are used by a particular web server to keep track of a user’s browsing history. They can also be used for tracking a user’s personal information such as username or password.

URL rewriting: It is a process of session management in which a web server rewrites the URL by adding a bit of extra information to each link. The extra information is then used for identifying sessions of a particular user. In this process, a token or a parameter is added to the end of a URL. By clicking on a particular URL that has parameters, a request is sent to the web container to fetch the parameter for session management. This technique is used when browsers are unable to support cookies or a user disables them.

Secure Socket Layer (SSL) Session: The Secure Socket Layer (SSL) is basically a protocol that provides better online security. Web applications can use SSL to generate encrypted session keys to identify each session. Websites and web applications that support SSL have HTTPS instead of HTTP in their URL links. Almost all web applications implement HTTPS for enhanced online security. Encrypted session keys are harder to decipher by unauthorized third parties and are therefore more efficient and popular among web applications.

Hidden Form Fields: In this technique, the web server generates a field that stays hidden from the user. These hidden fields are generated dynamically during every generation of the form page. Hidden fields are used for storing user information and can be retrieved from the web server. Retrieved information is then used by servers to identify a particular session or an authorized user. A session data is added to a hidden field and sent to the Servlet for generating an appropriate response to the user.

Session management techniques ensure a secure way of identifying each session that can be used to provide a positive web application browsing experience. They are also used by web servers to distinguish between an authorized and an unauthorized user to protect personal information.

]]>
POPULARITY OF THE “GO” LANGUAGE FOR DEVOPS https://aptsoftware.com/popularity-of-the-go-language-for-devops/ Fri, 06 Aug 2021 07:13:54 +0000 https://aptsoftware.com/?p=319 POPULARITY OF THE “GO” LANGUAGE FOR DEVOPS

The Go language, also known as Golang, is a programming language that was designed initially for infrastructure and networking. The idea behind Golang’s development is to create a simple, efficient, and fast programming language. Golang has become popular for its simple structure and easy syntax.

DevOps is a collection of methods and tools that are used for combining software development with IT Operations. DevOps aims to deliver high software quality in continuous delivery along with increasing product performance. Filled with several characteristics such as efficient management of garbage and an in-built library of packages, Golang has become popular for DevOps tools.

Golang follows the property of static typing that allows it to check for a variable type during compile time. Unlike dynamic typing, the declaration of a random variable needs to also declare its type, i.e. integers or characters. The advantage of using a static typing programming language is that the compiler performs a thorough checkup and trivial bugs can be identified before running the program. Therefore, runtime errors can be detected during the early stage of software development using DevOps tools.

Golang has become popular for DevOps for its powerful concurrency procedures for delivering a better software approach. Concurrency is a special property of Golang that allows it to simultaneously run multiple individual activities without disturbing the main program. Golang does it with the use of a unique type of function known as a Goroutine. It is a type of function that allows its activities to run in the background without creating any type of disturbance to the main function. Declaration of a function as a Goroutine is very simple; just add the word ‘go’ in front of the particular function. The syntax is:

go <function_name> {

To create a Goroutine, one simply declares a normal function in the Go language and uses the ‘go’ keyword in front of it during the function call. By doing so, the function will become a Goroutine, and the main function will act as the main Goroutine. However, it should be noted that terminating the main Goroutine will automatically terminate other Goroutines. Therefore, it should run so that other Goroutines can simultaneously run.

There are several similarities between Goroutines in Golang and Threads in Java as both of these features are used by their respective programming languages to execute multiple works simultaneously. However, there are two most distinctive differences between Goroutines and Threads. The first difference is unlike a Thread, a Goroutine is neither a system thread nor OS runtime manages a Goroutine. The second difference is that a Goroutine takes a lot less stack size when compared to Java threads. Moreover, stack size in Java threads is fixed and needs to be specified. However, the stack size in Goroutines allows changes according to the requirements of the applications. The simplicity and flexibility of Goroutines provide effective advantages over other programming languages with concurrency features. DevOps focuses on delivering an effective product and adapting Golang with Goroutines will guarantee an application of high quality.

Another reason for Golang’s popularity in DevOps is an ample supply of an in-built standard library. Golang comes with various types of libraries and tools that prevent the use of packages by third parties. Also, the availability of various types of libraries helps in an efficient process of a wide variety of application development. A few of the popular Golang libraries are as follows:

Godoc: It is a documentation tool that helps developers to document their projects in either plain text or HTML format.

Gofmt: It is used to format programs written in Golang. With this tool, developers can easily format the source code of projects as it provides a simple but effective process of read, write, and display results of a Go source code.

Cli: It is used for generating Golang command line apps. With this package, developers can create their own creative and expressive command line apps, routines for bash completion, and flags. Cli is an effective tool for Application Programming Interface (API) codes.

DevOps focuses on delivering efficient software applications capable of quick performance, better customer feedback, and simple to understand. A simple and efficient language like Golang is perfect for developing software applications.

]]>
Job Sharing: Twice the Profit or Double the Trouble? https://aptsoftware.com/job-sharing-twice-the-profit-or-double-the-trouble/ Tue, 06 Jul 2021 07:15:31 +0000 https://aptsoftware.com/?p=321 Job Sharing: Twice the Profit or Double the Trouble?

You’ve heard all about it, but how are you able to make job sharing serve your business interests? Here are basic ways and long-term tips to make sure that you simply have two productive job sharers who are each happier than they were before.

According to the Society of Human Resource Management, a minimum of 22% of U.S. companies now offer some sort of job sharing. While the share is lowest in firms with fewer than 100 workers, the advantages of job-sharing arrangements merit consideration by entrepreneurs in growth companies. During this Quick-Read you’ll find:

• The basic advantages and disadvantages of job sharing.

• Tips to form a job-sharing program succeed.

• A plan of action to implement job sharing in your company.

The term “job sharing” was first coined in the 1960s to denote one full-time job shared by two people. It’s used when a position requires a full-time commitment or cannot easily be divided into two part-time jobs. Job sharing shouldn’t be confused with flexitime or telecommuting, though these could be incorporated into a job-share agreement. It shouldn’t be confused with work sharing either. Work sharing occurs when an employer reduces the workweek of all employees (for example, from 40 hours to 36 hours so as to avoid a tenth layoff).

Here’s how Job Sharing benefits the employer:

• Improve recruiting by attracting qualified employees who don’t want to work full-time.

• Improve retention by offering an alternative that will appeal to several workers.

• Reduce absenteeism and tardiness due to the flexibility offered.

• Give workers time to manage family and other personal responsibilities.

• Give the employer a pool of workers who are often asked to return to full-time work temporarily during high-demand periods or to fill in for other employees who must be far away from their jobs unexpectedly.

• Increase productivity as it binds each partner to do his or her full share.

• Enhance output due to collaboration and exchange of ideas between partners.

• Increase engagement, especially when a partner goes from full-time to part-time—instead of stress from missing deadlines, there’s pride in getting the work done.

However, there can also be several disadvantages to Job Sharing:

• Need for extra supervisory time.

• Possible disruption of workflow.

• Communication issues

• Scheduling challenges for training and meetings.

Tips for success:

Most managers who have run job-sharing programs feel that the benefits outweigh the drawbacks. Here are some recommendations on the way to make job-sharing serve your business interests:

• Identify the roles easiest to share. Functions most conducive to job sharing usually involve nonsupervisory skill positions like administrative assistants, accountants, or factory line workers. Management positions are often harder because subordinates may develop a preference for one among the “two bosses.”

• Consider benefit reduction as a part of the package. Most of the people seeking reduced hours have a full-time earner within the household who receives employee benefits. Ask prospects not need benefits like insurance to think about waiving them in exchange for an appropriate job-sharing arrangement.

• Develop a highly detailed work plan for the shared job, including not only individual job hours and functions but provisions to handle situations involving each person’s work once they are off.

• Create a handoff plan for a smooth transition between job sharers, including not only notes on what was done and what must be done but also some overlap time between the partners to debate these matters. Ask that the 2 job sharers each spend a couple of minutes of unpaid time with one another before each transition, reciprocally for your flexibility in permitting job sharing.

• Implement regular reporting to management, like weekly or monthly reports.

• Evaluate job-sharing partners individually. If one is more skilled than the other one, consider giving the senior staffer more responsibility and paying the junior employee less. Make sure to review their work jointly, similar to your other employees. It is vital to reward job sharers for private performance, both for his or her own sake and to defuse accusations of unfairness by other employees.

• Establish an attempt period for every new job-sharing pair. Set a timeline after which the arrangement is going to be reviewed and continued as long as it meets the approval of both partners and their manager.

]]>
NAT Traversal using STUN TURN and ICE https://aptsoftware.com/nat-traversal-using-stun-turn-and-ice/ Fri, 18 Jun 2021 07:18:44 +0000 https://aptsoftware.com/?p=323

NAT Traversal using STUN TURN and ICE

Anupam Bera

Thursday, 10.06.2021

Introduction and Overview

Network Address Translation (NAT) is used to interact between private and public networks. NAT is a technology by which a gateway router maps the internal network (private IP) and external network (public IP) to facilitate –

  • Protect and secure a private network from the outside world.
  • The same private IP can be reused to the other private network.
  • Using a single public IP address, a large number of hosts can access the global internet.

NAT supports client-to-server communication for various services like web browsing, Email access, File access using FTP, and so forth. As NAT has many benefits, it also has many drawbacks.

Some internet protocols require end-to-end connectivity. Behind NAT all private addresses are covered by one globally accessible address, so it is not always possible for an external host to establish a connection to a particular host in the private network without special configuration like port forwarding. Session Initiation Protocol (SIP) and other media signaling protocols that use the Offer/Answer model fail to establish a peer-to-peer connection when the clients are behind NAT.

There were various attempts to solve this NAT problem but they do not work perfectly in all types of networks. NAT traversal technique using STUN, TURN, and ICE is a solution that is widely used in the SIP client for media communication.

This document summarizes the details to understand NAT, its problems in dealing with SIP clients, and the solution using ICE protocol from a practical point of view.

IP addresses and Network

Network IP addresses can be classified into two major groups:

  • Private/Local/Internal – The addresses that are used in the local network (LAN). Generally, this type of IP address is assigned by the network administrator and used to communicate within the same LAN. The private address space is defined in [RFC 1918] and as per this specification the Internet Assigned Numbers Authority (IANA) has reserved the following three blocks of the IP address space for private internet:10.0.0.0 - 10.255.255.255 (10/8 prefix)
    172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
    192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
  • Global/public/External – The addresses that are used on the internet network. A Global or Public Network is an address realm with unique network addresses assigned by the Internet Assigned Numbers Authority (IANA) or an equivalent address registry. Public hosts can communicate with other hosts inside the enterprise both public and private and can have IP connectivity to public hosts outside the enterprise.

NAT

NAT (Network Address Translation) is a mechanism for mapping IP addresses and ports between public and private networks. When NAT forwards an outbound IP packet it allocates a temporary port number on the public network side and maps to the IP address and port of the internal host (originator of the packet). This mapping will be maintained for some specific time and upon receiving an inbound packet from the public network (internet) on this public port it forwards back to the internal host.

NAT devices do not behave uniformly. The NAT behavior can be classified into two different angles.

  1. Traditional method of classification (RFC 3489).
  2. Modern method of classification (RFC 4787).

The traditional method of NAT classification

According to RFC 3489 section 5, the behavior is classified into four different types:

  • Full Cone: A full cone NAT is one where all requests from the same internal IP address and port are mapped to the same external IP address and port.  Furthermore, any external host can send a packet to the internal host, by sending a packet to the mapped external address. It is also known as one-to-one NAT. It maps an internal address (I_IP:I_Port) to an external address (E_IP:E_Port); any packets from I_IP:I_Port are sent through E_IP:E_Port.Any external host can send packets to I_IP: I_Port by sending packets to E_IP: E_Port.
  • Restricted Cone: A restricted cone NAT is one where all requests from the same internal IP address and port are mapped to the same external IP address and port.  Unlike a full cone NAT, an external host (with IP address X) can send a packet to the internal host only if the internal host had previously sent a packet to IP address X. It is also called address-restricted cone NAT. It maps an internal address (I_IP:I_Port) to an external address (E_IP:E_Port); any packets from I_IP:I_Port are sent through E_IP:E_Port.An external host (H_IP: any) can send packets to I_IP: I_Port by sending packets to E_IP: E_Port only if I_IP: I_Port has previously sent a packet to H_IP: any. “any” means the port number doesn’t matter.
  • Port Restricted Cone: A port-restricted cone NAT is like a restricted cone NAT, but the restriction includes port numbers. Specifically, an external host can send a packet, with source IP address X and source port P, to the internal host only if the internal host had previously sent a packet to IP address X and port P.It maps an internal address (I_IP:I_Port) to an external address (E_IP:E_Port); any packets from I_IP:I_Port are sent through E_IP:E_Port.An external host (H_IP: H_Port) can send packets to I_IP: I_Port by sending packets to E_IP: E_Port only if I_IP: I_Port has previously sent a packet to H_IP: H_Port.
  • Symmetric: A symmetric NAT is one where all requests from the same internal IP address and port, to a specific destination IP address and port, are mapped to the same external IP address and port.  If the same host sends a packet with the same source address and port, but to a different destination, a different mapping is used.  Furthermore, only the external host that receives a packet can send a UDP packet back to the internal host. Mainly, it maps a unique internal address (I_IP: I_Port) to an external address (E_IP: E_Port). Only an external host that receives a packet from an internal host can send a packet back.

The modern method of NAT classification

As per the RFC 4787 sections 4 and 5, NAT behavioral types are divided into two attributes: the mapping behavior attribute and the filtering behavior attribute. Each attribute can be one of three types: Endpoint-Independent, Address-Dependent, and Address and Port-Dependent. With this new classification method, a Symmetric NAT is an Address and Port-Dependent mapping NAT.

The following address and port mapping behavior are defined:

Endpoint-Independent Mapping: The NAT reuses the port mapping for subsequent packets sent from the same internal IP address and port (X:x) to any external IP address and port.  Specifically, X1′:x1′ equals X2′:x2′ for all Y.

Address-Dependent Mapping: The NAT reuses the port mapping for subsequent packets sent from the same internal IP address and port (X:x) to the same external IP address, regardless of the external port. Specifically, X1′:x1′ equals X2′:x2′ if and only if, Y2 equals Y1.

Address and Port-Dependent Mapping: The NAT reuses the port mapping for subsequent packets sent from the same internal IP address and port (X:x) to the same external IP address and port while the mapping is still active. Specifically, X1′:x1′ equals X2′:x2′ if and only if, Y2:y2 equals Y1:y1.

NAT Traversal Problems for peer-to-peer Communication

For client-server communication such as web and email applications, the NAT is working well because in this model the client always initiates the request to the server and gets the response in the same connection. For peer-to-peer communication, such as SIP where the Offer/Answer model is involved, NAT would cause various problems.

Peer-to-peer media communication: As media relay is costly (bandwidth and latency cost), SIP’s applications prefer media communication directly between the clients. One client passes the media transport information to the other client through the signaling (in the SDP message body inside the INVITE message) path and the other client sends its media to this transport. If the clients are behind the NAT then the other client would not be able to send media to this address and both can then communicate with each other.

Hairpinning: Hairpin is a behavior where a NAT device is able to detect that both clients are in the same internal network by verifying their same public address. All NAT devices do not support hairpinning behavior so in that case, two clients behind the same NAT will not be able to communicate with each other.

Binding Timeout: When NAT creates a mapping between public and private IP addresses it binds this map for a certain amount of time. If no traffic is there within this time it will destroy this binding. The keep-alive mechanism is used to keep this binding open by sending outbound packets periodically.

NAT Traversal Solution

There are various attempts to provide the solution of NAT traversal for peer-to-peer communication. Some of them are either client-centric or server-centric or a mix of server and client implementations such as Universal Plug-and-Play (UPnP), Back to Back User Agents (B2BUA), Application Layer Gateway (ALG), Session Border Controllers (SBC), and so on. The drawback of those solutions is that they are not able to handle all types of NAT.

STUN

Session Traversal Utilities for NAT (STUN) is a client-server protocol that enables a client to discover whether it is behind a NAT, the types of NAT, and which public IP address and port it is able to receive an inbound packet. When a STUN client sends a packet to the STUN server it examines the packet source IP and port, packs this information as STUN response, and sends it to the STUN client. When a host (with STUN client) wants to establish a peer-to-peer connection to the other host, it sends STUN discovered information to the remote peer to receive the inbound packet.

The STUN defined by RFC 5389, deprecated the use of NAT type detection (RFC 3489) and still provides a mechanism for a client to query its public/mapped address to a STUN server.

For peer-to-peer communication most cases (95%) it works. However, this STUN solution cannot solve the symmetric-to-symmetric or port-restricted NAT.

TURN

To overcome this problem it is necessary to use the services of an intermediate host that acts as a relay for the packets when a direct communication path can not be found.  This relay typically sits in the public Internet and relays packets between two hosts that both sit behind NATs.

Traversal Using Relays around NAT (TURN) is a network protocol that allows a host behind a NAT (called the TURN client) to request a TURN server to act as a relay.  The client can arrange for the server to relay packets to and from certain other hosts (called peers) and can control aspects of how the relaying is done.

As relaying is costly in terms of both bandwidth and latency, hence it should be used as the last option.

ICE

Interactive Connectivity Establishment (ICE) is the ultimate NAT traversal solution for a client who wants to make a peer-to-peer connection with a remote client. Combining the STUN and TURN protocol altogether, ICE allows the agents to discover enough information about their topologies to potentially find one or more candidate paths by which they can communicate. It also has the capability to prioritize the candidates, so that the more expensive alternative (relay using TURN) will only be used as the last option.

The basic idea behind ICE is as follows: it discovers the three types of candidate paths it could use to communicate with the other agent.

These might include:

  1. Host Candidates: Host candidate to represent its physical network interfaces. A peer host may choose this for communication if both are behind the same NAT as defined in mark (1) in the above figure.
  2. Server Reflexive Candidates: Server reflexive candidate for the address that has been resolved from STUN. A peer host selects this path if both are behind the Endpoint-Independent Mapping NAT as defined in mark (2) in the above figure.
  3. Relayed Candidates: A transport address allocated from a TURN server (a “relayed address”). A peer host selects this path if both are not behind the Endpoint-Independent Mapping NAT as defined in mark (3) in the above figure.

Systematically the ICE discovers all possible candidate pairs of addresses until it finds one or more pairs of addresses that work. The steps of the ICE negotiation process involve:

  • Gathering Candidate Addresses: As mentioned above, it finds three types of candidates:
    • Local Address.
    • Server Reflexive Address resolved by STUN.
    • Relayed Address allocated from the TURN server.
  • Prioritizing Candidates: The priority order candidates are Host Candidates, Server Reflexive Candidates, and Relayed Candidates.
  • Encoding: Encode these candidates and send them to the peer. In the case of the SIP application, the encoded candidates are sent through the SDP message body in the INVITE request or response for the negotiation.
  • Pairing: It pairs every local candidate with every remote candidate that it receives from the remote peer.
  • Connectivity Checking: It performs a series of checks by sending a STUN request from the local candidate to the remote candidate to see which pairs work. It checks the high-priority candidates pair first followed by low-priority one. The basic principle of the connectivity checks is simple:
    • Sort the candidate pairs in priority order.
    • Send checks on each candidate pair in priority order.
    • Acknowledge checks received from the other agent.
  • Concluding ICE: After checking every possible combination of paths it concludes the result by nominating pairs and updating their state.

ICE in SIP/SDP negotiation

Using an ICE agent, an SIP client gathers all possible candidate pairs of addresses and includes all of them in an SDP offer/answer message body for peer-to-peer media communication.

The following is an example of an SDP offer for both RTP and RTCP that includes ICE attributes. [Color code – Blue: Local Address, Green: Server Reflexive Address resolved by STUN, and Orange: Relayed Address allocated from the TURN server] :

v=0
o=root 492018058 492018058 IN IP4 192.168.19.58
s=Asterisk PBX 13.7.0
c=IN IP4 192.168.19.58
t=0 0
m=audio 20032 RTP/AVP 107 0 8 3 111 101
a=rtpmap:107 opus/48000/2
a=fmtp:107 useinbandfec=1
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:3 GSM/8000
a=rtpmap:111 G726-32/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=maxptime:60
a=ice-ufrag:62eff296425104a34022ad6c758cf9cb
a=ice-pwd:3d28c3210fb7e60f309713af54a52bee
a=candidate:Hc0a8133a 1 UDP 2130706431 192.168.19.58 20032 typ host
a=candidate:Sb6498922 1 UDP 1694498815 182.73.137.34 20032 typ srflx raddr 192.168.19.58 rport 20032
a=candidate:R12da1700 1 UDP 16777215 18.218.23.0 50402 typ relay raddr 182.73.137.34 rport 51130
a=candidate:Hc0a8133a 2 UDP 2130706430 192.168.19.58 20033 typ host
a=candidate:Sb6498922 2 UDP 1694498814 182.73.137.34 20033 typ srflx raddr 192.168.19.58 rport 20033
a=candidate:R12da1700 2 UDP 16777214 18.218.23.0 64271 typ relay raddr 182.73.137.34 rport 37256
a=sendrecv

The answer of the SDP offer that includes ICE attributes:

v=0
o=- 3751784693 3751784694 IN IP4 182.73.137.34
s=pjmedia
b=AS:117
t=0 0
a=X-nat:1
m=audio 34634 RTP/AVP 107 101
c=IN IP4 182.73.137.34
b=TIAS:96000
a=rtcp:35264 IN IP4 182.73.137.34
a=sendrecv
a=ice-ufrag:6c774083
a=ice-pwd:30024871
a=candidate:Sc0a81362 1 UDP 1862270975 182.73.137.34 34634 typ srflx raddr 192.168.19.98 rport 34634
a=candidate:Hc0a81362 1 UDP 1694498815 192.168.19.98 34634 typ host
a=candidate:Sc0a81362 2 UDP 1862270974 182.73.137.34 35264 typ srflx raddr 192.168.19.98 rport 35264
a=candidate:Hc0a81362 2 UDP 1694498814 192.168.19.98 35264 typ host
a=rtpmap:107 opus/48000/2
a=fmtp:107 useinbandfec=1
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16

 

References

  • RFC 1918 – Address Allocation for Private Internets
  • RFC 3489 – STUN – Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)
  • RFC 4787 – Network Address Translation (NAT) Behavioral Requirements for Unicast UDP
  • RFC 5245 – Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols

To read other blogs click here.

]]>
Rich Communication Services – Advantages and Disadvantages https://aptsoftware.com/rich-communication-services-advantages-and-disadvantages/ Thu, 04 Mar 2021 07:25:30 +0000 https://aptsoftware.com/?p=327

Rich Communication Services – Advantages and Disadvantages

Activate recently published data that reinforces the fact that 30% of all mobile phone users extensively use two or more apps for the purpose of regular communication. Operators are now looking to RCS to lower these usage totals. RCS opens up a lot of possibilities for both marketers and consumers alike, as it is an advanced communication solution that can be utilized by third-party businesses and messaging users for a wide range of services.

Advantages of Rich Communication Services

  1. Reach a targeted audience – It is necessary for organizations today to streamline and standardize their marketing strategies so that their marketing has a much more direct and effective impact on revenues. By utilizing RCS, organizations can now access an advanced method of communication by only reaching customers who are most likely to respond to a particular organization’s marketing campaigns.
  2. Real-Time updates – Customers are much more satisfied if there is a constant channel of communication with them. RCS helps organizations to provide real-time updates like order confirmations and product announcements.
  3. Chatbots Integration – Brands like the Australian Open and Domain have already shown inclination towards adopting chatbots into different aspects of their interaction with their customers and they have also yielded great results. The result of renowned brands using Chatbots has helped this technology to grow in popularity. However, it should be noted that to use chatbots it is necessary to be heavily reliant on social media channels. RCS comes with the full functionality to integrate chatbots into an organization’s communication pathway with its customers. Brands are now successfully able to bypass third-party platforms and are extensively using bots to provide real-time responses to customers.
  4. Seamless digital experience – Google’s Early Access Program is already letting developers come up with ideas and solutions to perfect the capabilities of the RCS domain, even so, RCS has all the capability and potential to make the digital experience hassle-free for both the consumer and the business.
  5. Additional Consumer Benefits – RCS allows consumers to send better quality images and comes with superior group chatting capabilities. It also lets consumers access a number of in-call and post-call features.

Disadvantages of Rich Communication Services

  1. Necessity of a back-end entity It is impossible to organize and execute a campaign independently, as there is a need for a developer to program the back end. This in some cases also imposes a financial burden.
  2. Not cost-effective The cost of RCS is still in the process of being finalized. Based on the size of the target audience, it is often found that the cost of sending RCS messages often burns a hole in an organization’s marketing and advertising budget.
  3. No end-to-end encryption RCS has failed to be a medium for the exchange of sensitive information. With no end-to-end encryption, RCS suffers from major privacy issues. However, the operator channel used for RCS is a pretty secure channel.
  4. iOS non-compatibility   It is impossible to reach customers on an iOS device as RCS messages are incompatible with iPhones. There are alternatives but those alternatives have not proved to be as effective as RCS.
  5. Impossible to track RCS users Since many different operators deliver RCS services, it is impossible to track who has sent a particular RCS message.
]]>
Encouraging employees to pursue their passions – the new HR practice https://aptsoftware.com/encouraging-employees-to-pursue-their-passions-the-new-hr-practice/ Fri, 19 Feb 2021 07:27:13 +0000 https://aptsoftware.com/?p=329

Encouraging employees to pursue their passions – the new HR practice

Today all organizations are extremely careful about employee engagement and would like to encourage self-actualization.. Thereby, the scope to nurture is broadening, employee empowerment is taking a new dimension with greater engagement and trust building. This definitely has a positive impact on the productivity as well as the growth of all stakeholders.

Unquestionably, the ICT industry is playing a lead role in this aspect. As it happens, it is found that the smaller companies are more innovative.

Certainly, we at APT, are mindful about how our employees engage themselves in activities beyond work. They definitely pursue their own dreams and passions by themselves and venture into various activities. However, at times the company is interested in creating a space for them where they can indulge in areas of their choice. This actually brings motivation and increases employee involvement even more in the field of work. Moreover, this not only nurtures their creativity but also reduces work monotony.

As a management, our job is to effectively utilize human resources for organizational growth as well as employee motivation. Recently, we created such an opportunity for our employee where they debuted their role in the Bengali Film Industry. They played the role in the cast and crews of a Bengali feature film named ‘Phoring’, by Indranil Roy Chowdhury. It was an abstract film, dealing with the adolescent psyche of a loner boy.

 

Their work in the movie, although small, was hugely appreciated and even the title card acknowledges that. Here is a screenshot of that.

 

We from Apt Software wholeheartedly thank the Director  Indranil Roychowdhury for giving us this chance.

]]>
What is VoLTE or Voice over LTE? https://aptsoftware.com/what-is-volte-or-voice-over-lte/ Thu, 18 Feb 2021 07:29:33 +0000 https://aptsoftware.com/?p=331

What is VoLTE or Voice over LTE?

VoLTE has taken the world by storm, since its inception. It is honestly not surprising given that, VoLTE has three times more the capacity of older technologies like 3G  UMTS and six times more than 2G GSM. The following numbers will help us understand better the magnitude of the rise of VoLTE – according to Global Mobile Suppliers Association, as of February 2019, globally there are 253 operators who have investments in VoLTE in 113 countries, this includes 184 operators who have already launched VoLTE-HD voice service in 87 countries in a commercial capacity. To put the numbers into perspective, according to Global Mobile Suppliers Association the number of operators who have invested in VoLTE went up from 137 operators in 65 countries in just one year from February 2018. As of August 2019, the numbers had significantly risen, there were 262 operators with investments in VoLTE spread in a total of 120 countries and out of those, 194 operators have launched VoLTE-HD enabled voice services in 91 countries.

The VoLTE mechanism :

There needs to be a certain synchronized compatibility to be able to place a VoLTE call. The device along with its firmware and the service provider must all of them support VoLTE and should be able to provide the service in the required area. IP Multimedia Subsystem or the IMS architectural framework is what VoLTE bases its functionality upon. As defined by the Global System for Mobile Communications Association or GSMA in PRD IR.92  to facilitate VoLTE on the LTE wireless broadband service there are specific profiles for control and a router architecture of voice services. After the procedures of authentication and authorization are completed, the MME and the HSS have goes over mobility management communication to ensure the storage of the subscriber profile. The Diameter S6a interface is typically used for the purpose of signaling for these procedures. The device which has already been authorized is capable of establishing the always-on LTE default user data bearer, to do this the authorized device has to communicate with the PGW. The PGW and the device then establishes a user data session. It is important to note that for that particular user data session, which in this case is still under the domain of the default bearer, the PGW is required to establish communication with the PCRF with the help of the Diameter Gx interface to get hold of the the policy and charging regulations that is to be levied on the customer’s that particular data session. Once the PGW and in some cases other PCEFs (Policy and Charging Enforcement Function) have finished up with their procedures, users then can avail Internet services with the help of the established default bearer or can choose to establish a VoLTE call.

 

Advantages of VoLTE

 

  1. Efficient uses of network resources – It goes without saying that organizations are constantly looking for solutions that will help them use their resources efficiently. VoLTE is often used to develop a network that is not only simple whose operation expenditures also become immensely more cost effective. This can happen by making the scope for service providers to eventually handle the management of a singular network only. It is in best interest of VoLTE to get rid of other archaic delivery technologies.

 

  1. Spectrum space – 2G and 3G services have lost much of their significance with the advent of VoLTE. The majority of the spectrum that is used for 2G has the potential to be used for the purpose of significantly increasing capacity for 4G networks. Carriers will be able to free up spectrum space that is used for the archaic voice services with the help of VoLTE.

 

  1. Superior coverage and connectivity – VoLTE comes with the promise of providing superior indoor coverage than the 2G or 3G spectrums. Experts are of the opinion that calls over VoLTE are able to establish connection twice as fast as other methods that were in use or are currently in use. There is conclusive evidence that the frequencies used by 4G have a far greater capability of an extended reach than some 2G or 3G spectrums.

 

  1. Business and Enterprise communication services – With the help of VoLTE, it will be possible for us to use native dialer which comes with high-quality voice calls with the help of VoLTE. This in combination with business and enterprise collaboration ensure that enterprise users largely benefit from VoLTE.

 

  1. No requirement for legacy infrastructure – VoLTE is capable of delivering voice and data services over the same network which means there is absolutely no need to maintain legacy infrastructure.

 

  1. Improvement in other functions – VoLTE not only increases the functionality of VoIP protocols but are also useful in improving capacity with the help of RoHC / SPS protocols. VoLTE also helps in UL coverage using TTI bundling.

 

Conclusion

VoLTE is the new buzzword that is taking the world by storm. VoLTE’s main selling point remains an enhanced customer experience, banking on that VoLTE is constantly looking for ways to improve communication that can aid in providing solutions for personal, corporate and commercial users.

]]>