Download presentation
Presentation is loading. Please wait.
1
SIP/RTP/RTCP Implementation by George Fu, UCCS CS 525 Semester Project Fall 2006
2
Two Parts of the Project Understand SIP, RTP and RTCP Implement SIP, RTP and RTCP
3
Voice To/From IP Analog Digital Voice CODEC: Analog to Digital Compress Create Voice Datagram Add Header (RTP, UDP, IP, etc)
4
ISO Reference Model and VoIP Standards ISO Protocol layer Protocols and standards Presentation Codecs / Applications Session H.323 / SIP / MGCP Transport RTP / TCP / UDP Network IP Link FR, ATM, Ethernet, PPP, etc.
5
SIP Messages – Methods and Responses SIP Methods: –INVITE – Initiates a call by inviting user to participate in session. –ACK - Confirms that the client has received a final response to an INVITE request. –BYE - Indicates termination of the call. –CANCEL - Cancels a pending request. –REGISTER – Registers the user agent. –OPTIONS – Used to query the capabilities of a server. –INFO – Used to carry out-of-bound information, such as DTMF digits. SIP Responses: –1xx - Informational Messages. –2xx - Successful Responses. –3xx - Redirection Responses. –4xx - Request Failure Responses. –5xx - Server Failure Responses. –6xx - Global Failures Responses. SIP components communicate by exchanging SIP messages:
6
Example of SIP message INVITE sip:bob@domain.com SIP/2.0 Via: SIP/2.0/UDP 166.34.27.44 From: sip:alice@mci.com To: sip:bob@domain.com Call-ID: a2e3a@mci.com Content-Type: application/sdp Content-Length: 885 c=IN IP4 166.34.27.44 m=audio 38060 RTP/AVP 0 HTTP message syntax sdp = session description protocol Call-ID is unique for every call.
7
PC-to-PC
8
Call to a known Computer Alice’s SIP invite message indicates her port number & IP address. Indicates encoding that Alice prefers to receive (PCM ulaw) Bob’s 200 OK message indicates his port number, IP address & preferred encoding (GSM) SIP messages can be sent over TCP or UDP; here sent over RTP/UDP. Default SIP port number is 5060.
9
Implementation Open All the Sockets in the Main Thread sip_send_socket = socket (AF_INET, SOCK_DGRAM, 0); rtp_send_socket = socket (AF_INET, SOCK_DGRAM, 0); rtcp_send_socket = socket (AF_INET, SOCK_DGRAM, 0); sip_receive_socket = socket (AF_INET, SOCK_DGRAM, 0); rtp_receive_socket = socket (AF_INET, SOCK_DGRAM, 0); rtcp_receive_socket = socket (AF_INET, SOCK_DGRAM, 0);
10
Implementation Separate Thread for RTP and RTCP pthread_create(&child, NULL, send_RTP_RTCP, NULL); Use Select System Call to Make SIP/RTP/RTCP/User Commands Send and Receive all Work Simultaneously
11
Demo
12
Future Work Delay For high quality voice, one way latency must not be greater than 150ms. Delay greater than 50ms leads to echo and talker overlap. Jitter Variation in inter-packet arrival time. The solution to this problem is to introduce jitter buffers. Packet Loss Loss in excess of 5-10% causes significant degradation in voice quality. Re-ordering Packets may arrive out of order and this leads to garbled speech. Speech Coding PCM, PCM uLaw, ADPCM, LPC, LD- CELP, GSM
13
References U. Black, Voice over IP, 2nd ed., Prentice Hall, 2002 J. Davidson and J. Peters, Voice over IP Fundamentals, Cisco Press, 2000 Douskalis, IP Telephony. The Integration of Robust IP Services, Prentice Hall, 2000. H. Liu and P. Mouchtaris, “Voice over IP Signaling: H.323 and Beyond,” IEEE Comm. Mag., October 2000, pp. 142-148 H. Schulzrinne and J. Rosenberg, The Session Initiation Protocol: Internet- Centric Signaling,” IEEE Commun. Mag., Oct. 2000, pp. 134-141. RFC 1889: H. Schulzrinne et al, “RTP: A Transport Protocol for Real- Time Applications” http://www.itpapers.com/techguide/voiceip.pdf http://www.cs.columbia.edu/sip/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.