What is Session Initiation Protocol (SIP)?
In the advanced world of VoIP, Session Initiation Protocol (SIP) is a call setup protocol that operates at the application layer. This signalling protocol is used for initiation, maintenance and termination of real-time sessions which comprise voice, video and messaging applications. SIP concurrently signals and controls multimedia communication sessions, including voice, video and instant messaging.
SIP supports a wide range of highly efficient codecs, allowing for up to 4000 simultaneous calls on a single gigabit connection and runs over TLS – providing users with peace of mind in knowing that their personal information and communications are safely secured.
Registering an IP phone for first-time use is easy – the IP phone will communicate with the server through a series of messages and codes to authenticate the session. Once authentication has been successful, the SIP server will respond with a 100 “Trying” code, which indicates that a request has been received and the server is working on processing an invitation. The invite will then be sent through to the telephony switch network, where it will reach the IP phone and send a 100 “trying” code and a 180 “ringing” code. The 180 “ringing” code is used to alert the IP phone to generate a local ring-back tone – that is, playing the ring back on the handset locally.
All SIP distributions are subject to signalling processes also known as SIP methods:
- SIP registration (SIP method: REGISTER) allows the UCM to onboard and store the network location of a SIP User-Agent or IP endpoint. Once the UCM knows the location of a SIP Client, it can deliver an IP address, calls, video and other supported media to it from other clients connected to the same UCM/Server.
- SIP subscription (SIP method: SUBSCRIBE) is used to monitor extensions, whether remote or local, that are hosted on the VoIP server or UCM.
- SIP notification (SIP method: NOTIFY) is used to return responses to a SIP subscriber request with the relevant data as requested by the UCM from a client. The SIP code normally received before a SIP Notify is given a 200 OK which indicates that the previous method was initiated successfully.
- SIP Invitation (SIP method: INVITE) is a request sent by the calling device, inviting the recipient for a call or video session. The SIP headers included in this SIP INVITE request provide information about the message.
SIP works in synchrony with Session Description Protocol (SDP), which is used to communicate information about media negotiation, such as IP address, port number, and codecs used for audio and video.
SIP NAT Traversal
By using the built-in NAT traversal service known as UCM Remote-Connect, the 6300 series of PBXs allow SIP registrations from endpoints outside of the local voice network.
Registering phones on the UCM can sometimes result in one-way audio issues whereby the user cannot receive clear audio from remote parties or vice versa. This issue can be attributed to the IP phone’s inability to recognize the current public IP address. On the IP Phone, the user can access the spam server configured to the device and send a detection request. The server will detect the public IP address of the IP phone and send it directly to the phone. Once received, the phone will update the contact server and connection information, changing the IP address and SIP packet from private to public.
Troubleshooting with Wireshark
Wireshark is an open-source downloadable software used to analyze network data. For VoIP, it can be used to play RTP packets and analyze jitter issues. Wireshark is also trusted with detecting malicious calls.
The Grandstream UCM series has a built-in packet capture tool as part of the built-in maintenance utility for network troubleshooting. This allows administrators to take a packet capture either on the WAN for wirelessly connected endpoints or on the LAN for cabled endpoints. Once the packet capture has been done, these can be unzipped and uploaded to wireshark for troubleshooting any issues by using the relevant SIP and packet parameters as filters for diagnosing the issue.
|sip||filter SIP Protocol|
|rtp||filter RTP stream|
|rtcp||filter RTCP packets|
|rtpevent||filter DTMF packets|
|ip.addr||use IP address to filter packets, e.g.ip.addr==192.168.2.221 or ip.addr!=192.168.2.11|
|udp.srcport||filter packets depend on the UDP source port, e.g. udp.srcport==(Port number)|
|udp.dstport||filter packets depend on the UDP destination port, e.g. udp.destport==20000 or udp.srcport==10000 || udp.destport==20000|
|dns||filter DNS protocol|
Analog lines configuration
On configuring the integration of analog lines, there is a built-in signalling troubleshooting utility that can assist in testing the FXS and FXO ports to check whether signals are being sent and received. This can be used to assist in testing the configuration of FAX and analog lines.
Analog lines troubleshooting
For troubleshooting issues regarding receiving and sending of fax and analog signals, the UCM can be rebooted to bridge the FXS ports directly to the FXO ports and use an analog endpoint to check whether there is an audio signal present. In addition, the built-in signal troubleshooting tool built into the UCM can assist in testing whether FXS and FXO ports are sending and receiving the relevant signals sent and received by the UCM during live operation. This can be done by starting the signal capture tool and initiating an analog call or fax from the UCM or to the UCM.
To continue learning about Grandstream’s unique troubleshooting tools, click here to view the full video on YouTube.