300 likes | 483 Vues
An introduction to SIP. Simon Millard Professional Services Manager Aculab. An introduction to SIP. Agenda SIP concepts Media SIP signalling NAT traversal Security. SIP concepts. SIP is the Session Initiation Protocol
E N D
An introduction to SIP Simon Millard Professional Services Manager Aculab
An introduction to SIP • Agenda • SIP concepts • Media • SIP signalling • NAT traversal • Security
SIP concepts • SIP is the Session Initiation Protocol • Its job is to set up a session (maybe a phone call) between two or more users
SIP concepts • SIP’s view of the network is the same as the Internet’s • Intelligence at the edge • Re-use of proven devices and concepts • There is the ability to negotiate supported features • Can set up any type of media • SIP separates media from signalling
Media For IP telephony we are concerned with RTP RTCP RTP CODECs UDP IP Ethernet, optical, radio, …
ETH IP UDP RTP AUDIO CHK Media • More data is sent than in a TDM call • Silence elimination • CNG • VAD
Media compression • The rain in Spain falls mainly on the plain • Lossless • $ r# in Sp# falls m#ly on $ pl# • $ = the #=ain • Lossy • Th rn n Spn flls mnly n th pln
SIP signalling • Coded in ASCII • Verbs (methods) and responses • INVITE initiate a session • ACK confirm session established • BYE terminate a session • CANCEL cancel a pending INVITE • REGISTER bind an address to a location • ++
SIP signalling • Responses – as per HTTP • 1xx information • 100 trying, 180 ringing • 2xx success • 200 OK • 3xx redirection • 300 multiple choices • 4xx client error • 404 not found • 5xx server failure • 6xx global failure
SIP signalling • Media for the session is described by the SDP (session description protocol)
sip:simon@192.168.0.100 response Signalling – UAs • SIP based on UAs (User Agents) • UAC initiates requests • UAS responds to requests UAC UAS
sip:simon@work sip:simon@aculab.com sip:simon@home Signalling – Proxies • Route signalling • Do not initiate requests or responses • Pass through unknown messages unchanged • Stateless or stateful Aculab Proxy
Signalling – Registrars • Allow a SIP device to dynamically register a location • This allows them to be contactable when mobile Aculab Registrar REGISTER sip:simon@aculab.com Location database 192.168.0.102
request for sip:simon@aculab.com moved to sip:simon@xx.xx.xx.xx request for sip:simon@xx.xx.xx.xx sip:simon@aculab.com registered from xx.xx.xx.xx Signalling – Redirect Servers • Respond to a request by redirecting it to another device Aculab Redirect Server 192.168.0.102
Signalling – B2BUA • A back-to-back User Agent is somewhat similar to a Proxy, but terminates and initiates SIP signalling B2BUA UA UA
location server DNS server simon? simon@192.168.0.100:5060 SIP SRV b.com proxy.b.com proxy.b.com INVITE INVITE INVITE BYE Putting it all together proxy.a.com RTP
NAT traversal • Network Address Translation • IP-Masquerading • Source and/or destination addresses re-written • Most widely used to allow multiple hosts on a private network to access the Internet from a single public IP address • Solved the IP address shortage of IPv4
NAT traversal • NAT binding is created by the NAT to map a private to a public address • Binding lifetime • Period of time for which the binding remains open • Binding will be closed if there is no traffic for a period of time
NAT traversal • Full cone • Internal IP address and port mapped one-to-one to external IP address and port • External host can reach internal by sending to IP:port
NAT traversal • Restricted cone • Internal IP:port mapped one-to-one to external IP:port • External host can reach internal client only if traffic has already been sent to it
NAT traversal • Port restricted • External host can reach internal port only if traffic has already been sent to it from that port
NAT traversal • Symmetric • Requests from an internal IP:port are mapped to a unique external IP:port • Only a host which receives a packet can send packets back
NAT traversal • STUN • STUN is a client/server protocol • Client sends request to STUN server which responds with the IP address of the NAT and the port which was opened for the request
NAT traversal • STUN works with full cone, restricted cone and port restricted NATs • Will not work with symmetric NAT • IP address of the STUN server is different to that of the destination endpoint • Peers communicate discovered IP:port information • In a full cone, any endpoint can initiate the session
Security • SIP signalling • Digest authentication, based on knowledge of a shared secret
Security • SIP signalling • TLS – Transport Layer Security • Based on public key cryptography • Client requests TLS session • Server responds with public certificate • Client verifies certificate • Mutual exchange of session keys • Send/receive application data using keys • Can be used hop-by-hop • SIPS requires TLS used end-to-end
Security • Media • Uses SRTP (secure RTP) • AES encryption typically using 128 bit keys • Assumes secure key exchange prior to the session running • Most commonly used are Mikey and SDES (SDES within SDP so need to secure the SIP session)
Summary • Session Initiation Protocol leverages Internet technologies • Signalling and media paths • Other devices • NAT traversal issues • Security
Thank you simon.millard@aculab.comVisit Aculab on booth 1217