This article will explain the principles of SIP, how it works, and highlight some of the benefits and issues of using SIP trunking for VoIP telephony services.
What Is SIP Trunking?SIP stands for Session Initiation Protocol and is central to the management and integration of digital systems. SIP is essentially the modern digital equivalent of the old fashioned manual telephone switchboard. It manages the allocation of resources, for example by controlling the start and end of calls and making changes during their duration, e.g. changing the number of connections to a conference call. SIP can also be used to manage other functions alongside calling. For instance, in an online training session, it might be decided that only the presenter should speak during the course of the lesson but that students will be allowed to make comments and ask questions over instant messaging which the presenter can address at an appropriate moment.
How Does SIP Work?SIP acts as the agent between entities called User Agents. These may be either User Agent Clients (UACs) or User Agent Servers (UASs). Essentially, the former generate requests and the latter fulfil them. One computer can perform both roles but will be treated as two separate UAs. Clients would generally offer the sorts of services with which an average end user would wish to interact, such as VoIP phone services and Instant Messaging providers. Servers would essentially be the network based services required to action these requests such as Proxy Servers, which direct traffic to its intended destination with the help of Registrar Servers, which keep track of user locations.
An Example Of SIP In ActionHere is a high level overview of how a VoIP call using SIP would work:
- UAC1 sends a message to UAC2 to start a call.
- As UAC1 needs to find out where exactly UAC2 is located, this message will be first sent to one or more proxy servers, which will locate UAC2.
- While these proxy servers are doing their work, they will send a holding message to UAC1 to let them know that they are in the process of contacting UAC2.
- If UAC2 decides to accept the call they will send a confirmation message to UAC1, which will acknowledge it and start the call.
- When it's time to end the call, one of the users will send a message to the other, who will acknowledge it.