The protocols used in an IP phone call are: SIP (Session Initiation Protocol): A standardized signaling protocol (RFC 3261) which works over TCP (typically on port 5060) at the application OSI layer. Its role is to create, modify or terminate phone sessions. SIP behaves very similarily to HTTP in that SIP clients send requests to the server which will answer with responses (status). The difference with HTTP is that SIP clients can also respond to requests made by a server. Other signaling protocols are H.323 or the Cisco protocol SCCP. SIP is progressively replacing these two protocols. SDP (Session Description Protocol) A standardized protocol (RFC 4566) providing information about multimedia initialization settings such as VoIP calls. RTP (Real-time Transport Protocol): A standardized transport protocol (RFC 3550) working over UDP at the transport OSI layer. RTCP: A protocol closely linked with RTP (also defined in RFC 3550). It does not transport any data but gives information about the quality of the service provided by RTP. 1. SIP Registratio n 2. SIP Initialization/Clos ure 3. SDP 4. RTP 5. RTCP 6. CHECKS 1. SIP Registration
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
The protocols used in an IP phone call are:
SIP (Session Initiation Protocol):A standardized signaling protocol (RFC 3261) which works over TCP (typically on port 5060) at the application OSI layer. Its role is to create, modify or terminate phone sessions. SIP behaves very similarily to HTTP in that SIP clients send requests to the server which will answer with responses (status). The difference with HTTP is that SIP clients can also respond to requests made by a server.Other signaling protocols are H.323 or the Cisco protocol SCCP. SIP is progressively replacing these two protocols.
SDP (Session Description Protocol)A standardized protocol (RFC 4566) providing information about multimedia initialization settings such as VoIP calls.
RTP (Real-time Transport Protocol): A standardized transport protocol (RFC 3550) working over UDP at the transport OSI layer.
RTCP:A protocol closely linked with RTP (also defined in RFC 3550). It does not transport any data but gives information about the quality of the service provided by RTP.
1. SIP Registration
2. SIP Initialization/Closure
3. SDP
4. RTP
5. RTCP
6. CHECKS
1. SIP Registration
Here is a Wireshark capture of the SIP registration process.Babar registrates with the trixbox server.
The server rejects the client registration and sends it back a challenge digest composed of an algorithm type, a "realm" and a "nonce".The "nonce" is a random value created on the Asterisk server and sent to the client. It has a limited lifetime which prevents replay attacks. Each challenge digest contains a different nonce value. The "realm" is the SIP domain name.
Digest authentication checks that both communicate parties know a shared password.
The client sends a new registration request but this time with a digest response composed of the:"username", "realm", "nonce", "uri", "response" and the algorithm.
The "URI" (Uniform Resource Identifier) is a string of characters used to identify a resource.
The "nonce" sent by the server is used to compute a "response".
After computation, the server is able, to validate the client password thanks to the digest response it just received.With the digest authentication process, no password is exchanged between the client and the server.
The server can send a message to the client to validate the registration.
SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.1.102:15772;branch=z9hG4bK-d87543-5f795c5af206133a-1--d87543-; received=192.168.1.102;rport=15772 From: "Babar";tag=11573036 To: "Babar";tag=as1647de36 Call-ID: ZGVmYmM0OWRhNzYyMmI5M2FmODIwZjk1YTA2ZTI2Y2I.
Here is a Wireshark capture of the SIP initialization and closure processes.Bambou (extension 202) calls Babar (extension 203), talks to it and then hangs up (closure/termination).
Let us see in detail the steps needed for SIP to establish a VoIP call before voice data can be exchanged between two parties.
The process to establish an SIP link between two hosts is very similar to the one used for TCP:
The server rejects the client invitation and sends back a challenge digest composed of an algorithm type, a "realm" and a "nonce".The "nonce" is a random value created on the Asterisk server and sent to the client. It has a limited lifetime which prevents replay attacks. Each challenge digest contains a different nonce value.
Digest authentication checks that both communicating parties know a shared password. The "realm" is the SIP domain name.
The client sends a new invitation request but this time with a digest response composed of the:"username", "realm", "nonce", "uri", "response" and the algorithm.
The "nonce" sent by the server is used to compute a "response".The "URI" (Uniform Resource Identifier) is a string of characters used to identify a resource.
After computation, the server will be able, to validate the client password with the digest response it just received.With the digest authentication process, no password is exchanged between the client and the server.
The sender (Bambou - 202) acknowledges the server confirmation.The phone call can begin. The RTP protocol will transport the VoIP packets and the RTCP will control the link quality.